Fix Version/s: 9
Compatibility Risk Description:This update does not impact existing applications or deployments.
As the binary form of module-info is updated then developers trying the EA builds to create modules will need to compile.
Interface Kind:Java API, add/remove/modify command line option
Module system implementation refresh (12/2016)
This CCC tracks updating the module system introduced by JEPs 200/260/261/282 via CCC-8142968, refreshed by CCC-8154956 and CCC-8169069 and several other smaller CCCs.
The main changes in this refresh are the changes related to the following JSR 376 issues (http://openjdk.java.net/projects/jigsaw/spec/issues/)
and a small API updates to complete #IndirectQualifiedReflectiveAccess.
For #VersionedDependences then the proposal is that when compiling a module that depends on some other modules, record the version strings of those modules, if available, in the resulting module descriptor.
For #ModuleNameCharacters then the proposal is a new scheme for encoding module names in class files.
The detailed proposals for both JSR issues are attached to this CCC.
Update JDK 9 to align with where JSR 376 is at.
The specification changes in this CCC are a snapshot of the changes for this refresh. The following are attached to this CCC: lang-vm-specdiffs.zip - the diffs for the "Modules in the Java Language and JVM" document. This document will eventually be replaced by updates to the JLS and JVMS. api-specdiffs.zip - API specdiffs In addition to the spec/API changes, there are updates to javac as follows: 1. New command-line option to specify version of the module that is being compiled. --module-version <version> Specify version of modules that are being compiled 2. Disallow the -profile option to be used with `-target 9` and later. 3. A new -Xlint: key for javac, "module", for lint warning about module-related issues. This warning is on by default.