[Looking for Charlie's main web site?]

Considering use of Amazon Corretto, the new openjdk jvm, especially with ColdFusion

As I posted earlier today, there are big changes afoot in the Java world, about commercial/production use of Java going forward. For my readers (mostly ColdFusion users), this is big news, as it is for anyone using Java for commercial (or in Java 11, even production) purposes.

But here's some good news: Amazon has recently released a new free JVM (java virtual machine) implementation based on the OpenJDK specification, called Corretto. In this post, I want to share some news about it. (Off the bat, let me tell my friends on any Linux flavor other than Amazon Linux 2, this is not yet available to you. For now it is only available for Amazon Linux 2 as well as Windows, MacOS, and as a docker image. Other Linux flavors are due in Q1 2019.)

For much more, read on.

Why Corretto may be worth considering

First, why is this new openJDK implementation potentially important? As I explained in my previous post,, Oracle has announced that they will end free updates/security patches for Java 8 if you use it commercially after January 2019. After that, you must pay them for support/updates, or find other alternatives. And Java 11 is NOT licensed for any PRODUCTION use ("commercial" or not), without paying for it.

Those are big changes, when use of the Oracle JDK has been free for commercial/prod use for more than two decades. Java 11 will NOT be. And while there has always been an end to public updates some time after the end of life of a JVM, the thing is that Java 8 is still going to be publicly supported after Jan 2019--just NOT if you use it for commercial use. (See my previous post on the discussion of "commercial" relative to non-profits and agencies.)

The good news about Corretto is that (besides being free), Amazon has committed to continue updates to Corretto 8 to June 2023!. And as for Corretto 11, due in Q1 2019, that would be supported to 2024. Those are much better timeframes, especially for server folks who are often slow to update their JVM versions (even if they may keep them patched).

(And sure, there are other openjdk and jvm implementations, but a key question is how long they will offer free commercial/prod support. More on other openjdk implementations below.)

Tell me more about Amazon Corretto (as of Nov 15 2018)

So about the Corretto as it stands today (the day I write this, or I may update this in the future as things change), note a few key things:

  • Again, for now there is ONLY a Java 8 implementation. A Java 11 implementation is planned for q1 2019
  • Again, for now, it's only available for Amazon Linux 2, Windows, MacOS, and as a docker image (so no, for now, no Ubuntu or Redhat, though those are due in Q1 2019, per this blog post)
  • For now, even this jdk 8 is shown as in "preview" mode. The faq suggests this is more about the relatively limited set of OS's that it supports for now, and the blog post indicates those will come with the "general availability" release in Q1 2019. I don't see anything suggesting that the preview is not production-ready, but I welcome clarifications

As for the licensing of Corretto, it's GPLv2 with CPE (GNU Public License version 2 with the Class Path Exception). There is no indication in the license of any limitation for commercial/prod use, nor any mention of limitations of support/updates if used for commercial/prod purposes, as with the Oracle JVM post Jan 2019.

As for once you implement it, such as via the Windows installer, I will note that (thankfully), it does NOT implement as "public jre" (it does not become what you see at the command line if you type "java", unless YOU change your environment variables to point to it yourself. Also, note that both a jre and a jdk subfolder are implemented in the Windows install.

Finding still more details on Coretto, from Amazon

For more on Corretto (including why Amazon created it and is supporting/promoting it, how it differs from the openjdk spec, the specific open source license it uses, how to install it for Windows and Mac, and lots more), see:

Also, FWIW, note this is NOT to be confused with the longer-existing Amazon "SDK for Java", discussed here and here.

You mentioned other openJDK implementations?

Yep, for other openJDK implementations, see for instance:

And you can find still more options listed here.

As for CF, I have tested Corretto on CF2016, and so far so good

For my CF readers, I wanted to share that my limited testing of Corretto with CF2016 did "work", though to be clear, this new JVM is not yet supported by Adobe. And I would love to hear more from anyone that does further testing.

After changing CF to use Corretto (more on doing that, below), the CF admin "settings summary" page reports under "jvm details" that the "java vm name" is "OpenJDK 64-Bit Server VM", though the "java vm vendor" is still listed as "Oracle Corporation" (not Amazon).

You may wonder why I don't mention CF2018 (which I've written more about, if you're interested). I mentioned above that there is currently a Corretto release only for Java 8.

Well, CF2018 currently runs on Java 10, including leveraging features and configuration unique to Java 10 and above. (And since Java 10 also has a short life, I expect Adobe to come out soon with support of Java 11 for CF2018, if not also for CF2016.) Again Amazon does plan a Corretto 11 in Q1 2019, which would be supported to 2024.

Until we hear more from Adobe about their plans for handling the Oracle licensing/support issue for Java beyond Jan 2019 (such as if they will be licensing the support for us), it just seems that Corretto or other JVM alternatives may be a solution that some are forced to consider.

And even after Adobe may resolve the Java licensing issue, some users may be intrigued to consider this option, though again it is not (as yet) a JVM that Adobe supports for use with CF.

How would one change CF to use that new JVM?

I don't want this article to get bogged down in the technical details of how to change the CF JVM, though I will say it's pretty easy (and easily reverted, if you are careful).

That said, I have in the past written a substantial blog post on about a dozen things that can go wrong when updating the CF JVM, and how to solve them. And toward the bottom of that post I do point to resources (blogs and videos) that walk through the process (with varying levels of detail, for better or worse).

But finally note that I can help do the change (in less than 15 mins), and/or help you recover from problems if you try it yourself, by way of my remote consulting services.

Hope all that's helpful. And be careful out there. :-)

Comments
Looks good
# Posted By Animesh Dutta | 11/15/18 9:44 PM
I have moved a few comments that were added here (between Sean and me) to the other blog post, the one on Oracle licensing (which I refer to above, and which this one is a follow-on).

I've never done such a move of comments before, and I hope Sean won't mind, but as his comments were really about that rather than Corretto (the focus of this post), it just made more sense to me, and I hope to readers.

The ones I moved now appear after the first two that initially were there, also between him and me.
# Posted By charlie arehart | 11/20/18 4:00 PM
I uninstalled Java 8_191 and installed Corretto. I repointed the JVM.config and with a simple server restart started running Corretto. Still testing, but this looks like a viable option. aws.amazon.com/corretto
# Posted By Ripley Casdorph | 12/4/18 2:14 PM
Ripley, since you refer to the "jvm.config" file, I will assume you are referring generally to CF. As such, I will note that I had already confirmed above that CF 2016 did work when I changed it to use it. See the section, "As for CF, I have tested Corretto on CF2016, and so far so good".

So are you perhaps meaning to report here something more specific, or a different version?
# Posted By charlie arehart | 12/4/18 2:17 PM
I was so excited to see it run on CF2016 and see that it could be a real option for us moving forward, that I didn't relay any details. I have actually installed it on both CF10 and CF2016 and removed the regular Java installs from these servers without any issues. We haven't tested any real load and only on Dev Servers, but it looks promising
# Posted By Ripley Casdorph | 12/4/18 3:28 PM
Copyright ©2018 Charlie Arehart
Carehart Logo
BlogCFC was created by Raymond Camden. This blog is running version 5.005.
(Want to validate the html in this page?)

Managed Hosting Services provided by
Managed Dedicated Hosting