Java9 Support » History » Revision 13
Revision 12 (Henning Blohm, 18.02.2018 18:50) → Revision 13/14 (Henning Blohm, 24.02.2018 15:49)
h2. Java 9 Support (#1991)
h2. Supporting the Java 9 Language
We integrate ECJ version 4.7.2 from the download link below. Java 9 is fully supported since 4.7.1a ("New and Noteworthy 4.7.1a":https://www.eclipse.org/eclipse/news/4.7.1a/)
* "JDT Core 4.7.2":http://download.eclipse.org/eclipse/downloads/drops4/R-4.7.2-201711300510/#JDTCORE
* "New and Noteworthy 4.7.1a":https://www.eclipse.org/eclipse/news/4.7.1a/
* "JDT Core Git":https://git.eclipse.org/c/gerrit/jdt/eclipse.jdt.core.git/
* "JDT Core main":https://www.eclipse.org/jdt/core/dev.php
* "Oxygen help":http://help.eclipse.org/oxygen/index.jsp
We support a new LangLevel.JAVA9 and derive all compiler settings accordingly.
Unfortunately using Java 9 actually requires an updated Jetty version ([[Jetty9_4_support]]).
h2. Supporting the Module System
The Java 9 module system provides for module level package exports and cross-module dependencies. As such it does not contradict the class loading delegation model but rather adds that dimension to the module system as _Layers_.
The module system has migration tools, such as the unnamed module (of the classloader) and automatic modules.
From a Z2 perspective it is almost a binary decision to either:
a) Automatically / semi-automatically modularize all Z2 modules by typically generated module-info data and declarations that support to add legacy modules are automatic modules, or
b) go for completely automatic modules by default.
c) Ignore the Java 9 module layer and stay with unnamed modules and the existing class loader separation
As the module system adds very little value to a Z2 modularized environment and it is currently not clear how forceful other frameworks will adapt module-info data, a first release may opt for c) b).
References
* "State of the module system (easy and comprehensive read)":http://openjdk.java.net/projects/jigsaw/spec/sotms/
* "Project Jigsaw":http://openjdk.java.net/projects/jigsaw/
* "Jigsaw delivered":https://mreinhold.org/blog/jigsaw-complete
