--- a/src/java.base/share/classes/jdk/internal/module/Modules.java Sun Jun 24 15:02:08 2018 +0300
+++ b/src/java.base/share/classes/jdk/internal/module/Modules.java Sun Jun 24 16:25:47 2018 +0100
@@ -35,6 +35,7 @@
import java.security.PrivilegedAction;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import java.util.Set;
import java.util.function.Function;
import java.util.stream.Collectors;
@@ -249,7 +250,19 @@
}
- // the top-most system layer
- private static ModuleLayer topLayer;
+ /**
+ * Finds the module with the given name in the boot layer or any child
+ * layers created to load the "java.instrument" or "jdk.management.agent"
+ * modules into a running VM.
+ */
+ public static Optional<Module> findLoadedModule(String name) {
+ ModuleLayer top = topLayer;
+ if (top == null)
+ top = ModuleLayer.boot();
+ return top.findModule(name);
+ }
+
+ // the top-most layer
+ private static volatile ModuleLayer topLayer;
}