Monday 29 September 2014

Java EE / GlassFish future. (JavaOne 2014)

Introduction

On JavaOne, there was a session about the roadmap for GlassFish but it discussed also the main topics for Java EE 8 now that it is approved by the JCP EC.

In this blog text, I will summarise the main points of this session.

You can find the session info here GlassFish Roadmap and Executive Panel [UGF9120]

Java EE 8

There are various things which are on the roadmap for Java EE 8 and some of them form a theme, can be grouped together.

One of them is around JSON communication and contains

  • The support for the HTTP 2.0 protocol as described in Servlet 4.0.  This is a continuation of the HTTP 1.1 spec, first proposed by Google as SPDY and now standardised in HTTP 2.0
  • More JSON support as it is replacing XML nowadays in enterprise cases. There will be a JSON Binding specification which defines how we can Java models for JSON structures.  Today we can do it already for example with the Jackson and Google GSon frameworks.
  • Security considerations for the JSON communication like how can the OAuth 2.0 be integrated.
  • And since JAX-RS is the base for all communications, improvements can be expected in that area too.

Another theme is security. There will be many places where security will be handled

  • The JSON communication with OAuth 2.0 as described earlier.
  • New security interceptors for CDI beans like we have already the @Transactional one.
  • Easier definition of resources for User management, like an annotation for defining the LDAP source, and handling things like password aliasing, role mapping and authentication.
But there will be other improvements or new features coming up.  Some of the most likely candidates are

  • Server sent events, as a lightweight version for the WebSocket protocol.
  • The action based MVC 
  • Splitting up CDI so that it can also be used in Java SE
  • Cloud and multi tenancy support.
  • ...

GlassFish

And what role will GlassFish play in all of this?  Well, each JSR needs a Reference Implementation (RI). So Oracle will continue to develop GlassFish as the RI for Java EE.  So there will be new releases but not commercially supported as they have announced at the end of last year.

And they promise that the quality, stability and security of the product stay as important as the implementations of the features. Because they see it as a tool to test out the new feature of any Java EE version (by the customers) but that you should choose for WebLogic for your production environments.

Why is webLogic always so much behind?

This was a question of one of the attendees of the session. Because for Java EE 7, it is just recently that some of the features became available.  One year and a half after the spec went final.

This long delay had to do with other priorities within Oracle and the time delay should be smaller in future versions.
In the past, the delay had to do with the internal differences between the code base of GlassFish and WebLogic.  Nowadays they are more aligned, but will never share the same code base.  So the plan is to have a time delay of about 6 months for WebLogic to make sure that the Java EE features works well in their enterprise level server.

So lets hope that it will be already the case for Java EE 8.

Time frame

They expect that Java EE 8 will be final in september 2017.  This is a very long period, but luckily we don’t have to wait that long.  By january 2016, there should be a proposed final version of the spec, so we should see not long after that a GlassFish 5.0 version which we can use to test out Java EE 8.