days
-1
0
hours
-2
-1
minutes
0
-5
seconds
-1
-9
search
From one LTS to another

Poll results: It’s one big leap forward towards Java 11

Gabriela Motroc
JDK 11
© Shutterstock / aommaneesr

As JDK 11 is almost upon us, now is the best time to revisit our topic on migrating from earlier JDK versions. Public updates for Java 8 will remain available for individual, personal use through at least the end of 2020 but business users won’t be that lucky — the ‘public updates’ tap will be turned off in January 2019. Where do we go from here? Earlier this month we introduced a poll to find out what developers think it would be their best option for migrating from JDK 8 to JDK 11. The results are in!

The general availability for JDK 11 is only hours away! So now is the best time ever to discuss migrating from JDK 8.

As we mentioned in our earlier discussion, it’s common knowledge that a lot of you are still using JDK 8. For this reason, Oracle’s Donald Smith addressed the issue by recommending a gradual migration, from Java 8 to Java 10, before migrating to Java 11.

However, the poll results show that developers intent on doing quite the opposite!

As the poll results show, more than half of the respondents intend to migrate directly from Java 8 to 11 while only 18 percent plan to do what Donald Smith recommended!

What’s more, a significant number of the responses suggests that a lot of developers plan to stick with Java 8, despite Oracle’s announcement to cut off public updates for Java SE 8 released after January 2019. 

If something works, why change it, right?

In the meantime, while the countdown to JDK 11 continues, let’s have a look at the discussion so far on Java migration options and Donald Smith’s suggestions.

 

The discussion so far

Earlier this year, Oracle announced that “public updates for Oracle Java SE 8 released after January 2019 will not be available for business, commercial or production use without a commercial license.” However, if you’re a consumer (and you use Java for “individual, personal use,”) you shouldn’t worry — public updates will still be available until at least the end of 2020. 

Since the changes to Oracle JDK distribution and support have been met with confusion and each person has their own version of where Java is headed and who provides what support, the Java Champions have created a document which summarizes all the changes Oracle is making, as well as the options Java SE users can choose from. You can read more about it here.

According to this document, if you want to continue using Java 8 you can either

  • continue to use Oracle JDK 8 indefinitely but without updates,
  • go onto a paid support plan or use a Java SE 8 / OpenJDK 8 binary distribution from another provider (i.e. Linux distros, AdoptOpenJDKAzul,IBMOracleRed Hat, and others) or
  • if you’re not using Oracle JDK 8, your current Java SE 8 / OpenJDK 8 provider will provide updates and/or paid support plans to choose from.

Note: We will explore this topic in-depth at JAX London.

Eager to migrate to JDK 11? You shouldn’t skip JDK 10 though

It’s no secret that a lot of people are still using Java 8 so it’s important to address the upcoming changes. Those who want to move on to JDK 11 should migrate to JDK 10 first, as Donald Smith, Sr Director of Product Management in the Java Platform Group at Oracle wrote in a blog post explaining how the shortest upgrade path looks like.

If you don’t like the idea of switching to the Oracle Java SE Subscription, you need to upgrade your application but instead of waiting for the next release [that would be JDK 11, due next week], you should act now and migrate to JDK 10 while you still can. You’ll find the instructions in the Oracle JDK 10 Migration Guide.

The latest Java release available as a download from Oracle right now is JDK 10.0.2.

Since JDK 11 has not been released yet, the recommended course of action for developers targeting JDK 11 is to start working on the migration from Java SE 8 by making their applications run successfully on JDK 10. Due to the faster, semi-annual release cadence, the number of changes between JDK 10 and JDK 11 is much smaller than between JDK 8 and JDK 10.

Once an application runs well on JDK 10, developers should test it with the JDK 11 Release Candidate builds in order to be ready to migrate to JDK 11 when it’s released later this month.

Donald Smith, Oracle

If you want to migrate your application from Java 8 to JDK 12 [due in March 2019], you should follow the same migration model — “begin with a larger migration effort to the latest release at the security baseline, i.e., JDK 10.0.2 at this time, and then, once the application works well, continue with an incremental migration to the latest available release of JDK 11,” Donald explained.

If it works well with JDK 11, go ahead and test it with JDK 12 Early Access builds.

SEE ALSO: Is JDK 11 migration a given, due to planned long-term support?

What happens after January 2019?

Once the Java 8 public updates are no longer available for business, commercial or production use without a commercial license, the contributors from Oracle will focus their attention on other, current JDK releases. “As in the past, when a suitable party steps forward to continue to maintain OpenJDK 8 Updates after January 2019, we will discuss how to best enable such a transition in the OpenJDK Community.”

 If you would like to continue to use OpenJDK 8, you should subscribe to the project’s mailing list by January 2019 and discuss your expectations and plans with the remaining contributors to better understand the scope of support available for OpenJDK 8 at that time.
Author
Gabriela Motroc
Gabriela Motroc is editor of JAXenter.com and JAX Magazine. Before working at Software & Support Media Group, she studied International Communication Management at the Hague University of Applied Sciences.

Leave a Reply

1 Comment on "Poll results: It’s one big leap forward towards Java 11"

avatar
400
  Subscribe  
Notify of
Scott D. Carey
Guest

We tried Java 11 EA but too many third party libraries do not yet support it and break at runtime. So we must do 10 first.