The Apache OpenEJB community has released
OpenEJB 3.1. OpenEJB is an embeddable, lightweight EJB 3.0 implementation with partial support of EJB 3.1 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
This release contains significant enhancements, improvements, new functionality and allows developers to get early access to some key parts of EJB 3.1. In addition to the embeddable EJB container and Collapsed EAR (ejbs in .war files) functionality which have been long standing OpenEJB features, now slated for EJB 3.1, this release contains full support for the new EJB 3.1 Singleton Session bean type. The Singleton API adds some critical new functionality to EJB such as application startup/shutdown hooks and multi-threaded capabilities. Much of what Stateless beans are used for now can be replaced by a multi-threaded Singleton.
EJB 3.1 features and EJB enhancements:
Tomcat features:
Injection Support for JSF 1.2 ManagedBeans
Embedded features:
EAR-style aggregation of modules discovered in the classpath
ConnectorModule discoverable via the classpath (rar files)
PersistenceModule discoverable via the classpath
Improved JavaAgent/JPA enhancement for Unit Tests
Improved detection of testing and embedded scenarios
Improved classpath configuration searching
Property overriding for logging configuration
Property overriding for persistence.xml properties
VM-scoped Security for embedded scenarios
LocalInitialContext.close() to logout of embedded container
LocalInitialContext.close() to shutdown embedded container
JMS runs port-free in embedded mode
Automatically set eclipselink.target-server for EclipseLink
Automatically set toplink.target-server for TopLink
Automatically set hibernate.transaction.manager_lookup_class for Hibernate
Optimized annotation scanner to determine if a jar is an ejb jar more quickly
Standalone features:
Severely improved client performance over ejbd
Client Connection Failover and Request Retry
Client-side Connection Pool
Client connection KeepAlive
Graceful shutdown of client/server connections
Multicast discovery and grouping
EJBd protocol over SSL
JDBC/DataSource based login module