The Apache OpenEJB community has released OpenEJB 3.0 final. OpenEJB 3.0 is an embeddable, lightweight EJB 3.0 implementation that can be used not only as a standalone server, but as an embedded server in Tomcat, JUnit, Eclipse, Intellij, Maven, Ant, or any other IDE or application. In addition to the features you'd expect in an EJB 3.0 implementation, OpenEJB emphasizes ease-of-use, painless configuration, and powerful testing possibilities so you can focus on product development.
As a daily user of OpenEJB 3.0, I've been thoroughly impressed by the quality of the product and by the assistance of the developers throughout the beta phases since last summer, and can say with perfect confidence that without OpenEJB 3.0 I would
not be able to do the work I'm doing with EJB3. In particular, the ability to load OpenEJB directly into my testing harness increased my development speed by an order of magnitude, because I can run tests with real EJBs against a real database in memory, and when the test finishes the database gets discarded. That means no loading tomcat, no expensive packaging of components, no rebooting servers, no delays. I've wanted to do this kind of development for years, and now it's a reality.
Features include:
EJB 3.0 enhanced features:
- Supports EJB 3.0, EJB 2.1, EJB 2.0, and EJB 1.1
- Runs on OSGi
- CMP supported through JPA allowing for easy migration
- Injection supports Enums, Classes, Dates, Files
- Injection supports Java Generic Collections and Maps (@Resource List myfactories)
- Custom Types injectable through adding a java.beans.PropertyEditor
- JNDI Name formatting
- App validation reports all deployment/compliance errors and warnings at once in terse, medium or verbose detail
- Deep levels of annotation inheritance are completely respected
Tomcat Features:
- Supports any Tomcat 5.5 or 6 install
- Provides JMS, J2EE connector, and JAX-WS support to Tomcat
- JavaEE Injection for Servlets, Filters and Listeners
- Adds EJB and EAR deployment support
- Supports "Collapsed EARs", or EJBs in .war files
- Remote EJB clients over HTTP
- Tomcat server.xml can still be used
- Seamless config: OpenEJB resources exported as Tomcat resources, Tomcat resources imported as OpenEJB resources
- Uses Tomcat's security setup
- Deployed as a webapp and can be easily removed at any time
Embedded/Java SE Features:
- Discovers applications in the classpath
- Entirely Configurable via System or InitialContext Properties, config files optional
- Boots and runs in seconds
- No code dependencies on OpenEJB APIs required
- Simplified logging output used while embedded
- Transaction and Security are fully testable but can also be disabled via properties
- Runs with no external process or network ports
- Starts "empty" and only adds what's needed to run/test your app
- Embeds without requiring IDE or build system plugins
- Supports Glassfish, Geronimo, some WebLogic descriptors allowing those users to more easily embedded test with OpenEJB
- Includes several examples covering many testing techniques