Java 9 Support (#1991)

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)

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).

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 a dimension to it: Layers

Supporting the Java 9 module system (project jigsaw) from Z2 means:

  • A Java Component consists now of up to three layers, one for API, one for impl, one for test.
  • All other module declaration business is out of scope for the Z2 runtime but rather purely development oriented business.