This section provides a quick overview of the are several additions and fixes included in this milestone release.
With Apache Geronimo you get to choose the Web container (Tomcat or Jetty), the Web services implementation (Axis2 or CXF) and the persistence framework (OpenJPA or Cayene).
One of the major additions in this new milestone release is the initial integration of EJB 3 (JSR220) through the Apache OpenEJB project. The EJB 3 specification now offers a totally redesigned Enterprise JavaBeans architecture, reduced complexity and simplified APIs to make the enterprise application development easier.
Some remarks about this new specification are:
- Simpler to use compared to the previous specification.
- Metadata annotations targeted to reduce the number of classes and interfaces needed as well as to eliminate the need for EJB deployment descriptors.
- Default configuration and behaviors now available, "configuration by exception" approach taken whenever possible.
- Dependency injection.
- EJB components interfaces and home interfaces are no longer required for session beans.
- Business interfaces (plain Java interfaces) can used instead of EJBObject, EJBLocalObject or java.rmi.Remote interfaces for session beans.
- Simplified bean types.
- Simplified Java Persistence API.
- Persistent entities no longer require interfaces.
- Dynamic query capabilities and support for native SQL queries.
Refer to the JSR 220: Enterprise JavaBeans TM 3.0 Specification Request for further details.
Integration in Geronimo
As mentioned earlier, this specification makes it to Geronimo via the Apache OpenEJB project. The current development status of the OpenEJB project can be seen at OpenEJB 3 RoadMap page.
Web Services Technologies
The following Web Services technologies have been integrated in this milestone release:
- Streaming API for XML (JSR 173)
- Woodstox implementation
- Java Architecture for XML Binding (JAXB) 2.0
- GlassFish implementation
Also, a basic JAX-WS 2.0 support is provided in this milestone. Only Servlet-based JAX-WS services are supported. The following limitations exist at the time of this release:
- <service-ref> elements in the deployment descriptor or @WebServiceRef annotations are not processed.
- @Resource annotations (except for WebServiceContext type) are not processed.
- Dynamically generated WSDL returned via ?wsdl request might be missing some information.
- Dynamic clients (obtained using the javax.xml.ws.Service API) might not always work.