diff --git a/LICENSE-binary b/LICENSE-binary index fa78fa510a3..a461de2ae4c 100644 --- a/LICENSE-binary +++ b/LICENSE-binary @@ -245,7 +245,7 @@ com.squareup.okhttp3:okhttp:4.10.0 com.squareup.okio:okio:3.2.0 com.zaxxer:HikariCP:4.0.3 commons-beanutils:commons-beanutils:1.9.4 -commons-cli:commons-cli:1.2 +commons-cli:commons-cli:1.5.0 commons-codec:commons-codec:1.11 commons-collections:commons-collections:3.2.2 commons-daemon:commons-daemon:1.0.13 diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/service/launcher/ServiceLauncher.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/service/launcher/ServiceLauncher.java index cef69ebd4b7..558202f6f45 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/service/launcher/ServiceLauncher.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/service/launcher/ServiceLauncher.java @@ -33,7 +33,6 @@ import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; -import org.apache.commons.cli.OptionBuilder; import org.apache.commons.cli.Options; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.audit.CommonAuditContext; @@ -362,29 +361,28 @@ protected String getUsageMessage() { /** * Override point: create an options instance to combine with the * standard options set. - * Important. Synchronize uses of {@link OptionBuilder} - * with {@code OptionBuilder.class} + * Important. Synchronize uses of {@link Option} + * with {@code Option.class} * @return the new options */ @SuppressWarnings("static-access") protected Options createOptions() { - synchronized (OptionBuilder.class) { + synchronized (Option.class) { Options options = new Options(); - Option oconf = OptionBuilder.withArgName("configuration file") + Option oconf = Option.builder(ARG_CONF_SHORT).argName("configuration file") .hasArg() - .withDescription("specify an application configuration file") - .withLongOpt(ARG_CONF) - .create(ARG_CONF_SHORT); - Option confclass = OptionBuilder.withArgName("configuration classname") + .desc("specify an application configuration file") + .longOpt(ARG_CONF) + .build(); + Option confclass = Option.builder(ARG_CONFCLASS_SHORT).argName("configuration classname") .hasArg() - .withDescription( - "Classname of a Hadoop Configuration subclass to load") - .withLongOpt(ARG_CONFCLASS) - .create(ARG_CONFCLASS_SHORT); - Option property = OptionBuilder.withArgName("property=value") + .desc("Classname of a Hadoop Configuration subclass to load") + .longOpt(ARG_CONFCLASS) + .build(); + Option property = Option.builder("D").argName("property=value") .hasArg() - .withDescription("use value for given property") - .create('D'); + .desc("use value for given property") + .build(); options.addOption(oconf); options.addOption(property); options.addOption(confclass); diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/ConfTest.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/ConfTest.java index 359b1c31ae9..a2d5b415ed0 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/ConfTest.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/ConfTest.java @@ -46,7 +46,6 @@ import org.apache.commons.cli.GnuParser; import org.apache.commons.cli.MissingArgumentException; import org.apache.commons.cli.Option; -import org.apache.commons.cli.OptionBuilder; import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; import org.apache.hadoop.classification.InterfaceAudience; @@ -230,8 +229,8 @@ public static void main(String[] args) throws IOException { GenericOptionsParser genericParser = new GenericOptionsParser(args); String[] remainingArgs = genericParser.getRemainingArgs(); - Option conf = OptionBuilder.hasArg().create("conffile"); - Option help = OptionBuilder.withLongOpt("help").create('h'); + Option conf = Option.builder("conffile").hasArg().build(); + Option help = Option.builder("h").longOpt("help").hasArg().build(); Options opts = new Options().addOption(conf).addOption(help); CommandLineParser specificParser = new GnuParser(); CommandLine cmd = null; diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/GenericOptionsParser.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/GenericOptionsParser.java index 81e1fb5d212..d95878b5670 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/GenericOptionsParser.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/GenericOptionsParser.java @@ -32,7 +32,6 @@ import org.apache.commons.cli.GnuParser; import org.apache.commons.cli.HelpFormatter; import org.apache.commons.cli.Option; -import org.apache.commons.cli.OptionBuilder; import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; import org.apache.hadoop.classification.InterfaceAudience; @@ -225,51 +224,50 @@ public boolean isParseSuccessful() { /** * @return Specify properties of each generic option. - * Important: as {@link OptionBuilder} is not thread safe, subclasses - * must synchronize use on {@code OptionBuilder.class} + * Important: as {@link Option} is not thread safe, subclasses + * must synchronize use on {@code Option.class} * @param opts input opts. */ @SuppressWarnings("static-access") protected Options buildGeneralOptions(Options opts) { - synchronized (OptionBuilder.class) { - Option fs = OptionBuilder.withArgName("file:///|hdfs://namenode:port") + synchronized (Option.class) { + Option fs = Option.builder("fs").argName("file:///|hdfs://namenode:port") .hasArg() - .withDescription("specify default filesystem URL to use, " + .desc("specify default filesystem URL to use, " + "overrides 'fs.defaultFS' property from configurations.") - .create("fs"); - Option jt = OptionBuilder.withArgName("local|resourcemanager:port") + .build(); + Option jt = Option.builder("jt").argName("local|resourcemanager:port") .hasArg() - .withDescription("specify a ResourceManager") - .create("jt"); - Option oconf = OptionBuilder.withArgName("configuration file") + .desc("specify a ResourceManager") + .build(); + Option oconf = Option.builder("conf").argName("configuration file") .hasArg() - .withDescription("specify an application configuration file") - .create("conf"); - Option property = OptionBuilder.withArgName("property=value") + .desc("specify an application configuration file") + .build(); + Option property = Option.builder("D").argName("property=value") .hasArg() - .withDescription("use value for given property") - .create('D'); - Option libjars = OptionBuilder.withArgName("paths") + .desc("use value for given property") + .build(); + Option libjars = Option.builder("libjars").argName("paths") .hasArg() - .withDescription( - "comma separated jar files to include in the classpath.") - .create("libjars"); - Option files = OptionBuilder.withArgName("paths") + .desc("comma separated jar files to include in the classpath.") + .build(); + Option files = Option.builder("files").argName("paths") .hasArg() - .withDescription("comma separated files to be copied to the " + + .desc("comma separated files to be copied to the " + "map reduce cluster") - .create("files"); - Option archives = OptionBuilder.withArgName("paths") + .build(); + Option archives = Option.builder("archives").argName("paths") .hasArg() - .withDescription("comma separated archives to be unarchived" + + .desc("comma separated archives to be unarchived" + " on the compute machines.") - .create("archives"); + .build(); // file with security tokens - Option tokensFile = OptionBuilder.withArgName("tokensFile") + Option tokensFile = Option.builder("tokenCacheFile").argName("tokensFile") .hasArg() - .withDescription("name of the file with the tokens") - .create("tokenCacheFile"); + .desc("name of the file with the tokens") + .build(); opts.addOption(fs); diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/file/tfile/TestTFileSeek.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/file/tfile/TestTFileSeek.java index f1eaec23000..fc9273163e0 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/file/tfile/TestTFileSeek.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/file/tfile/TestTFileSeek.java @@ -29,10 +29,9 @@ import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.CommandLineParser; -import org.apache.commons.cli.GnuParser; +import org.apache.commons.cli.DefaultParser; import org.apache.commons.cli.HelpFormatter; import org.apache.commons.cli.Option; -import org.apache.commons.cli.OptionBuilder; import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; import org.apache.hadoop.conf.Configuration; @@ -272,7 +271,7 @@ public MyOptions(String[] args) { try { Options opts = buildOptions(); - CommandLineParser parser = new GnuParser(); + CommandLineParser parser = new DefaultParser(); CommandLine line = parser.parse(opts, args, true); processOptions(line, opts); validateOptions(); @@ -290,81 +289,56 @@ public boolean proceed() { private Options buildOptions() { Option compress = - OptionBuilder.withLongOpt("compress").withArgName("[none|lzo|gz]") - .hasArg().withDescription("compression scheme").create('c'); + Option.builder("c").longOpt("compress").argName("[none|lzo|gz]") + .hasArg().desc("compression scheme").build(); Option fileSize = - OptionBuilder.withLongOpt("file-size").withArgName("size-in-MB") - .hasArg().withDescription("target size of the file (in MB).") - .create('s'); + Option.builder("s").longOpt("file-size").argName("size-in-MB") + .hasArg().desc("target size of the file (in MB).").build(); Option fsInputBufferSz = - OptionBuilder.withLongOpt("fs-input-buffer").withArgName("size") - .hasArg().withDescription( - "size of the file system input buffer (in bytes).").create( - 'i'); + Option.builder("i").longOpt("fs-input-buffer").argName("size") + .hasArg().desc("size of the file system input buffer (in bytes).").build(); Option fsOutputBufferSize = - OptionBuilder.withLongOpt("fs-output-buffer").withArgName("size") - .hasArg().withDescription( - "size of the file system output buffer (in bytes).").create( - 'o'); + Option.builder("o").longOpt("fs-output-buffer").argName("size") + .hasArg().desc("size of the file system output buffer (in bytes).").build(); Option keyLen = - OptionBuilder - .withLongOpt("key-length") - .withArgName("min,max") - .hasArg() - .withDescription( - "the length range of the key (in bytes)") - .create('k'); + Option.builder("k").longOpt("key-length").argName("min,max") + .hasArg().desc("the length range of the key (in bytes)").build(); Option valueLen = - OptionBuilder - .withLongOpt("value-length") - .withArgName("min,max") - .hasArg() - .withDescription( - "the length range of the value (in bytes)") - .create('v'); + Option.builder("v").longOpt("value-length").argName("min,max") + .hasArg().desc("the length range of the value (in bytes)").build(); Option blockSz = - OptionBuilder.withLongOpt("block").withArgName("size-in-KB").hasArg() - .withDescription("minimum block size (in KB)").create('b'); + Option.builder("b").longOpt("block").argName("size-in-KB").hasArg() + .desc("minimum block size (in KB)").build(); Option seed = - OptionBuilder.withLongOpt("seed").withArgName("long-int").hasArg() - .withDescription("specify the seed").create('S'); + Option.builder("S").longOpt("seed").argName("long-int").hasArg() + .desc("specify the seed").build(); Option operation = - OptionBuilder.withLongOpt("operation").withArgName("r|w|rw").hasArg() - .withDescription( - "action: seek-only, create-only, seek-after-create").create( - 'x'); + Option.builder("x").longOpt("operation").argName("r|w|rw").hasArg() + .desc("action: seek-only, create-only, seek-after-create").build(); Option rootDir = - OptionBuilder.withLongOpt("root-dir").withArgName("path").hasArg() - .withDescription( - "specify root directory where files will be created.") - .create('r'); + Option.builder("r").longOpt("root-dir").argName("path").hasArg() + .desc("specify root directory where files will be created.").build(); Option file = - OptionBuilder.withLongOpt("file").withArgName("name").hasArg() - .withDescription("specify the file name to be created or read.") - .create('f'); + Option.builder("f").longOpt("file").argName("name").hasArg() + .desc("specify the file name to be created or read.").build(); Option seekCount = - OptionBuilder - .withLongOpt("seek") - .withArgName("count") - .hasArg() - .withDescription( - "specify how many seek operations we perform (requires -x r or -x rw.") - .create('n'); + Option.builder("n").longOpt("seek").argName("count").hasArg() + .desc("specify how many seek operations we perform (requires -x r or -x rw.").build(); Option help = - OptionBuilder.withLongOpt("help").hasArg(false).withDescription( - "show this screen").create("h"); + Option.builder("h").longOpt("help").hasArg(false) + .desc("show this screen").build(); return new Options().addOption(compress).addOption(fileSize).addOption( fsInputBufferSz).addOption(fsOutputBufferSize).addOption(keyLen) diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/file/tfile/TestTFileSeqFileComparison.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/file/tfile/TestTFileSeqFileComparison.java index fdd622a7f6a..361623cfda8 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/file/tfile/TestTFileSeqFileComparison.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/file/tfile/TestTFileSeqFileComparison.java @@ -30,10 +30,9 @@ import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.CommandLineParser; -import org.apache.commons.cli.GnuParser; +import org.apache.commons.cli.DefaultParser; import org.apache.commons.cli.HelpFormatter; import org.apache.commons.cli.Option; -import org.apache.commons.cli.OptionBuilder; import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; import org.apache.hadoop.conf.Configuration; @@ -553,7 +552,7 @@ public MyOptions(String[] args) { try { Options opts = buildOptions(); - CommandLineParser parser = new GnuParser(); + CommandLineParser parser = new DefaultParser(); CommandLine line = parser.parse(opts, args, true); processOptions(line, opts); validateOptions(); @@ -571,87 +570,70 @@ public boolean proceed() { private Options buildOptions() { Option compress = - OptionBuilder.withLongOpt("compress").withArgName("[none|lzo|gz]") - .hasArg().withDescription("compression scheme").create('c'); + Option.builder("c").longOpt("compress").argName("[none|lzo|gz]") + .hasArg().desc("compression scheme").build(); Option ditSize = - OptionBuilder.withLongOpt("dict").withArgName("size").hasArg() - .withDescription("number of dictionary entries").create('d'); + Option.builder("d").longOpt("dict").argName("size") + .hasArg().desc("number of dictionary entries").build(); Option fileSize = - OptionBuilder.withLongOpt("file-size").withArgName("size-in-MB") - .hasArg().withDescription("target size of the file (in MB).") - .create('s'); + Option.builder("s").longOpt("file-size").argName("size-in-MB") + .hasArg().desc("target size of the file (in MB).").build(); Option format = - OptionBuilder.withLongOpt("format").withArgName("[tfile|seqfile]") - .hasArg().withDescription("choose TFile or SeqFile").create('f'); + Option.builder("f").longOpt("format").argName("[tfile|seqfile]") + .hasArg().desc("choose TFile or SeqFile").build(); Option fsInputBufferSz = - OptionBuilder.withLongOpt("fs-input-buffer").withArgName("size") - .hasArg().withDescription( - "size of the file system input buffer (in bytes).").create( - 'i'); + Option.builder("i").longOpt("fs-input-buffer").argName("size") + .hasArg().desc("size of the file system input buffer (in bytes).").build(); Option fsOutputBufferSize = - OptionBuilder.withLongOpt("fs-output-buffer").withArgName("size") - .hasArg().withDescription( - "size of the file system output buffer (in bytes).").create( - 'o'); + Option.builder("o").longOpt("fs-output-buffer").argName("size") + .hasArg().desc("size of the file system output buffer (in bytes).").build(); Option keyLen = - OptionBuilder - .withLongOpt("key-length") - .withArgName("length") - .hasArg() - .withDescription( - "base length of the key (in bytes), actual length varies in [base, 2*base)") - .create('k'); + Option.builder("o").longOpt("key-length").argName("length") + .hasArg() + .desc("base length of the key (in bytes), actual length varies in [base, 2*base)") + .build(); Option valueLen = - OptionBuilder - .withLongOpt("value-length") - .withArgName("length") - .hasArg() - .withDescription( - "base length of the value (in bytes), actual length varies in [base, 2*base)") - .create('v'); + Option.builder("v").longOpt("key-length").argName("length") + .longOpt("value-length").argName("length").hasArg() + .desc("base length of the value (in bytes), actual length varies in [base, 2*base)") + .build(); Option wordLen = - OptionBuilder.withLongOpt("word-length").withArgName("min,max") - .hasArg().withDescription( - "range of dictionary word length (in bytes)").create('w'); + Option.builder("w").longOpt("word-length").argName("min,max") + .hasArg().desc("range of dictionary word length (in bytes)").build(); Option blockSz = - OptionBuilder.withLongOpt("block").withArgName("size-in-KB").hasArg() - .withDescription("minimum block size (in KB)").create('b'); + Option.builder("b").longOpt("block").argName("size-in-KB").hasArg() + .desc("minimum block size (in KB)").build(); Option seed = - OptionBuilder.withLongOpt("seed").withArgName("long-int").hasArg() - .withDescription("specify the seed").create('S'); + Option.builder("S").longOpt("seed").argName("long-int").hasArg() + .desc("specify the seed").build(); Option operation = - OptionBuilder.withLongOpt("operation").withArgName("r|w|rw").hasArg() - .withDescription( - "action: read-only, create-only, read-after-create").create( - 'x'); + Option.builder("x").longOpt("operation").argName("r|w|rw").hasArg() + .desc("action: read-only, create-only, read-after-create").build(); Option rootDir = - OptionBuilder.withLongOpt("root-dir").withArgName("path").hasArg() - .withDescription( - "specify root directory where files will be created.") - .create('r'); + Option.builder("r").longOpt("root-dir").argName("path").hasArg() + .desc("specify root directory where files will be created.").build(); Option help = - OptionBuilder.withLongOpt("help").hasArg(false).withDescription( - "show this screen").create("h"); + Option.builder("h").longOpt("help").hasArg(false) + .desc("show this screen").build(); return new Options().addOption(compress).addOption(ditSize).addOption( fileSize).addOption(format).addOption(fsInputBufferSz).addOption( fsOutputBufferSize).addOption(keyLen).addOption(wordLen).addOption( blockSz).addOption(rootDir).addOption(valueLen).addOption(operation) .addOption(help); - } private void processOptions(CommandLine line, Options opts) diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/RPCCallBenchmark.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/RPCCallBenchmark.java index cca40f97c57..1204aaa69b6 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/RPCCallBenchmark.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/RPCCallBenchmark.java @@ -23,7 +23,7 @@ import org.apache.commons.cli.CommandLineParser; import org.apache.commons.cli.GnuParser; import org.apache.commons.cli.HelpFormatter; -import org.apache.commons.cli.OptionBuilder; +import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; import org.apache.hadoop.conf.Configuration; @@ -88,59 +88,78 @@ private void validateOptions() throws ParseException { } } - @SuppressWarnings("static-access") private Options buildOptions() { Options opts = new Options(); opts.addOption( - OptionBuilder.withLongOpt("serverThreads").hasArg(true) - .withArgName("numthreads") - .withDescription("number of server threads (handlers) to run (or 0 to not run server)") - .create("s")); - opts.addOption( - OptionBuilder.withLongOpt("serverReaderThreads").hasArg(true) - .withArgName("threads") - .withDescription("number of server reader threads to run") - .create("r")); - - - opts.addOption( - OptionBuilder.withLongOpt("clientThreads").hasArg(true) - .withArgName("numthreads") - .withDescription("number of client threads to run (or 0 to not run client)") - .create("c")); + Option.builder("s") + .longOpt("serverThreads") + .hasArg(true) + .argName("numthreads") + .desc("number of server threads (handlers) to run (or 0 to not run server)") + .build()); opts.addOption( - OptionBuilder.withLongOpt("messageSize").hasArg(true) - .withArgName("bytes") - .withDescription("size of call parameter in bytes") - .create("m")); + Option.builder("r") + .longOpt("serverReaderThreads") + .hasArg(true) + .argName("threads") + .desc("number of server reader threads to run") + .build()); opts.addOption( - OptionBuilder.withLongOpt("time").hasArg(true) - .withArgName("seconds") - .withDescription("number of seconds to run clients for") - .create("t")); + Option.builder("c") + .longOpt("clientThreads") + .hasArg(true) + .argName("numthreads") + .desc("number of client threads to run (or 0 to not run client)") + .build()); + opts.addOption( - OptionBuilder.withLongOpt("port").hasArg(true) - .withArgName("port") - .withDescription("port to listen or connect on") - .create("p")); + Option.builder("m") + .longOpt("messageSize") + .hasArg(true) + .argName("bytes") + .desc("size of call parameter in bytes") + .build()); + opts.addOption( - OptionBuilder.withLongOpt("host").hasArg(true) - .withArgName("addr") - .withDescription("host to listen or connect on") - .create('h')); + Option.builder("t") + .longOpt("time") + .hasArg(true) + .argName("seconds") + .desc("number of seconds to run clients for") + .build()); + + opts.addOption( + Option.builder("p") + .longOpt("port") + .hasArg(true) + .argName("port") + .desc("port to listen or connect on") + .build()); + + opts.addOption( + Option.builder("h") + .longOpt("host") + .hasArg(true) + .argName("addr") + .desc("host to listen or connect on") + .build()); opts.addOption( - OptionBuilder.withLongOpt("engine").hasArg(true) - .withArgName("protobuf") - .withDescription("engine to use") - .create('e')); + Option.builder("e") + .longOpt("engine") + .hasArg(true) + .argName("protobuf") + .desc("engine to use") + .build()); opts.addOption( - OptionBuilder.withLongOpt("help").hasArg(false) - .withDescription("show this screen") - .create('?')); + Option.builder("?") + .longOpt("help") + .hasArg(false) + .desc("show this screen") + .build()); return opts; } diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/util/TestGenericOptionsParser.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/util/TestGenericOptionsParser.java index 592b0bdc448..84893a2eff0 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/util/TestGenericOptionsParser.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/util/TestGenericOptionsParser.java @@ -34,7 +34,6 @@ import java.util.Map; import org.apache.commons.cli.Option; -import org.apache.commons.cli.OptionBuilder; import org.apache.commons.cli.Options; import org.apache.commons.math3.util.Pair; import org.apache.hadoop.conf.Configuration; @@ -198,10 +197,11 @@ public void testEmptyFilenames() throws Exception { @Test public void testCreateWithOptions() throws Exception { // Create new option newOpt - Option opt = OptionBuilder.withArgName("int") - .hasArg() - .withDescription("A new option") - .create("newOpt"); + + Option opt = Option.builder("newOpt").argName("int") + .hasArg() + .desc("A new option") + .build(); Options opts = new Options(); opts.addOption(opt); diff --git a/hadoop-common-project/hadoop-registry/src/main/java/org/apache/hadoop/registry/cli/RegistryCli.java b/hadoop-common-project/hadoop-registry/src/main/java/org/apache/hadoop/registry/cli/RegistryCli.java index db7270bb92e..827bbd22ac2 100644 --- a/hadoop-common-project/hadoop-registry/src/main/java/org/apache/hadoop/registry/cli/RegistryCli.java +++ b/hadoop-common-project/hadoop-registry/src/main/java/org/apache/hadoop/registry/cli/RegistryCli.java @@ -32,7 +32,6 @@ import org.apache.commons.cli.CommandLineParser; import org.apache.commons.cli.GnuParser; import org.apache.commons.cli.Option; -import org.apache.commons.cli.OptionBuilder; import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; import org.apache.hadoop.conf.Configuration; @@ -246,29 +245,29 @@ public int resolve(String[] args) { } public int bind(String[] args) { - Option rest = OptionBuilder.withArgName("rest") + Option rest = Option.builder("rest").argName("rest") .hasArg() - .withDescription("rest Option") - .create("rest"); - Option webui = OptionBuilder.withArgName("webui") + .desc("rest Option") + .build(); + Option webui = Option.builder("webui").argName("webui") .hasArg() - .withDescription("webui Option") - .create("webui"); - Option inet = OptionBuilder.withArgName("inet") - .withDescription("inet Option") - .create("inet"); - Option port = OptionBuilder.withArgName("port") + .desc("webui Option") + .build(); + Option inet = Option.builder("inet").argName("inet") + .desc("inet Option") + .build(); + Option port = Option.builder("p").argName("port") .hasArg() - .withDescription("port to listen on [9999]") - .create("p"); - Option host = OptionBuilder.withArgName("host") + .desc("port to listen on [9999]") + .build(); + Option host = Option.builder("h").argName("host") .hasArg() - .withDescription("host name") - .create("h"); - Option apiOpt = OptionBuilder.withArgName("api") + .desc("host name") + .build(); + Option apiOpt = Option.builder("api").argName("api") .hasArg() - .withDescription("api") - .create("api"); + .desc("api") + .build(); Options inetOption = new Options(); inetOption.addOption(inet); inetOption.addOption(port); @@ -412,9 +411,9 @@ public int mknode(String[] args) { @SuppressWarnings("unchecked") public int rm(String[] args) { - Option recursive = OptionBuilder.withArgName("recursive") - .withDescription("delete recursively") - .create("r"); + Option recursive = Option.builder("r").argName("recursive") + .desc("delete recursively") + .build(); Options rmOption = new Options(); rmOption.addOption(recursive); diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/mover/Mover.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/mover/Mover.java index c8c43967dd0..d8fb81b2adb 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/mover/Mover.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/mover/Mover.java @@ -724,12 +724,12 @@ public static class Cli extends Configured implements Tool { private static Options buildCliOptions() { Options opts = new Options(); - Option file = OptionBuilder.withArgName("pathsFile").hasArg() - .withDescription("a local file containing files/dirs to migrate") - .create("f"); - Option paths = OptionBuilder.withArgName("paths").hasArgs() - .withDescription("specify space separated files/dirs to migrate") - .create("p"); + Option file = Option.builder("f").argName("pathsFile").hasArg() + .desc("a local file containing files/dirs to migrate") + .build(); + Option paths = Option.builder("p").argName("paths").hasArgs() + .desc("specify space separated files/dirs to migrate") + .build(); OptionGroup group = new OptionGroup(); group.addOption(file); group.addOption(paths); diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/DiskBalancerCLI.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/DiskBalancerCLI.java index da9f345dde5..14b6e8949c5 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/DiskBalancerCLI.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/DiskBalancerCLI.java @@ -19,7 +19,6 @@ import org.apache.commons.cli.BasicParser; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; -import org.apache.commons.cli.OptionBuilder; import org.apache.commons.cli.Options; import org.apache.hadoop.HadoopIllegalArgumentException; import org.apache.hadoop.conf.Configuration; @@ -279,34 +278,34 @@ public static Options getReportOptions() { */ private void addPlanCommands(Options opt) { - Option plan = OptionBuilder.withLongOpt(PLAN) - .withDescription("Hostname, IP address or UUID of datanode " + + Option plan = Option.builder().longOpt(PLAN) + .desc("Hostname, IP address or UUID of datanode " + "for which a plan is created.") .hasArg() - .create(); + .build(); getPlanOptions().addOption(plan); opt.addOption(plan); - Option outFile = OptionBuilder.withLongOpt(OUTFILE).hasArg() - .withDescription( + Option outFile = Option.builder().longOpt(OUTFILE).hasArg() + .desc( "Local path of file to write output to, if not specified " + "defaults will be used.") - .create(); + .build(); getPlanOptions().addOption(outFile); opt.addOption(outFile); - Option bandwidth = OptionBuilder.withLongOpt(BANDWIDTH).hasArg() - .withDescription( + Option bandwidth = Option.builder().longOpt(BANDWIDTH).hasArg() + .desc( "Maximum disk bandwidth (MB/s) in integer to be consumed by " + "diskBalancer. e.g. 10 MB/s.") - .create(); + .build(); getPlanOptions().addOption(bandwidth); opt.addOption(bandwidth); - Option threshold = OptionBuilder.withLongOpt(THRESHOLD) + Option threshold = Option.builder().longOpt(THRESHOLD) .hasArg() - .withDescription("Percentage of data skew that is tolerated before" + .desc("Percentage of data skew that is tolerated before" + " disk balancer starts working. For example, if" + " total data on a 2 disk node is 100 GB then disk" + " balancer calculates the expected value on each disk," @@ -314,22 +313,22 @@ private void addPlanCommands(Options opt) { + " on a single disk needs to be more than 60 GB" + " (50 GB + 10% tolerance value) for Disk balancer to" + " balance the disks.") - .create(); + .build(); getPlanOptions().addOption(threshold); opt.addOption(threshold); - Option maxError = OptionBuilder.withLongOpt(MAXERROR) + Option maxError = Option.builder().longOpt(MAXERROR) .hasArg() - .withDescription("Describes how many errors " + + .desc("Describes how many errors " + "can be tolerated while copying between a pair of disks.") - .create(); + .build(); getPlanOptions().addOption(maxError); opt.addOption(maxError); - Option verbose = OptionBuilder.withLongOpt(VERBOSE) - .withDescription("Print out the summary of the plan on console") - .create(); + Option verbose = Option.builder().longOpt(VERBOSE) + .desc("Print out the summary of the plan on console") + .build(); getPlanOptions().addOption(verbose); opt.addOption(verbose); } @@ -338,11 +337,11 @@ private void addPlanCommands(Options opt) { * Adds Help to the options. */ private void addHelpCommands(Options opt) { - Option help = OptionBuilder.withLongOpt(HELP) - .hasOptionalArg() - .withDescription("valid commands are plan | execute | query | cancel" + + Option help = Option.builder().longOpt(HELP) + .optionalArg(true) + .desc("valid commands are plan | execute | query | cancel" + " | report") - .create(); + .build(); getHelpOptions().addOption(help); opt.addOption(help); } @@ -353,17 +352,17 @@ private void addHelpCommands(Options opt) { * @param opt Options */ private void addExecuteCommands(Options opt) { - Option execute = OptionBuilder.withLongOpt(EXECUTE) + Option execute = Option.builder().longOpt(EXECUTE) .hasArg() - .withDescription("Takes a plan file and " + + .desc("Takes a plan file and " + "submits it for execution by the datanode.") - .create(); + .build(); getExecuteOptions().addOption(execute); - Option skipDateCheck = OptionBuilder.withLongOpt(SKIPDATECHECK) - .withDescription("skips the date check and force execute the plan") - .create(); + Option skipDateCheck = Option.builder().longOpt(SKIPDATECHECK) + .desc("skips the date check and force execute the plan") + .build(); getExecuteOptions().addOption(skipDateCheck); opt.addOption(execute); @@ -376,20 +375,20 @@ private void addExecuteCommands(Options opt) { * @param opt Options */ private void addQueryCommands(Options opt) { - Option query = OptionBuilder.withLongOpt(QUERY) + Option query = Option.builder().longOpt(QUERY) .hasArg() - .withDescription("Queries the disk balancer " + + .desc("Queries the disk balancer " + "status of a given datanode.") - .create(); + .build(); getQueryOptions().addOption(query); opt.addOption(query); // Please note: Adding this only to Query options since -v is already // added to global table. - Option verbose = OptionBuilder.withLongOpt(VERBOSE) - .withDescription("Prints details of the plan that is being executed " + + Option verbose = Option.builder().longOpt(VERBOSE) + .desc("Prints details of the plan that is being executed " + "on the node.") - .create(); + .build(); getQueryOptions().addOption(verbose); } @@ -399,17 +398,17 @@ private void addQueryCommands(Options opt) { * @param opt Options */ private void addCancelCommands(Options opt) { - Option cancel = OptionBuilder.withLongOpt(CANCEL) + Option cancel = Option.builder().longOpt(CANCEL) .hasArg() - .withDescription("Cancels a running plan using a plan file.") - .create(); + .desc("Cancels a running plan using a plan file.") + .build(); getCancelOptions().addOption(cancel); opt.addOption(cancel); - Option node = OptionBuilder.withLongOpt(NODE) + Option node = Option.builder().longOpt(NODE) .hasArg() - .withDescription("Cancels a running plan using a plan ID and hostName") - .create(); + .desc("Cancels a running plan using a plan ID and hostName") + .build(); getCancelOptions().addOption(node); opt.addOption(node); @@ -421,26 +420,26 @@ private void addCancelCommands(Options opt) { * @param opt Options */ private void addReportCommands(Options opt) { - Option report = OptionBuilder.withLongOpt(REPORT) - .withDescription("List nodes that will benefit from running " + + Option report = Option.builder().longOpt(REPORT) + .desc("List nodes that will benefit from running " + "DiskBalancer.") - .create(); + .build(); getReportOptions().addOption(report); opt.addOption(report); - Option top = OptionBuilder.withLongOpt(TOP) + Option top = Option.builder().longOpt(TOP) .hasArg() - .withDescription("specify the number of nodes to be listed which has" + + .desc("specify the number of nodes to be listed which has" + " data imbalance.") - .create(); + .build(); getReportOptions().addOption(top); opt.addOption(top); - Option node = OptionBuilder.withLongOpt(NODE) + Option node = Option.builder().longOpt(NODE) .hasArg() - .withDescription("Datanode address, " + + .desc("Datanode address, " + "it can be DataNodeID, IP or hostname.") - .create(); + .build(); getReportOptions().addOption(node); opt.addOption(node); } diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/JMXGet.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/JMXGet.java index ff931e94b3e..21ce9711bc1 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/JMXGet.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/JMXGet.java @@ -39,7 +39,6 @@ import org.apache.commons.cli.GnuParser; import org.apache.commons.cli.HelpFormatter; import org.apache.commons.cli.Option; -import org.apache.commons.cli.OptionBuilder; import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; @@ -247,39 +246,33 @@ private static void err(String msg) { private static CommandLine parseArgs(Options opts, String... args) throws IllegalArgumentException { - OptionBuilder.withArgName("NameNode|DataNode"); - OptionBuilder.hasArg(); - OptionBuilder.withDescription("specify jmx service (NameNode by default)"); - Option jmx_service = OptionBuilder.create("service"); + Option jmxService = Option.builder("service") + .argName("NameNode|DataNode").hasArg() + .desc("specify jmx service (NameNode by default)").build(); - OptionBuilder.withArgName("mbean server"); - OptionBuilder.hasArg(); - OptionBuilder - .withDescription("specify mbean server (localhost by default)"); - Option jmx_server = OptionBuilder.create("server"); + Option jmxServer = Option.builder("server") + .argName("mbean server").hasArg() + .desc("specify mbean server (localhost by default)").build(); - OptionBuilder.withDescription("print help"); - Option jmx_help = OptionBuilder.create("help"); + Option jmxHelp = Option.builder("help").desc("print help").build(); - OptionBuilder.withArgName("mbean server port"); - OptionBuilder.hasArg(); - OptionBuilder.withDescription("specify mbean server port, " - + "if missing - it will try to connect to MBean Server in the same VM"); - Option jmx_port = OptionBuilder.create("port"); + Option jmxPort = Option.builder("port") + .argName("mbean server port") + .hasArg().desc("specify mbean server port, " + + "if missing - it will try to connect to MBean Server in the same VM").build(); - OptionBuilder.withArgName("VM's connector url"); - OptionBuilder.hasArg(); - OptionBuilder.withDescription("connect to the VM on the same machine;" + Option jmxLocalVM = Option.builder("localVM") + .argName("VM's connector url").hasArg() + .desc("connect to the VM on the same machine;" + "\n use:\n jstat -J-Djstat.showUnsupported=true -snap | " + "grep sun.management.JMXConnectorServer.address\n " - + "to find the url"); - Option jmx_localVM = OptionBuilder.create("localVM"); + + "to find the url").build(); - opts.addOption(jmx_server); - opts.addOption(jmx_help); - opts.addOption(jmx_service); - opts.addOption(jmx_port); - opts.addOption(jmx_localVM); + opts.addOption(jmxServer); + opts.addOption(jmxHelp); + opts.addOption(jmxService); + opts.addOption(jmxPort); + opts.addOption(jmxLocalVM); CommandLine commandLine = null; CommandLineParser parser = new GnuParser(); diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/offlineEditsViewer/OfflineEditsViewer.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/offlineEditsViewer/OfflineEditsViewer.java index 43eedf8d58c..b1538bb7d9b 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/offlineEditsViewer/OfflineEditsViewer.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/offlineEditsViewer/OfflineEditsViewer.java @@ -28,7 +28,7 @@ import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.CommandLineParser; -import org.apache.commons.cli.OptionBuilder; +import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; import org.apache.commons.cli.PosixParser; @@ -100,15 +100,13 @@ public static Options buildOptions() { // Build in/output file arguments, which are required, but there is no // addOption method that can specify this - OptionBuilder.isRequired(); - OptionBuilder.hasArgs(); - OptionBuilder.withLongOpt("outputFilename"); - options.addOption(OptionBuilder.create("o")); - - OptionBuilder.isRequired(); - OptionBuilder.hasArgs(); - OptionBuilder.withLongOpt("inputFilename"); - options.addOption(OptionBuilder.create("i")); + Option optionOutputFileName = + Option.builder("o").required().hasArgs().longOpt("outputFilename").build(); + options.addOption(optionOutputFileName); + + Option optionInputFilename = + Option.builder("i").required().hasArgs().longOpt("inputFilename").build(); + options.addOption(optionInputFilename); options.addOption("p", "processor", true, ""); options.addOption("v", "verbose", false, ""); diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/OfflineImageViewer.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/OfflineImageViewer.java index 0f544a35ee6..bf4b42faa39 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/OfflineImageViewer.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/OfflineImageViewer.java @@ -26,7 +26,7 @@ import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.CommandLineParser; -import org.apache.commons.cli.OptionBuilder; +import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; import org.apache.commons.cli.PosixParser; @@ -177,16 +177,10 @@ public static Options buildOptions() { // Build in/output file arguments, which are required, but there is no // addOption method that can specify this - OptionBuilder.isRequired(); - OptionBuilder.hasArgs(); - OptionBuilder.withLongOpt("outputFile"); - options.addOption(OptionBuilder.create("o")); - - OptionBuilder.isRequired(); - OptionBuilder.hasArgs(); - OptionBuilder.withLongOpt("inputFile"); - options.addOption(OptionBuilder.create("i")); - + options.addOption(Option.builder("o").required().hasArgs().longOpt("outputFile").build()); + + options.addOption(Option.builder("i").required().hasArgs().longOpt("inputFile").build()); + options.addOption("p", "processor", true, ""); options.addOption("h", "help", false, ""); options.addOption("maxSize", true, ""); diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/OfflineImageViewerPB.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/OfflineImageViewerPB.java index fea8a8fdfbb..fe31872304e 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/OfflineImageViewerPB.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/OfflineImageViewerPB.java @@ -24,7 +24,7 @@ import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.CommandLineParser; -import org.apache.commons.cli.OptionBuilder; +import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; import org.apache.commons.cli.PosixParser; @@ -137,10 +137,8 @@ private static Options buildOptions() { // Build in/output file arguments, which are required, but there is no // addOption method that can specify this - OptionBuilder.isRequired(); - OptionBuilder.hasArgs(); - OptionBuilder.withLongOpt("inputFile"); - options.addOption(OptionBuilder.create("i")); + Option optionInputFile = Option.builder("i").required().hasArgs().longOpt("inputFile").build(); + options.addOption(optionInputFile); options.addOption("o", "outputFile", true, ""); options.addOption("p", "processor", true, ""); diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/test/MiniDFSClusterManager.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/test/MiniDFSClusterManager.java index b26c1d61ec5..133da7438db 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/test/MiniDFSClusterManager.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/test/MiniDFSClusterManager.java @@ -29,7 +29,7 @@ import org.apache.commons.cli.CommandLineParser; import org.apache.commons.cli.GnuParser; import org.apache.commons.cli.HelpFormatter; -import org.apache.commons.cli.OptionBuilder; +import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; import org.apache.hadoop.conf.Configuration; @@ -88,23 +88,23 @@ private Options makeOptions() { .addOption("httpport", true, "NameNode http port (default 0--we choose)") .addOption("namenode", true, "URL of the namenode (default " + "is either the DFS cluster or a temporary dir)") - .addOption(OptionBuilder + .addOption(Option.builder("D") .hasArgs() - .withArgName("property=value") - .withDescription("Options to pass into configuration object") - .create("D")) - .addOption(OptionBuilder + .argName("property=value") + .desc("Options to pass into configuration object") + .build()) + .addOption(Option.builder("writeConfig") .hasArg() - .withArgName("path") - .withDescription("Save configuration to this XML file.") - .create("writeConfig")) - .addOption(OptionBuilder + .argName("path") + .desc("Save configuration to this XML file.") + .build()) + .addOption(Option.builder("writeDetails") .hasArg() - .withArgName("path") - .withDescription("Write basic information to this JSON file.") - .create("writeDetails")) - .addOption(OptionBuilder.withDescription("Prints option help.") - .create("help")); + .argName("path") + .desc("Write basic information to this JSON file.") + .build()) + .addOption(Option.builder("help").desc("Prints option help.") + .build()); return options; } diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/pipes/Submitter.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/pipes/Submitter.java index a9f42dd1667..a6dd256c95f 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/pipes/Submitter.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/pipes/Submitter.java @@ -30,7 +30,6 @@ import org.apache.commons.cli.BasicParser; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; -import org.apache.commons.cli.OptionBuilder; import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; import org.apache.commons.cli.Parser; @@ -346,12 +345,14 @@ static class CommandLineParser { void addOption(String longName, boolean required, String description, String paramName) { - Option option = OptionBuilder.withArgName(paramName).hasArgs(1).withDescription(description).isRequired(required).create(longName); + Option option = Option.builder(longName).argName(paramName) + .hasArg().desc(description).required(required).build(); options.addOption(option); } void addArgument(String name, boolean required, String description) { - Option option = OptionBuilder.withArgName(name).hasArgs(1).withDescription(description).isRequired(required).create(); + Option option = Option.builder().argName(name) + .hasArg().desc(description).required(required).build(); options.addOption(option); } diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/MiniHadoopClusterManager.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/MiniHadoopClusterManager.java index 1d1c08347cc..e11703ca15c 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/MiniHadoopClusterManager.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/MiniHadoopClusterManager.java @@ -31,7 +31,7 @@ import org.apache.commons.cli.CommandLineParser; import org.apache.commons.cli.GnuParser; import org.apache.commons.cli.HelpFormatter; -import org.apache.commons.cli.OptionBuilder; +import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; import org.apache.hadoop.fs.FileSystem; @@ -105,18 +105,17 @@ private Options makeOptions() { .addOption("jhsport", true, "JobHistoryServer port (default 0--we choose)") .addOption( - OptionBuilder.hasArgs().withArgName("property=value") - .withDescription("Options to pass into configuration object") - .create("D")) + Option.builder("D").hasArgs().argName("property=value") + .desc("Options to pass into configuration object") + .build()) .addOption( - OptionBuilder.hasArg().withArgName("path").withDescription( - "Save configuration to this XML file.").create("writeConfig")) + Option.builder("writeConfig").hasArg().argName("path").desc( + "Save configuration to this XML file.").build()) .addOption( - OptionBuilder.hasArg().withArgName("path").withDescription( - "Write basic information to this JSON file.").create( - "writeDetails")) + Option.builder("writeDetails").argName("path").desc( + "Write basic information to this JSON file.").build()) .addOption( - OptionBuilder.withDescription("Prints option help.").create("help")); + Option.builder("help").desc("Prints option help.").build()); return options; } diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-uploader/src/main/java/org/apache/hadoop/mapred/uploader/FrameworkUploader.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-uploader/src/main/java/org/apache/hadoop/mapred/uploader/FrameworkUploader.java index 0285fb17aa4..452078ff8ec 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-uploader/src/main/java/org/apache/hadoop/mapred/uploader/FrameworkUploader.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-uploader/src/main/java/org/apache/hadoop/mapred/uploader/FrameworkUploader.java @@ -20,7 +20,7 @@ import org.apache.hadoop.classification.VisibleForTesting; import org.apache.commons.cli.HelpFormatter; -import org.apache.commons.cli.OptionBuilder; +import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; import org.apache.commons.compress.archivers.ArchiveEntry; import org.apache.commons.compress.archivers.tar.TarArchiveOutputStream; @@ -484,53 +484,53 @@ boolean checkSymlink(File jar) { @VisibleForTesting boolean parseArguments(String[] args) throws IOException { Options opts = new Options(); - opts.addOption(OptionBuilder.create("h")); - opts.addOption(OptionBuilder.create("help")); - opts.addOption(OptionBuilder - .withDescription("Input class path. Defaults to the default classpath.") - .hasArg().create("input")); - opts.addOption(OptionBuilder - .withDescription( + opts.addOption(Option.builder("h").build()); + opts.addOption(Option.builder("help").build()); + opts.addOption(Option.builder("input") + .desc("Input class path. Defaults to the default classpath.") + .hasArg().build()); + opts.addOption(Option.builder("whitelist") + .desc( "Regex specifying the full path of jars to include in the" + " framework tarball. Default is a hardcoded set of jars" + " considered necessary to include") - .hasArg().create("whitelist")); - opts.addOption(OptionBuilder - .withDescription( + .hasArg().build()); + opts.addOption(Option.builder("blacklist") + .desc( "Regex specifying the full path of jars to exclude in the" + " framework tarball. Default is a hardcoded set of jars" + " considered unnecessary to include") - .hasArg().create("blacklist")); - opts.addOption(OptionBuilder - .withDescription( + .hasArg().build()); + opts.addOption(Option.builder("fs") + .desc( "Target file system to upload to." + " Example: hdfs://foo.com:8020") - .hasArg().create("fs")); - opts.addOption(OptionBuilder - .withDescription( + .hasArg().build()); + opts.addOption(Option.builder("target") + .desc( "Target file to upload to with a reference name." + " Example: /usr/mr-framework.tar.gz#mr-framework") - .hasArg().create("target")); - opts.addOption(OptionBuilder - .withDescription( + .hasArg().build()); + opts.addOption(Option.builder("initialReplication") + .desc( "Desired initial replication count. Default 3.") - .hasArg().create("initialReplication")); - opts.addOption(OptionBuilder - .withDescription( + .hasArg().build()); + opts.addOption(Option.builder("finalReplication") + .desc( "Desired final replication count. Default 10.") - .hasArg().create("finalReplication")); - opts.addOption(OptionBuilder - .withDescription( + .hasArg().build()); + opts.addOption(Option.builder("acceptableReplication") + .desc( "Desired acceptable replication count. Default 9.") - .hasArg().create("acceptableReplication")); - opts.addOption(OptionBuilder - .withDescription( + .hasArg().build()); + opts.addOption(Option.builder("timeout") + .desc( "Desired timeout for the acceptable" + " replication in seconds. Default 10") - .hasArg().create("timeout")); - opts.addOption(OptionBuilder - .withDescription("Ignore symlinks into the same directory") - .create("nosymlink")); + .hasArg().build()); + opts.addOption(Option.builder("nosymlink") + .desc("Ignore symlinks into the same directory") + .build()); GenericOptionsParser parser = new GenericOptionsParser(opts, args); if (parser.getCommandLine().hasOption("help") || parser.getCommandLine().hasOption("h")) { diff --git a/hadoop-project/pom.xml b/hadoop-project/pom.xml index d9c37d9d6f3..128ce79a294 100644 --- a/hadoop-project/pom.xml +++ b/hadoop-project/pom.xml @@ -113,7 +113,7 @@ 1.9.4 - 1.2 + 1.5.0 1.15 3.2.2 1.21 diff --git a/hadoop-tools/hadoop-dynamometer/hadoop-dynamometer-blockgen/src/main/java/org/apache/hadoop/tools/dynamometer/blockgenerator/GenerateBlockImagesDriver.java b/hadoop-tools/hadoop-dynamometer/hadoop-dynamometer-blockgen/src/main/java/org/apache/hadoop/tools/dynamometer/blockgenerator/GenerateBlockImagesDriver.java index 613a60f3472..0f7624d2f8d 100644 --- a/hadoop-tools/hadoop-dynamometer/hadoop-dynamometer-blockgen/src/main/java/org/apache/hadoop/tools/dynamometer/blockgenerator/GenerateBlockImagesDriver.java +++ b/hadoop-tools/hadoop-dynamometer/hadoop-dynamometer-blockgen/src/main/java/org/apache/hadoop/tools/dynamometer/blockgenerator/GenerateBlockImagesDriver.java @@ -21,7 +21,7 @@ import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.CommandLineParser; import org.apache.commons.cli.HelpFormatter; -import org.apache.commons.cli.OptionBuilder; +import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; import org.apache.commons.cli.PosixParser; import org.apache.hadoop.conf.Configuration; @@ -65,24 +65,25 @@ public GenerateBlockImagesDriver(Configuration conf) { public int run(String[] args) throws Exception { Options options = new Options(); options.addOption("h", "help", false, "Shows this message"); - options.addOption(OptionBuilder.withArgName("Input path of the XML fsImage") - .hasArg().isRequired(true) - .withDescription("Input path to the Hadoop fsImage XML file (required)") - .create(FSIMAGE_INPUT_PATH_ARG)); - options.addOption(OptionBuilder.withArgName("BlockImage output directory") - .hasArg().isRequired(true) - .withDescription("Directory where the generated files containing the " + options.addOption(Option.builder(FSIMAGE_INPUT_PATH_ARG) + .argName("Input path of the XML fsImage") + .hasArg().required(true) + .desc("Input path to the Hadoop fsImage XML file (required)") + .build()); + options.addOption(Option.builder(BLOCK_IMAGE_OUTPUT_ARG).argName("BlockImage output directory") + .hasArg().required(true) + .desc("Directory where the generated files containing the " + "block listing for each DataNode should be stored (required)") - .create(BLOCK_IMAGE_OUTPUT_ARG)); - options.addOption(OptionBuilder.withArgName("Number of reducers").hasArg() - .isRequired(false) - .withDescription( + .build()); + options.addOption(Option.builder(NUM_REDUCERS_ARG).argName("Number of reducers").hasArg() + .required(false) + .desc( "Number of reducers for this job (defaults to number of datanodes)") - .create(NUM_REDUCERS_ARG)); - options.addOption(OptionBuilder.withArgName("Number of datanodes").hasArg() - .isRequired(true) - .withDescription("Number of DataNodes to create blocks for (required)") - .create(NUM_DATANODES_ARG)); + .build()); + options.addOption(Option.builder(NUM_DATANODES_ARG).argName("Number of datanodes").hasArg() + .required(true) + .desc("Number of DataNodes to create blocks for (required)") + .build()); CommandLineParser parser = new PosixParser(); CommandLine cli = parser.parse(options, args); diff --git a/hadoop-tools/hadoop-dynamometer/hadoop-dynamometer-workload/src/main/java/org/apache/hadoop/tools/dynamometer/workloadgenerator/WorkloadDriver.java b/hadoop-tools/hadoop-dynamometer/hadoop-dynamometer-workload/src/main/java/org/apache/hadoop/tools/dynamometer/workloadgenerator/WorkloadDriver.java index a2717cf8e4c..7c416bb14b2 100644 --- a/hadoop-tools/hadoop-dynamometer/hadoop-dynamometer-workload/src/main/java/org/apache/hadoop/tools/dynamometer/workloadgenerator/WorkloadDriver.java +++ b/hadoop-tools/hadoop-dynamometer/hadoop-dynamometer-workload/src/main/java/org/apache/hadoop/tools/dynamometer/workloadgenerator/WorkloadDriver.java @@ -26,7 +26,6 @@ import org.apache.commons.cli.CommandLineParser; import org.apache.commons.cli.HelpFormatter; import org.apache.commons.cli.Option; -import org.apache.commons.cli.OptionBuilder; import org.apache.commons.cli.OptionGroup; import org.apache.commons.cli.Options; import org.apache.commons.cli.PosixParser; @@ -64,28 +63,28 @@ public int run(String[] args) throws Exception { + " argument to show help for a specific mapper class."); Options options = new Options(); options.addOption(helpOption); - options.addOption(OptionBuilder.withArgName("NN URI").hasArg() - .withDescription("URI of the NameNode under test").isRequired() - .create(NN_URI)); + options.addOption(Option.builder(NN_URI).argName("NN URI").hasArg() + .desc("URI of the NameNode under test").required() + .build()); OptionGroup startTimeOptions = new OptionGroup(); - startTimeOptions.addOption(OptionBuilder.withArgName("Start Timestamp") - .hasArg().withDescription("Mapper start UTC timestamp in ms") - .create(START_TIMESTAMP_MS)); + startTimeOptions.addOption(Option.builder(START_TIMESTAMP_MS).argName("Start Timestamp") + .hasArg().desc("Mapper start UTC timestamp in ms") + .build()); startTimeOptions - .addOption(OptionBuilder.withArgName("Start Time Offset").hasArg() - .withDescription("Mapper start time as an offset from current " + .addOption(Option.builder(START_TIME_OFFSET_DEFAULT).argName("Start Time Offset").hasArg() + .desc("Mapper start time as an offset from current " + "time. Human-readable formats accepted, e.g. 10m (default " + START_TIME_OFFSET_DEFAULT + ").") - .create(START_TIME_OFFSET)); + .build()); options.addOptionGroup(startTimeOptions); - Option mapperClassOption = OptionBuilder.withArgName("Mapper ClassName") + Option mapperClassOption = Option.builder(MAPPER_CLASS_NAME).argName("Mapper ClassName") .hasArg() - .withDescription("Class name of the mapper; must be a WorkloadMapper " + .desc("Class name of the mapper; must be a WorkloadMapper " + "subclass. Mappers supported currently: \n" + "1. AuditReplayMapper \n" + "2. CreateFileMapper \n" + "Fully specified class names are also supported.") - .isRequired().create(MAPPER_CLASS_NAME); + .required().build(); options.addOption(mapperClassOption); Options helpOptions = new Options(); diff --git a/hadoop-tools/hadoop-streaming/src/main/java/org/apache/hadoop/streaming/StreamJob.java b/hadoop-tools/hadoop-streaming/src/main/java/org/apache/hadoop/streaming/StreamJob.java index 4f9d820c124..023371ce994 100644 --- a/hadoop-tools/hadoop-streaming/src/main/java/org/apache/hadoop/streaming/StreamJob.java +++ b/hadoop-tools/hadoop-streaming/src/main/java/org/apache/hadoop/streaming/StreamJob.java @@ -34,7 +34,6 @@ import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.CommandLineParser; import org.apache.commons.cli.Option; -import org.apache.commons.cli.OptionBuilder; import org.apache.commons.cli.Options; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -382,16 +381,17 @@ protected void msg(String msg) { private Option createOption(String name, String desc, String argName, int max, boolean required){ - return OptionBuilder - .withArgName(argName) - .hasArgs(max) - .withDescription(desc) - .isRequired(required) - .create(name); + return Option.builder(name) + .argName(argName) + .hasArgs() + .numberOfArgs(max) + .desc(desc) + .required(required) + .build(); } private Option createBoolOption(String name, String desc){ - return OptionBuilder.withDescription(desc).create(name); + return Option.builder(name).desc(desc).build(); } private void validate(final Path path) throws IOException {