< prev index next >

src/java.base/share/classes/java/lang/Module.java

Print this page

*** 53,62 **** --- 53,63 ---- import java.util.stream.Stream; import jdk.internal.loader.BuiltinClassLoader; import jdk.internal.loader.BootLoader; import jdk.internal.loader.ClassLoaders; + import jdk.internal.misc.VM; import jdk.internal.module.IllegalAccessLogger; import jdk.internal.module.ModuleLoaderMap; import jdk.internal.module.ServicesCatalog; import jdk.internal.module.Resources; import jdk.internal.org.objectweb.asm.AnnotationVisitor;
*** 244,259 **** } // -- // special Module to mean "all unnamed modules" ! private static final Module ALL_UNNAMED_MODULE = new Module(null); ! private static final Set<Module> ALL_UNNAMED_MODULE_SET = Set.of(ALL_UNNAMED_MODULE); // special Module to mean "everyone" ! private static final Module EVERYONE_MODULE = new Module(null); ! private static final Set<Module> EVERYONE_SET = Set.of(EVERYONE_MODULE); /** * The holder of data structures to support readability, exports, and * service use added at runtime with the reflective APIs. */ --- 245,303 ---- } // -- // special Module to mean "all unnamed modules" ! private static final Module ALL_UNNAMED_MODULE; ! private static final Set<Module> ALL_UNNAMED_MODULE_SET; // special Module to mean "everyone" ! private static final Module EVERYONE_MODULE; ! private static final Set<Module> EVERYONE_SET; ! ! private static class ArchivedData { ! private static ArchivedData archivedData; ! private final Module allUnnamedModule; ! private final Set<Module> allUnnamedModules; ! private final Module everyoneModule; ! private final Set<Module> everyoneSet; ! ! private ArchivedData() { ! this.allUnnamedModule = ALL_UNNAMED_MODULE; ! this.allUnnamedModules = ALL_UNNAMED_MODULE_SET; ! this.everyoneModule = EVERYONE_MODULE; ! this.everyoneSet = EVERYONE_SET; ! } ! ! static void archive() { ! archivedData = new ArchivedData(); ! } ! ! static ArchivedData get() { ! return archivedData; ! } ! ! static { ! VM.initializeFromArchive(ArchivedData.class); ! } ! } ! ! static { ! ArchivedData archivedData = ArchivedData.get(); ! if (archivedData != null) { ! ALL_UNNAMED_MODULE = archivedData.allUnnamedModule; ! ALL_UNNAMED_MODULE_SET = archivedData.allUnnamedModules; ! EVERYONE_MODULE = archivedData.everyoneModule; ! EVERYONE_SET = archivedData.everyoneSet; ! } else { ! ALL_UNNAMED_MODULE = new Module(null); ! ALL_UNNAMED_MODULE_SET = Set.of(ALL_UNNAMED_MODULE); ! EVERYONE_MODULE = new Module(null); ! EVERYONE_SET = Set.of(EVERYONE_MODULE); ! ArchivedData.archive(); ! } ! } /** * The holder of data structures to support readability, exports, and * service use added at runtime with the reflective APIs. */
< prev index next >