< 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 >