diff -r 07e906f1a20b -r b90ad1de93ea jdk/test/tools/jmod/hashes/HashesTest.java --- a/jdk/test/tools/jmod/hashes/HashesTest.java Thu Oct 27 23:49:38 2016 +0000 +++ b/jdk/test/tools/jmod/hashes/HashesTest.java Fri Oct 28 10:18:07 2016 +0100 @@ -26,7 +26,8 @@ * @summary Test the recording and checking of module hashes * @author Andrei Eremeev * @library /lib/testlibrary - * @modules java.base/jdk.internal.module + * @modules java.base/jdk.internal.misc + * java.base/jdk.internal.module * jdk.jlink * jdk.compiler * @build CompilerUtils @@ -39,7 +40,6 @@ import java.lang.module.ModuleFinder; import java.lang.module.ModuleReader; import java.lang.module.ModuleReference; -import java.lang.reflect.Method; import java.nio.file.FileVisitResult; import java.nio.file.Files; import java.nio.file.Path; @@ -55,8 +55,10 @@ import java.util.spi.ToolProvider; import java.util.stream.Collectors; -import jdk.internal.module.ConfigurableModuleFinder; +import jdk.internal.misc.SharedSecrets; +import jdk.internal.misc.JavaLangModuleAccess; import jdk.internal.module.ModuleHashes; + import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; @@ -74,7 +76,6 @@ private final Path jmods = Paths.get("jmods"); private final String[] modules = new String[] { "m1", "m2", "m3"}; - private static Method hashesMethod; @BeforeTest private void setup() throws Exception { if (Files.exists(jmods)) { @@ -97,13 +98,6 @@ // compile org.bar and org.foo compileModule("org.bar", modSrc); compileModule("org.foo", modSrc); - - try { - hashesMethod = ModuleDescriptor.class.getDeclaredMethod("hashes"); - hashesMethod.setAccessible(true); - } catch (ReflectiveOperationException x) { - throw new InternalError(x); - } } @Test @@ -143,17 +137,14 @@ } private Optional hashes(String name) throws Exception { - ModuleFinder finder = ModuleFinder.of(jmods.resolve(name + ".jmod")); - if (finder instanceof ConfigurableModuleFinder) { - ((ConfigurableModuleFinder) finder) - .configurePhase(ConfigurableModuleFinder.Phase.LINK_TIME); - } + ModuleFinder finder = SharedSecrets.getJavaLangModuleAccess() + .newModulePath(Runtime.version(), true, jmods.resolve(name + ".jmod")); ModuleReference mref = finder.find(name).orElseThrow(RuntimeException::new); ModuleReader reader = mref.open(); try (InputStream in = reader.open("module-info.class").get()) { ModuleDescriptor md = ModuleDescriptor.read(in); - Optional hashes = - (Optional) hashesMethod.invoke(md); + JavaLangModuleAccess jmla = SharedSecrets.getJavaLangModuleAccess(); + Optional hashes = jmla.hashes(md); System.out.format("hashes in module %s %s%n", name, hashes.isPresent() ? "present" : "absent"); if (hashes.isPresent()) {