List of usage examples for org.apache.commons.cli OptionGroup addOption
public OptionGroup addOption(Option option)
Option
to this group. From source file:iDynoOptimizer.MOEAFramework26.src.org.moeaframework.analysis.tools.AerovisConverter.java
@SuppressWarnings("static-access") @Override//from w w w . j av a 2s . c o m public Options getOptions() { Options options = super.getOptions(); OptionGroup group = new OptionGroup(); group.setRequired(true); group.addOption(OptionBuilder.withLongOpt("problem").hasArg().withArgName("name").create('b')); group.addOption(OptionBuilder.withLongOpt("dimension").hasArg().withArgName("number").create('d')); options.addOptionGroup(group); options.addOption(OptionBuilder.withLongOpt("input").hasArg().withArgName("file").isRequired().create('i')); options.addOption( OptionBuilder.withLongOpt("output").hasArg().withArgName("file").isRequired().create('o')); options.addOption(OptionBuilder.withLongOpt("reduced").create('r')); options.addOption(OptionBuilder.withLongOpt("names").hasArg().create('n')); return options; }
From source file:com.net2plan.cli.CLINet2Plan.java
/** * Default constructor.// w w w. j a v a 2 s. c o m * * @param args Command-line arguments */ public CLINet2Plan(String args[]) { try { SystemUtils.configureEnvironment(CLINet2Plan.class, UserInterface.CLI); for (Class<? extends Plugin> plugin : PluginSystem.getPlugins(ICLIModule.class)) { try { ICLIModule instance = ((Class<? extends ICLIModule>) plugin).newInstance(); modes.put(instance.getModeName(), instance.getClass()); } catch (NoClassDefFoundError e) { e.printStackTrace(); throw new Net2PlanException("Class " + e.getMessage() + " cannot be found. A dependence for " + plugin.getSimpleName() + " is missing?"); } catch (InstantiationException | IllegalAccessException e) { e.printStackTrace(); throw new RuntimeException(e); } } Option helpOption = new Option("help", true, "Show the complete help information. 'modeName' is optional"); helpOption.setArgName("modeName"); helpOption.setOptionalArg(true); Option modeOption = new Option("mode", true, "Mode: " + StringUtils.join(StringUtils.toArray(modes.keySet()), ", ")); modeOption.setArgName("modeName"); modeOption.setOptionalArg(true); OptionGroup group = new OptionGroup(); group.addOption(modeOption); group.addOption(helpOption); options.addOptionGroup(group); CommandLineParser parser = new CommandLineParser(); CommandLine cli = parser.parse(options, args); if (cli.hasOption("help")) { String mode = cli.getOptionValue("help"); System.out.println(mode == null ? getCompleteHelp() : getModeHelp(mode)); } else if (!cli.hasOption("mode")) { System.out.println(getMainHelp()); } else { String mode = cli.getOptionValue("mode"); if (modes.containsKey(mode)) { ICLIModule modeInstance = modes.get(mode).newInstance(); try { modeInstance.executeFromCommandLine(args); } catch (Net2PlanException | JOMException ex) { if (ErrorHandling.isDebugEnabled()) ErrorHandling.printStackTrace(ex); System.out.println("Execution stopped"); System.out.println(); System.out.println(ex.getMessage()); } catch (ParseException ex) { System.out.println("Bad syntax: " + ex.getMessage()); System.out.println(); System.out.println(getModeHelp(mode)); } catch (Throwable ex) { Throwable ex1 = ErrorHandling.getInternalThrowable(ex); if (ex1 instanceof Net2PlanException || ex1 instanceof JOMException) { if (ErrorHandling.isDebugEnabled()) ErrorHandling.printStackTrace(ex); System.out.println("Execution stopped"); System.out.println(); System.out.println(ex1.getMessage()); } else if (ex1 instanceof ParseException) { System.out.println("Bad syntax: " + ex1.getMessage()); System.out.println(); System.out.println(getModeHelp(mode)); } else { System.out.println("Execution stopped. An unexpected error happened"); System.out.println(); ErrorHandling.printStackTrace(ex1); } } } else { throw new IllegalModeException("Bad mode - " + mode); } } } catch (IllegalModeException e) { System.out.println(e.getMessage()); System.out.println(); System.out.println(getMainHelp()); } catch (ParseException e) { System.out.println("Bad syntax: " + e.getMessage()); System.out.println(); System.out.println(getMainHelp()); } catch (Net2PlanException e) { if (ErrorHandling.isDebugEnabled()) ErrorHandling.printStackTrace(e); System.out.println(e.getMessage()); } catch (Throwable e) { ErrorHandling.printStackTrace(e); } }
From source file:com.netspective.sparx.security.authenticator.SingleUserServletLoginAuthenticator.java
private Options createAuthenticatorOptions() { Options authenticatorOptions = new Options(); authenticatorOptions.addOption(//w w w. j av a 2s . c o m OptionBuilder.withLongOpt("help").withDescription("Print options to stdout").create('?')); authenticatorOptions.addOption(OptionBuilder.withLongOpt("user-id").hasArg().withArgName("id") .withDescription("The user id that should be used to log the user in").isRequired().create('u')); authenticatorOptions.addOption(OptionBuilder.withLongOpt("show-encrypted-password") .withDescription("Prints the encrypted version of plain-text password to stdout").create('s')); OptionGroup passwordOptionGroup = new OptionGroup(); passwordOptionGroup.setRequired(true); passwordOptionGroup.addOption(OptionBuilder.withLongOpt("plain-text-password").hasArg() .withArgName("plain-text").withDescription("The plain-text password for the user").create('p')); passwordOptionGroup.addOption(OptionBuilder.withLongOpt("encrypted-password").hasArg() .withArgName("encrypted-text").withDescription("The encrypted password for the user").create('P')); authenticatorOptions.addOptionGroup(passwordOptionGroup); return authenticatorOptions; }
From source file:com.zimbra.cs.volume.VolumeCLI.java
@Override protected void setupCommandLineOptions() { super.setupCommandLineOptions(); Options options = getOptions();// ww w.j a v a2 s .c o m OptionGroup og = new OptionGroup(); og.addOption(new Option(O_A, "add", false, "Adds a volume.")); og.addOption(new Option(O_D, "delete", false, "Deletes a volume.")); og.addOption(new Option(O_L, "list", false, "Lists volumes.")); og.addOption(new Option(O_E, "edit", false, "Edits a volume.")); og.addOption(new Option(O_DC, "displayCurrent", false, "Displays the current volumes.")); og.addOption(new Option(O_SC, "setCurrent", false, "Sets the current volume.")); og.addOption(new Option(O_TS, "turnOffSecondary", false, "Turns off the current secondary message volume")); og.setRequired(true); options.addOptionGroup(og); options.addOption(O_ID, "id", true, "Volume ID"); options.addOption(O_T, "type", true, "Volume type (primaryMessage, secondaryMessage, or index)"); options.addOption(O_N, "name", true, "volume name"); options.addOption(O_P, "path", true, "Root path"); options.addOption(O_C, "compress", true, "Compress blobs; \"true\" or \"false\""); options.addOption(O_CT, "compressionThreshold", true, "Compression threshold; default 4KB"); options.addOption(SoapCLI.OPT_AUTHTOKEN); options.addOption(SoapCLI.OPT_AUTHTOKENFILE); }
From source file:de.thetaphi.forbiddenapis.cli.CliMain.java
public CliMain(String... args) throws ExitException { final OptionGroup required = new OptionGroup(); required.setRequired(true);// w ww .ja v a 2 s . co m required.addOption(dirOpt = Option.builder("d").desc( "directory with class files to check for forbidden api usage; this directory is also added to classpath") .longOpt("dir").hasArg().argName("directory").build()); required.addOption( versionOpt = Option.builder("V").desc("print product version and exit").longOpt("version").build()); required.addOption(helpOpt = Option.builder("h").desc("print this help").longOpt("help").build()); final Options options = new Options(); options.addOptionGroup(required); options.addOption(classpathOpt = Option.builder("c") .desc("class search path of directories and zip/jar files").longOpt("classpath").hasArgs() .valueSeparator(File.pathSeparatorChar).argName("path").build()); options.addOption(includesOpt = Option.builder("i").desc( "ANT-style pattern to select class files (separated by commas or option can be given multiple times, defaults to '**/*.class')") .longOpt("includes").hasArgs().valueSeparator(',').argName("pattern").build()); options.addOption(excludesOpt = Option.builder("e").desc( "ANT-style pattern to exclude some files from checks (separated by commas or option can be given multiple times)") .longOpt("excludes").hasArgs().valueSeparator(',').argName("pattern").build()); options.addOption(signaturesfileOpt = Option.builder("f") .desc("path to a file containing signatures (option can be given multiple times)") .longOpt("signaturesfile").hasArg().argName("file").build()); options.addOption(bundledsignaturesOpt = Option.builder("b").desc( "name of a bundled signatures definition (separated by commas or option can be given multiple times)") .longOpt("bundledsignatures").hasArgs().valueSeparator(',').argName("name").build()); options.addOption(suppressannotationsOpt = Option.builder().desc( "class name or glob pattern of annotation that suppresses error reporting in classes/methods/fields (separated by commas or option can be given multiple times)") .longOpt("suppressannotation").hasArgs().valueSeparator(',').argName("classname").build()); options.addOption(internalruntimeforbiddenOpt = Option.builder().desc(String.format(Locale.ENGLISH, "DEPRECATED: forbids calls to non-portable runtime APIs; use bundled signatures '%s' instead", BS_JDK_NONPORTABLE)).longOpt("internalruntimeforbidden").build()); options.addOption(allowmissingclassesOpt = Option.builder() .desc("don't fail if a referenced class is missing on classpath").longOpt("allowmissingclasses") .build()); options.addOption(allowunresolvablesignaturesOpt = Option.builder() .desc("don't fail if a signature is not resolving").longOpt("allowunresolvablesignatures").build()); try { this.cmd = new DefaultParser().parse(options, args); if (cmd.hasOption(helpOpt.getLongOpt())) { printHelp(options); throw new ExitException(EXIT_SUCCESS); } if (cmd.hasOption(versionOpt.getLongOpt())) { printVersion(); throw new ExitException(EXIT_SUCCESS); } } catch (org.apache.commons.cli.ParseException pe) { printHelp(options); throw new ExitException(EXIT_ERR_CMDLINE); } }
From source file:daemon.dicomnode.DcmRcv.java
private static CommandLine parse(String[] args) { Options opts = new Options(); OptionBuilder.withArgName("name"); OptionBuilder.hasArg();//from w w w .j a v a 2 s . c om OptionBuilder.withDescription("set device name, use DCMRCV by default"); opts.addOption(OptionBuilder.create("device")); OptionBuilder.withArgName("NULL|3DES|AES"); OptionBuilder.hasArg(); OptionBuilder.withDescription("enable TLS connection without, 3DES or AES encryption"); opts.addOption(OptionBuilder.create("tls")); OptionGroup tlsProtocol = new OptionGroup(); tlsProtocol.addOption(new Option("tls1", "disable the use of SSLv3 and SSLv2 for TLS connections")); tlsProtocol.addOption(new Option("ssl3", "disable the use of TLSv1 and SSLv2 for TLS connections")); tlsProtocol.addOption(new Option("no_tls1", "disable the use of TLSv1 for TLS connections")); tlsProtocol.addOption(new Option("no_ssl3", "disable the use of SSLv3 for TLS connections")); tlsProtocol.addOption(new Option("no_ssl2", "disable the use of SSLv2 for TLS connections")); opts.addOptionGroup(tlsProtocol); opts.addOption("noclientauth", false, "disable client authentification for TLS"); OptionBuilder.withArgName("file|url"); OptionBuilder.hasArg(); OptionBuilder .withDescription("file path or URL of P12 or JKS keystore, resource:tls/test_sys_2.p12 by default"); opts.addOption(OptionBuilder.create("keystore")); OptionBuilder.withArgName("password"); OptionBuilder.hasArg(); OptionBuilder.withDescription("password for keystore file, 'secret' by default"); opts.addOption(OptionBuilder.create("keystorepw")); OptionBuilder.withArgName("password"); OptionBuilder.hasArg(); OptionBuilder .withDescription("password for accessing the key in the keystore, keystore password by default"); opts.addOption(OptionBuilder.create("keypw")); OptionBuilder.withArgName("file|url"); OptionBuilder.hasArg(); OptionBuilder.withDescription("file path or URL of JKS truststore, resource:tls/mesa_certs.jks by default"); opts.addOption(OptionBuilder.create("truststore")); OptionBuilder.withArgName("password"); OptionBuilder.hasArg(); OptionBuilder.withDescription("password for truststore file, 'secret' by default"); opts.addOption(OptionBuilder.create("truststorepw")); OptionBuilder.withArgName("dir"); OptionBuilder.hasArg(); OptionBuilder.withDescription("store received objects into files in specified directory <dir>." + " Do not store received objects by default."); opts.addOption(OptionBuilder.create("dest")); OptionBuilder.withArgName("file|url"); OptionBuilder.hasArg(); OptionBuilder.withDescription("file path or URL of properties for mapping Calling AETs to " + "sub-directories of the storage directory specified by " + "-dest, to separate the storage location dependend on " + "Calling AETs."); opts.addOption(OptionBuilder.create("calling2dir")); OptionBuilder.withArgName("file|url"); OptionBuilder.hasArg(); OptionBuilder.withDescription("file path or URL of properties for mapping Called AETs to " + "sub-directories of the storage directory specified by " + "-dest, to separate the storage location dependend on " + "Called AETs."); opts.addOption(OptionBuilder.create("called2dir")); OptionBuilder.withArgName("sub-dir"); OptionBuilder.hasArg(); OptionBuilder.withDescription("storage sub-directory used for Calling AETs for which no " + " mapping is defined by properties specified by " + "-calling2dir, 'OTHER' by default."); opts.addOption(OptionBuilder.create("callingdefdir")); OptionBuilder.withArgName("sub-dir"); OptionBuilder.hasArg(); OptionBuilder.withDescription("storage sub-directory used for Called AETs for which no " + " mapping is defined by properties specified by " + "-called2dir, 'OTHER' by default."); opts.addOption(OptionBuilder.create("calleddefdir")); OptionBuilder.withArgName("dir"); OptionBuilder.hasArg(); OptionBuilder.withDescription("register stored objects in cache journal files in specified directory <dir>." + " Do not register stored objects by default."); opts.addOption(OptionBuilder.create("journal")); OptionBuilder.withArgName("pattern"); OptionBuilder.hasArg(); OptionBuilder.withDescription("cache journal file path, with " + "'yyyy' will be replaced by the current year, " + "'MM' by the current month, 'dd' by the current date, " + "'HH' by the current hour and 'mm' by the current minute. " + "'yyyy/MM/dd/HH/mm' by default."); opts.addOption(OptionBuilder.create("journalfilepath")); opts.addOption("defts", false, "accept only default transfer syntax."); opts.addOption("bigendian", false, "accept also Explict VR Big Endian transfer syntax."); opts.addOption("native", false, "accept only transfer syntax with uncompressed pixel data."); OptionGroup scRetrieveAET = new OptionGroup(); OptionBuilder.withArgName("aet"); OptionBuilder.hasArg(); OptionBuilder.withDescription("Retrieve AE Title included in Storage Commitment " + "N-EVENT-REPORT in items of the Referenced SOP Sequence."); scRetrieveAET.addOption(OptionBuilder.create("scretraets")); OptionBuilder.withArgName("aet"); OptionBuilder.hasArg(); OptionBuilder.withDescription("Retrieve AE Title included in Storage Commitment " + "N-EVENT-REPORT outside of the Referenced SOP Sequence."); scRetrieveAET.addOption(OptionBuilder.create("scretraet")); opts.addOptionGroup(scRetrieveAET); opts.addOption("screusefrom", false, "attempt to issue the Storage Commitment N-EVENT-REPORT on " + "the same Association on which the N-ACTION operation was " + "performed; use different Association for N-EVENT-REPORT by " + "default."); opts.addOption("screuseto", false, "attempt to issue the Storage Commitment N-EVENT-REPORT on " + "previous initiated Association to the Storage Commitment SCU; " + "initiate new Association for N-EVENT-REPORT by default."); OptionBuilder.withArgName("port"); OptionBuilder.hasArg(); OptionBuilder.withDescription("port of Storage Commitment SCU to connect to issue " + "N-EVENT-REPORT on different Association; 104 by default."); opts.addOption(OptionBuilder.create("scport")); OptionBuilder.withArgName("ms"); OptionBuilder.hasArg(); OptionBuilder .withDescription("delay in ms for N-EVENT-REPORT-RQ to Storage Commitment SCU, " + "1s by default"); opts.addOption(OptionBuilder.create("scdelay")); OptionBuilder.withArgName("retry"); OptionBuilder.hasArg(); OptionBuilder.withDescription( "number of retries to issue N-EVENT-REPORT-RQ to Storage " + "Commitment SCU, 0 by default"); opts.addOption(OptionBuilder.create("scretry")); OptionBuilder.withArgName("ms"); OptionBuilder.hasArg(); OptionBuilder.withDescription("interval im ms between retries to issue N-EVENT-REPORT-RQ to" + "Storage Commitment SCU, 60s by default"); opts.addOption(OptionBuilder.create("scretryperiod")); OptionBuilder.withArgName("maxops"); OptionBuilder.hasArg(); OptionBuilder.withDescription( "maximum number of outstanding operations performed " + "asynchronously, unlimited by default."); opts.addOption(OptionBuilder.create("async")); opts.addOption("pdv1", false, "send only one PDV in one P-Data-TF PDU, " + "pack command and data PDV in one P-DATA-TF PDU by default."); opts.addOption("tcpdelay", false, "set TCP_NODELAY socket option to false, true by default"); OptionBuilder.withArgName("ms"); OptionBuilder.hasArg(); OptionBuilder.withDescription("timeout in ms for TCP connect, no timeout by default"); opts.addOption(OptionBuilder.create("connectTO")); OptionBuilder.withArgName("ms"); OptionBuilder.hasArg(); OptionBuilder.withDescription("timeout in ms for receiving DIMSE-RSP, 10s by default"); opts.addOption(OptionBuilder.create("rspTO")); OptionBuilder.withArgName("ms"); OptionBuilder.hasArg(); OptionBuilder.withDescription("timeout in ms for receiving A-ASSOCIATE-AC, 5s by default"); opts.addOption(OptionBuilder.create("acceptTO")); OptionBuilder.withArgName("ms"); OptionBuilder.hasArg(); OptionBuilder.withDescription("delay in ms for Socket close after sending A-ABORT, 50ms by default"); opts.addOption(OptionBuilder.create("soclosedelay")); OptionBuilder.withArgName("ms"); OptionBuilder.hasArg(); OptionBuilder.withDescription("delay in ms for DIMSE-RSP; useful for testing asynchronous mode"); opts.addOption(OptionBuilder.create("rspdelay")); OptionBuilder.withArgName("ms"); OptionBuilder.hasArg(); OptionBuilder.withDescription("timeout in ms for receiving -ASSOCIATE-RQ, 5s by default"); opts.addOption(OptionBuilder.create("requestTO")); OptionBuilder.withArgName("ms"); OptionBuilder.hasArg(); OptionBuilder.withDescription("timeout in ms for receiving A-RELEASE-RP, 5s by default"); opts.addOption(OptionBuilder.create("releaseTO")); OptionBuilder.withArgName("ms"); OptionBuilder.hasArg(); OptionBuilder.withDescription("period in ms to check for outstanding DIMSE-RSP, 10s by default"); opts.addOption(OptionBuilder.create("reaper")); OptionBuilder.withArgName("ms"); OptionBuilder.hasArg(); OptionBuilder.withDescription("timeout in ms for receiving DIMSE-RQ, 60s by default"); opts.addOption(OptionBuilder.create("idleTO")); OptionBuilder.withArgName("KB"); OptionBuilder.hasArg(); OptionBuilder.withDescription("maximal length in KB of received P-DATA-TF PDUs, 16KB by default"); opts.addOption(OptionBuilder.create("rcvpdulen")); OptionBuilder.withArgName("KB"); OptionBuilder.hasArg(); OptionBuilder.withDescription("maximal length in KB of sent P-DATA-TF PDUs, 16KB by default"); opts.addOption(OptionBuilder.create("sndpdulen")); OptionBuilder.withArgName("KB"); OptionBuilder.hasArg(); OptionBuilder.withDescription("set SO_RCVBUF socket option to specified value in KB"); opts.addOption(OptionBuilder.create("sorcvbuf")); OptionBuilder.withArgName("KB"); OptionBuilder.hasArg(); OptionBuilder.withDescription("set SO_SNDBUF socket option to specified value in KB"); opts.addOption(OptionBuilder.create("sosndbuf")); OptionBuilder.withArgName("KB"); OptionBuilder.hasArg(); OptionBuilder.withDescription("minimal buffer size to write received object to file, 1KB by default"); opts.addOption(OptionBuilder.create("bufsize")); opts.addOption("h", "help", false, "print this message"); opts.addOption("V", "version", false, "print the version information and exit"); CommandLine cl = null; try { cl = new GnuParser().parse(opts, args); } catch (ParseException e) { exit("dcmrcv: " + e.getMessage()); throw new RuntimeException("unreachable"); } if (cl.hasOption("V")) { Package p = DcmRcv.class.getPackage(); System.out.println("dcmrcv v" + p.getImplementationVersion()); System.exit(0); } if (cl.hasOption("h") || cl.getArgList().size() == 0) { HelpFormatter formatter = new HelpFormatter(); formatter.printHelp(USAGE, DESCRIPTION, opts, EXAMPLE); System.exit(0); } return cl; }
From source file:de.zib.scalaris.InterOpTest.java
/** * Creates the options the command line should understand. * * @return the options the program understands *//*from www . ja v a 2s .co m*/ private static Options getOptions() { final Options options = new Options(); final OptionGroup group = new OptionGroup(); /* Note: arguments are set to be optional since we implement argument * checks on our own (commons.cli is not flexible enough and only * checks for the existence of a first argument) */ options.addOption(new Option("h", "help", false, "print this message")); options.addOption(new Option("v", "verbose", false, "print verbose information, e.g. the properties read")); final Option read = new Option("r", "read", true, "read an item"); read.setArgName("basekey> <language"); read.setArgs(2); read.setOptionalArg(true); group.addOption(read); final Option write = new Option("w", "write", true, "write an item"); write.setArgName("basekey"); write.setArgs(1); write.setOptionalArg(true); group.addOption(write); options.addOptionGroup(group); options.addOption(new Option("lh", "localhost", false, "gets the local host's name as known to Java (for debugging purposes)")); return options; }
From source file:net.ripe.rpki.validator.cli.CommandLineOptions.java
private void addCommandGroup() { OptionGroup group = new OptionGroup(); Option helpOption = new Option("h", HELP, false, "Show usage information"); group.addOption(helpOption); Option versionOption = new Option(null, VERSION, false, "Show version information"); group.addOption(versionOption);/*from ww w .ja v a 2s .c om*/ Option printOption = new Option("p", PRINT, false, "Show the certificate repository object in a readable format"); group.addOption(printOption); Option talOption = new Option("t", TAL, true, "Trust Anchor Locator (TAL). Can be specified more than once."); talOption.setArgs(Option.UNLIMITED_VALUES); group.addOption(talOption); group.setRequired(true); options.addOptionGroup(group); }
From source file:com.hp.mqm.atrf.core.configuration.CliParser.java
public CliParser() { options.addOption(Option.builder(HELP_OPTION).longOpt(HELP_OPTION_LONG).desc("Show this help").build()); options.addOption(Option.builder(VERSION_OPTION).longOpt(VERSION_OPTION_LONG) .desc("Show version of this tool").build()); options.addOption(Option.builder(OUTPUT_FILE_OPTION).longOpt(OUTPUT_FILE_OPTION_LONG).desc( "Write output to file instead of sending it to ALM Octane. File path is optional. Default file name is '" + DEFAULT_OUTPUT_FILE + "'." + System.lineSeparator() + " When saving to a file, the tool saves first 1000 runs." + System.lineSeparator() + "No ALM Octane URL or authentication configuration is required if you use this option.") .hasArg().argName("FILE").optionalArg(true).build()); options.addOption(Option.builder(CONFIG_FILE_OPTION).longOpt(CONFIG_FILE_OPTION_LONG) .desc("Configuration file location. Default configuration file name is '" + DEFAULT_CONF_FILE + "'") .hasArg().argName("FILE").build()); OptionGroup passAlmGroup = new OptionGroup(); passAlmGroup.addOption(Option.builder(PASSWORD_ALM_OPTION).longOpt(PASSWORD_ALM_OPTION_LONG) .desc("Password for ALM user to use for retrieving test results").hasArg().argName("PASSWORD") .build());/* ww w.j av a 2 s. c o m*/ passAlmGroup.addOption(Option.builder(PASSWORD_ALM_FILE_OPTION).longOpt(PASSWORD_ALM_FILE_OPTION_LONG) .desc("Location of file with password for ALM user").hasArg().argName("FILE").build()); options.addOptionGroup(passAlmGroup); OptionGroup passOctaneGroup = new OptionGroup(); passOctaneGroup.addOption(Option.builder(PASSWORD_OCTANE_OPTION).longOpt(PASSWORD_OCTANE_OPTION_LONG) .desc("Password for ALM Octane user").hasArg().argName("PASSWORD").optionalArg(true).build()); passOctaneGroup.addOption(Option.builder(PASSWORD_OCTANE_FILE_OPTION) .longOpt(PASSWORD_OCTANE_FILE_OPTION_LONG) .desc("Location of file with password for ALM Octane user").hasArg().argName("FILE").build()); options.addOptionGroup(passOctaneGroup); options.addOption(Option.builder(RUN_FILTER_ID_OPTION).longOpt(RUN_FILTER_ID_OPTION_LONG) .desc("Filter the ALM test results to retrieve only test runs with this run ID or higher").hasArg() .argName("ID").build()); options.addOption(Option.builder(RUN_FILTER_DATE_OPTION).longOpt(RUN_FILTER_DATE_OPTION_LONG) .desc("Filter the ALM test results to retrieve only test runs from this date or later").hasArg() .argName("YYYY-MM-DD").build()); options.addOption(Option.builder(RUN_FILTER_LIMIT_OPTION).longOpt(RUN_FILTER_LIMIT_OPTION_LONG) .desc("Limit number of ALM runs to retrieve ").hasArg().argName("NUMBER").build()); argsWithSingleOccurrence.addAll(Arrays.asList(OUTPUT_FILE_OPTION, CONFIG_FILE_OPTION, PASSWORD_ALM_OPTION, PASSWORD_ALM_FILE_OPTION, PASSWORD_OCTANE_OPTION, PASSWORD_OCTANE_FILE_OPTION, RUN_FILTER_ID_OPTION, RUN_FILTER_DATE_OPTION, RUN_FILTER_LIMIT_OPTION)); }
From source file:de.thetaphi.forbiddenapis.CliMain.java
@SuppressWarnings({ "static-access", "static" }) public CliMain(String... args) throws ExitException { final OptionGroup required = new OptionGroup(); required.setRequired(true);//from w w w .j a va2 s . c om required.addOption(dirOpt = OptionBuilder.withDescription( "directory with class files to check for forbidden api usage; this directory is also added to classpath") .withLongOpt("dir").hasArg().withArgName("directory").create('d')); required.addOption(versionOpt = OptionBuilder.withDescription("print product version and exit") .withLongOpt("version").create('V')); required.addOption( helpOpt = OptionBuilder.withDescription("print this help").withLongOpt("help").create('h')); final Options options = new Options(); options.addOptionGroup(required); options.addOption(classpathOpt = OptionBuilder .withDescription("class search path of directories and zip/jar files").withLongOpt("classpath") .hasArgs().withValueSeparator(File.pathSeparatorChar).withArgName("path").create('c')); options.addOption(includesOpt = OptionBuilder.withDescription( "ANT-style pattern to select class files (separated by commas or option can be given multiple times, defaults to '**/*.class')") .withLongOpt("includes").hasArgs().withValueSeparator(',').withArgName("pattern").create('i')); options.addOption(excludesOpt = OptionBuilder.withDescription( "ANT-style pattern to exclude some files from checks (separated by commas or option can be given multiple times)") .withLongOpt("excludes").hasArgs().withValueSeparator(',').withArgName("pattern").create('e')); options.addOption(signaturesfileOpt = OptionBuilder .withDescription("path to a file containing signatures (option can be given multiple times)") .withLongOpt("signaturesfile").hasArg().withArgName("file").create('f')); options.addOption(bundledsignaturesOpt = OptionBuilder.withDescription( "name of a bundled signatures definition (separated by commas or option can be given multiple times)") .withLongOpt("bundledsignatures").hasArgs().withValueSeparator(',').withArgName("name") .create('b')); options.addOption(suppressannotationsOpt = OptionBuilder.withDescription( "class name or glob pattern of annotation that suppresses error reporting in classes/methods/fields (separated by commas or option can be given multiple times)") .withLongOpt("suppressannotation").hasArgs().withValueSeparator(',').withArgName("classname") .create()); options.addOption(internalruntimeforbiddenOpt = OptionBuilder .withDescription("forbids calls to classes from the internal java runtime (like sun.misc.Unsafe)") .withLongOpt("internalruntimeforbidden").create()); options.addOption(allowmissingclassesOpt = OptionBuilder .withDescription("don't fail if a referenced class is missing on classpath") .withLongOpt("allowmissingclasses").create()); options.addOption(allowunresolvablesignaturesOpt = OptionBuilder .withDescription("don't fail if a signature is not resolving") .withLongOpt("allowunresolvablesignatures").create()); try { this.cmd = new PosixParser().parse(options, args); if (cmd.hasOption(helpOpt.getLongOpt())) { printHelp(options); throw new ExitException(EXIT_SUCCESS); } if (cmd.hasOption(versionOpt.getLongOpt())) { printVersion(); throw new ExitException(EXIT_SUCCESS); } } catch (org.apache.commons.cli.ParseException pe) { printHelp(options); throw new ExitException(EXIT_ERR_CMDLINE); } }