EJB 3.0 EDR2

Posted by    |      

Cedric beat me to this, but if you missed his announcement, the EJB 3.0 second early draft is available. The most interesting new stuff to me is:

  • the new callback listener/interceptor architecture
  • the separate document dealing with entity beans that will evolve into a complete specification out-of-container operation of the entity manager (the persistence engine)
  • native SQL queries
  • definition of interoperability with legacy EJB 2.1 clients and servers
  • complete specification of the semantics of association mappings
  • complete specification of the semantics of EJBQL

There is also an example of what the XML-based ORM metadata might look like. This is intended to spark discussion and is certainly not final at this stage.

Of course, there are many other revisions compared to EDR1. (Those were just the ones I could think of now.)

The goals for a next draft include

  • API for obtaining an EntityManager outside the container
  • more complete definition of XML-based deployment descriptors

http://jcp.org/en/jsr/detail?id=220

Before I go, I can't overemphasize how important the new @Interceptor stuff is - for a long time we've been unable to extend the basic set of EJB services in a portable way. Yes, you could do it in JBoss, using JBoss-specific APIs, and in WebLogic using BEA-specific APIs, but that just isn't good enough! One immediate consequence of this new feature is that people will be able to build /EJB frameworks/. I anticipate a whole new marketplace for open source addons to EJB, just like there is a profusion of web-tier frameworks today. But unlike web-tier frameworks, the architecture lends itself to combining different extensions in the same application! It's interesting; the original EJB vision was for a marketplace of reuseable /application components/, which didn't eventuate. /This/ feature will further foster the availability of reuseable /infrastructure services/, which actually /has/ worked in practice (though it hasn't worked so well for EJB).

Enjoy!


Back to top