Oracle’s Java Changes As They Apply To PilotFish Products
Disclaimer: The following indicates PilotFish’s understanding of the options available to end-users. Users must investigate their own options and licensing obligations as they may be different from what is covered here. PilotFish makes no warranty or guarantees to the accuracy of the information provided below.
Introduction:
Oracle has made changes to the way Java runtimes will be supported and how updates for the runtimes are to be provided. As PilotFish eiPlatform, eiConsole and eiDashboard products are developed in Java this document will cover options available to users of these products.
Important Things To Know:
- There are two JDKs currently provided by Oracle:
- Oracle JDK (commercial)
- OpenJDK (open source)
- Per Oracle[5], from Java 11 forward “Oracle JDK builds and OpenJDK builds will be essentially identical,” and “functionally identical and interchangeable..yet with some cosmetic and packaging differences”.
- Starting with JDK 11 the Oracle JDK license has changed that prevents using it in a production environment without a paid support plan.
- As a result of this change, we will be bundling OpenJDK JVM in PilotFish 19R1 and later releases instead of the Oracle JDK.
- Due to changes in the underlying JVM module system beginning with Java 9[8]:
- PilotFish 18R2 release’s maximum Java version is Java 8
- PilotFish 19R1 (and later) minimum version is Java 11
PilotFish Java Runtime Versions:
- PilotFish current production release (18R2) runs on Oracle JDK/JRE 8
- The next production annual release (19R1), scheduled for early 2019 is set to run on OpenJDK 11
Future Java Support Options for PilotFish 18R2 Windows Installers Bundled with Oracle JRE 8:
- Public updates from Oracle to Oracle JDK/JRE 8 are scheduled[1] to end Jan 2019
- Oracle indicates[1] that paid-for Java runtime “premier support” will last until March 2022 and “extended support” will last until March 2025.
- For users that plan on sticking with PilotFish 18R2 products for an extended period of time and require stability as well as the latest Java updates, purchasing Oracle JDK 8 support from Oracle is likely to be the best option. There are links in the Resources section below to Oracle price tables[2][3] that can help you estimate the cost.
Future Java Support Options for PilotFish 18R2 WAR file running on OpenJDK 8:
- This is typically found on Linux installations using a servlet container such as Tomcat
- As Linux distribution vendors (RedHat, Ubuntu, etc.) provide OpenJDK 8 through their package systems (yum, apt, etc.), OpenJDK 8 support policy is distribution specific.
- For RedHat, they have indicated[7] that they will support OpenJDK 8 in RHEL 6 and RHEL 7 until June 2023
- For Ubuntu, they have signaled[9] that they:
- Will continue to support OpenJDK 8 in 16.04 LTS which reaches EOL in April 2021
- Will have OpenJDK 8 available (though not the default JVM) for 18.04 LTS which reaches EOL in April 2023
Future Java Support Options for PilotFish 19R1 Windows Installers Bundled with OpenJDK 11:
- As mentioned earlier, Oracle has indicated[5] that for Java 11 and later Oracle JDK and OpenJDK will be “functionally identical and interchangeable.”
- We will bundle OpenJDK with our Windows installers however if you have licensed the Oracle JDK and you would prefer to use it instead, you can follow the instructions below on how to switch to a non-bundled JVM.
Changes to have PilotFish Software use a Non-bundled JVM on Windows:
- Reminder: You need to use the same Java version as the bundled JVM of the product, i.e.:
- For PilotFish 18R2: Java 8
- For PilotFish 19R1: Java 11
- Recommendation: It is highly recommended to thoroughly regression test all Interfaces after any change in JVM.
- Shutdown PilotFish product service in Windows Services management console (i.e. ‘eiPlatform Service’)
- Download and install the separate JVM
- Rename the jre subdirectory under the PilotFish product install directory to another name:
- ie. C:\Program Files\PilotFish Technology\eiPlatform Windows\jre
- to C:\Program Files\PilotFish Technology\eiPlatform Windows\jre.unused
- Start the PilotFish product service in Windows Services management console 5) The other installed JRE should be discovered and used to launch the service
To verify the PilotFish software is using the right JVM you can point your browser on the local system to the monitoring REST API at http://localhost:8443/eip- rest/monitoring/Info/, and search the results for java.home entry. Note: This method depends on the REST API being enabled and configured in the eipServer.conf file per https://cms.pilotfishtechnology.com/kb/eiplatform/using-eiplatform-rest-api
Resources and References:
- Oracle Java SE Support Roadmap:
- Oracle Java SE Subscription Pricelist
- Oracle Processor Core Factor Table
- Update and FAQ on the Java SE Release Cadence
- Oracle JDK Releases for Java 11 and Later
- Using Java 11 In Production: Important Things To Know
- OpenJDK Life Cycle and Support Policy
- JEP 261: Module System
- [Ubuntu] OpenJDK SRU exception