How JDK11 Affects Liferay Portal/DXP Users

With the release of JDK11, Oracle's new Java SE Support Policy (and here) brings sweeping changes to the Java Enterprise community.

If you would like a good explanation of the changes to come, I highly recommend this video.

Here are my thoughts on how some of these changes will affect Liferay Portal/DXP users:

Starting with JDK11, you will no longer be able to use Oracle JDK for free for commercial purposes.

All commercial projects will require a subscription/service from Oracle to get the Oracle JDK.  The majority of Liferay users are commercial users who deploy on Oracle JDK.  If you do not pay for support from Oracle for their JDK or one of their other products such as Web Logic, you will need to make a decision on whether you wish to continue to use Oracle JDK.

An OpenJDK binary is now your free option

Oracle will continue to provide a free alternative with their Oracle OpenJDK binary.  There will also be others such as Azul, RedHat, IBM, and AdoptOpenJDK which will also provide their own binaries.  For now, Liferay has only certified, Oracle's OpenJDK binary.  We have to yet to determine whether all OpenJDK libraries can fall under the same name or if we need to certify them individually.

A new JDK will be released every 6 months and some of them will be marked as LTS release.

Prior to JDK9, all JDK's were essentially LTS releases.  We were able to receive years of bug fixes before we had to worry about a new release.  We will now see a new JDK release every 6 months (March, September).

As of now, Liferay has decided we will not certify every single major release of the JDK.  We will instead choose to follow Oracle's lead and certify only those marked for LTS.  If you have seen our latest compatibility matrix, you will notice that we did not certify JDK9 or JDK10.  We will instead certify JDK11 and JDK17 and JDK23 as those have been the ones marked as LTS.  This is subject to change.

Oracle will only guarantee 2 updates per major release

JDK8 has received 172 updates so far. In contrast, JDK9, the first release that Oracle implemented this policy, had 4 updates, while JDK10 only got the minimum 2 updates. Although JDK11 is designated as an LTS release, there is no guarantee of more than 2 updates from Oracle.

We will have to wait until JDK12 is released to see what will happen with JDK11.  The optimistic side of me feels that the Java open source community will continue to backport security issues and bugs well after Oracle decides to stop.  We will have to wait and see.

January 2019 will be the last free public update for JDK8. 

If you are a Liferay user and you have not made a plan for your production servers, please start!

I will provide the paths available currently but these are in no way recommendations provided by Liferay.  It is up to you to make the best decision for your own company.

  • Continue to use Oracle JDK8 without any future patches
  • Continue to use Oracle JDK8 and pay for a subscription
  • Switch to Oracle JDK11 and pay for a subscription
  • Switch to Oracle OpenJDK11 binary (knowing that you will have to make this decision again in 6 months)
  • Switch to a certified version of IBM JDK.

I will try to update this list as more options become available i.e. we decide to certify AdoptOpenJDK, Azul Zulu, RedHat JDK.

I am eager to see how the rest of the enterprise community reacts to these changes. 

Please leave a comment below with any thoughts on Oracle's changes or suggestions on what you would like to see Liferay do in regards to JDK support.

Blogs

Nice summry, thank You!

One thing I suggest is to explicitly write "OpenJDK" and "OracleJDK", especially in all sections below "An OpenJDK binary is now your free option" because it is not clear if described rules are valid for one or both JDKs

Great summary !!

 

I'm evaluating Liferay as a development platform for some commercial applications.  Oracle's licensing policy will add a minimum of $12,200 annual licensing costs. Unless Liferay makes a hard pivot to another SDK/JRE, I'll be forced move away from java (and Liferay) to another solution.

 

See my comments here: https://community.liferay.com/forums/-/message_boards/message/111232331#_com_liferay_message_boards_web_portlet_MBPortlet_message_111232331

 

How about DXP 7.0?

Is it included when speaking of DXP, or only 7.1?

 

I can't find a clear statement anywhere and the official DXP 7.0 compatibility matrix won't be updated anytime soon, I fear. Thanks!

Addendum: looking at the 7.1 compatibility matrix I see JBoss EAP 7.1 under application servers and OxxxJDK 11 under JDK.

But as Java 11 is only supported in newly released JBoss EAP 7.2, this doesn't match.

I guess we have similar situations with other application servers? Haven't checked...

Does Liferay have any plans on upgrading the compat. matrix and certify newer/current versions like EAP 7.2?

 

Thanks in advance!

Is liferay 7.1 DXP compatible and certified with Azul JDK ?