< prev index next >

src/java.base/share/classes/jdk/internal/module/ArchivedModuleGraph.java

Print this page
rev 57828 : 8237878: Improve ModuleLoaderMap datastructures
Reviewed-by: alanb

*** 1,7 **** /* ! * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this --- 1,7 ---- /* ! * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this
*** 42,66 **** private final String mainModule; private final boolean hasSplitPackages; private final boolean hasIncubatorModules; private final ModuleFinder finder; private final Configuration configuration; private final Map<String, Set<String>> concealedPackagesToOpen; private final Map<String, Set<String>> exportedPackagesToOpen; ! private ArchivedModuleGraph(String mainModule, boolean hasSplitPackages, boolean hasIncubatorModules, ModuleFinder finder, Configuration configuration, Map<String, Set<String>> concealedPackagesToOpen, Map<String, Set<String>> exportedPackagesToOpen) { this.mainModule = mainModule; this.hasSplitPackages = hasSplitPackages; this.hasIncubatorModules = hasIncubatorModules; this.finder = finder; this.configuration = configuration; this.concealedPackagesToOpen = concealedPackagesToOpen; this.exportedPackagesToOpen = exportedPackagesToOpen; } ModuleFinder finder() { --- 42,72 ---- private final String mainModule; private final boolean hasSplitPackages; private final boolean hasIncubatorModules; private final ModuleFinder finder; private final Configuration configuration; + private final ModuleLoaderMap.Mapper classLoaderFunction; private final Map<String, Set<String>> concealedPackagesToOpen; private final Map<String, Set<String>> exportedPackagesToOpen; ! public ArchivedModuleGraph(String mainModule, boolean hasSplitPackages, boolean hasIncubatorModules, ModuleFinder finder, Configuration configuration, + ModuleLoaderMap.Mapper classLoaderFunction, Map<String, Set<String>> concealedPackagesToOpen, Map<String, Set<String>> exportedPackagesToOpen) { + if (mainModule != null) { + throw new UnsupportedOperationException(); + } this.mainModule = mainModule; this.hasSplitPackages = hasSplitPackages; this.hasIncubatorModules = hasIncubatorModules; this.finder = finder; this.configuration = configuration; + this.classLoaderFunction = classLoaderFunction; this.concealedPackagesToOpen = concealedPackagesToOpen; this.exportedPackagesToOpen = exportedPackagesToOpen; } ModuleFinder finder() {
*** 69,78 **** --- 75,88 ---- Configuration configuration() { return configuration; } + ModuleLoaderMap.Mapper classLoaderFunction() { + return classLoaderFunction; + } + Map<String, Set<String>> concealedPackagesToOpen() { return concealedPackagesToOpen; } Map<String, Set<String>> exportedPackagesToOpen() {
*** 100,126 **** } /** * Archive the module graph for the given initial module. */ ! static void archive(String mainModule, ! boolean hasSplitPackages, ! boolean hasIncubatorModules, ! ModuleFinder finder, ! Configuration configuration, ! Map<String, Set<String>> concealedPackagesToOpen, ! Map<String, Set<String>> exportedPackagesToOpen) { ! if (mainModule != null) { ! throw new UnsupportedOperationException(); ! } ! archivedModuleGraph = new ArchivedModuleGraph(mainModule, ! hasSplitPackages, ! hasIncubatorModules, ! finder, ! configuration, ! concealedPackagesToOpen, ! exportedPackagesToOpen); } static { VM.initializeFromArchive(ArchivedModuleGraph.class); } --- 110,121 ---- } /** * Archive the module graph for the given initial module. */ ! static void archive(ArchivedModuleGraph graph) { ! archivedModuleGraph = graph; } static { VM.initializeFromArchive(ArchivedModuleGraph.class); }
< prev index next >