What's an admin to do: Oracle's changed stance on production use of Java, going forward?
- Regarding Java 8, did you know that Oracle will no longer offer free updates/security patches for Java 8, if used for production (NOT just "commercial") purposes beyond Jan 2019? After that, you must pay them for support/updates (including security updates). For more on why this is NOT just about "commercial" use, see below.)
- Regarding Java 11, the next major release, did you know that the Oracle Java 11 JVM cannot be USED at ALL for PRODUCTION purposes, without paying for it?
- Finally, while Oracle will be offering a free openJDK implementation (which CAN be used for production, for free), did you know they will only be committing to supporting/updating their Oracle Java 11 openjdk for 6 months after release, leaving subsequent updates to the community of contributors?
For more, including why this may have significant impact on your use of Java-based applications, as well as alternatives that may exist for you going forward, read on.
What can you do, going forward?
So, with the pending changes regarding free production use of Java 11 at all, and free production use of Java 8 updates post Jan 2019, what can you do going forward? Well, you have a few choices:
- Someone might think, "well the heck with them. I'll just not update my Java 8 after Jan 2019". Beware that stance: you will be opening yourself to security risks. Oracle had been updating the JVM every few months
- Of course, one could just pay Oracle to provide updates for production use of Java 8 beyond 2019, or pay them to get a production license for Java 11.
- And there are some other vendors offering paid support/updates, as well as various JDK alternatives. One can go with Oracle's free openJDK (which IS permitted for production use), but again they have not committed to updating it beyond 6 months from release. But there are other openjdk implementations that may have varying levels of long-term support/updates (though, as for CFers, Adobe has not yet indicated if any OpenJDK's are supported for CF)
For more info, keep reading, and see also several links I offer below with more info from others on all this.
Can you clarify "commercial" vs "production"?
I had previously added this discussion as a new section in this post, as it is indeed an important question which rises out of information being shared in a couple of places by Oracle. But as I have been revising this post (see my explanation at the very bottom of this post), I have decided that this is a topic that really deserves to be its own blog post, as I've seen the question asked elsewhere.
See that as a new post, Does Oracle's change regarding Java apply only to "commercial" use, or to ANY production use?.
The next section discusses some specific aspects of this matter, with respect to the ColdFusion Application server (which deploys by default atop Tomcat).
If you're not interested in CF, click here to skip to the section following that, for more of general interest on this Java licensing issue.
More details on this Java change, for CF users
I've written the above to be of generic use to readers running ANY Java app/app server for production use, whether Java 8, 9, 10, or 11. That said, my blog here is indeed written more typically toward users of the ColdFusion (or Lucee) CFML engine. CF (since CF10) comes deployed on Tomcat or can be deployed on other Java application servers. I want to share now a fre more specifics for them.
As for CF support of Java 8 or 11, note first that CF2016, 11, and 10 run on Java 8. And while CF2018 came out on Java 10, that Java release will not last for long, yet another complication/curiosity that I wrote about back in May: On ColdFusion and its support for Java 9, 10, and 11. Adobe has said (as of this writing in Nov 2018) that they do plan to update ColdFusion 2018 and 2016 to support Java 11, though questions remained. For more, read on.
Update, Jan 23, 2019: Great news for CF users. Adobe announced today they did what I proposed below might be an option: they have licensed Oracle Java (8 and 11 and beyond) for production use with CF. We will not need to pay for it, either to get updates for Java 8 after Jan 2019 or to use it with Java 11 and forward in production. (Note that only CF2016 and 2018 will be updated to support Java 11, with updates due in February. CF 11 will not be updated to support Java 11. And for now, they have no current plans to support an OpenJDK.)
For more, see this post and also the comments, including from CF Product Manager Rakshith Naresh who clarifies that things are indeed as I am reporting them in this update. The original wording of his post left some questions, which he answered. Sadly, he would have to go through significant hoops (including legal review) to revise the post's original wording.
(Given that new information, I am striking out the next 5 paragraphs from the original post.)
CFers should note that Adobe has posted about how they are aware of the issue of the pending Oracle licensing change, though they have yet to clarify things on the matter (at this writing, Nov 15 2018), which is why I was motivated to write this post. There has been some confusion on all this, both from within the CF and outside the CF community.
[As an update, since I wrote this, there was finally a comment in that last-mentioned forum thread, from Suresh of Adobe, who said, "The next update of ACF 2018 and 2016 planned for Jan/Feb 2019 will have support for Java 11 . The team is working on this as i write.". As others asked there, this does not address CF11, nor does it address support of openjdk implementations. And it would be helpful for someone from Adobe to update the blog post mentioned before that, to make this clarification or to create a new one and point the one to the other.]
CFers do indeed need Adobe to clarify things (see questions being asked in the comments on the aforementioned blog post, for example). There has also been at least one Adobe CF Forum thread where this matter was initially raised with considerable discussion, and then some more questions and discussions about it in the Adobe CF portal.
Bottom line: CF folks will surely not expect to pay for Java or java security updates, given that CF comes built on Java. And some may be reluctant to go with an openJDK implementation that doesn't have a commitment of support beyond 6 months from its release.
At a minimum, one can hope that Adobe will at least change the recent versions of CF to support openjdk implementations of Java 11, so that we could use that (for free production purposes). Others may hope that Adobe might somehow license Java "for us" in a way that DOES allow us to use it (with CF only) for production purposes and to get updates/security patches for at least the term of Adobe's support of each CF version (CF11 will be supported by Adobe into mid-2019, and CF2016 into 2021, and CF2018 into 2023), but that seems unlikely.
Moving off of CF-specific matters, let's get back to aspects of this discussion that apply to ANY Java users.
Finding more on the Oracle licensing change
If you'd like to read what others have said about this change in Oracle licensing (for Java 11 and earlier versions), here are several such resources (having nothing to do with CF, of course).
Let me start with some that are NOT from Oracle and focus perhaps more on the potential negative impact of the changes:
- Using Java 11 In Production: Important Things To Know
- Eliminating Java Update Confusion
- Java is still available at zero-cost
- Oracle's Java 11 trap - Use OpenJDK instead!
Then here are some that are either from Oracle or speaking from a perhaps more optimistic perspective:
- Oracle Java SE Support Roadmap (updated Nov 2018)
- Oracle Technology Network License Agreement for Oracle Java SE (license for Java 11 JDK)
- Java Is Still Free
- The future of Java and OpenJDK updates without Oracle support
- Oracle JDK Releases for Java 11 and Later
If there are other, better, or more updated resources that may help readers, let me know and I will add them here.
Some hope regarding longer-term OpenJDK support, from others
Finally, though, on the matter of openjdk implementations that would allow us to use Java free for production use and be kept updated, there may be some potential good news on this front, a particular new openjdk implementation which may be of considerable interest--with support/updates even for production use for years to come, and from a vendor you know well. More on that in my next post.
[Update Jan 1, 2019: Note that I have changed this post pretty substantially since I first wrote it in Nov 2018, based both on additional information I found and comments shared below, but also especially to make the post more clearly of use for ANY Java user, while separately addressing aspects specific to CF users, the typical audience for my blog here. Indeed, I even changed the title and URL a bit for that reason. For a bit more, see my Jan 1 comment below.)
For more like this: