SeamFramework.orgCommunity Documentation

CDI OSGi integration

Design Specification


1. Preface
1.1. About naming and references
1.1.1. Bean archive
1.1.2. OSGi bundle
1.1.3. Bean bundle
1.1.4. References
1.2. What are CDI-OSGi and Weld-OSGi ?
1.2.1. CDI-OSGi
1.2.2. Weld-OSGi
1.2.3. Organization and interactions between CDI-OSGi bundles
1.3. What about other frameworks
1.4. Organization of this document
2. Organization of CDI-OSGi
2.1. API bundles, extension bundle and integration bundle
2.1.1. Extension API, integration API and CDI API
2.1.2. Extension bundle: the puppet master
2.1.3. Integration bundle: choose a CDI compliant container
2.2. An OSGi extension for CDI support: the extension API
2.2.1. CDI-OSGi features
2.2.2. The interfaces
2.2.3. The events
2.2.4. The annotations
2.3. A standard bootstrap for CDI container integration: the integration API
2.3.1. Why an integration API
2.3.2. Integration bundle discovery and CDI-OSGi start
2.3.3. Embedded mode
2.4. An orchestrator: the extension bundle
2.4.1. The extender pattern
2.4.2. The extension bundle works that way:
2.5. A interchangeable CDI container factory: the integration bundle
2.5.1. A implementation bundle may work that way:
2.6. The life of a bean bundle
2.7. How to make a bundle or a bean archive a bean bundle
2.7.1. The META-INF/bean.xml file
2.7.2. The Embedded-CDIContainer META-INF/Manifest.MF header
3. How to make OSGi easy peasy
3.1. CDI usage in bean bundles
3.2. Injecting easiness in OSGi world
3.2.1. Service, implementation, instance and registration
3.2.2. OSGi services injection
3.2.3. OSGi service automatic publishing with @Publish annotation
3.2.4. Clearly specify a service implementation
3.2.5. Contextual services
3.2.6. The registration
3.2.7. Service registry
3.2.8. The OSGiServiceUnavailableException exception
3.3. CDI-OSGi events
3.3.1. CDI container lifecycle events
3.3.2. Bundle lifecycle events
3.3.3. Service lifecyle events
3.3.4. Application dependency validation events
3.3.5. Intra and inter bundles communication events
3.4. OSGi utilities
3.4.1. From the current bundle
3.4.2. From external bundle
3.5. CDI-OSGi, what else ?
3.5.1. Getting service references and instances
3.5.2. Publishing a service implementation
3.5.3. Obtaining the Bundles and BundleContexts
4. Weld-OSGi implementation