Interview: Florent Benoit on the EasyBeans EJB3 Container and OSGi Support
In regards to the relationship between EasyBeans and the JOnAS application server:
JOnAS 4.x is a J2EE 1.4 certified application server and it runs with the JDK 1.4. EasyBeans and EJB 3.0, as part of Java EE 5, has features requiring a new JDK version, the JDK 5.0.We then asked Benoit about EasyBeans in comparison to other open source EJB implementations such as Geronimo, JBoss, and Glassfish. He replied that JOnAS has been an open source implementation since 1999, before projects such as Glassfish and Geronimo. A large community in the US, Europe, and Asia contributes on EasyBeans and JOnAS development with deployments in banks, goverment, defense, etc. One leading European telecom operator uses JOnAS for 1/3 of its applications. EasyBeans is a natural progression of the support provided in previous versions of JOnAS for EJB's. In addition Benoit commented that the upcoming version features numerous enhancements over:
EasyBeans is then available for JOnAS 4.x with a resource adapter. This allows to use EasyBeans and EJB 3.0 by using a JDK 5.0 and it's easy to enable or disable EasyBeans by adding or removing this resource adapter (.rar file). For example if developers switch from JDK 5.0 to JDK 1.4.
The next major version of JOnAS (JOnAS 5.x / Java EE 5) will provide EasyBeans by default for its EJB3 container.
As EasyBeans and JOnAS have two separated codebase, the projects can have a different lifecycle and then EJB3 container can be upgraded without upgrading the whole platform.
Right now, EasyBeans provides some features that other EJB implementation may not have like the OSGi bundles (This is described at the end of this interview), bytecode enhancement using ASM ObjectWeb tool, easy deployment by providing a Smart InitialContext factory for clients downloading runtime classes on the server, easy configuration by using an easy-to-understand XML configuration file, etc. Also, for developers and contributors, the source code has a lot of comments which is not the case for all open source implementation.
The conversation then shifted to JPA support. EasyBeans works with several entity managers such as Hibernate and Oracle Toplink Essentials. The ObjectWeb community has also been continuing development of their Speedo JDO solution as a JPA provider as well. The development version currently is 90% complete with a new release scheduled before the end of the year.
Next we asked Benoit about the recent OSGi support in EasyBeans:
OSGi is mainly used in the embedded domain but begins to be the basis of plugin application (like Eclipse for instance) at server level. It is the heart of dynamic and adaptable service oriented architecture which can bring many benefits:
- On demand building of the application.
- Deployment capabilities (installation, un-installation of the components).
- Component lifecycle (start, stop of the components).
- Update of a part of the application during runtime.
By relying on this framework, EasyBeans will benefit from the dynamic deployment (for the server, the associated services and the beans) and assembly of OSGi services to provide an EJB3 container service adaptable on demand.
Such a work has already been experimented on JOnAS and is available at JOnASOnDemand. As future JOnAS versions will be available on top of OSGi, it will allow a smooth integration of the EJB3 container technology inside the Java EE application server. BULL, the major contributor of JOnAS application server is also member of the JSR-291 , which address dynamic component framework / OSGi.
Finishing the interview, Benoit commented on the relationship between using OSGi as a building block for server deployed applications such as WAR's and having the entire EJB and/or appserver implementation available as a set of OSGi bundles. JOnAS 5.x and upcoming versions of IBM's Websphere will be based on OSGi. Benoit mentioned that a modular application server allows the developer to deploy only a subset of the application server if needed reducing memory requirements. OSGi support also allows the application server to be deployed in other OSGi containers such as Equinox which is included in the Eclipse 3.2 IDE. This should allow developers to develop, deploy and test full EJB 3.0 applications by deploying EasyBeans as an Eclipse Plugin. No external application server would be needed, speeding up the deployment and testing cycle.