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