As JSR 342, the specification for Java EE 7, makes its way through early draft review the expert group is keen to get community feedback on a number of open issues. These include which of the new APIs should be added to the Java EE Full/Web Profile, as well as how to better align CDI with Java EE. A short survey can be found here.
Whilst the scope of Java EE 7 has been cut back considerably - in particular, plans to enhance EE 7's multi-tenancy support for PaaS providers have been put back to Java EE 8 - the specification still includes some important updates. Amongst them, new APIs are planned for Batch Processing, JCACHE (the long running temporary caching API), a new API for JSON processing, and Web Socket/HTML5 support.
In addition, three older APIs are getting a major overhaul:
- JAX-RS 2.0, the Java API for RESTful Web Services, gains a new client API, server-side asynchronous HTTP, filters and interceptors.
- Expression Language 3.0 gets support for running EL outside a web container, new operators, and lambda expressions, amongst other things.
- JMS 2.0, which puts the emphasis on simplification including making JMS objects implement Java 7's java.lang.AutoCloseable, and making it easier to define JMS resources in Java EE. In addition, JMSXDeliveryCount will be made mandatory, making it simpler for applications to handle poison messages. New features include the ability for a JMS client to schedule the future delivery of a message, and to send a message and return immediately without blocking until an acknowledgement has been received from the server.
The complete list of planned updates is as follows:
- Batch Applications for the Java Platform (JSR 352)
- Bean Validation 1.1 (JSR 349)
- Context & Dependency Injection 1.1 (JSR 346)
- Enterprise JavaBeans 3.2 (JSR 345)
- Expression Language 3.0 (JSR 341)
- Java API for JSON Processing (JSR 353)
- Java API for RESTful Web Services 2.0 (JSR 339)
- Java API for WebSocket (JSR 356)
- Java Message Service 2.0 (JSR 343)
- Java Persistence API 2.1 (JSR 338)
- JavaServer Faces 2.2 (JSR 344)
- JCACHE Java Temporary Caching API (JSR 107)
- Java Servlet 3.1 (JSR 340)
Java EE 6 was released on December 10th, 2009 meaning that the gap between the release of EE 6 and EE 7 will be more than 3 years - the longest in the specification's history.