JDK-8197532 : Re-examine policy for the default set of modules when compiling or running code on the class path
  • Type: Enhancement
  • Component: core-libs
  • Sub-Component: java.lang.module
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2018-02-11
  • Updated: 2019-02-20
  • Resolved: 2018-06-23
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 11 JDK 12
11 b20Fixed 12Fixed
Related Reports
CSR :  
Sub Tasks
JDK-8205168 :  
Description
This issue tracks a re-examination of the policy defined in JEP 261 for the default set of root modules when compiling or running code on the class path. With the JEP 320 changes then the need to exclude the modules shared with Java EE goes away and the policy can be simply:

"Every module on the upgrade module path or among the system modules that exports at least one package, without qualification."

The implication is that the java.se aggregator will not be resolved. If the run-time image contains java.se and non-Java SE java.* modules then they will be resolved. The latter will avoid surprises for cases where modules such as java.json or java.ws.rs are included in the same run-time image as java.se.

Changing the policy will require a change to javac and runtime. The jlink system modules plugin also implements this policy but it uses the runtime support so doesn't need its own changes.