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.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@ -109,7 +109,9 @@ define SetupInterimModule
|
|||||||
$$(INTERIM_LANGTOOLS_ADD_EXPORTS) \
|
$$(INTERIM_LANGTOOLS_ADD_EXPORTS) \
|
||||||
--patch-module java.base=$(BUILDTOOLS_OUTPUTDIR)/gensrc/java.base.interim \
|
--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=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 \
|
$1_DEPS_INTERIM := $$(addsuffix .interim, $$(filter \
|
||||||
|
@ -57,7 +57,9 @@ $(eval $(call SetupJavaCompilation, BUILD_TOOLS_JDK, \
|
|||||||
JAVAC_FLAGS := \
|
JAVAC_FLAGS := \
|
||||||
--add-exports java.desktop/sun.awt=ALL-UNNAMED \
|
--add-exports java.desktop/sun.awt=ALL-UNNAMED \
|
||||||
--add-exports java.base/sun.text=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)
|
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.comp=ALL-UNNAMED \
|
||||||
--add-exports jdk.compiler/com.sun.tools.javac.main=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.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
|
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/sun.invoke.util=jdk.compiler.interim \
|
||||||
--add-exports java.base/jdk.internal.javac=java.compiler.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 \
|
||||||
#
|
#
|
||||||
INTERIM_LANGTOOLS_MODULES_COMMA := $(strip $(subst $(SPACE),$(COMMA),$(strip \
|
INTERIM_LANGTOOLS_MODULES_COMMA := $(strip $(subst $(SPACE),$(COMMA),$(strip \
|
||||||
$(INTERIM_LANGTOOLS_MODULES))))
|
$(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.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# 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 := \
|
COMPILECREATESYMBOLS_ADD_EXPORTS := \
|
||||||
--add-exports java.base/jdk.internal.javac=java.compiler.interim,jdk.compiler.interim \
|
--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.api=ALL-UNNAMED \
|
||||||
--add-exports jdk.compiler.interim/com.sun.tools.javac.code=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 \
|
--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.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# 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 := \
|
COMPILECREATESYMBOLS_ADD_EXPORTS := \
|
||||||
--add-exports java.base/jdk.internal=java.compiler.interim,jdk.compiler.interim \
|
--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.api=ALL-UNNAMED \
|
||||||
--add-exports jdk.compiler.interim/com.sun.tools.javac.code=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 \
|
--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.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* 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.BaseFileManager;
|
||||||
import com.sun.tools.javac.file.JavacFileManager;
|
import com.sun.tools.javac.file.JavacFileManager;
|
||||||
import com.sun.tools.javac.jvm.Target;
|
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.platform.PlatformDescription;
|
||||||
import com.sun.tools.javac.processing.AnnotationProcessingError;
|
import com.sun.tools.javac.processing.AnnotationProcessingError;
|
||||||
import com.sun.tools.javac.resources.CompilerProperties.Errors;
|
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.PrefixKind;
|
||||||
import com.sun.tools.javac.util.Log.WriterKind;
|
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.
|
/** This class provides a command line interface to the javac compiler.
|
||||||
*
|
*
|
||||||
* <p><b>This is NOT part of any supported API.
|
* <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.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -217,6 +217,7 @@ import javax.tools.StandardLocation;
|
|||||||
*/
|
*/
|
||||||
module jdk.compiler {
|
module jdk.compiler {
|
||||||
requires transitive java.compiler;
|
requires transitive java.compiler;
|
||||||
|
requires jdk.internal.opt;
|
||||||
requires jdk.zipfs;
|
requires jdk.zipfs;
|
||||||
|
|
||||||
exports com.sun.source.doctree;
|
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.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -29,6 +29,13 @@
|
|||||||
* @since 9
|
* @since 9
|
||||||
*/
|
*/
|
||||||
module jdk.internal.opt {
|
module jdk.internal.opt {
|
||||||
exports jdk.internal.joptsimple to jdk.jlink, jdk.jshell;
|
exports jdk.internal.joptsimple to
|
||||||
exports jdk.internal.opt to jdk.jartool, jdk.jlink, jdk.jpackage;
|
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.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* 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.file.JavacFileManager;
|
||||||
import com.sun.tools.javac.jvm.Target;
|
import com.sun.tools.javac.jvm.Target;
|
||||||
import com.sun.tools.javac.main.Arguments;
|
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.ClientCodeException;
|
||||||
import com.sun.tools.javac.util.Context;
|
import com.sun.tools.javac.util.Context;
|
||||||
import com.sun.tools.javac.util.Log;
|
import com.sun.tools.javac.util.Log;
|
||||||
import com.sun.tools.javac.util.StringUtils;
|
import com.sun.tools.javac.util.StringUtils;
|
||||||
|
|
||||||
|
import jdk.internal.opt.CommandLine;
|
||||||
|
|
||||||
import jdk.javadoc.doclet.Doclet;
|
import jdk.javadoc.doclet.Doclet;
|
||||||
import jdk.javadoc.doclet.Doclet.Option;
|
import jdk.javadoc.doclet.Doclet.Option;
|
||||||
import jdk.javadoc.doclet.DocletEnvironment;
|
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.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* 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 java.compiler;
|
||||||
requires transitive jdk.compiler;
|
requires transitive jdk.compiler;
|
||||||
|
requires jdk.internal.opt;
|
||||||
|
|
||||||
exports jdk.javadoc.doclet;
|
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.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -26,6 +26,7 @@
|
|||||||
* @bug 8166472 8162810
|
* @bug 8166472 8162810
|
||||||
* @summary Align javac support for at-files with launcher support
|
* @summary Align javac support for at-files with launcher support
|
||||||
* @modules jdk.compiler/com.sun.tools.javac.main
|
* @modules jdk.compiler/com.sun.tools.javac.main
|
||||||
|
* @modules jdk.internal.opt/jdk.internal.opt
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -34,7 +35,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import com.sun.tools.javac.main.CommandLine.Tokenizer;
|
import jdk.internal.opt.CommandLine.Tokenizer;
|
||||||
|
|
||||||
public class AtFileTest {
|
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.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -27,6 +27,7 @@
|
|||||||
* @summary Check JDK_JAVA_OPTIONS parsing behavior
|
* @summary Check JDK_JAVA_OPTIONS parsing behavior
|
||||||
* @library /tools/lib
|
* @library /tools/lib
|
||||||
* @modules jdk.compiler/com.sun.tools.javac.main
|
* @modules jdk.compiler/com.sun.tools.javac.main
|
||||||
|
* @modules jdk.internal.opt/jdk.internal.opt
|
||||||
* @build toolbox.ToolBox toolbox.TestRunner
|
* @build toolbox.ToolBox toolbox.TestRunner
|
||||||
* @run main EnvVariableTest
|
* @run main EnvVariableTest
|
||||||
*/
|
*/
|
||||||
@ -41,7 +42,7 @@ import java.util.List;
|
|||||||
|
|
||||||
import toolbox.*;
|
import toolbox.*;
|
||||||
|
|
||||||
import com.sun.tools.javac.main.CommandLine;
|
import jdk.internal.opt.CommandLine;
|
||||||
|
|
||||||
public class EnvVariableTest extends TestRunner {
|
public class EnvVariableTest extends TestRunner {
|
||||||
final String testClasses;
|
final String testClasses;
|
||||||
@ -118,7 +119,9 @@ public class EnvVariableTest extends TestRunner {
|
|||||||
|
|
||||||
void test(String full, String... expectedArgs) throws Exception {
|
void test(String full, String... expectedArgs) throws Exception {
|
||||||
task.envVar("JDK_JAVAC_OPTIONS", full);
|
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");
|
"-cp", testClasses, "EnvVariableTest$Tester");
|
||||||
Task.Result tr = task.run(Task.Expect.SUCCESS);
|
Task.Result tr = task.run(Task.Expect.SUCCESS);
|
||||||
String expected = Tester.arrayToString(expectedArgs);
|
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.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* 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/jdk.internal.misc",
|
||||||
"java.base/sun.reflect.annotation",
|
"java.base/sun.reflect.annotation",
|
||||||
"java.compiler",
|
"java.compiler",
|
||||||
|
"jdk.internal.opt/jdk.internal.opt",
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user