Half Pager: Contexts and Dependency Injection support in GlassFish 3.1 Table of Contents 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 May 23, 2010 2. Project Summary 2.1 Project Description Weld 1.1 integration Weld 1.1 1 is the next major version of the reference implementation of the Contexts and Dependency Injection(CDI) specification 2. 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 3 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 4 to enhance the current CDI
tests.
- a pre-integration test suite(subset of 4) 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 - 3.3. Other Interfaces (Optional) The Weld container integration SPI interfaces 4. Reference Documents 1 Weld home: http://seamframework.org/Weld 2 JSR 299 Contexts and Dependency Injection for the Java EE platform: http://jcp.org/en/jsr/detail-299 3 Weld 1.1 plans: http://relation.to/Bloggers/PlansForWeld11 4 CDI developer Tests planned for 3.1: http://wiki.glassfish.java.net/Wiki.jsp?page=CDIDevTests |