Preloader image

Past, Present, and Future

The goal of OpenEJB 3 is to merge our past, present, and future into one codebase. OpenEJB 3 will take the excellent features in OpenEJB 1.0 (tomcat integration, testability, embeddibility, ease of use, etc), move towards an IoC architecture based on and Spring, bring in the OpenEJB 2 code, and implement the EJB 3.0 specification.

The Plan

We will start on OpenEJB 3 by taking the 1.0 code (pretty much the same as 0.9.2), merging in the 2.0 code, and ensuring that the entire time the code we write is code you can use! We will never drop a feature, even temporarily. We will start from code that users are now using and always keep, maintain, and improve those features as we add new features. Releasing early and often.


OpenEJB 1.0 (from 0.9.2 lineage) has some great features and many people that depend on them. Tomcat integration, Collapsed EARs, Container Driven Testing, easy embedding, and other features make OpenEJB a unique EJB implementation. We’re going to take this code, kill all the static old-school techniques, modernize it with and IoC architecture based on the kernel. The gbean kernel is an IoC kernel compatible with both Spring and Geronimo.


OpenEJB 2.0 is an awesome fast implementation of EJB 2.1 that runs in Apache Geronimo. As the kernel is both Spring and Geronimo compatible, it provides a great way for us to take the Geronimo-compatible EJB containers and deployers in OpenEJB 2 and start hammering them out and releasing them to long-time OpenEJB users. It will also allow people using OpenEJB to start experimenting with Spring’s sophisticated IoC features.


EJB 3.0 is a new direction for EJB and we’re going to do it with style. A focus on simplicity is where OpenEJB shines. Combining the EJB 3.0 Simplified specification with our existing lightweight features, like Container Driven Testing, is just the beginning. We plan to go way beyond the planned additions and into areas the J2EE spec groups won’t go such as deployment descriptors with attributes, simpler packaging, more flexible classloader setup, more powerful IoC support, simpler web services support and more.

Release on Day One

Keep it working, keep it progressing, keep releasing. The 3.0 version number won’t be the finishing line, but the starting line. Our work will start out as 3.0 on day one and keep incrementing the version number as we get further along our feature list. The EJB 3.0 spec is not completed and the OpenEJB 3.0 code line will be equally dynamic and best suited for adventurous developers who enjoy reading release notes and participating on user lists. There will be an incredible focus on keeping things stable enough to use the entire time as we work towards feature completion.

The effect of all this is that you get a fixed-up, far more extensible, version of the code you are already using delivered to you right away.