The theme for Java EE 7 is the cloud. Clouds tend to be elastic, and most of the current computing centers are not. In terms of Java EE 7 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. The basis is a virtualization layer. Followed by state management for scalability and a number of services on top. What is called a "Java service" in the stack should be the equivalent to the existing containers. That's what runs your Java code. But there will be more services that will be formalized to provide a comprehensive platform.
As already expected during Devoxx, JAX-RS and JPA seemed to be the closest to being filed as JSRs.
And that's what happened yesterday (11/01/11). JSR 339: JAX-RS 2.0: The Java API for RESTful Web Services and JSR 338: Java Persistence 2.1. Even if we are still missing the umbrella JSR for Java EE 7, taking a closer look at the two gives some brief hints on when to expect it.
The JAX-RS 2.0 draft JSR has been around since the end of November 2010. And even Paul Sandoz's slide deck from Devoxx session about "JAX-RS, Java EE6 and the Future" (PDF) points out some of the enhancements coming.
The proposed draft goes into more details. The key points are: Two client APIs, Hypermedia support, JAX-RS compatible MVC architecture (with JSPs as one kind of views), Parameter validation, Integration with JSR 330 (DI), a simple asynchronous request processing model, server side content negotiation and some minor tweaks like bug fixes.
The Reference Implementation will be developed as part of Project Jersey.
It was speculated, that JPA 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. And here we go: Additional support for the use of custom types and transformation methods, "fetch groups" and/or "fetch plans", immutable attributes and readonly entities, user-configurable mapping naming strategies, more flexibility in the use of generated values, additional mapping metadata, support for multitenancy, additional event listeners and callbacks, dynamic definition of persistence unit, JPQL support for stored procedures, and some more.
The Java Persistence RI is being developed under the open source EclipseLink project and is being made available through GlassFish.
As usual, both already filled JSRs are proposals. The EGs will have to negotiate on them. And even if they will be included as a required part of the Java Platform, Enterprise Edition version 7 aligning the timeline of both JSRs with that of Java EE 7 may therefore impact the scope. So the next step is to wait for the JSR Review Ballot which will end on 24 Jan, 2011 for both.
What's the timeline?
Both mention Q3/Q4 2012 as schedule for the final release. Early drafts will be available at the end of 2011. All this could point to the end of 2012 as the release date for Java EE 7.
To be honest, both JSRs are not the hottest ones for EE 7. At last to me. There is a lot of stuff to come. I am personally looking forward to see the revised module and take a deeper look at the integration with the new Java SE 7, 8, 9 features.