ChemAxon's statement on Oracle charging for Java updates
Oracle began talking about stopping the free support of their long term support (LTS) versions since late 2016, and earlier this year they officially announced 3 important changes in this matter:ref1; ref2
First of all, they will speed up the release cycle of Java versions: every 6 months will see a new major Java version
Oracle Java 8 will be freely supported at least until January 2019, from version 11, Java will have 2 license options: a GPL+CE licensed free version called OpenJDK, and a commercially supported Oracle JDK
Java 8 will become an LTS release, and LTS versions will come with an optional commercial support package. The next LTS will be Oracle Java 11 from October 2018.
This means that Oracle will start charging for supporting Oracle Java, while customers deciding to stay on an old version won't have free access to subsequent minor updates. Most ChemAxon software tools are built using Java, and this made us decide to inform our users about compatibility with different Java versions and runtimes.
OpenJDK version 8
At the beginning of 2018 we started testing our software with OpenJDK, which is a free and open source Java runtime supported by Oracle as a binary compatible alternative.ref3 We chose AdoptOpenJDK’s Hotspot distribution of OpenJDK for tests, mostly because it provides binaries for the 3 major platforms; it is sponsored by multiple large companiesref4, and it offers free LTS with a general support period overlap to transition from Java 8ref5. By now most of our applications can run on this version, or they will be able to use this version in the near future.
Oracle Java SE Advanced 8
This version could be also a safe choice, since Java keeps runtime compatibility throughout the same version by designQ7 on ref6; therefore ChemAxon products will definitely run on Oracle Java SE Advanced version 8 with upcoming minor updates as well.
Java 10, 11, rapid releases
We started the tests with Oracle Java and OpenJDK 10 and 11 release candidates recently. Results show that our test infrastructure can follow the rapid release cycle of Java releases and our applications run on the latest OpenJDK and Oracle JRE versions. Java 11 will be a long term supported version receiving commercial updates for 8 years. Since Java APIs are backwards compatible, you can continue using our software if you purchase commercial support.
OpenJDK vs Oracle JDK
From version 11 Oracle will completely stop offering Oracle Java for free but offer Java under 2 licenses (compared to a single Binary Code License before version 11) ref7:
GPL+CE license for OpenJDK
commercial license for Oracle JDK
So as far as we can tell, a customer will have 3 choices - significantly fewer than we originally thought:
purchase commercial license for Oracle JDK
switch to OpenJDK
(not recommended) stay on Java 8 after the grandfathered free support ends some time after January 2019
ChemAxon software doesn't use commercial features of Java, so we don't see a benefit for a customer to purchase a commercial license from Oracle and with statements (in the same article) like "From Java 11 forward, therefore, Oracle JDK builds and OpenJDK builds will be essentially identical" we recommend OpenJDK.
AdoptOpenJDK, with its sponsors appears to be a reliable source for a distribution of OpenJDK and should be a safe choice.
Linux distributions like RedHat have signed their intention to provide LTS versions of OpenJDK in their repositories and with a significant history of providing reliable support for open source projects, their distribution of OpenJDK should be a safe choice.
Some dependencies in Java compatibility
In some cases we cannot support Java 9 or higher currently yet, because of third-party software dependencies. Yet we are confident all of these incompatibilities will disappear by the end of the year. Currently we focus on Instant JChem, ChemCurator and Markush Editor, where the Netbeans and Java FX dependencies require upgrades. Since the Java Web Start (JWS) technology is deprecated with Java 9 and it is removed with Java 11; we need to solve the Instant JChem JWS related issues. With Java 9, 32 bit support is also deprecated, so we are evaluating whether we need to keep supporting this architecture in the future.
Above we have discussed our current ideas in this matter, but we would be very interested in your comments, suggestions and future plans. Please take a few minutes and share your points below to ensure our alignment with your workflow:
Standalone applications: ChemAxon Assay, ChemCurator, Compliance Checker, Compound Registration, Instant JChem, MadFast Similarity Search, Markush Editor, Marvin, Plexus Connect, Plexus Design.
Toolkits and components: Biomolecule Toolkit, Calculators and Predictors, Chemical Name and Structure Conversion, Chemical Structure Representation Toolkit, JChem Engines, JKlustor, Markush Tools, Reactor, Screen Suite.
Third-party integrations: KNIME Nodes, Pipeline Pilot Components.
Update 2018.09.27: removed text about free support of rapid releases, added section OpenJDK vs Oracle JDK, updated our recommendations from Java 11 release and beyond
Update 2018.09.25: clarified affected products.