Mercurial > hg > openjdk > jdk9 > langtools
changeset 4092:a3a30789ab61
Merge
author | alanb |
---|---|
date | Fri, 07 Apr 2017 10:58:38 +0100 |
parents | 82097900b7be (current diff) 4012b3f11f0d (diff) |
children | d6627b51ab8b |
files | |
diffstat | 28 files changed, 112 insertions(+), 67 deletions(-) [+] |
line wrap: on
line diff
--- a/make/tools/crules/CodingRulesAnalyzerPlugin.java Thu Apr 06 18:00:34 2017 +0000 +++ b/make/tools/crules/CodingRulesAnalyzerPlugin.java Fri Apr 07 10:58:38 2017 +0100 @@ -23,8 +23,6 @@ package crules; -import java.lang.reflect.Layer; -import java.lang.reflect.Module; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -76,7 +74,7 @@ private void addExports(String moduleName, String... packageNames) { for (String packageName : packageNames) { try { - Layer layer = Layer.boot(); + ModuleLayer layer = ModuleLayer.boot(); Optional<Module> m = layer.findModule(moduleName); if (!m.isPresent()) throw new Error("module not found: " + moduleName);
--- a/src/java.compiler/share/classes/javax/tools/ToolProvider.java Thu Apr 06 18:00:34 2017 +0000 +++ b/src/java.compiler/share/classes/javax/tools/ToolProvider.java Fri Apr 07 10:58:38 2017 +0100 @@ -106,7 +106,7 @@ static { Class<?> c = null; try { - c = Class.forName("java.lang.reflect.Module"); + c = Class.forName("java.lang.Module"); } catch (Throwable t) { } useLegacy = (c == null);
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Modules.java Thu Apr 06 18:00:34 2017 +0000 +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Modules.java Fri Apr 07 10:58:38 2017 +0100 @@ -1240,7 +1240,7 @@ case ALL_SYSTEM: modules = new HashSet<>(syms.getAllModules()) .stream() - .filter(systemModulePred.and(observablePred).and(noIncubatorPred)); + .filter(systemModulePred.and(observablePred)); break; case ALL_MODULE_PATH: modules = new HashSet<>(syms.getAllModules()) @@ -1265,6 +1265,15 @@ result.add(syms.unnamedModule); + boolean hasAutomatic = result.stream().anyMatch(IS_AUTOMATIC); + + if (hasAutomatic) { + syms.getAllModules() + .stream() + .filter(IS_AUTOMATIC) + .forEach(result::add); + } + String incubatingModules = result.stream() .filter(msym -> msym.resolutionFlags.contains(ModuleResolutionFlags.WARN_INCUBATING)) .map(msym -> msym.name.toString()) @@ -1282,6 +1291,9 @@ rootModules.forEach(m -> m.version = version); } } + //where: + private static final Predicate<ModuleSymbol> IS_AUTOMATIC = + m -> (m.flags_field & Flags.AUTOMATIC_MODULE) != 0; public boolean isInModuleGraph(ModuleSymbol msym) { return allModules == null || allModules.contains(msym);
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/file/Locations.java Thu Apr 06 18:00:34 2017 +0000 +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/file/Locations.java Fri Apr 07 10:58:38 2017 +0100 @@ -1282,8 +1282,7 @@ } // finally clean up the module name - mn = mn.replaceAll("(\\.|\\d)*$", "") // remove trailing version - .replaceAll("[^A-Za-z0-9]", ".") // replace non-alphanumeric + mn = mn.replaceAll("[^A-Za-z0-9]", ".") // replace non-alphanumeric .replaceAll("(\\.)(\\1)+", ".") // collapse repeating dots .replaceAll("^\\.", "") // drop leading dots .replaceAll("\\.$", ""); // drop trailing dots
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/util/JDK9Wrappers.java Thu Apr 06 18:00:34 2017 +0000 +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/util/JDK9Wrappers.java Fri Apr 07 10:58:38 2017 +0100 @@ -183,7 +183,7 @@ } /** - * Wrapper class for java.lang.reflect.Module. To materialize a handle use the static factory + * Wrapper class for java.lang.Module. To materialize a handle use the static factory * methods Module#getModule(Class<?>) or Module#getUnnamedModule(ClassLoader). */ public static class Module { @@ -236,9 +236,9 @@ } // ----------------------------------------------------------------------------------------- - // on java.lang.reflect.Module + // on java.lang.Module private static Method addExportsMethod = null; - // on java.lang.reflect.Module + // on java.lang.Module private static Method addUsesMethod = null; // on java.lang.Class private static Method getModuleMethod; @@ -248,7 +248,7 @@ private static void init() { if (addExportsMethod == null) { try { - Class<?> moduleClass = Class.forName("java.lang.reflect.Module", false, null); + Class<?> moduleClass = Class.forName("java.lang.Module", false, null); addUsesMethod = moduleClass.getDeclaredMethod("addUses", new Class<?>[] { Class.class }); addExportsMethod = moduleClass.getDeclaredMethod("addExports", new Class<?>[] { String.class, moduleClass }); @@ -318,7 +318,7 @@ } /** - * Wrapper class for java.lang.module.Layer. + * Wrapper class for java.lang.ModuleLayer. */ public static final class Layer { private final Object theRealLayer; @@ -372,7 +372,7 @@ private static void init() { if (layerClass == null) { try { - layerClass = Class.forName("java.lang.reflect.Layer", false, null); + layerClass = Class.forName("java.lang.ModuleLayer", false, null); bootMethod = layerClass.getDeclaredMethod("boot"); defineModulesWithOneLoaderMethod = layerClass.getDeclaredMethod("defineModulesWithOneLoader", Configuration.getConfigurationClass(),
--- a/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/TagletManager.java Thu Apr 06 18:00:34 2017 +0000 +++ b/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/TagletManager.java Fri Apr 07 10:58:38 2017 +0100 @@ -292,7 +292,7 @@ Method getModuleMethod = Class.class.getDeclaredMethod("getModule"); Object thisModule = getModuleMethod.invoke(getClass()); - Class<?> moduleClass = Class.forName("java.lang.reflect.Module"); + Class<?> moduleClass = Class.forName("java.lang.Module"); Method addExportsMethod = moduleClass.getDeclaredMethod("addExports", String.class, moduleClass); Method getUnnamedModuleMethod = ClassLoader.class.getDeclaredMethod("getUnnamedModule");
--- a/src/jdk.javadoc/share/classes/com/sun/tools/javadoc/main/DocletInvoker.java Thu Apr 06 18:00:34 2017 +0000 +++ b/src/jdk.javadoc/share/classes/com/sun/tools/javadoc/main/DocletInvoker.java Fri Apr 07 10:58:38 2017 +0100 @@ -379,7 +379,7 @@ Method getModuleMethod = Class.class.getDeclaredMethod("getModule"); Object thisModule = getModuleMethod.invoke(getClass()); - Class<?> moduleClass = Class.forName("java.lang.reflect.Module"); + Class<?> moduleClass = Class.forName("java.lang.Module"); Method addExportsMethod = moduleClass.getDeclaredMethod("addExports", String.class, moduleClass); Method getUnnamedModuleMethod = ClassLoader.class.getDeclaredMethod("getUnnamedModule");
--- a/test/TEST.ROOT Thu Apr 06 18:00:34 2017 +0000 +++ b/test/TEST.ROOT Fri Apr 07 10:58:38 2017 +0100 @@ -14,8 +14,8 @@ # Group definitions groups=TEST.groups -# Tests using jtreg 4.2 b05 features -requiredVersion=4.2 b05 +# Tests using jtreg 4.2 b07 features +requiredVersion=4.2 b07 # Use new module options useNewOptions=true
--- a/test/com/sun/javadoc/testCustomTag/taglets/CustomTag.java Thu Apr 06 18:00:34 2017 +0000 +++ b/test/com/sun/javadoc/testCustomTag/taglets/CustomTag.java Fri Apr 07 10:58:38 2017 +0100 @@ -23,8 +23,6 @@ package taglets; -import java.lang.reflect.Layer; -import java.lang.reflect.Module; import java.util.*; import com.sun.javadoc.*;
--- a/test/com/sun/javadoc/testNestedInlineTag/testtaglets/BoldTaglet.java Thu Apr 06 18:00:34 2017 +0000 +++ b/test/com/sun/javadoc/testNestedInlineTag/testtaglets/BoldTaglet.java Fri Apr 07 10:58:38 2017 +0100 @@ -23,8 +23,6 @@ package testtaglets; -import java.lang.reflect.Layer; -import java.lang.reflect.Module; import java.util.*; import com.sun.javadoc.*;
--- a/test/com/sun/javadoc/testNestedInlineTag/testtaglets/GreenTaglet.java Thu Apr 06 18:00:34 2017 +0000 +++ b/test/com/sun/javadoc/testNestedInlineTag/testtaglets/GreenTaglet.java Fri Apr 07 10:58:38 2017 +0100 @@ -23,8 +23,6 @@ package testtaglets; -import java.lang.reflect.Layer; -import java.lang.reflect.Module; import java.util.*; import com.sun.javadoc.*;
--- a/test/com/sun/javadoc/testNestedInlineTag/testtaglets/UnderlineTaglet.java Thu Apr 06 18:00:34 2017 +0000 +++ b/test/com/sun/javadoc/testNestedInlineTag/testtaglets/UnderlineTaglet.java Fri Apr 07 10:58:38 2017 +0100 @@ -23,8 +23,6 @@ package testtaglets; -import java.lang.reflect.Layer; -import java.lang.reflect.Module; import java.util.*; import com.sun.javadoc.*;
--- a/test/com/sun/javadoc/testTaglets/taglets/Foo.java Thu Apr 06 18:00:34 2017 +0000 +++ b/test/com/sun/javadoc/testTaglets/taglets/Foo.java Fri Apr 07 10:58:38 2017 +0100 @@ -23,8 +23,6 @@ package taglets; -import java.lang.reflect.Layer; -import java.lang.reflect.Module; import java.util.*; import com.sun.javadoc.*;
--- a/test/jdk/javadoc/tool/CheckResourceKeys.java Thu Apr 06 18:00:34 2017 +0000 +++ b/test/jdk/javadoc/tool/CheckResourceKeys.java Fri Apr 07 10:58:38 2017 +0100 @@ -33,8 +33,6 @@ */ import java.io.*; -import java.lang.reflect.Layer; -import java.lang.reflect.Module; import java.util.*; import javax.tools.*; import com.sun.tools.classfile.*; @@ -265,7 +263,7 @@ * Get the set of keys from the javadoc resource bundles. */ Set<String> getResourceKeys() { - Module jdk_javadoc = Layer.boot().findModule("jdk.javadoc").get(); + Module jdk_javadoc = ModuleLayer.boot().findModule("jdk.javadoc").get(); String[] names = { "jdk.javadoc.internal.doclets.formats.html.resources.standard", "jdk.javadoc.internal.doclets.toolkit.resources.doclets",
--- a/test/jdk/jshell/KullaTesting.java Thu Apr 06 18:00:34 2017 +0000 +++ b/test/jdk/jshell/KullaTesting.java Fri Apr 07 10:58:38 2017 +0100 @@ -30,7 +30,6 @@ import java.lang.reflect.Method; import java.lang.module.Configuration; import java.lang.module.ModuleFinder; -import java.lang.reflect.Layer; import java.nio.file.Paths; import java.nio.file.Path; import java.util.ArrayList; @@ -211,11 +210,11 @@ public ClassLoader createAndRunFromModule(String moduleName, Path modPath) { ModuleFinder finder = ModuleFinder.of(modPath); - Layer parent = Layer.boot(); + ModuleLayer parent = ModuleLayer.boot(); Configuration cf = parent.configuration() .resolve(finder, ModuleFinder.of(), Set.of(moduleName)); ClassLoader scl = ClassLoader.getSystemClassLoader(); - Layer layer = parent.defineModulesWithOneLoader(cf, scl); + ModuleLayer layer = parent.defineModulesWithOneLoader(cf, scl); ClassLoader loader = layer.findLoader(moduleName); ClassLoader ccl = Thread.currentThread().getContextClassLoader(); Thread.currentThread().setContextClassLoader(loader);
--- a/test/tools/javac/6410653/T6410653.java Thu Apr 06 18:00:34 2017 +0000 +++ b/test/tools/javac/6410653/T6410653.java Fri Apr 07 10:58:38 2017 +0100 @@ -31,7 +31,6 @@ */ import java.lang.reflect.Field; -import java.lang.reflect.Module; import java.io.File; import java.io.ByteArrayOutputStream; import javax.tools.*;
--- a/test/tools/javac/T6406771.java Thu Apr 06 18:00:34 2017 +0000 +++ b/test/tools/javac/T6406771.java Fri Apr 07 10:58:38 2017 +0100 @@ -11,9 +11,9 @@ // Editing the imports and other leading text may affect the golden text in the tests field. // Also beware of scripts that auto-expand tabs to spaces. + + import java.io.*; -import java.lang.reflect.Layer; -import java.lang.reflect.Module; import java.util.*; import javax.annotation.processing.*; import javax.lang.model.*;
--- a/test/tools/javac/diags/CheckExamples.java Thu Apr 06 18:00:34 2017 +0000 +++ b/test/tools/javac/diags/CheckExamples.java Fri Apr 07 10:58:38 2017 +0100 @@ -39,8 +39,6 @@ */ import java.io.*; -import java.lang.reflect.Layer; -import java.lang.reflect.Module; import java.nio.file.*; import java.nio.file.attribute.BasicFileAttributes; import java.util.*; @@ -111,7 +109,7 @@ } } - Module jdk_compiler = Layer.boot().findModule("jdk.compiler").get(); + Module jdk_compiler = ModuleLayer.boot().findModule("jdk.compiler").get(); ResourceBundle b = ResourceBundle.getBundle("com.sun.tools.javac.resources.compiler", jdk_compiler); Set<String> resourceKeys = new TreeSet<String>(b.keySet());
--- a/test/tools/javac/diags/CheckResourceKeys.java Thu Apr 06 18:00:34 2017 +0000 +++ b/test/tools/javac/diags/CheckResourceKeys.java Fri Apr 07 10:58:38 2017 +0100 @@ -31,8 +31,6 @@ */ import java.io.*; -import java.lang.reflect.Layer; -import java.lang.reflect.Module; import java.util.*; import javax.tools.*; import com.sun.tools.classfile.*; @@ -395,7 +393,7 @@ * Get the set of keys from the javac resource bundles. */ Set<String> getResourceKeys() { - Module jdk_compiler = Layer.boot().findModule("jdk.compiler").get(); + Module jdk_compiler = ModuleLayer.boot().findModule("jdk.compiler").get(); Set<String> results = new TreeSet<String>(); for (String name : new String[]{"javac", "compiler"}) { ResourceBundle b =
--- a/test/tools/javac/diags/examples/NoJavaLang.java Thu Apr 06 18:00:34 2017 +0000 +++ b/test/tools/javac/diags/examples/NoJavaLang.java Fri Apr 07 10:58:38 2017 +0100 @@ -22,7 +22,7 @@ */ // key: compiler.misc.fatal.err.no.java.lang -// options: -source 8 -target 8 -Xbootclasspath: +// options: -source 8 -target 8 -Xbootclasspath: -classpath . // run: backdoor class NoJavaLang { }
--- a/test/tools/javac/fatalErrors/NoJavaLangTest.java Thu Apr 06 18:00:34 2017 +0000 +++ b/test/tools/javac/fatalErrors/NoJavaLangTest.java Fri Apr 07 10:58:38 2017 +0100 @@ -74,7 +74,7 @@ // test with bootclasspath, for as long as its around void testBootClassPath() { - String[] bcpOpts = { "-Xlint:-options", "-source", "8", "-bootclasspath", "." }; + String[] bcpOpts = { "-Xlint:-options", "-source", "8", "-bootclasspath", ".", "-classpath", "." }; test(bcpOpts, compilerErrorMessage); }
--- a/test/tools/javac/lib/JavacTestingAbstractProcessor.java Thu Apr 06 18:00:34 2017 +0000 +++ b/test/tools/javac/lib/JavacTestingAbstractProcessor.java Fri Apr 07 10:58:38 2017 +0100 @@ -21,8 +21,6 @@ * questions. */ -import java.lang.reflect.Layer; -import java.lang.reflect.Module; import java.util.*; import javax.annotation.processing.*; import javax.lang.model.SourceVersion; @@ -102,7 +100,7 @@ protected void addExports(String moduleName, String... packageNames) { for (String packageName : packageNames) { try { - Layer layer = Layer.boot(); + ModuleLayer layer = ModuleLayer.boot(); Optional<Module> m = layer.findModule(moduleName); if (!m.isPresent()) throw new Error("module not found: " + moduleName);
--- a/test/tools/javac/modules/AddLimitMods.java Thu Apr 06 18:00:34 2017 +0000 +++ b/test/tools/javac/modules/AddLimitMods.java Fri Apr 07 10:58:38 2017 +0100 @@ -418,13 +418,13 @@ " public static void main(String... args) throws Exception {\n"); for (Entry<String, String> e : MODULES_TO_CHECK_TO_SAMPLE_CLASS.entrySet()) { - testClassNamed.append(" System.err.println(\"visible:" + e.getKey() + ":\" + java.lang.reflect.Layer.boot().findModule(\"" + e.getKey() + "\").isPresent());\n"); + testClassNamed.append(" System.err.println(\"visible:" + e.getKey() + ":\" + ModuleLayer.boot().findModule(\"" + e.getKey() + "\").isPresent());\n"); } testClassNamed.append(" Class<?> cp = Class.forName(Test.class.getClassLoader().getUnnamedModule(), \"cp.CP\");\n"); testClassNamed.append(" cp.getDeclaredMethod(\"runMe\").invoke(null);\n"); - testClassNamed.append(" Class<?> automatic = Class.forName(java.lang.reflect.Layer.boot().findModule(\"automatic\").get(), \"automatic.Automatic\");\n"); + testClassNamed.append(" Class<?> automatic = Class.forName(ModuleLayer.boot().findModule(\"automatic\").get(), \"automatic.Automatic\");\n"); testClassNamed.append(" automatic.getDeclaredMethod(\"runMe\").invoke(null);\n"); testClassNamed.append(" }\n" +
--- a/test/tools/javac/modules/AutomaticModules.java Thu Apr 06 18:00:34 2017 +0000 +++ b/test/tools/javac/modules/AutomaticModules.java Fri Apr 07 10:58:38 2017 +0100 @@ -300,9 +300,8 @@ .writeAll() .getOutputLines(Task.OutputKind.DIRECT); - expected = Arrays.asList("Impl.java:1:47: compiler.err.package.not.visible: apiB, (compiler.misc.not.def.access.does.not.read: m1x, apiB, automaticB)", - "Impl.java:1:59: compiler.err.package.not.visible: m2x, (compiler.misc.not.def.access.does.not.read: m1x, m2x, m2x)", - "2 errors"); + expected = Arrays.asList("Impl.java:1:59: compiler.err.package.not.visible: m2x, (compiler.misc.not.def.access.does.not.read: m1x, m2x, m2x)", + "1 error"); if (!expected.equals(log)) { throw new Exception("expected output not found: " + log); @@ -310,7 +309,7 @@ } @Test - public void testDropTrailingVersion(Path base) throws Exception { + public void testWithTrailingVersion(Path base) throws Exception { Path legacySrc = base.resolve("legacy-src"); tb.writeJavaFiles(legacySrc, "package api; public class Api {}"); @@ -348,7 +347,7 @@ Files.createDirectories(classes); tb.writeJavaFiles(m, - "module m { requires test; }", + "module m { requires test1; }", "package impl; public class Impl { public void e(api.Api api) { } }"); new JavacTask(tb) @@ -358,4 +357,70 @@ .run() .writeAll(); } + + @Test + public void testMultipleAutomatic(Path base) throws Exception { + Path modulePath = base.resolve("module-path"); + + Files.createDirectories(modulePath); + + for (char c : new char[] {'A', 'B'}) { + Path automaticSrc = base.resolve("automaticSrc" + c); + tb.writeJavaFiles(automaticSrc, "package api" + c + "; public class Api {}"); + Path automaticClasses = base.resolve("automaticClasses" + c); + tb.createDirectories(automaticClasses); + + String automaticLog = new JavacTask(tb) + .outdir(automaticClasses) + .files(findJavaFiles(automaticSrc)) + .run() + .writeAll() + .getOutput(Task.OutputKind.DIRECT); + + if (!automaticLog.isEmpty()) + throw new Exception("expected output not found: " + automaticLog); + + Path automaticJar = modulePath.resolve("automatic" + c + "-1.0.jar"); + + new JarTask(tb, automaticJar) + .baseDir(automaticClasses) + .files("api" + c + "/Api.class") + .run(); + } + + Path src = base.resolve("src"); + + tb.writeJavaFiles(src.resolve("m1x"), + "package impl; public class Impl { apiA.Api a; apiB.Api b; }"); + + Path classes = base.resolve("classes"); + + Files.createDirectories(classes); + + List<String> log = new JavacTask(tb) + .options("--module-path", modulePath.toString(), + "-XDrawDiagnostics") + .outdir(classes) + .files(findJavaFiles(src)) + .run(Task.Expect.FAIL) + .writeAll() + .getOutputLines(Task.OutputKind.DIRECT); + + List<String> expected = Arrays.asList("Impl.java:1:35: compiler.err.package.not.visible: apiA, (compiler.misc.not.def.access.does.not.read.from.unnamed: apiA, automaticA)", + "Impl.java:1:47: compiler.err.package.not.visible: apiB, (compiler.misc.not.def.access.does.not.read.from.unnamed: apiB, automaticB)", + "2 errors"); + + if (!expected.equals(log)) { + throw new Exception("expected output not found: " + log); + } + + new JavacTask(tb) + .options("--module-path", modulePath.toString(), + "--add-modules", "automaticA", + "-XDrawDiagnostics") + .outdir(classes) + .files(findJavaFiles(src)) + .run() + .writeAll(); + } }
--- a/test/tools/javac/modules/IncubatingTest.java Thu Apr 06 18:00:34 2017 +0000 +++ b/test/tools/javac/modules/IncubatingTest.java Fri Apr 07 10:58:38 2017 +0100 @@ -122,14 +122,11 @@ "-XDrawDiagnostics") .outdir(testClasses) .files(findJavaFiles(testSrc)) - .run(Expect.FAIL) + .run(Expect.SUCCESS) .writeAll() .getOutputLines(Task.OutputKind.DIRECT); - expected = Arrays.asList( - "T.java:1:11: compiler.err.package.not.visible: api, (compiler.misc.not.def.access.does.not.read.from.unnamed: api, jdk.i)", - "1 error" - ); + expected = Arrays.asList(""); if (!expected.equals(log)) { throw new AssertionError("Unexpected output: " + log);
--- a/test/tools/javac/treeannotests/TestProcessor.java Thu Apr 06 18:00:34 2017 +0000 +++ b/test/tools/javac/treeannotests/TestProcessor.java Fri Apr 07 10:58:38 2017 +0100 @@ -21,8 +21,6 @@ * questions. */ -import java.lang.reflect.Layer; -import java.lang.reflect.Module; import java.io.*; import java.util.*; import javax.annotation.processing.*;
--- a/test/tools/javac/warnings/VerifyLintDescriptions.java Thu Apr 06 18:00:34 2017 +0000 +++ b/test/tools/javac/warnings/VerifyLintDescriptions.java Fri Apr 07 10:58:38 2017 +0100 @@ -30,8 +30,6 @@ * jdk.compiler/com.sun.tools.javac.util */ -import java.lang.reflect.Layer; -import java.lang.reflect.Module; import java.util.ArrayList; import java.util.List; import java.util.Locale; @@ -42,7 +40,7 @@ public class VerifyLintDescriptions { public static void main(String... args) { - Layer boot = Layer.boot(); + ModuleLayer boot = ModuleLayer.boot(); Module jdk_compiler = boot.findModule("jdk.compiler").get(); ResourceBundle b = ResourceBundle.getBundle("com.sun.tools.javac.resources.javac", Locale.US,
--- a/test/tools/javadoc/CheckResourceKeys.java Thu Apr 06 18:00:34 2017 +0000 +++ b/test/tools/javadoc/CheckResourceKeys.java Fri Apr 07 10:58:38 2017 +0100 @@ -32,8 +32,6 @@ */ import java.io.*; -import java.lang.reflect.Layer; -import java.lang.reflect.Module; import java.util.*; import javax.tools.*; import com.sun.tools.classfile.*; @@ -229,7 +227,7 @@ * Get the set of keys from the javadoc resource bundles. */ Set<String> getResourceKeys() { - Module jdk_javadoc = Layer.boot().findModule("jdk.javadoc").get(); + Module jdk_javadoc = ModuleLayer.boot().findModule("jdk.javadoc").get(); String[] names = { "com.sun.tools.doclets.formats.html.resources.standard", "com.sun.tools.doclets.internal.toolkit.resources.doclets",