Blogs
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.