As we explored in our last post, there are major changes coming to Java. By way of quick refresher - OpenJDK is the open source reference implementation of the Java Platform, Standard Edition (Java SE). Oracle has recently announced changes that affect both the upstream community releases and Oracle’s proprietary distribution of OpenJDK. With many organizations depending on Java for their core business-critical applications, the changes are a big deal and many customers are still only just realizing the impact it has on their plans.
In early January 2019, when Oracle officially ends free public updates to Oracle JDK for non-Oracle customer commercial users, commercial users will no longer be able to get updates without an Oracle support contract. Additionally, Oracle has changed the Oracle JDK license (BCPL) so that commercial use for JDK 11 and beyond will require an Oracle subscription. They do also have a non-proprietary (GPLv2+CPE) distribution but the support policy around that is unclear at this time.
In this post we will explain Red Hat’s offerings and how to enable an easy and smooth transition from Oracle JDK to Red Hat’s fully supported, long lifecycle OpenJDK distribution.
First, do you really need support?
As a customer, you may be asking if it is really that critical to run OpenJDK with support, and whether or not you can run it fully without support. While the open source license allows you to run the software with no commercial support or other contract; in reality - you really do want support.
When unsupported, there are numerous cases of critical vulnerabilities and security flaws in open source software not being identified or fixed until the damage to both the companies IT infrastructure and reputation have been done. Proprietary software is no different except commercial support is not usually optional. There’s nothing inherently insecure about open source software but when it is deployed without any maintenance plan or support - serious vulnerabilities can go unchecked and most organizations simply aren’t organized nor have the skills to maintain large, complex open source stacks.
Additionally, without third-party support, you have to be fully self-sufficient. This means that you would need to make sure you have engineering efforts permanently allocated to monitoring the upstream project and maintaining your installations of OpenJDK. Red Hat’s OpenJDK distribution and support takes care of the above and enables our software to be deployed in production with timely updates to critical vulnerabilities and bugs. Hence, enabling our customers and partners to focus on their business software, rather than spending engineering efforts onthe underlying Java runtime.
Red Hat’s OpenJDK product offerings
For Red Hat customers, the default Java runtime in Red Hat Enterprise Linux is OpenJDK, easily installable via yum or zip.
- Red Hat Enterprise Linux 6 and 7 support OpenJDK 7 and OpenJDK 8 (supported through June 2023)
- Red Hat Enterprise Linux 7.6 adds support for OpenJDK 11 (supported through October 2024)
A major version of OpenJDK is supported, at a minimum, for a period of six years from the time that it is first introduced in the particular version of Red Hat Enterprise Linux, or until the retirement date of the underlying version of Red Hat Enterprise Linux, whichever one comes first. While there are currently three major active versions of OpenJDK available in Red Hat Enterprise Linux, customers are advised to migrate to the newest version of OpenJDK as soon as possible to receive updates and support.
If you are developing applications as part of the Red Hat Developer program, you also get access to OpenJDK for development together with other important tools like Red Hat Middleware and Red Hat Openshift.
Additionally, support for OpenJDK on Windows is included as part of Red Hat Middleware subscriptions, so that customers are able to develop and test using Windows or Linux. Solutions may then be deployed to a compatible, fully supported OpenJDK on Red Hat Enterprise Linux.
Other technology considerations
Java SE 11 has introduced some significant new features as well as deprecating others and is the first significant update to the platform that will require users to think seriously about the impact of moving. So it’s important to separate upgrading from Java SE 8 to Java SE 11 from moving from one vendor's Java SE distribution to another. Moving from Java SE distributions (that are based on OpenJDK) without changing versions should be a fairly simple process. Moving from Java SE to Java SE 11 may be more complicated and will be the subject of future posts. We wouldn’t recommend changing vendor and version in one single step.
The differences between Oracle JDK and OpenJDK are fairly minor and the two are slowly aligning to eventually become the same. But if you have applications using fonts, encryption, webstart or proprietary Sun / Oracle extensions then you may need to migrate your applications. Fortunately, Red Hat has tools that can assist in identifying and modifying such applications to make migration much simpler.
These are the typical steps customers take when moving from Oracle’s JDK to Red Hat’s OpenJDK (assuming the same version) :
- First, if you are a Red Hat Enterprise Linux customer or a Red Hat Middleware customer - check if your developers are using Oracle JDK for their Java applications. If so, then you can switch to Red Hat’s OpenJDK with little or no effort and with no additional cost because it is included in your Red Hat Enterprise Linux entitlement.
- If you are using Oracle JDK, or another JDK then you may want to use the Red Hat Application Migration Toolkit to determine if you need to make any code changes to your application. The latest version of Red Hat Application Migration Toolkit has a ruleset to ease Oracle JDK to OpenJDK migration.
- Regressions, Plan and test application - make sure you have a regression test plan to enable applications to run as they previously did - with a particular focus on performance and scalability.
- Deploy - Finally, deploy your application to production on Red Hat Enterprise Linux.
- Make sure you are receiving and applying Red Hat’s OpenJDK patches and updates to help keep your environment more secure and safer.
While there seems to be a lot of consternation regarding Oracle’s recent changes, switching from Oracle JDK (or other OpenJDK based distributions) should be pretty simple and a cost-effective, low-risk alternative, especially if you are already a Red Hat customer. If you have questions or would like to learn more, reach out to a Red Hat representative and we can help you understand the best course of action for your enterprise needs.
About the author
Rich is the Senior Director of the Application Services Business Group at Red Hat. He has spent the last thirty years evangelizing, using and designing enterprise middleware and cloud services. He previously worked for Forte Software and Sun Microsystems and as an independent software developer and consultant building large distributed software systems for the space, transport, telecom and energy sectors.