As hopefully most developers are aware, at the beginning of the year Oracle changed the licensing terms for Java JREs (Java Runtime Environment), requiring a paid commercial license for any commercial use. For most Notes and Domino customers, that has meant no change. As long as I can remember, Notes (on Windows) and Domino have bundled their own JRE. Notes on Mac did not historically bundle the IBM JRE, which was the most significant difference in Notes 10.0.1 Mac client and why Notes Mac users should upgrade, if they haven’t already.
For those of us who have moved beyond Domino Designer, however, this had an impact. Using Eclipse requires installing a JDK (Java Development Kit). Initially I chose OpenJDK, as directed by Oracle because it is the Oracle-packaged Java JDK. At the beginning of this week though I picked up a lot of buzz on Twitter about OpenJ9. As an IBM and Eclipse project, and as open source, this piqued my interest on several levels.
Firstly, I wondered if I should be adopting this as a preferred option for Java development in Eclipse. But secondly, it raised thoughts about Notes and Domino, and a question that had been niggling my thoughts like an elephant in the room: if IBM’s JVM was based on Oracle’s, was there a cost for bundling it with Domino that would transfer to HCL, a cost that it would make sense to remove by depending on an open source version like OpenJ9?
Thanks to a conversation with Daniele Vistalli, that question was proven moot. Notes and Domino’s JVMs have never been based on Oracle’s. They have always been IBM only and, indeed, have been J9. This explains something I’d been peripherally aware of, the letters J9 in many of the Java-related file names. J9 has now, as with many other IBM developments, been contributed open sourced and contributed to the Eclipse Foundation as OpenJ9. That also settled my thoughts on the former – OpenJ9 is the way to go. That in itself was my preference, based on the look and feel of the websites: OpenJDK feels old and lacking effort; whereas the OpenJ9 site and its download site, AdoptOpenJDK, feel much more modern.
There is an Amazon alternative, Corretto, which was announced late last year. But from what I’m told that only currently supports Java 8. OpenJ9 goes through to Java 11.
For those wanting support, OpenJ9 does also have official support and J9 is fully documented.
An additional advantage, for those moving into Docker, is that J9 has backported container optimisation from JDK 10 into JDK 8. So with Java 8 and Docker, OpenJ9 adds benefits.
Thanks, as ever, to Daniele Vistalli for taking the time to increase my understanding of all things Java, just as he did previously with Websphere Liberty and CrossWorlds.
Fredrik Norling asked on Twitter about Java applets. Daniele also confirmed to me that OpenJ9 is missing the Java Web Start integration. There is an “Iced Tea” project that fills the gap, but neither of us have tried that.