I'm pleased to announce the release of Web Beans 1.0.0.ALPHA2. This release implements around 80% of the JSR-299, Java Contexts and Dependency Injection specification and represents the second major milestone on the road towards the GA release. The only major features missing from this release are conversations (already on their way!) and support for annotating your beans using XML.
JSR-299 specificies a set of services for the Java EE environment that makes applications much easier to develop. JSR-299 layers an enhanced lifecycle and interaction model over existing Java component types including JavaBeans and Enterprise Java Beans.
Since the last release of Web Beans, JSR-299 has undergone a name change, and is now called Java Contexts and Dependency Injection. We've decided to keep Web Beans as the project name for the Reference Implementation of JSR-299.
The release also includes three examples, a full EE example, with enterprise beans, a war example with simple beans and the login example from the reference docs. To learn more about JSR-299 and the Web Beans project, I suggest you read the reference guide or browse seamframework.org.
This release wouldn't have been possible without the sterling work of a number of people. Thanks go to: David Allen (injection point metadata), Nik Karlsson (passivating scopes, @New and much more), Ales Justin (JBoss Microcontainer integration), Nicola Benaglia (Italian Translation), Gladys Guerrero (Spanish Translation), Eun-Ju Ki (Korean Translation), Terry Chuang (Traditional Chinese Translation) and Francesco Milesi (Italian Translation).
In detail, this release adds support for:
- Injection of new instances via @New
- Support for passivating scope
- Updates to metadata inheritance rules
- injection point metadata
- injection via @Resource, @EJB and @PersistenceContext into simple beans
and, previously released in ALPHA1, provides support for:
- support for simple beans
- support for enterprise beans and enterprise bean remove methods
- typesafe and name based resolution
- producer methods
- producer fields
- the dependent context
- support for JBoss 5
- the servlet contexts: application, session and request
- field and constructor injection
- @Initializer methods
- Event support (firing and observing events)
- definition of observer methods through annotations
- injection of event producers
- conditional events
- support for lifecycle callbacks (@PostConstruct and @PostDestroy)
- an SPI to integrate with other containers
There is also preview support for:
- transactional observers
- dynamic lookup through @Obtains
We'll be moving fast over the next few weeks to deliver BETA1, and then BETA2 (which will include Seam, Spring and jBPM integration). Watch this space!