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
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
For more information, see chapter "Service Implementations" in "SwitchYard Development Guide". 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.