8243396: Add a brief description of argfiles to the javadoc help output

Reviewed-by: prappo
This commit is contained in:
Jonathan Gibbons 2020-05-19 10:11:13 -07:00
parent 9d4872f612
commit 554e988bea
4 changed files with 81 additions and 1 deletions

View file

@ -240,7 +240,10 @@ public class Start {
String primaryName = option.primaryName; String primaryName = option.primaryName;
String parameters; String parameters;
if (option.hasArg || primaryName.endsWith(":")) { if (option.hasArg || primaryName.endsWith(":")) {
String sep = primaryName.equals(ToolOptions.J) || primaryName.endsWith(":") ? "" : " "; String sep = primaryName.endsWith(":")
|| primaryName.equals(ToolOptions.AT)
|| primaryName.equals(ToolOptions.J)
? "" : " ";
parameters = sep + option.getParameters(messager); parameters = sep + option.getParameters(messager);
} else { } else {
parameters = ""; parameters = "";

View file

@ -66,6 +66,7 @@ public class ToolOptions {
static final String DOCLET = "-doclet"; static final String DOCLET = "-doclet";
static final String DOCLET_PATH = "-docletpath"; static final String DOCLET_PATH = "-docletpath";
static final String DUMP_ON_ERROR = "--dump-on-error"; static final String DUMP_ON_ERROR = "--dump-on-error";
static final String AT = "@";
static final String J = "-J"; static final String J = "-J";
static final String LOCALE = "-locale"; static final String LOCALE = "-locale";
@ -587,6 +588,17 @@ public class ToolOptions {
} }
}, },
// This option exists so that it is documented in the command-line help.
// It is actually implemented by expanding argv early on during execution,
// and can only be used when using the command-line and related interfaces
// (i.e. not the javax.tools API).
new ToolOption(AT, STANDARD, true) {
@Override
public void process() {
throw new AssertionError("the @ option is handled separately");
}
},
new ToolOption("--version", STANDARD) { new ToolOption("--version", STANDARD) {
@Override @Override
public void process() throws OptionException { public void process() throws OptionException {
@ -648,6 +660,7 @@ public class ToolOptions {
return "main.opt." return "main.opt."
+ optionName + optionName
.replaceAll("^-*", "") // remove leading '-' .replaceAll("^-*", "") // remove leading '-'
.replaceAll("^@", "at") // handle '@'
.replaceAll("[^A-Za-z0-9]+$", "") // remove trailing non-alphanumeric .replaceAll("[^A-Za-z0-9]+$", "") // remove trailing non-alphanumeric
.replaceAll("[^A-Za-z0-9]", ".") // replace internal non-alphanumeric .replaceAll("[^A-Za-z0-9]", ".") // replace internal non-alphanumeric
+ suffix; + suffix;

View file

@ -32,6 +32,11 @@ main.usage=Usage:\n\
\ javadoc [options] [packagenames] [sourcefiles] [@files]\n\ \ javadoc [options] [packagenames] [sourcefiles] [@files]\n\
where options include: where options include:
main.opt.at.arg=\
<file>
main.opt.at.desc=\
Read options and filenames from file
main.opt.public.desc=\ main.opt.public.desc=\
Show only public types and members. For named modules,\n\ Show only public types and members. For named modules,\n\
show exported packages and the module''s API. show exported packages and the module''s API.

View file

@ -0,0 +1,59 @@
/*
* Copyright (c) 2020, 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 8243396
* @summary general tests for command-line help
* @library ../lib
* @modules jdk.javadoc/jdk.javadoc.internal.tool
* @build javadoc.tester.*
* @run main CommandLineHelpTest
*/
import java.nio.file.Path;
import javadoc.tester.JavadocTester;
public class CommandLineHelpTest extends JavadocTester {
public static void main(String... args) throws Exception {
CommandLineHelpTest tester = new CommandLineHelpTest();
tester.runTests(m -> new Object[] { Path.of(m.getName()) });
}
@Test
public void testStandard(Path base) {
javadoc("-d", base.resolve("out").toString(),
"--help");
checkExit(Exit.OK);
// check no resources missing
checkOutput(Output.OUT, false,
"message file broken");
checkOutput(Output.OUT, true,
"@<file>",
"-J<flag>");
}
}