8182162: Remove -XD-Xmodule
Summary: Removing the undocumented -XD-Xmodule: option.
Reviewed-by: jjg
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Modules.java Sat Jun 17 11:50:45 2017 -0700
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Modules.java Mon Jun 19 05:56:49 2017 +0200
@@ -146,8 +146,6 @@
public final boolean multiModuleMode;
- private final String legacyModuleOverride;
-
private final Name java_se;
private final Name java_;
@@ -196,14 +194,6 @@
allowAccessIntoSystem = options.isUnset(Option.RELEASE);
lintOptions = options.isUnset(Option.XLINT_CUSTOM, "-" + LintCategory.OPTIONS.option);
- Collection<String> xmodules = options.keySet()
- .stream()
- .filter(opt -> opt.startsWith(XMODULES_PREFIX))
- .map(opt -> opt.substring(XMODULES_PREFIX.length()))
- .collect(Collectors.toList());
-
- legacyModuleOverride = xmodules.size() == 1 ? xmodules.iterator().next() : null;
-
multiModuleMode = fileManager.hasLocation(StandardLocation.MODULE_SOURCE_PATH);
ClassWriter classWriter = ClassWriter.instance(context);
classWriter.multiModuleMode = multiModuleMode;
@@ -469,9 +459,6 @@
if (moduleOverride != null) {
checkNoAllModulePath();
defaultModule = moduleFinder.findModule(names.fromString(moduleOverride));
- if (legacyModuleOverride != null) {
- defaultModule.sourceLocation = StandardLocation.SOURCE_PATH;
- }
defaultModule.patchOutputLocation = StandardLocation.CLASS_OUTPUT;
} else {
// Question: why not do findAllModules and initVisiblePackages here?
@@ -546,11 +533,6 @@
}
private void checkSourceLocation(JCCompilationUnit tree, ModuleSymbol msym) {
- // skip check if legacy module override still in use
- if (legacyModuleOverride != null) {
- return;
- }
-
try {
JavaFileObject fo = tree.sourcefile;
if (fileManager.contains(msym.sourceLocation, fo)) {
@@ -582,7 +564,7 @@
private String singleModuleOverride(List<JCCompilationUnit> trees) {
if (!fileManager.hasLocation(StandardLocation.PATCH_MODULE_PATH)) {
- return legacyModuleOverride;
+ return null;
}
Set<String> override = new LinkedHashSet<>();
@@ -602,7 +584,7 @@
}
switch (override.size()) {
- case 0: return legacyModuleOverride;
+ case 0: return null;
case 1: return override.iterator().next();
default:
log.error(Errors.TooManyPatchedModules(override));
--- a/langtools/test/tools/javac/modules/LegacyXModuleTest.java Sat Jun 17 11:50:45 2017 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-/*
- * Copyright (c) 2017, 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.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/*
- * @test
- * @bug 8178012
- * @summary tests for multi-module mode compilation
- * @library /tools/lib
- * @modules
- * jdk.compiler/com.sun.tools.javac.api
- * jdk.compiler/com.sun.tools.javac.main
- * @build toolbox.ToolBox toolbox.JavacTask toolbox.ModuleBuilder ModuleTestBase
- * @run main LegacyXModuleTest
- */
-
-import java.nio.file.Path;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Objects;
-
-import toolbox.JavacTask;
-import toolbox.Task;
-
-public class LegacyXModuleTest extends ModuleTestBase {
-
- public static void main(String... args) throws Exception {
- new LegacyXModuleTest().runTests();
- }
-
- @Test
- public void testLegacyXModule(Path base) throws Exception {
- //note: avoiding use of java.base, as that gets special handling on some places:
- Path src = base.resolve("src");
- tb.writeJavaFiles(src, "package com.sun.tools.javac.comp; public class Extra { Modules modules; }");
- Path classes = base.resolve("classes");
- tb.createDirectories(classes);
-
- new JavacTask(tb)
- .options("-XD-Xmodule:jdk.compiler")
- .outdir(classes)
- .files(findJavaFiles(src))
- .run()
- .writeAll()
- .getOutput(Task.OutputKind.DIRECT);
-
- List<String> log = new JavacTask(tb)
- .options("-XD-Xmodule:java.compiler",
- "-XD-Xmodule:jdk.compiler",
- "-XDrawDiagnostics")
- .outdir(classes)
- .files(findJavaFiles(src))
- .run(Task.Expect.FAIL)
- .writeAll()
- .getOutputLines(Task.OutputKind.DIRECT);
-
- List<String> actual =
- Arrays.asList("Extra.java:1:56: compiler.err.cant.resolve.location: kindname.class, Modules, , , " +
- "(compiler.misc.location: kindname.class, com.sun.tools.javac.comp.Extra, null)",
- "1 error");
-
- if (!Objects.equals(actual, log))
- throw new Exception("expected output not found: " + log);
- }
-
-}