Four big things are happening in April 2019 that I can think of right now:
- On the 25th we have the release of Avengers: Endgame. For anyone who’s a Marvel fan, this is big news, especially the way that Avengers: Infinity War ended. I think it’s going to take some pretty creative writing to get the universe back on track.
- Maybe, just maybe, we’ll get some resolution on what Brexit really means. Going by what’s happened so far, I am not overly confident and expect this just to be delayed further. April 12th is the next deadline for this.
- Game of Thrones the final season starts on April 14th. This is, like The Avengers, highly anticipated and promises to bring a lot of drama to a TV (laptop or phone) screen near you.
- Using the Game of Thrones tag-line, “Winter is Coming”, also seems appropriate for changes to Java that are happening this month. Let’s look at that in more detail.
April 16th is the date of the regularly scheduled Java update release. However, this time things are different as a consequence of changes Oracle has made to the release cadence of the OpenJDK and the licensing of the Oracle JDK binary (there are some useful Q&As from my good friend, Sharat Chander, here).
Essentially three factors produce the perfect storm for Java updates:
- When Oracle released their JDK 11 build (the one we have been familiar with downloading from java.oracle.com), they changed the license from the Oracle Binary Code License for Java SE to the Oracle Technology Network License Agreement for Java SE. To use the Oracle JDK in production for commercial applications now requires a Java SE subscription. You should think very carefully before downloading new JDKs from java.oracle.com and consider the implications of this license change.
- The last public update of JDK 8 (from Oracle) was released in January this year. This is for users deploying Java for commercial application use. If you’re at home playing Minecraft on your PC or using some older Internet banking applications, you will still receive updates through the Java Console until the end of 2020. Expect the license for these updates to make it very clear that you can’t use these on your servers, though.
- Oracle has stated at various conference presentations that their engineers will only contribute changes (in the form of updates) to the current OpenJDK repository. Right now that is OpenJDK 12. For older versions of the OpenJDK, someone needs to backport all security patches and bug fixes and upstream them to the relevant update project. Although Oracle (and all other OpenJDK binary providers) is classifying JDK 11 as a long-term support (LTS) release, the Oracle OpenJDK JDK (I know this looks weird but it seems we must use OpenJDK as an adjective, not a noun) does not have any extended support. Oracle will not be providing updates beyond JDK 11.0.2, which was also released in January.
We are now faced with no more free public updates from Oracle for either OpenJDK 8 or OpenJDK 11.
If you use Java to run your applications and you care about the security and stability of your Java platform (which you most definitely should), you need to think about what you will do next week.
The good news is that there are several Oracle Java alternatives from different providers for getting access to updated versions of JDK 8 and JDK 11. Since this is the Azul blog, clearly I’m going to point you at our Zulu OpenJDK builds. We have both Zulu Community (completely free builds of OpenJDK, fully TCK tested and verified) or Zulu Enterprise (commercially supported builds of OpenJDK with backported updates provided under defined SLAs).
Different OpenJDK distributions come with varying options for support, the speed of availability of updates, TCK testing, operating system support and versions (Azul are still providing commercial support for OpenJDK 6 if you need this). You should weigh up how these factors match your requirements when making a choice of provider.
The Java Champions produced a much longer document that covers details of how various changes to Java impact your choices for deployment. You can find that here.
Are you ready for the Java updates Winter?