Changes/Java9TechPreview

From FedoraProject

Jump to: navigation, search

Contents

Java 9

Summary

Add a tech preview preview of the the upcoming version of Java (OpenJDK9) to Fedora 27

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).
  • Proposal owners: providing java-9-openjdk package to main repositories
  • Other developers: N/A (not a System Wide Change)
  • Release engineering: only the inclusion of new package is needed
  • Policies and guidelines: N/A (not a System Wide Change)
  • Trademark approval: N/A (not needed for this Change)

How To Test

  • Install java-9-openjdk
  • Run (as root) 'alternatives --config java' and select the 9 version
  • Run 'java -version' to ensure that it is correct

User Experience

By default, users and developers will have access to all of the new features that version 9 of the language provides.

Dependencies

No new dependencies are expected for java-9-openjdk. This part will be updated if the situation changes.

Contingency Plan

Java 9 will be a tech preview. The primary version of Java will continue to be Java 8 as it is now, and therefore no contingency is needed.

Documentation

New features in OpenJDK9 are listed on [1].

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.