< prev index next >
src/java.base/share/classes/jdk/internal/module/ArchivedModuleGraph.java
Print this page
*** 23,32 ****
--- 23,33 ----
* questions.
*/
package jdk.internal.module;
+ import java.lang.module.Configuration;
import java.lang.module.ModuleFinder;
import java.util.Objects;
import jdk.internal.misc.VM;
/**
*** 34,81 ****
*/
final class ArchivedModuleGraph {
private static String archivedMainModule;
private static SystemModules archivedSystemModules;
private static ModuleFinder archivedModuleFinder;
private final SystemModules systemModules;
private final ModuleFinder finder;
! private ArchivedModuleGraph(SystemModules modules, ModuleFinder finder) {
this.systemModules = modules;
this.finder = finder;
}
SystemModules systemModules() {
return systemModules;
}
ModuleFinder finder() {
return finder;
}
// A factory method that ModuleBootstrap can use to obtain the
// ArchivedModuleGraph.
static ArchivedModuleGraph get(String mainModule) {
if (Objects.equals(mainModule, archivedMainModule)
&& archivedSystemModules != null
! && archivedModuleFinder != null) {
return new ArchivedModuleGraph(archivedSystemModules,
! archivedModuleFinder);
} else {
return null;
}
}
// Used at CDS dump time
! static void archive(String mainModule, SystemModules systemModules,
! ModuleFinder finder) {
if (archivedMainModule != null)
throw new UnsupportedOperationException();
archivedMainModule = mainModule;
archivedSystemModules = systemModules;
archivedModuleFinder = finder;
}
static {
VM.initializeFromArchive(ArchivedModuleGraph.class);
}
--- 35,96 ----
*/
final class ArchivedModuleGraph {
private static String archivedMainModule;
private static SystemModules archivedSystemModules;
private static ModuleFinder archivedModuleFinder;
+ private static Configuration archivedConfiguration;
private final SystemModules systemModules;
private final ModuleFinder finder;
+ private final Configuration configuration;
! private ArchivedModuleGraph(SystemModules modules,
! ModuleFinder finder,
! Configuration configuration) {
this.systemModules = modules;
this.finder = finder;
+ this.configuration = configuration;
}
SystemModules systemModules() {
return systemModules;
}
ModuleFinder finder() {
return finder;
}
+ Configuration configuration() {
+ return configuration;
+ }
+
// A factory method that ModuleBootstrap can use to obtain the
// ArchivedModuleGraph.
static ArchivedModuleGraph get(String mainModule) {
if (Objects.equals(mainModule, archivedMainModule)
&& archivedSystemModules != null
! && archivedModuleFinder != null
! && archivedConfiguration != null) {
return new ArchivedModuleGraph(archivedSystemModules,
! archivedModuleFinder,
! archivedConfiguration);
} else {
return null;
}
}
// Used at CDS dump time
! static void archive(String mainModule,
! SystemModules systemModules,
! ModuleFinder finder,
! Configuration configuration) {
if (archivedMainModule != null)
throw new UnsupportedOperationException();
archivedMainModule = mainModule;
archivedSystemModules = systemModules;
archivedModuleFinder = finder;
+ archivedConfiguration = configuration;
}
static {
VM.initializeFromArchive(ArchivedModuleGraph.class);
}
< prev index next >