RFR: 8316969: Improve CDS module graph support for --module option

Alan Bateman alanb at openjdk.org
Tue Oct 17 22:51:49 UTC 2023


On Mon, 2 Oct 2023 22:17:34 GMT, Calvin Cheung <ccheung at openjdk.org> wrote:

> Please review this changeset for adding support for `--module` (-m) option for CDS.
> Changes in the `ModuleBootstrap.java` are needed so that the `ArchivedModuleGraph.archive` and `ArchivedBootLayer.archive` are called if the main module is specified. The module name will be stored in the ro region of the CDS archive. During runtime, the archived module name will be compared with the runtime module name. If comparison fails, the archived full module graph won't be used.
> 
> Note: this RFE is a subtask of [JDK-8266329](https://bugs.openjdk.org/browse/JDK-8266329). More subtask(s) will be created to support other options such as `--add-modules`.
> 
> Passed tiers 1 - 4 testing.

src/java.base/share/classes/jdk/internal/module/ModuleBootstrap.java line 239:

> 237:                        // only consider modules from JDK
> 238:                        (mainModule.startsWith("jdk.") || mainModule.startsWith("java."))) {
> 239:                     canArchive = true;

This will require discussion as there may be modules in the run-time image that start with other names.

src/java.base/share/classes/jdk/internal/module/ModuleBootstrap.java line 483:

> 481:         // Archive module graph and boot layer can be archived at CDS dump time.
> 482:         // Only allow the unnamed module case for now.
> 483:         if (canArchive) {

Doesn't this invalidate the comments?

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/16016#discussion_r1343607473
PR Review Comment: https://git.openjdk.org/jdk/pull/16016#discussion_r1343609766


More information about the core-libs-dev mailing list