Chapter 14. Pax CDI and OSGi Services

14.1. Pax CDI Architecture

Overview

Figure 14.1, “Pax CDI Architecture” gives an overview of the technology stack underlying Pax CDI.

Figure 14.1. Pax CDI Architecture

Pax CDI Architecture

Pax CDI

Pax CDI is the integration layer that makes it possible to deploy a CDI container within the Apache Karaf OSGi container.

JBoss Weld

JBoss Weld provides the CDI implementation for the Pax CDI integration. JBoss Weld is the reference implementation for CDI and comes with its own extensive documentation, CDI Reference Implementation.

Bean bundle

A bean bundle is an OSGi bundle that has been enabled to use Pax CDI. A bundle cannot use CDI by default, it must be explicitly enabled to do so (see the section called “Requirements and capabilities”).

CDI container

A CDI container effectively defines the scope for a collection of managed beans under CDI, which are capable of being published and injected within this scope. In the context of OSGi, a CDI container maps to a single bundle. That is, each bean bundle gets its own CDI container.

Camel CDI and other customizations

JBoss Fuse provides additional features that define CDI customizations (that is, non-standard CDI annotations) targeted at different aspects of middleware development. For example:
camel-cdi
Provides custom annotations for defining and injecting Camel contexts and routes. See Chapter 15, Camel CDI.
switchyard-cdi
Provides custom annotations for use with SwitchYard. For example, see the quickstart example under the following directory of your JBoss Fuse installation:
quickstarts/switchyard/camel-bus-cdi
cxf-jaxrs-cdi
Provides support for CDI in JAX-RS, as defined in the JAX-RS 2.0 Specification (see section 10.2.3).
deltaspike
Apache Deltaspike is a general-purpose collection of CDI customizations.