It’s just over 18 months since Java EE 7 dropped, though given the relatively low uptake, you may still have yet to fully sample it. In lieu of it setting the Javasphere aflame however, there’s been plenty of healthy debate in the community as to why production support has failed to materialise on the scale of previous incarnations of EE. But we’re not here to talk about that today. Instead, it’s time to turn our eyes to the future for a bird’s-eye view of what’s coming in Java EE 8, which will run in alignment with Java SE 8.
As David Delabassee commented at Devoxx UK 2015, a lot has changed since the transition from J2EE, and the reinvention is continuing with this upcoming release. Although it’s very early days still, there are a few concrete specifics in place. Delabassee outlined these in his presentation “Java EE 8, a Snapshot Overview.”
As with any big release, a good deal of the work is being done to make life easier for developers. Along with input from the kaleidoscope of groups around Java, there are some clear trend industry trends steering the way in this respect, namely HTML5, Cloud, Mobile, HTTP/2, Reactive programming, user experience, and ever present concerns around security. Aided with extensive surveying of the community at large, Delabassee revealed that Oracle have settled on three core themes for EE 8:
- HTML5/ Web tier enhancements
- Ease of development
- Infrastructure for running in the cloud
Let’s take a look at these in more detail.
HTML5/ Web Tier enhancements
Delabassee stated that the bulk of the progress on EE 8 to date has been in this area. There’s a planned new JSON binding API in the works – JSON-B – as well as enhancements to JSON processing. JSON-B will be to JSON “what JAXB is to XML.” You’ll be able to marshal Java objects to and from JSON, providing a default behaviour for this function in EE. This API will sit on existing binding frameworks, and it’ll be on the onus of the providers to provide the capabilities for users to take advantage of JSON-N.
There’s also going to be server-sent events (SSE), and the addition of action-based MVC and HTTP/2 support. SSE support comes as standard in HTML5, and enables the server to push events to the client. Simultaneously, the server can asynchronously push data to the client. Whilst there’s already support for MVC in Java EE with Server Faces, this will provide an action based alternative to JSF – because who doesn’t like having a choice?
Ease of development
A more holistic area than merely adding any specific features, Delabassee said that, as soon as an API is updated, there’s been an effort to simplify it. There are a few areas identified by team EE as ripe for some streamlining. This includes;
- CDI alignment
- JAX-RS alignment
- Simplified messaging through CDI-based “MDBs”
- WebSocket scopes
- Pruning of EJB 2.x client and IIOP interoperability
- Security interceptors.
Infrastructure for running in the cloud
Oracle have two strategies up their sleeves on this front. The first is the Java EE Management 2.0 API. This aims to take some of the principles from retro JSR 77 (“J2EE Management”) and update them for 2015, with a REST interface wrapped around it.
The second comes in the form of Java EE Security 1.0, which will bring authorisation via CDI interceptors. Cited as a key outcome from the GlassFish community survey, Oracle hope to bridge the gaps in existing holes. Other proposed improvements include standardisation to User Management and Role Mapping.
Alongside these core ideas, there is a possibility that more Java EE 8 JSRs could emerge as time goes on. This could include updates to JPA, WebSocket, JavaMail, and a host of other potentials. Delivery for the final release has been re-scheduled from an earlier September 2016 deadline to H1 2017, but you should be able to get your hands on the proposed final draft from Q2 2016 (don’t hold us on that though).
In the meantime, there’s amply opportunity to get involved in shaping the final product. If you’re interested in getting involved in the big push, you can find out more about Adopt a JSR here – and if you’re a novice in this area, check out this look at how Java comes together. There’s also plenty of information over at the GlassFish Aquarium.