Sun has posted the public review draft specification of Java Specification Request (JSR) 220, Enterpirse JavaBeans 3.0 in the Java Community Process (JCP).
The EJB 3.0 release of the Enterprise JavaBeans architecture provides a new, simplified API for the enterprise application developer. This API is targeted at ease of development and is a simplification of the APIs defined by earlier versions of the EJB specification. The existing EJB 2.1 APIs remain available for use in applications that require them and components written to those APIs may be used in conjunction with components written to the new EJB 3.0 APIs....
The purpose of the EJB 3.0 release is to improve the EJB architecture by reducing its complexity from the enterprise application developer’s point of view. EJB 3.0 is focused on the following goals:
- Definition of the Java language metadata annotations that can be used to annotate EJB applications. These metadata annotations are targeted at simplifying the developer’s task, at reducing the number of program artifacts the developer is required to provide, and at eliminating the need for the developer to provide an EJB deployment descriptor.
- Specification of programmatic defaults, including for metadata, to reduce the need for the developer to specify common, expected behaviors and requirements on the EJB container. A “configuration by exception” approach is taken whenever possible.
- Encapsulation of environmental dependencies and JNDI access through the use of annotations, dependency injection mechanisms, and simple lookup mechanisms.
- Simplification of the enterprise bean types.
- Elimination of the requirement for EJB component interfaces for session beans. The required business interface for a session bean can be a plain Java interface rather than an EJBObject, EJBLocalObject, or java.rmi.Remote interface.
- Elimination of the requirement for home interfaces for session beans.
- Simplification of entity bean persistence. Support for light-weight domain modeling, including inheritance and polymorphism.
- Elimination of all required interfaces for entities written to the new persistence API [2].
- Specification of Java language metadata annotations for object/relational mapping for entities.
- Enhancements to EJB QL to provide greater usability. Addition of projection, explicit inner and outer join operations, bulk update and delete, subqueries, and group-by. Addition of a dynamic query capability and support for native SQL queries.
- Reduction of the requirements for usage of checked exceptions.
- Elimination of the requirement for the implementation of callback interfaces.
- Improved ability for testing outside the container.
Comments are due by August 15.