JDK-8178380 : Module system implementation refresh (5/2017)
  • Type: Enhancement
  • Component: core-libs
  • Sub-Component: java.lang.module
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2017-04-10
  • Updated: 2017-07-19
  • Resolved: 2017-05-04
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 10 JDK 9
10Fixed 9 b169Fixed
Related Reports
Relates :  
Sub Tasks
JDK-8180425 :  
Description
The changes in this update are: 

- Ensure non-upgradeable modules cannot be upgraded even with --patch-module (originally tracked as JDK-8177844)

- Split `java --list-modules` option into `--list-modules` and `--describe-module`.

- Update `jar` and `jmod` tool so that their `--describe-module` output is the same as the java launcher output. For the `jar` tool then this now works in conjunction with `--release` to describe modules in multi-release JARs.

- Rename `-Xdiag:resolver` to `--show-module-resolution` and change output to make it easier to read and search.

- New option `--validate-modules` to catch conflicts/errors on the module path.

- Rename -Xlog `modules` tag to `module` and add module+load and module+unload. In addition `-verbose:module` as a simple way to enable logging of module load + unload.

- Revised proposal for the "Disallowing the dynamic loading of agents by default" issue, specifically -XX:-EnableDynamicAgentLoading, change the hotspot provider for the Attach API to not attach to the current VM, and support for executable JAR containing a java agent.

- Support dynamically loading of JMX and java agents into modular applications.

- Allow default file system provider to be overridden when patching system modules or running with a module path.

- Clarify Instrumentation::isModifableModule and equivalent JVM TI function to make it clear that it always returns true for unnamed modules.

- Change Lookup.defineClass to not require PRIVATE access to be dropped.

- Update ModuleFinder.of to ignore the Main-Class manifest attribute then it doesn't name a class in the JAR file.

- Simplify support for target platforms, specifically ModuleTarget is now one value for the target platform, the jmod tool has a new --target-platform option to replace --os-name and --os-arch, and the top level release file created by the build+jlink now have a TARGET_PLATFORM property rather than OS_NAME and OS_ARCH.

- Fix validation of module/package/class name to catch cases where a Java identifier in a name is a keyword, null or boolean literal, or underscore. 

- Fix ModuleFinder.of(Path...) to handle paths on custom file systems containing JAR files.
Comments
FC Request approved by Project Lead.
03-05-2017

FC Extension Request We need to update JDK 9 with the changes accumulated in the jigsaw/jake forest. The update includes some small API updates, updates to command line options, and a number of other miscellaneous changes (see description). The only impact to existing code is that the attach API has been updated to discourage using it to attach to the current API. There are tests to cover all the changes in this update. The proposal is to push the changes to jdk9/dev by May 3.
27-04-2017