I'm pleased to announce the release of Web Beans (the reference implementation of JSR-299) 1.0.0.PREVIEW. This is our first feature complete milestone of the Java Contexts and Dependency Injection specification!JSR-299 specifies 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.
New in this release is support for servlet containers (no EJB) such as Tomcat or Jetty, support for Apache Wicket as a view layer and support for using Web Beans with Java SE. This release is also bundled in the upcoming JBoss AS 5.1.0.CR1 release, and GlassFish V3 build 46 (no EJB support), so you can just download the examples and deploy them!
The release also includes six examples: for JSF there is a full EE example, with enterprise beans, a war example with simple beans and the login example from the reference docs; there is also a clone of the war example for Wicket, Tomcat and servlet containers. 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 work of a number of people. Thanks go to: Clint Popetz (Wicket support), David Allen (logging), Ales Justin (JBoss integration), Takeshi Kondo (bug reports), Pete Royle (Java SE support), Andrew Lee Rubinger (EJB integration), João Paulo Viragine (Portugese translation), Sean Wu (Simplified Chinese translation) and Sanjeeb Sahoo (OSGi support).
In detail, this release adds support for:
- Servlet containers such as Tomcat or Jetty
- Java SE
- Apache Wicket
- disposal methods
- Child activities
- Injection of Java EE resources via beans.xml aliasing
- OSGi support
- An injectable logger
- The ability to gracefully disable services depending on envrionment
and, previously released in BETA1, provides support for:
- simple beans
- enterprise beans
- typesafe and name based resolution
- producer methods
- producer fields
- the dependent context
- support for JBoss 5
- the servlet contexts: application, session and request
- Conversations, including propagation in JSF
- field and constructor injection
- @Initializer methods
- dynamic lookup through @Obtains
- Event support (firing and observing events)
- definition of observer methods through annotations
- injection of event producers
- conditional events
- Transactional observers
- Asynchronous Observers
- support for lifecycle callbacks (@PostConstruct and @PostDestroy)
- an SPI to integrate with other containers
- 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
We'll be moving fast over the next few weeks to deliver another preview (including a Seam bridge and a Spring bridge). Watch this space! If you are interested in learning more about JSR-299 / Web Beans, keep 11am (Pacific) on the 30th April free - I'm doing a webinar that will take you through the basics of JSR-299 and allow you to ask some questions.