-
Notifications
You must be signed in to change notification settings - Fork 2
Java SE 11 Support
The Java release train is following a new track and schedule from Java SE 9 on. There will be a new release every 6 months!
With the faster release cadence, a new strategy was required for delivering updates. Oracle now produce two JDK binaries: the traditional Oracle JDK and one built purely from OpenJDK source. By JDK 11 these will be functionally equivalent but not so from the perspective of updates. Each OpenJDK binary will only have updates (security patches and bug fixes) for six months, until the release of the next JDK. The Oracle JDK will have a long-term support (LTS) release every three years. JDK 8 is currently an LTS; the next will be JDK 11.
Quote from https://www.azul.com/what-comes-after-jdk-8/
Further reading:
- https://blogs.oracle.com/java-platform-group/faster-and-easier-use-and-redistribution-of-java-se
- http://www.oracle.com/technetwork/java/javase/eol-135779.html
- https://medium.com/criciumadev/its-time-migrating-to-java-11-5eb3868354f9
- https://developers.redhat.com/blog/2018/09/24/the-future-of-java-and-openjdk-updates-without-oracle-support/
- https://adoptopenjdk.net/
Related issues:
Conclusion: We have to move to Java SE 11 asap!
The TMC has the strong motion to use OpenJDK as a reference from Java 11 and onwards. Major concern is that running an Oracle JDK in a non-development environment will require Oracle Java SE Subscriptions! The new license for Oracle JDK 11 contains the following:
You may not:
- use the Programs for any data processing or any commercial, production, or internal business purposes other than developing, testing, prototyping, and demonstrating your Application; [...] If You want to use the Programs for any purpose other than as expressly permitted under this Agreement, You must obtain from Oracle or an Oracle reseller a valid Programs license under a separate agreement permitting such use. However, You acknowledge that the Programs may not be intended for production use and/or Oracle may not make a version of the Programs available for production or other purposes; any development or other work You undertake with the Programs is at Your sole risk.
Quote from https://www.oracle.com/technetwork/java/javase/terms/license/javase-license.html
Further reading:
- https://javapapers.com/java/oracle-jdk-vs-openjdk-and-java-jdk-development-process/
- https://dev.karakun.com/java/2018/09/16/java-11-licence.html
- https://itnext.io/java-is-still-free-c02aef8c9e04
- https://dev.karakun.com/java/2018/06/25/java-releases.html
- https://www.oracle.com/java/java-se-subscription.html
- https://medium.com/@javachampions/java-is-still-free-c02aef8c9e04
Related TMC decisions:
Related issues:
Conclusion: We will focus on OpenJDK!
The goals are: make it run, make it compile, make it fit into Java's new module system.
TL;DR: No, it's not as easy as it looks like.
- Get deegree webservices running with OpenJDK 11 (on Apache Tomcat 9).
- Get deegree to compile with OpenJDK 11.
- Modularize deegree to use the new Module System of Java 9+ (project jigsaw/JSR-376).
Deploy the most recent version of deegree WAR file into a Servlet Container supporting Java SE 11. This will be Apache Tomcat 9 for an example (see http://tomcat.apache.org/whichversion.html). Use the provided docker container for OpenJDK 11 with Tomcat 9 as a reference. We can use this Dockerfile as a start.
Run Apache Maven 3.6+ with OpenJDK 11 and get it fixed. That includes:
- update Maven plugins
- update project dependencies
- and update the build infrastructure too!
Related issue with Docker commands to compile and run:
That's a huge amount of work since the deegree modules are fairly shattered and the build has some quite awkward spots. Contributions and funding is needed. Participating at the OSGeo Java 2018 Code Sprint is highly recommended, to learn how the other OSGeo projects using Java are dealing with that challenge.
Further reading:
- http://openjdk.java.net/projects/jigsaw/spec/sotms/
- https://www.jcp.org/en/jsr/detail?id=376
- https://wiki.osgeo.org/wiki/Java_2018_Code_Sprint
Conclusion: A lot of work needs to be done. Contributions and funding is welcome!
NO! As of deegree version 3.5 the support for Java SE 8 will be dropped!
Further reading:
Conclusion: Users are requested to upgrade their runtime environments to Java SE 11 using OpenJDK 11 as soon as deegree webservices version 3.5 is general available (GA)!