< prev index next >
src/java.base/share/classes/jdk/internal/module/ModuleBootstrap.java
Print this page
rev 57828 : 8237878: Improve ModuleLoaderMap datastructures
Reviewed-by: alanb
*** 381,391 ****
// loader.
long t5 = System.nanoTime();
// mapping of modules to class loaders
! Function<String, ClassLoader> clf = ModuleLoaderMap.mappingFunction(cf);
// check that all modules to be mapped to the boot loader will be
// loaded from the runtime image
if (haveModulePath) {
for (ResolvedModule resolvedModule : cf.modules()) {
--- 381,396 ----
// loader.
long t5 = System.nanoTime();
// mapping of modules to class loaders
! ModuleLoaderMap.Mapper clf;
! if (archivedModuleGraph != null) {
! clf = archivedModuleGraph.classLoaderFunction();
! } else {
! clf = ModuleLoaderMap.mappingFunction(cf);
! }
// check that all modules to be mapped to the boot loader will be
// loaded from the runtime image
if (haveModulePath) {
for (ResolvedModule resolvedModule : cf.modules()) {
*** 456,472 ****
}
// Module graph can be archived at CDS dump time. Only allow the
// unnamed module case for now.
if (canArchive && (mainModule == null)) {
! ArchivedModuleGraph.archive(mainModule,
hasSplitPackages,
hasIncubatorModules,
systemModuleFinder,
cf,
concealedPackagesToOpen,
! exportedPackagesToOpen);
}
// total time to initialize
Counters.add("jdk.module.boot.totalTime", t0);
Counters.publish();
--- 461,479 ----
}
// Module graph can be archived at CDS dump time. Only allow the
// unnamed module case for now.
if (canArchive && (mainModule == null)) {
! ArchivedModuleGraph.archive(
! new ArchivedModuleGraph(mainModule,
hasSplitPackages,
hasIncubatorModules,
systemModuleFinder,
cf,
+ clf,
concealedPackagesToOpen,
! exportedPackagesToOpen));
}
// total time to initialize
Counters.add("jdk.module.boot.totalTime", t0);
Counters.publish();
< prev index next >