It's time to start talking about Java EE 7

It's been one year since Java EE 6 was released (December 2009) and it's now time to start talking about Java EE 7. In fact at JavaOne San Francisco in September, at Devoxx in November and at JavaOne Sao Paulo and Beijing in December, the technical keynotes have gradually introduced what Oracle would like to see addressed in this release. In particular, I would recommend this Parleys.com replay of "The Future Roadmap of Java EE"(subscription required).

The theme for Java EE 7 is "The Cloud" and to be a "little" bit more precise, we're talking about multi-tenancy, application versioning, support for NRDBMS stores but also about modularity, trying to leverage what will be done at the JavaSE level. Of all the APIs up for a new version, JAX-RS and JPA seem to be the closest to being filed as JSRs.

The JAX-RS 2.0 draft JSR mentions a client API, MVC support, asynch support (inspired by Atmosphere), hypermedia support, better integration with @Inject/CDI, and more. Paul Sandoz has his slide decks from Devoxx available here. JPA 2.1 has a long list of potential enhancements, ranging from dynamic definition of PU, more control on persistence context synchronization, mapping between JPQL and criteria queries and much more.

You can also expect a Servlet alignment with the current state of HTML5 and WebSockets, a JSF 2.2 version (HTML5, file upload component, ...), some work on EJB 3.2, a modernization of the JMS API (finally!), and maybe something around a caching API. Of course, all it's still early days and a lot can change once the expert groups form and get to work. Nevertheless, there is a lot to be excited about!

-- some strongly typed jsp evolution (look at razor from Microsoft)
-- allow you to annotate arbitrary Java objects with EJB service level annotations (for transactions, security, pooling, remoting, etc) and inject/manage them via CDI (look at resin)
-- better spi from security, it feels like we have to invent this on each project
-- better ioc support for injecting into domain objects (active record like programming model would be nice for some apps)
-- view actions for JSF

the point is simple : JSP/JSTL syntax is old, crappy and mostly inusable for modern web templating/programming.

lots of dev web are migrating to ruby/php because of the servlet/jsp/jstl stack. of course, Java can do a lot more than web, but it's a pity to see so many web dev going away. If microsoft can understand that a templating layer is important (razor), i think that oracle can.

And more : it seems more and more plausible that browser/html5 will be the next desktop gui api : it's mandatory that jee stay competive on the web layer.