Owner

Current status

Detailed Description

The current Java implementation in Fedora comes from OpenJDK.

Java 9 (and OpenJDK9) are tentatively scheduled for release in 2017-07-27. Fedora 27 will most likely be out just a few months after that, and is therefore positioned to receive a tech preview version of the latest OpenJDK9 candidates. This preview should be released version of Java 9, will contain new Java 9 APIs, but may not be supported by many applications directly, therefore it have to warm up as techpreview.

Benefit to Fedora

Fedora users will have access to all the new language and feature enhancements provided by Java 9. Additionally, developers can start developing applications early on for Java 9.

Scope

The current version of OpenJDK 9 will be packaged and added to Fedora. It will be a stand alone package and will not impact existing OpenJDK 8 packages.

Since this will be a tech preview, the primary JDK in Fedora 27 will continue to be OpenJDK8. OpenJDK9 is not expected to be the primary Java until Fedora 28 at least.

Two problems would generally be expected with a major JDK update based on past experience:

FTFBS failures due to packages having a hard-coded JDK version dependency.

This was dealt with when both OpenJDK8 and OpenJDK7 were introduced over Fedora 16/17 and Fedora 19/21. Now all Java dependent packages should require java >= 1.6.0, and therefore this issue will not be a problem any more.

There may be packages that rely on API that is deprecated in Java 9

Such packages cannot be identified until we actually start to build with Java 9. Since Java 8 will continue to remain the primary version of Java in Fedora 26, any API deprecation issues will be a secondary problem as the main JVM will continue to be able to run everything correctly. We expect to have everything resolved well before Java 9 is to become the primary Java version in Fedora (F28 or later).

Contingency Plan

Documentation

Release Notes

This release of Fedora includes a technological preview of Java 9, offered through the java-9-openjdk and java-9-openjdk-devel and new java-9-openjdk-jmod packages.

Java 8 continues to remain the default JDK for this release. The inclusion of Java 9/OpenJDK9 will allow developers to develop and test their applications for the next version of Java in parallel while everyone can continue using the stable Java 8 for daily use.