Project

General

Profile

Java9 Support » History » Version 13

Henning Blohm, 24.02.2018 15:49

1 10 Henning Blohm
h2. Java 9 Support (#1991)
2 2 Henning Blohm
3 5 Henning Blohm
h2. Supporting the Java 9 Language
4
5
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/)
6
7
* "JDT Core 4.7.2":http://download.eclipse.org/eclipse/downloads/drops4/R-4.7.2-201711300510/#JDTCORE
8
* "New and Noteworthy 4.7.1a":https://www.eclipse.org/eclipse/news/4.7.1a/
9
* "JDT Core Git":https://git.eclipse.org/c/gerrit/jdt/eclipse.jdt.core.git/
10
* "JDT Core main":https://www.eclipse.org/jdt/core/dev.php
11
* "Oxygen help":http://help.eclipse.org/oxygen/index.jsp
12
13
We support a new LangLevel.JAVA9 and derive all compiler settings accordingly.
14 1 Henning Blohm
15 11 Henning Blohm
Unfortunately using Java 9 actually requires an updated Jetty version ([[Jetty9_4_support]]).
16
17 1 Henning Blohm
h2. Supporting the Module System
18 6 Henning Blohm
19 12 Henning Blohm
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_.
20 6 Henning Blohm
21 12 Henning Blohm
The module system has migration tools, such as the unnamed module (of the classloader) and automatic modules. 
22 1 Henning Blohm
23 12 Henning Blohm
From a Z2 perspective it is almost a binary decision to either:
24
25
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
26
b) go for completely automatic modules by default.
27 13 Henning Blohm
c) Ignore the Java 9 module layer and stay with unnamed modules and the existing class loader separation
28 1 Henning Blohm
29 13 Henning Blohm
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)
30 12 Henning Blohm
31 9 Henning Blohm
32
References
33
34
* "State of the module system (easy and comprehensive read)":http://openjdk.java.net/projects/jigsaw/spec/sotms/
35
* "Project Jigsaw":http://openjdk.java.net/projects/jigsaw/
36
* "Jigsaw delivered":https://mreinhold.org/blog/jigsaw-complete