8304036: Use CommandLine class from shared module
Reviewed-by: jjg, mchung
This commit is contained in:
parent
f39641ccbd
commit
2471919020
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2014, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2014, 2023, 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
|
||||
@ -109,7 +109,9 @@ define SetupInterimModule
|
||||
$$(INTERIM_LANGTOOLS_ADD_EXPORTS) \
|
||||
--patch-module java.base=$(BUILDTOOLS_OUTPUTDIR)/gensrc/java.base.interim \
|
||||
--add-exports java.base/jdk.internal.javac=java.compiler.interim \
|
||||
--add-exports java.base/jdk.internal.javac=jdk.compiler.interim, \
|
||||
--add-exports java.base/jdk.internal.javac=jdk.compiler.interim \
|
||||
--add-exports jdk.internal.opt/jdk.internal.opt=jdk.compiler.interim \
|
||||
--add-exports jdk.internal.opt/jdk.internal.opt=jdk.javadoc.interim, \
|
||||
))
|
||||
|
||||
$1_DEPS_INTERIM := $$(addsuffix .interim, $$(filter \
|
||||
|
@ -57,7 +57,9 @@ $(eval $(call SetupJavaCompilation, BUILD_TOOLS_JDK, \
|
||||
JAVAC_FLAGS := \
|
||||
--add-exports java.desktop/sun.awt=ALL-UNNAMED \
|
||||
--add-exports java.base/sun.text=ALL-UNNAMED \
|
||||
--add-exports java.base/sun.security.util=ALL-UNNAMED, \
|
||||
--add-exports java.base/sun.security.util=ALL-UNNAMED \
|
||||
--add-exports jdk.internal.opt/jdk.internal.opt=jdk.compiler.interim \
|
||||
--add-exports jdk.internal.opt/jdk.internal.opt=jdk.javadoc.interim, \
|
||||
))
|
||||
|
||||
TARGETS += $(BUILD_TOOLS_JDK)
|
||||
@ -90,7 +92,9 @@ $(eval $(call SetupJavaCompilation, COMPILE_DEPEND, \
|
||||
--add-exports jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED \
|
||||
--add-exports jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED \
|
||||
--add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED \
|
||||
--add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED, \
|
||||
--add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED \
|
||||
--add-exports jdk.internal.opt/jdk.internal.opt=jdk.compiler.interim \
|
||||
--add-exports jdk.internal.opt/jdk.internal.opt=jdk.javadoc.interim, \
|
||||
))
|
||||
|
||||
DEPEND_SERVICE_PROVIDER := $(BUILDTOOLS_OUTPUTDIR)/depend/META-INF/services/com.sun.source.util.Plugin
|
||||
|
@ -692,6 +692,8 @@ INTERIM_LANGTOOLS_ADD_EXPORTS := \
|
||||
--add-exports java.base/sun.invoke.util=jdk.compiler.interim \
|
||||
--add-exports java.base/jdk.internal.javac=java.compiler.interim \
|
||||
--add-exports java.base/jdk.internal.javac=jdk.compiler.interim \
|
||||
--add-exports jdk.internal.opt/jdk.internal.opt=jdk.compiler.interim \
|
||||
--add-exports jdk.internal.opt/jdk.internal.opt=jdk.javadoc.interim \
|
||||
#
|
||||
INTERIM_LANGTOOLS_MODULES_COMMA := $(strip $(subst $(SPACE),$(COMMA),$(strip \
|
||||
$(INTERIM_LANGTOOLS_MODULES))))
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2015, 2023, 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
|
||||
@ -45,6 +45,7 @@ CT_DATA_DESCRIPTION += $(MODULE_SRC)/share/data/symbols/symbols
|
||||
|
||||
COMPILECREATESYMBOLS_ADD_EXPORTS := \
|
||||
--add-exports java.base/jdk.internal.javac=java.compiler.interim,jdk.compiler.interim \
|
||||
--add-exports jdk.internal.opt/jdk.internal.opt=jdk.compiler.interim,jdk.javadoc.interim \
|
||||
--add-exports jdk.compiler.interim/com.sun.tools.javac.api=ALL-UNNAMED \
|
||||
--add-exports jdk.compiler.interim/com.sun.tools.javac.code=ALL-UNNAMED \
|
||||
--add-exports jdk.compiler.interim/com.sun.tools.javac.util=ALL-UNNAMED \
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2015, 2023, 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
|
||||
@ -43,6 +43,7 @@ CT_DATA_DESCRIPTION += $(TOPDIR)/src/jdk.compiler/share/data/symbols/symbols
|
||||
|
||||
COMPILECREATESYMBOLS_ADD_EXPORTS := \
|
||||
--add-exports java.base/jdk.internal=java.compiler.interim,jdk.compiler.interim \
|
||||
--add-exports jdk.internal.opt/jdk.internal.opt=jdk.compiler.interim,jdk.javadoc.interim \
|
||||
--add-exports jdk.compiler.interim/com.sun.tools.javac.api=ALL-UNNAMED \
|
||||
--add-exports jdk.compiler.interim/com.sun.tools.javac.code=ALL-UNNAMED \
|
||||
--add-exports jdk.compiler.interim/com.sun.tools.javac.util=ALL-UNNAMED \
|
||||
|
@ -1,295 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 1999, 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
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
package com.sun.tools.javac.main;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.Reader;
|
||||
import java.nio.charset.Charset;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Various utility methods for processing Java tool command line arguments.
|
||||
*
|
||||
* <p><b>This is NOT part of any supported API.
|
||||
* If you write code that depends on this, you do so at your own risk.
|
||||
* This code and its internal interfaces are subject to change or
|
||||
* deletion without notice.</b>
|
||||
*/
|
||||
public class CommandLine {
|
||||
/**
|
||||
* Process Win32-style command files for the specified command line
|
||||
* arguments and return the resulting arguments. A command file argument
|
||||
* is of the form '@file' where 'file' is the name of the file whose
|
||||
* contents are to be parsed for additional arguments. The contents of
|
||||
* the command file are parsed using StreamTokenizer and the original
|
||||
* '@file' argument replaced with the resulting tokens. Recursive command
|
||||
* files are not supported. The '@' character itself can be quoted with
|
||||
* the sequence '@@'.
|
||||
* @param args the arguments that may contain @files
|
||||
* @return the arguments, with @files expanded
|
||||
* @throws IOException if there is a problem reading any of the @files
|
||||
*/
|
||||
public static List<String> parse(List<String> args) throws IOException {
|
||||
List<String> newArgs = new ArrayList<>();
|
||||
appendParsedCommandArgs(newArgs, args);
|
||||
return newArgs;
|
||||
}
|
||||
|
||||
private static void appendParsedCommandArgs(List<String> newArgs, List<String> args) throws IOException {
|
||||
for (String arg : args) {
|
||||
if (arg.length() > 1 && arg.charAt(0) == '@') {
|
||||
arg = arg.substring(1);
|
||||
if (arg.charAt(0) == '@') {
|
||||
newArgs.add(arg);
|
||||
} else {
|
||||
loadCmdFile(arg, newArgs);
|
||||
}
|
||||
} else {
|
||||
newArgs.add(arg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Process the given environment variable and appends any Win32-style
|
||||
* command files for the specified command line arguments and return
|
||||
* the resulting arguments. A command file argument
|
||||
* is of the form '@file' where 'file' is the name of the file whose
|
||||
* contents are to be parsed for additional arguments. The contents of
|
||||
* the command file are parsed using StreamTokenizer and the original
|
||||
* '@file' argument replaced with the resulting tokens. Recursive command
|
||||
* files are not supported. The '@' character itself can be quoted with
|
||||
* the sequence '@@'.
|
||||
* @param envVariable the env variable to process
|
||||
* @param args the arguments that may contain @files
|
||||
* @return the arguments, with environment variable's content and expansion of @files
|
||||
* @throws IOException if there is a problem reading any of the @files
|
||||
* @throws com.sun.tools.javac.main.CommandLine.UnmatchedQuote
|
||||
*/
|
||||
public static List<String> parse(String envVariable, List<String> args)
|
||||
throws IOException, UnmatchedQuote {
|
||||
|
||||
List<String> inArgs = new ArrayList<>();
|
||||
appendParsedEnvVariables(inArgs, envVariable);
|
||||
inArgs.addAll(args);
|
||||
List<String> newArgs = new ArrayList<>();
|
||||
appendParsedCommandArgs(newArgs, inArgs);
|
||||
return newArgs;
|
||||
}
|
||||
|
||||
private static void loadCmdFile(String name, List<String> args) throws IOException {
|
||||
try (Reader r = Files.newBufferedReader(Paths.get(name), Charset.defaultCharset())) {
|
||||
Tokenizer t = new Tokenizer(r);
|
||||
String s;
|
||||
while ((s = t.nextToken()) != null) {
|
||||
args.add(s);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class Tokenizer {
|
||||
private final Reader in;
|
||||
private int ch;
|
||||
|
||||
public Tokenizer(Reader in) throws IOException {
|
||||
this.in = in;
|
||||
ch = in.read();
|
||||
}
|
||||
|
||||
public String nextToken() throws IOException {
|
||||
skipWhite();
|
||||
if (ch == -1) {
|
||||
return null;
|
||||
}
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
char quoteChar = 0;
|
||||
|
||||
while (ch != -1) {
|
||||
switch (ch) {
|
||||
case ' ':
|
||||
case '\t':
|
||||
case '\f':
|
||||
if (quoteChar == 0) {
|
||||
return sb.toString();
|
||||
}
|
||||
sb.append((char) ch);
|
||||
break;
|
||||
|
||||
case '\n':
|
||||
case '\r':
|
||||
return sb.toString();
|
||||
|
||||
case '\'':
|
||||
case '"':
|
||||
if (quoteChar == 0) {
|
||||
quoteChar = (char) ch;
|
||||
} else if (quoteChar == ch) {
|
||||
quoteChar = 0;
|
||||
} else {
|
||||
sb.append((char) ch);
|
||||
}
|
||||
break;
|
||||
|
||||
case '\\':
|
||||
if (quoteChar != 0) {
|
||||
ch = in.read();
|
||||
switch (ch) {
|
||||
case '\n':
|
||||
case '\r':
|
||||
while (ch == ' ' || ch == '\n' || ch == '\r' || ch == '\t' || ch == '\f') {
|
||||
ch = in.read();
|
||||
}
|
||||
continue;
|
||||
|
||||
case 'n':
|
||||
ch = '\n';
|
||||
break;
|
||||
case 'r':
|
||||
ch = '\r';
|
||||
break;
|
||||
case 't':
|
||||
ch = '\t';
|
||||
break;
|
||||
case 'f':
|
||||
ch = '\f';
|
||||
break;
|
||||
}
|
||||
}
|
||||
sb.append((char) ch);
|
||||
break;
|
||||
|
||||
default:
|
||||
sb.append((char) ch);
|
||||
}
|
||||
|
||||
ch = in.read();
|
||||
}
|
||||
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
void skipWhite() throws IOException {
|
||||
while (ch != -1) {
|
||||
switch (ch) {
|
||||
case ' ':
|
||||
case '\t':
|
||||
case '\n':
|
||||
case '\r':
|
||||
case '\f':
|
||||
break;
|
||||
|
||||
case '#':
|
||||
ch = in.read();
|
||||
while (ch != '\n' && ch != '\r' && ch != -1) {
|
||||
ch = in.read();
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
ch = in.read();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("fallthrough")
|
||||
private static void appendParsedEnvVariables(List<String> newArgs, String envVariable)
|
||||
throws UnmatchedQuote {
|
||||
|
||||
if (envVariable == null) {
|
||||
return;
|
||||
}
|
||||
String in = System.getenv(envVariable);
|
||||
if (in == null || in.trim().isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
final char NUL = (char)0;
|
||||
final int len = in.length();
|
||||
|
||||
int pos = 0;
|
||||
StringBuilder sb = new StringBuilder();
|
||||
char quote = NUL;
|
||||
char ch;
|
||||
|
||||
loop:
|
||||
while (pos < len) {
|
||||
ch = in.charAt(pos);
|
||||
switch (ch) {
|
||||
case '\"': case '\'':
|
||||
if (quote == NUL) {
|
||||
quote = ch;
|
||||
} else if (quote == ch) {
|
||||
quote = NUL;
|
||||
} else {
|
||||
sb.append(ch);
|
||||
}
|
||||
pos++;
|
||||
break;
|
||||
case '\f': case '\n': case '\r': case '\t': case ' ':
|
||||
if (quote == NUL) {
|
||||
newArgs.add(sb.toString());
|
||||
sb.setLength(0);
|
||||
while (ch == '\f' || ch == '\n' || ch == '\r' || ch == '\t' || ch == ' ') {
|
||||
pos++;
|
||||
if (pos >= len) {
|
||||
break loop;
|
||||
}
|
||||
ch = in.charAt(pos);
|
||||
}
|
||||
break;
|
||||
}
|
||||
// fall through
|
||||
default:
|
||||
sb.append(ch);
|
||||
pos++;
|
||||
}
|
||||
}
|
||||
if (sb.length() != 0) {
|
||||
newArgs.add(sb.toString());
|
||||
}
|
||||
if (quote != NUL) {
|
||||
throw new UnmatchedQuote(envVariable);
|
||||
}
|
||||
}
|
||||
|
||||
public static class UnmatchedQuote extends Exception {
|
||||
private static final long serialVersionUID = 0;
|
||||
|
||||
public final String variableName;
|
||||
|
||||
UnmatchedQuote(String variable) {
|
||||
this.variableName = variable;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1999, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1999, 2023, 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
|
||||
@ -52,7 +52,6 @@ import com.sun.tools.javac.file.CacheFSInfo;
|
||||
import com.sun.tools.javac.file.BaseFileManager;
|
||||
import com.sun.tools.javac.file.JavacFileManager;
|
||||
import com.sun.tools.javac.jvm.Target;
|
||||
import com.sun.tools.javac.main.CommandLine.UnmatchedQuote;
|
||||
import com.sun.tools.javac.platform.PlatformDescription;
|
||||
import com.sun.tools.javac.processing.AnnotationProcessingError;
|
||||
import com.sun.tools.javac.resources.CompilerProperties.Errors;
|
||||
@ -61,6 +60,9 @@ import com.sun.tools.javac.util.JCDiagnostic.DiagnosticInfo;
|
||||
import com.sun.tools.javac.util.Log.PrefixKind;
|
||||
import com.sun.tools.javac.util.Log.WriterKind;
|
||||
|
||||
import jdk.internal.opt.CommandLine;
|
||||
import jdk.internal.opt.CommandLine.UnmatchedQuote;
|
||||
|
||||
/** This class provides a command line interface to the javac compiler.
|
||||
*
|
||||
* <p><b>This is NOT part of any supported API.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2014, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2014, 2023, 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
|
||||
@ -217,6 +217,7 @@ import javax.tools.StandardLocation;
|
||||
*/
|
||||
module jdk.compiler {
|
||||
requires transitive java.compiler;
|
||||
requires jdk.internal.opt;
|
||||
requires jdk.zipfs;
|
||||
|
||||
exports com.sun.source.doctree;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2015, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2015, 2023, 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
|
||||
@ -29,6 +29,13 @@
|
||||
* @since 9
|
||||
*/
|
||||
module jdk.internal.opt {
|
||||
exports jdk.internal.joptsimple to jdk.jlink, jdk.jshell;
|
||||
exports jdk.internal.opt to jdk.jartool, jdk.jlink, jdk.jpackage;
|
||||
exports jdk.internal.joptsimple to
|
||||
jdk.jlink,
|
||||
jdk.jshell;
|
||||
exports jdk.internal.opt to
|
||||
jdk.compiler,
|
||||
jdk.jartool,
|
||||
jdk.javadoc,
|
||||
jdk.jlink,
|
||||
jdk.jpackage;
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2023, 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
|
||||
@ -50,12 +50,13 @@ import com.sun.tools.javac.file.BaseFileManager;
|
||||
import com.sun.tools.javac.file.JavacFileManager;
|
||||
import com.sun.tools.javac.jvm.Target;
|
||||
import com.sun.tools.javac.main.Arguments;
|
||||
import com.sun.tools.javac.main.CommandLine;
|
||||
import com.sun.tools.javac.util.ClientCodeException;
|
||||
import com.sun.tools.javac.util.Context;
|
||||
import com.sun.tools.javac.util.Log;
|
||||
import com.sun.tools.javac.util.StringUtils;
|
||||
|
||||
import jdk.internal.opt.CommandLine;
|
||||
|
||||
import jdk.javadoc.doclet.Doclet;
|
||||
import jdk.javadoc.doclet.Doclet.Option;
|
||||
import jdk.javadoc.doclet.DocletEnvironment;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2014, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2014, 2023, 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
|
||||
@ -61,6 +61,7 @@ module jdk.javadoc {
|
||||
|
||||
requires transitive java.compiler;
|
||||
requires transitive jdk.compiler;
|
||||
requires jdk.internal.opt;
|
||||
|
||||
exports jdk.javadoc.doclet;
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2016, 2023, 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
|
||||
@ -26,6 +26,7 @@
|
||||
* @bug 8166472 8162810
|
||||
* @summary Align javac support for at-files with launcher support
|
||||
* @modules jdk.compiler/com.sun.tools.javac.main
|
||||
* @modules jdk.internal.opt/jdk.internal.opt
|
||||
*/
|
||||
|
||||
import java.io.IOException;
|
||||
@ -34,7 +35,7 @@ import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import com.sun.tools.javac.main.CommandLine.Tokenizer;
|
||||
import jdk.internal.opt.CommandLine.Tokenizer;
|
||||
|
||||
public class AtFileTest {
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2017, 2023, 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
|
||||
@ -27,6 +27,7 @@
|
||||
* @summary Check JDK_JAVA_OPTIONS parsing behavior
|
||||
* @library /tools/lib
|
||||
* @modules jdk.compiler/com.sun.tools.javac.main
|
||||
* @modules jdk.internal.opt/jdk.internal.opt
|
||||
* @build toolbox.ToolBox toolbox.TestRunner
|
||||
* @run main EnvVariableTest
|
||||
*/
|
||||
@ -41,7 +42,7 @@ import java.util.List;
|
||||
|
||||
import toolbox.*;
|
||||
|
||||
import com.sun.tools.javac.main.CommandLine;
|
||||
import jdk.internal.opt.CommandLine;
|
||||
|
||||
public class EnvVariableTest extends TestRunner {
|
||||
final String testClasses;
|
||||
@ -118,7 +119,9 @@ public class EnvVariableTest extends TestRunner {
|
||||
|
||||
void test(String full, String... expectedArgs) throws Exception {
|
||||
task.envVar("JDK_JAVAC_OPTIONS", full);
|
||||
task.args("--add-exports", "jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED",
|
||||
task.args(
|
||||
"--add-exports", "jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED",
|
||||
"--add-exports", "jdk.internal.opt/jdk.internal.opt=ALL-UNNAMED",
|
||||
"-cp", testClasses, "EnvVariableTest$Tester");
|
||||
Task.Result tr = task.run(Task.Expect.SUCCESS);
|
||||
String expected = Tester.arrayToString(expectedArgs);
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2016, 2023, 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
|
||||
@ -97,6 +97,7 @@ public class ListModuleDeps {
|
||||
"java.base/jdk.internal.misc",
|
||||
"java.base/sun.reflect.annotation",
|
||||
"java.compiler",
|
||||
"jdk.internal.opt/jdk.internal.opt",
|
||||
}
|
||||
},
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user