EJB 3.0 At The JUG
I like what I hear.
Yesterday's EJB 3.0 talk at the St. Louis Java Users Group is another one of the more livelier presentations, with a lot of audience interactions.
Raj Patel from Harpoon Technologies began the talk with "I've done a lot of Hibernate work, but I've never done any EJB 2.1s. Those who did probably know how painful it was. EJB 3.0 is going to change that."
Having not read the EJB 3.0 specs myself (I'm waiting for the final version), I liked what I heard. I have seen earlier EJB 3.0 introductions on Java.net and elsewhere, but none of them registered. Again the open Eclipse project with live code helped.
The overwhelming impression I got from yesterday:
- EJB 3.0 is very close to Hibernate
- EJB 3.0 annotations are orders of magnitudes simpler than EJB 2.1 deployment descriptors
- The EJB 2.1 concepts (stateless session beans, stateful session beans, entity beans, message driven beans, activation, passivation, declarative transaction management, declarative security management) all carry over to EJB 3.0. It's the syntax that is simplified
- EJB 3.0 does dependency injection with annotations
- EJB 3.0 does bean level method invocation interception (AOP) with annotations
- EJBQL is similar to HQL (Hibernate query language)
Other observations:
- Hibernate will evolve and be a superset of of EJB 3.0 [Update: See Eric Burke's correction]
- EJB 3.0 offers some features that shadow the Spring Framework, but not enough to replace it
- The embeddable JBoss EJB 3.0 container is cool
- Raj says JDO is dead, JDO vendors are going EJB 3.0 (Solarmetric is bought by BEA.)
I guess a more pressing question is this: "Should I adopt EJB 3.0?"
And I think the answer is "It depends." If you've been following the open source developments pretty closely and are using Spring and Hibernate, there is no need to hurry. If you've stuck with the party line and are still doing EJB 2.1 or even 2.0, EJB 3.0 will look very attractive.