Java EE 6 (expected to be out late 2008 or early 2009) includes several interesting new features. EJB 3.1 specification will be released as part of JEE6 release.
Java EE 6 Features:
JEE6 will have, what it calls, Profiles offering different flavors of JEE services. Profile A is a lightweight version (Servlet, JSP etc), Profile B will include Profile A + EJB 3.1 Lite, JTA, JPA, JSF, and WebBeans, and Profile C is the "full platform" with Profile B features + JMS, JAX-WS etc.
- Optional Local business interfaces (where we can develop Local EJB components using only a bean class; not sure how this is different from what's in EJB 3.0)
- EJB components in the web tier (package/deploy EJB components in a WAR w/o an ejb-jar)
- Singleton Beans (one instance per application per JVM)
- TimerService API
For more on EJB 3.1 features, check out this presentation by Kenneth Saks.
More and more I read about JEE6 and EJB3.1, they look very much like Spring and Hibernate. JEE expert groups finally gets it; what java developers really need from middleware framework instead of what the application server vendors want to offer. It's good to see that they are finally offering a modular server component model (so the customers can pick which Profile is the right fit to deploy their apps), Dependency Injection of objects other than EntityManager, and other features. WebLogic 10.3 and WebSphere are moving towards the same modular server architecture model approach.
I wonder what will Java EE 7 spec include, may be they will support Aspects and AOP as part of Java SE/EE specification (which Spring already does with AspectJ).