On December 20, 2012 a public draft of Java EE 7 has been uploaded. From the first sight, the new spec is rather an improvement of the subsequent specs in Java EE 6. For instance, I really like the Web Profile idea. But is is a shame that it wasn’t a part of Java EE 6 Web Profile.
The Web Profile is targeted at developers of modern web applications IMO, most of the modern web applications make use of REST. Or at least this is my perception. In Rails world, AFAIK, violating REST principle is a subject for brutal prosecution by the colleagues. Luckily Java EE 7 fixes that mistake and JAX-RS specification is now a part of Web Profile.
Targeting “modern” web applications then implies offering a reasonably complete stack, composed of standard APIs, and capable out-of-the-box of addressing the needs of a large class of web applications.
OK, now you can really develop ‘modern’ web apps with Web Profile, but…
In terms of completeness, the Web Profile offers a complete stack, with technologies addressing presentation and state management. (JavaServer Faces, JavaServer Pages), core web container funtionality (Servlet), business logic (Enterprise JavaBeans Lite), transactions (Java Transaction API), persistence (Java Persistence API) and more.
Sounds like redundancy to me. For instance, why would you need EJBs there? If CDI supported interceptors properly there wouldn’t be a need for EJBs in that sense. Or, JSF? Well, I’m just not a fan of that.
What I’m trying to say here is that since for compatibility reasons there wouldn’t be possible to drop specs from Web Profile, maybe it is now time to create a ‘Light Profile’? A minimalistic set of Java EE specs that would be sufficient for building modern web applications.
This would bring the containers like Tomcat and Jetty even closer to the spec and who knows maybe one day we will have a Java EE ‘Jetty Profile’, why not
Reference: Java EE 7 Public Draft was published. I demand Java EE Light Profile! from our JCG partner Anton Arhipov at the Code Impossible blog.