Contexts and Dependency Injection support in GlassFish 3.1 Half Pager 1. Introduction 1.1. Project/Component Working Name: Contexts and Dependency Injection (CDI) support in GlassFish 3.1 1.2. Name(s) and e-mail address of Document Author(s)/Supplier: Sivakumar Thyagarajan / sivakumart@sun.com 1.3. Date of This Document: 05/23/2010 2. Project Summary 2.1. Project Description: Weld 1.1 integration Weld 1.1 is the next major version of the reference implementation of the Contexts and Dependency Injection(CDI) specification. The plan is to integrate Weld 1.1 into GlassFish 3.1 for enhancing the current support of dependency injection and contextual lifecycle management. Weld 1.1 intends to enhance the container integration SPI by providing the ability for the container to override the reflection abstraction API. This would enable the container to avoid multiple scans for annotations in archives with CDI and non-CDI modules. Based on the availability of the API earlier in our development cycle, we plan to investigate using this ability to override the default annotation scanning implementation in Weld with ours. Weld 1.1 may also implement the maintenance release of the JSR-299 spec, if it becomes available by Weld 1.1's timeframe. Streamlining the Integration Process To streamline the integration of the Weld distribution into GlassFish, we plan to do the following tasks as part of this release:
- setup a continuous integration mechanism (Hudson) to integrate the latest Weld Workspace/promoted binaries into GlassFish.
- develop a battery of development/SQE tests to enhance the current CDI tests.
- a pre-integration test suite(subset of developer tests) covering common container integration issues would be run by JBoss before a promotion/handoff
- JBoss to run CDI TCK on GlassFish last promoted build before handoff.
Enhanced Usability and Documentation In 3.1, we would also enhance the current tooling support provided by NetBeans making it easier to build and debug CDI applications by making it easier to find the root-cause of unsatisfied and ambiguous dependencies during typesafe resolution in the IDE(Netbeans). We also plan to enhance CDI documentation bundled with GlassFish. We would work with the JAX-RS(Jersey), Web-services, EJB teams to understand their issues with the current Weld SPI and to communicate with JBoss about these SPI enhancements for Weld 1.1. 2.2. Risks and Assumptions:
- Dependent on JBoss for the timely delivery of release candidates and final release of Weld 1.1. for integration into 3.1. Current plan for Weld 1.1 is September 2010.
- JSR-299 MR delay should not delay Weld 1.1 release
- Our Feature complete only at their release candidate, so late breaking changes may come in
- CDI TCK failure analysis also comes in late in their release cycle, this adds more time to our schedule.
- If the reflection abstraction API is available in one of the earlier RCs handedoff for integration, we will plan on using it as described in 2.1
3. Interfaces: 3.1 Exported Interfaces
- javax.inject JSR 330
- javax.enterprise.context JSR 299
- javax.annotation.ManagedBean JSR 316
3.2 Imported interfaces The Weld container integration SPI interface 3.3 Other interfaces (Optional) - |