I've just submitted an early draft of the Contexts and Dependency Injection 1.1 (CDI, JSR-346) to the JCP. We (the CDI community) have completed around a third of the features we want to see in CDI 1.1, so wanted to post an early draft to get some wider feedback. Whilst the JCP sort out the paperwork, you can read the draft on jboss.org :-)
So, what's been added since CDI 1.0?
- @Disposes methods for producer fields
- The CDI class, which provides programmatic access to CDI facilities from outside a managed bean
- Pass the qualifiers an event was fired with to the ObserverMethod
- Ability to veto beans declaratively using @Veto and @Requires
- Ability to access the BeanManager from the ServletContext
- Conversations in Servlet requests
- Application lifecycle events in Java EE
- Injection of Bean metadata into bean instances
- Programmatic access to a container provided Producer, InjectionTarget, AnnotatedType
- Ability to override attributes of a Bean via BeanAttributes
- Ability to process modules via ProcessModule
- Ability to wrap the InjectionPoint
- Ability to obtain Extension instances from BeanManager
- Injection of the ServletContext
- Access to beans.xml in ProcessModule
- Injection into enums
- Around 60 issues addressed
However, don't worry if your favorite new feature isn't listed - we're still planning to add:
- XML configuration
- Global ordering for interceptors, decorators and events
- Global enablement of interceptors, decorators and alternatives
- Multi-plexed contexts (multi-tennancy support)
- Service Handlers
- Split specification into core and Java EE integration
- Bootstrap support
- Java SE context definition
- Transaction scope
We're also tracking the development of other features such as:
- Declarative transactions for managed beans
- Async invocation and timers
- JMS / CDI integration
So, what do you think? You can comment on this blog, email the cdi-dev@lists.jboss.org list, or direct comments to me.
What do you like? What have we missed? What don't you like? The purpose of the EDR is to get your feedback - so please, get in touch!