List of usage examples for org.apache.commons.cli Option getDescription
public String getDescription()
From source file:org.apache.maven.index.cli.NexusIndexerCliTest.java
public String getOptionsAsHtml() { @SuppressWarnings("unchecked") List<Option> optList = new ArrayList<Option>(new NexusIndexerCli().buildDefaultCliOptions().getOptions()); Collections.sort(optList, new OptionComparator()); StringBuilder sb = new StringBuilder(); boolean a = true; sb.append(//from w ww . jav a 2 s . c o m "<table border='1' class='zebra-striped'><tr class='a'><th><b>Options</b></th><th><b>Description</b></th></tr>"); for (Option option : optList) { a = !a; sb.append("<tr class='").append(a ? 'a' : 'b').append("'><td><code>-<a name='"); sb.append(option.getOpt()); sb.append("'>"); sb.append(option.getOpt()); sb.append("</a>,--<a name='"); sb.append(option.getLongOpt()); sb.append("'>"); sb.append(option.getLongOpt()); sb.append("</a>"); if (option.hasArg()) { if (option.hasArgName()) { sb.append(" <").append(option.getArgName()).append(">"); } else { sb.append(' '); } } sb.append("</code></td><td>"); sb.append(option.getDescription()); sb.append("</td></tr>"); sb.append(LS); } sb.append("</table>"); return sb.toString(); }
From source file:org.apache.tez.analyzer.plugins.TezAnalyzerBase.java
private void printUsage() { System.err.println("Analyzer base options are"); Options options = buildOptions();// w w w . j av a 2 s . c o m for (Object obj : options.getOptions()) { Option option = (Option) obj; System.err.println(option.getArgName() + " : " + option.getDescription()); } }
From source file:org.bitrepository.commandline.utils.CommandLineArgumentsHandler.java
/** * @return Lists the possible arguments in a human readable format. *//* w w w .jav a2s . c om*/ @SuppressWarnings("unchecked") public String listArguments() { StringBuilder res = new StringBuilder(); res.append("Takes the following arguments:\n"); for (Option option : (Collection<Option>) options.getOptions()) { res.append("-" + option.getOpt() + " " + option.getDescription() + "\n"); } return res.toString(); }
From source file:org.crazyt.xgogdownloader.Main.java
public static void main(String[] args) { Util util = new Util(); Config.sVersionString = VERSION_STRING + VERSION_NUMBER; Config.sConfigDirectory = "xgogdownloader"; Config.sCookiePath = "cookies.txt"; Config.sConfigFilePath = "config.cfg"; Config.sXMLDirectory = "xgogdownloader/xml"; // Create xgogdownloader directories File path = Factory.newFile(Config.sXMLDirectory); if (!path.exists()) { if (!path.mkdirs()) { System.out.print("Failed to create directory: "); System.out.print(path); throw new RuntimeException("Failed to create directory. "); }/*from ww w. j a v a2 s. com*/ } path = Factory.newFile(Config.sConfigDirectory); if (!path.exists()) { if (!path.mkdirs()) { System.out.print("Failed to create directory: "); System.out.print(path); throw new RuntimeException("Failed to create directory. "); } } // Create help text for --platform option String platform_text = "Select which installers are downloaded\n"; int platform_sum = 0; for (int i = 0; i < GlobalConstants.PLATFORMS.size(); ++i) { platform_text += GlobalConstants.PLATFORMS.get(i).platformId + " = " + GlobalConstants.PLATFORMS.get(i).platformString + "\n"; platform_sum += GlobalConstants.LANGUAGES.get(i).languageId; } platform_text += platform_sum + " = All"; // Create help text for --language option String language_text = "Select which language installers are downloaded\n"; int language_sum = 0; for (int i = 0; i < GlobalConstants.LANGUAGES.size(); ++i) { language_text += GlobalConstants.LANGUAGES.get(i).languageId + " = " + GlobalConstants.LANGUAGES.get(i).languageString + "\n"; language_sum += GlobalConstants.LANGUAGES.get(i).languageId; } language_text += "Add the values to download multiple languages\nAll = " + language_sum + "\n" + "French + Polish = " + GlobalConstants.LANGUAGE_FR + "+" + GlobalConstants.LANGUAGE_PL + " = " + GlobalConstants.LANGUAGE_FR + GlobalConstants.LANGUAGE_PL; // Create help text for --check-orphans String[] orphans_regex_default = new String[] { "zip", "exe", "bin", "dmg", "old" }; // List<File> files = (List<File>) FileUtils.listFiles(dir, extensions, // true); String check_orphans_text = "Check for orphaned files (files found on local filesystem that are not found on GOG servers). Sets regular expression filter (Perl syntax) for files to check. If no argument is given then the regex defaults to '" + StringUtils.join(orphans_regex_default, ",") + "'"; CommandOptions options_cli_all = new CommandOptions(); CommandOptions options_cli_no_cfg = new CommandOptions(); ConfigOptions options_cli_cfg = new ConfigOptions(); ConfigOptions options_cfg_only = new ConfigOptions(); ConfigOptions options_cfg_all = new ConfigOptions(); try { OptionValue<Boolean> bInsecure = new OptionValue<>(false); OptionValue<Boolean> bNoColor = new OptionValue<>(false); OptionValue<Boolean> bNoUnicode = new OptionValue<>(false); OptionValue<Boolean> bNoDuplicateHandler = new OptionValue<>(false); OptionValue<Boolean> bNoCover = new OptionValue<>(false); OptionValue<Boolean> bNoInstallers = new OptionValue<>(false); OptionValue<Boolean> bNoExtras = new OptionValue<>(false); OptionValue<Boolean> bNoPatches = new OptionValue<>(false); OptionValue<Boolean> bNoLanguagePacks = new OptionValue<>(false); OptionValue<Boolean> bNoRemoteXML = new OptionValue<>(false); OptionValue<Boolean> bNoSubDirectories = new OptionValue<>(false); OptionValue<String> sGame = new OptionValue<>("free"); OptionValue<String> sToken = new OptionValue<>(""); OptionValue<String> sSecret = new OptionValue<>(""); OptionValue<String> sSearch = new OptionValue<>(""); OptionValue<Boolean> bList = new OptionValue<>(false); OptionValue<Boolean> bDownload = new OptionValue<>(false); OptionValue<Integer> iDownloadRate = new OptionValue<>(0); // //switch to OptionBuilder // Commandline options (no config file) options_cli_no_cfg.addOption("debug", "d", false, "Print debug messages"); options_cli_no_cfg.addOption("help", "h", false, "Print help message"); options_cli_no_cfg.addOption("version", false, "Print version information"); options_cli_no_cfg.addOption("versionUpdate", false, "Updates this program to the current version."); options_cli_no_cfg.addOption("login", true, "Login"); // config.bLogin false options_cli_no_cfg.addOption(bList, "list", false, "List games"); // config.bList false options_cli_no_cfg.addOption(sSearch, "search", true, "search games by title"); options_cli_no_cfg.addOption("listdetails", "list-details", true, "List games with detailed info"); // config.bListDetails // false options_cli_no_cfg.addOption(bDownload, "download", false, "Download"); // config.bDownload false options_cli_no_cfg.addOption("repair", true, "Repair downloaded files\nUse --repair --download to redownload files when filesizes don't match (possibly different version). Redownload will delete the old file"); // config.bRepair // false options_cli_no_cfg.addOption("game", true, "Set regular expression filter\nfor download/list/repair (Perl syntax)\nAliases: \"all\", \"free\""); // config.sGameRegex // "" options_cli_no_cfg.addOption("createxml", "create-xml", true, "Create GOG XML for file\n\"automatic\" to enable automatic XML creation"); // config.sXMLFile // "" options_cli_no_cfg.addOption("updatecheck", "update-check", true, "Check for update notifications"); // config.bUpdateCheck false options_cli_no_cfg.addOption("checkorphans", "check-orphans", true, check_orphans_text); // config.sOrphanRegex "" options_cli_no_cfg.addOption("status", true, "Show status of files\n\nOutput format:\nstatuscode gamename filename filesize filehash\n\nStatus codes:\nOK - File is OK\nND - File is not downloaded\nMD5 - MD5 mismatch, different version");// config.bCheckStatus // false options_cli_no_cfg.addOption("saveconfig", "save-config", true, "Create config file with current settings"); // config.bSaveConfig false options_cli_no_cfg.addOption("resetconfig", "reset-config", true, "Reset config settings to default"); // config.bResetConfig false options_cli_no_cfg.addOption("report", true, "Save report of downloaded/repaired files"); // config.bReport false // Commandline options (config file) options_cli_cfg.addOption("directory", true, "Set download directory"); // config.sDirectory "" options_cli_cfg.addOption(iDownloadRate, "limitRate", true, "Limit download rate to value in kB\n0 = unlimited"); // config.iDownloadRate 0 options_cli_cfg.addOption("xmlDirectory", true, "Set directory for GOG XML files"); // config.sXMLDirectory "" options_cli_cfg.addOption("chunkSize", true, "Chunk size (in MB) when creating XML"); // config.iChunkSize 10 options_cli_cfg.addOption("platform", true, platform_text); // config.iInstallerType GlobalConstants.PLATFORM_WINDOWS options_cli_cfg.addOption("language", true, language_text); // config.iInstallerLanguage GlobalConstants.LANGUAGE_EN options_cli_cfg.addOption("noInstallers", true, "Don't download/list/repair installers"); // bNoInstallers false options_cli_cfg.addOption("noExtras", true, "Don't download/list/repair extras"); // bNoExtras false options_cli_cfg.addOption("noPatches", true, "Don't download/list/repair patches"); // bNoPatches false options_cli_cfg.addOption("noLanguagePacks", true, "Don't download/list/repair language packs"); // bNoLanguagePacks false options_cli_cfg.addOption("noCover", true, "Don't download cover images"); // bNoCover false options_cli_cfg.addOption("noRemoteXml", true, "Don't use remote XML for repair"); // bNoRemoteXML false options_cli_cfg.addOption(bNoUnicode, "noUnicode", true, "Don't use Unicode in the progress bar"); // bNoUnicode false options_cli_cfg.addOption(bNoColor, "noColor", true, "Don't use coloring in the progress bar"); // bNoColor false options_cli_cfg.addOption("noDuplicateHandling", true, "Don't use duplicate handler for installers\nDuplicate installers from different languages are handled separately");// bNoDuplicateHandler // false options_cli_cfg.addOption("noSubdirectories", true, "Don't create subdirectories for extras, patches and language packs"); // bNoSubDirectories false options_cli_cfg.addOption("verbose", true, "Print lots of information"); options_cli_cfg.addOption("insecure", true, "Don't verify authenticity of SSL certificates"); // bInsecure false options_cli_cfg.addOption("timeout", true, "Set timeout for connection\nMaximum time in seconds that connection phase is allowed to take"); // config.iTimeout 10 options_cli_cfg.addOption("retries", true, "Set maximum number of retries on failed download"); // config.iRetries 3 // Options read from config file options_cfg_only.addOption(sToken, "token", true, "oauth token"); // config.sToken "" options_cfg_only.addOption(sSecret, "secret", true, "oauth secret"); // config.sSecret "" options_cli_all.addOptions(options_cli_no_cfg); options_cli_all.addOptions(options_cli_cfg); options_cfg_all.addOptions(options_cfg_only); options_cfg_all.addOptions(options_cli_cfg); options_cfg_all.parse(Config.sConfigFilePath); // boost.program_options.store(boost.program_options // .parse_command_line(argc, args, options_cli_all), vm); CommandLineParser parser = new GnuParser(); String[] args2; if (args.length == 0) { args2 = new String[] { "-help" }; } else { args2 = args; } CommandLine cmd = parser.parse(options_cli_all, args2); options_cli_all.parseCmdLine(cmd); path = Factory.newFile(Config.sConfigDirectory); if (path.exists()) { Properties prop = new Properties(); try { FileInputStream fileInputStream = new FileInputStream( Config.sConfigDirectory + File.separatorChar + Config.sConfigFilePath); try { prop.load(fileInputStream); } finally { fileInputStream.close(); } } catch (FileNotFoundException e) { System.out.println("Could not open config file: " + Config.sConfigDirectory + File.separatorChar + Config.sConfigFilePath + ", creating new one."); Factory.newFile(Config.sConfigDirectory + File.separatorChar + Config.sConfigFilePath) .createNewFile(); } } if (cmd.hasOption("help")) { System.out.println(Config.sVersionString); System.out.println("Options:"); for (Option option : (Collection<Option>) options_cli_all.getOptions()) { System.out.println(String.format("%20s\t-\t%s", option.getOpt(), option.getDescription().replace("\n", String.format("\n%20s\t \t", "")))); } return; } if (cmd.hasOption("version")) { System.out.print(Config.sVersionString); return; } if (cmd.hasOption("versionUpdate")) { String sub = "xgogdownloader-"; try { HttpClient client = Factory.createHttpClient(); HttpGet request = new HttpGet("https://drone.io/github.com/TheCrazyT/xgogdownloader/files"); request.setHeader("User-Agent", Main.USER_AGENT); HttpResponse response_full = client.execute(request); int result = response_full.getStatusLine().getStatusCode(); if (result != HttpStatus.SC_OK) { System.err.println("Error " + result); } String response = EntityUtils.toString(response_full.getEntity()); Document html = Jsoup.parse(response); Iterator<org.jsoup.nodes.Element> iterator = html.getElementsByTag("div").iterator(); while (iterator.hasNext()) { org.jsoup.nodes.Element node = iterator.next(); String hash = ""; Elements spans = node.getElementsByTag("span"); Iterator<org.jsoup.nodes.Element> iterator2 = spans.iterator(); while (iterator2.hasNext()) { org.jsoup.nodes.Element span = iterator2.next(); if (span.text().startsWith("SHA")) { hash = span.text().substring(4, 44); break; } } if (!hash.isEmpty()) { iterator2 = node.getElementsByTag("a").iterator(); while (iterator2.hasNext()) { Element a = iterator2.next(); String url = a.attr("href"); if (a.text().startsWith(sub) && a.text().endsWith(".zip")) { // TODO System.out.println("... TODO ..."); System.out.println(url); return; } } } } return; } catch (IOException e) { throw new RuntimeException(e); } } if (cmd.hasOption("chunkSize")) { Config.iChunkSize <<= 20; // Convert chunk size from bytes to megabytes } if (cmd.hasOption("limitRate")) { Config.iDownloadRate = iDownloadRate.getValue(); Config.iDownloadRate <<= 10; // Convert download rate from bytes to kilobytes } if (cmd.hasOption("check-orphans")) { if (Config.sOrphanRegex.isEmpty()) { Config.sOrphanRegex = StringUtils.join(orphans_regex_default, "|"); } } Config.bDownload = bDownload.getValue(); Config.sToken = sToken.getValue(); Config.sSecret = sToken.getValue(); Config.sSearch = sSearch.getValue(); Config.sGameRegex = sGame.getValue(); Config.bList = bList.getValue(); Config.bVerifyPeer = !bInsecure.getValue(); Config.bColor = !bNoColor.getValue(); Config.bUnicode = !bNoUnicode.getValue(); Config.bDuplicateHandler = !bNoDuplicateHandler.getValue(); Config.bCover = !bNoCover.getValue(); Config.bInstallers = !bNoInstallers.getValue(); Config.bExtras = !bNoExtras.getValue(); Config.bPatches = !bNoPatches.getValue(); Config.bLanguagePacks = !bNoLanguagePacks.getValue(); Config.bRemoteXML = !bNoRemoteXML.getValue(); Config.bSubDirectories = !bNoSubDirectories.getValue(); } catch (RuntimeException e) { System.err.println("Error: " + e.getMessage()); throw e; } catch (java.lang.Exception e) { System.err.println("Exception of unknown type!"); throw new RuntimeException(e); } if (Config.iInstallerType < GlobalConstants.PLATFORMS.get(0).platformId || Config.iInstallerType > platform_sum) { System.out.println("Invalid value for --platform"); throw new RuntimeException("Invalid value for --platform"); } if (Config.iInstallerLanguage < GlobalConstants.LANGUAGES.get(0).languageId || Config.iInstallerLanguage > language_sum) { System.out.println("Invalid value for --language"); throw new RuntimeException("Invalid value for --language"); } if (Config.sXMLDirectory != "") { // Make sure that xml directory doesn't have trailing slash if (Config.sXMLDirectory.charAt(Config.sXMLDirectory.length() - 1) == '/') { // config.sXMLDirectory.assign(config.sXMLDirectory.begin(),config.sXMLDirectory.end() // - 1); } } // Create GOG XML for a file if ((Config.sXMLFile != null) && !Config.sXMLFile.isEmpty() && !Config.sXMLFile.equals("automatic")) { util.createXML(Config.sXMLFile, Config.iChunkSize, Config.sXMLDirectory); } // Make sure that directory has trailing slash // if (Config.sDirectory != null && !Config.sDirectory.isEmpty()) { // if (Config.sDirectory.charAt(Config.sDirectory.length() - 1) != '/') // { // Config.sDirectory += "/"; // } // } Downloader downloader = new Downloader(); boolean result = downloader.init(); if (Config.bLogin) { if (!result) { throw new RuntimeException("downloader.init failed"); } return; } else if (Config.bSaveConfig) { // std.ofstream ofs = new // std.ofstream(config.sConfigFilePath.c_str()); String ofs = null; if (ofs != null) { System.out.println("Saving config: " + Config.sConfigFilePath); /* * for (boost.program_options.variables_map.iterator it = * vm.begin(); it != vm.end(); ++it) { String option = it.first; * String option_value_string; * boost.program_options.variable_value option_value = * it.second; * * try { if (option.equals(options_cfg_all.find(option, * false).long_name())) { if (!option_value.empty()) { * std.type_info type = option_value.value().type(); if (type == * typeid(String)) { option_value_string = * option_value.<String>as(); } * * } } } catch (java.lang.Exception e2) { continue; } * * if (option_value_string!="") { * System.out.println(option+" = "+option_value_string); //ofs * << option.compareTo() < 0 < < " = " << * option_value_string.compareTo() < 0 < < std.endl; } } * //ofs.close(); */ } else { System.out.println("Failed to create config: " + Config.sConfigFilePath); throw new RuntimeException("Failed to create config: " + Config.sConfigFilePath); } } else if (Config.bResetConfig) { String ofs = null; // std.ofstream ofs = new // std.ofstream(config.sConfigFilePath.c_str()); if (ofs != null) { /* * if (config.sToken!="" && config.sSecret!="") { ofs * +="token = " +config.sToken+"\n"; ofs +="secret = " * +config.sSecret+"\n"; } */ // ofs.close(); } else { System.out.println("Failed to create config: " + Config.sConfigFilePath); throw new RuntimeException("Failed to create config: " + Config.sConfigFilePath); } } else if (Config.bUpdateCheck) { // Update check has priority over download and list downloader.updateCheck(); } else if (Config.bRepair) { // Repair file downloader.repair(); } else if ((Config.sSearch != null) && (!Config.sSearch.isEmpty())) { // search games downloader.searchGames(Config.sSearch); } else if (Config.bDownload) { // Download games downloader.download(); } else if (Config.bListDetails || Config.bList) { // Detailed list of games/extras downloader.listGames(); } else if (Config.sOrphanRegex != null) { // Check for orphaned files if regex for orphans is set downloader.checkOrphans(); } else if (Config.bCheckStatus) { downloader.checkStatus(); } else { // Show help message System.out.println(Config.sVersionString + "" + options_cli_all); } // Orphan check was called at the same time as download. Perform it // after download has finished if (Config.sOrphanRegex != null && Config.bDownload) { downloader.checkOrphans(); } return; }
From source file:org.finra.datagenerator.samples.CmdLine.java
/** * Prints the help on the command line/*from www . j av a 2s. c o m*/ * * @param options Options object from commons-cli */ public static void printHelp(final Options options) { Collection<Option> c = options.getOptions(); System.out.println("Command line options are:"); int longestLongOption = 0; for (Option op : c) { if (op.getLongOpt().length() > longestLongOption) { longestLongOption = op.getLongOpt().length(); } } longestLongOption += 2; String spaces = StringUtils.repeat(" ", longestLongOption); for (Option op : c) { System.out.print("\t-" + op.getOpt() + " --" + op.getLongOpt()); if (op.getLongOpt().length() < spaces.length()) { System.out.print(spaces.substring(op.getLongOpt().length())); } else { System.out.print(" "); } System.out.println(op.getDescription()); } }
From source file:org.finra.dm.core.ArgumentParserTest.java
@Test public void testAddArgument() { Option opt1 = new Option("a", "some_flag", false, "Some flag parameter"); Option opt2 = new Option("b", "some_parameter", true, "Some parameter with an argument"); List<String> optionsIn = Arrays.asList(optionToString(opt1), optionToString(opt2)); ArgumentParser argParser = new ArgumentParser(""); argParser.addArgument(opt1, true);//from w w w . j av a 2s . c o m argParser.addArgument(opt2.getOpt(), opt2.getLongOpt(), opt2.hasArg(), opt2.getDescription(), false); Collection resultOptions = argParser.getConfiguredOptions(); List<String> optionsOut = new ArrayList<>(); for (Object obj : resultOptions) { assertTrue(obj instanceof Option); optionsOut.add(optionToString((Option) obj)); } optionsOut.containsAll(optionsIn); optionsIn.containsAll(optionsOut); }
From source file:org.finra.dm.core.ArgumentParserTest.java
@Test public void testGetUsageInformation() { List<Option> optionsIn = new ArrayList<>(); optionsIn.add(new Option("a", "some_flag", false, "Some flag parameter")); optionsIn.add(new Option("b", "some_parameter", true, "Some parameter with an argument")); ArgumentParser argParser = new ArgumentParser("TestApp"); argParser.addArgument(optionsIn.get(0), false); argParser.addArgument(optionsIn.get(1), true); String usage = argParser.getUsageInformation(); assertNotNull(usage);/* w w w . ja v a2 s.c o m*/ assertTrue(usage.contains(String.format("usage: %s", argParser.getApplicationName()))); for (Option option : optionsIn) { assertTrue(usage.contains(String.format("-%s,", option.getOpt()))); assertTrue(usage.contains(String.format("--%s", option.getLongOpt()))); assertTrue(usage.contains(option.getDescription())); assertTrue(!option.hasArg() || usage.contains(String.format("<%s>", option.getArgName()))); } }
From source file:org.finra.dm.core.ArgumentParserTest.java
/** * Dump state of the Option object instance, suitable for debugging and comparing Options as Strings. * * @param option the Option object instance to dump the state of * * @return Stringified form of this Option object instance *//*from w w w. ja va 2s . c o m*/ private String optionToString(Option option) { StringBuilder buf = new StringBuilder(); buf.append("[ option: "); buf.append(option.getOpt()); if (option.getLongOpt() != null) { buf.append(" ").append(option.getLongOpt()); } buf.append(" "); if (option.hasArg()) { buf.append(" [ARG]"); } buf.append(" :: ").append(option.getDescription()); if (option.isRequired()) { buf.append(" [REQUIRED]"); } buf.append(" ]"); return buf.toString(); }
From source file:org.finra.herd.core.ArgumentParserTest.java
@Test public void testGetUsageInformation() { List<Option> optionsIn = new ArrayList<>(); optionsIn.add(new Option("a", "some_flag", false, "Some flag parameter")); optionsIn.add(new Option("b", "some_parameter", true, "Some parameter with an argument")); ArgumentParser argParser = new ArgumentParser("TestApp"); argParser.addArgument(optionsIn.get(0), false); argParser.addArgument(optionsIn.get(1), true); String usage = argParser.getUsageInformation(); assertNotNull(usage);//from w w w. ja v a2s . co m assertTrue(usage.contains(String.format("usage: %s", argParser.getApplicationName()))); for (Option option : optionsIn) { assertTrue(usage.contains(String.format("-%s,", option.getOpt()))); assertTrue(usage.contains(String.format("--%s", option.getLongOpt()))); assertTrue(usage.contains(option.getDescription())); assertTrue(!option.hasArg() || usage.contains("<arg>")); } }
From source file:org.globus.workspace.client_common.TempBaseClient.java
protected CommandLine parse(String[] args, Properties defaultOptions) throws Exception { CommandLineParser parser = new PosixParser(); CommandLine line = parser.parse(options, args, defaultOptions); if (defaultOptions != null) { Iterator iter = defaultOptions.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); Option opt = options.getOption((String) entry.getKey()); if (opt != null) { String desc = opt.getDescription(); desc += " (Default '" + entry.getValue() + "')"; opt.setDescription(desc); }/*from w ww. java2 s.com*/ } } if (line.hasOption("h")) { displayUsage(); System.exit(0); } if (line.hasOption("e")) { if (line.hasOption("k")) { throw new ParseException("-e and -k arguments are exclusive"); } if (line.hasOption("s")) { throw new ParseException("-e and -s arguments are exclusive"); } FileInputStream in = null; try { in = new FileInputStream(line.getOptionValue("e")); this.endpoint = (EndpointReferenceType) ObjectDeserializer.deserialize(new InputSource(in), EndpointReferenceType.class); } finally { if (in != null) { try { in.close(); } catch (Exception e) { } } } } else if (line.hasOption("s")) { this.endpoint = new EndpointReferenceType(); this.endpoint.setAddress(new Address(line.getOptionValue("s"))); } else { throw new ParseException("-s or -e argument is required"); } if (line.hasOption("k")) { String[] values = line.getOptionValues("k"); if (values.length != 2) { throw new ParseException("-k requires two arguments"); } QName keyName = QName.valueOf(values[0]); ReferencePropertiesType props = new ReferencePropertiesType(); SimpleResourceKey key = new SimpleResourceKey(keyName, values[1]); props.add(key.toSOAPElement()); this.endpoint.setProperties(props); } this.debugMode = line.hasOption("d"); // Security mechanism if (line.hasOption("m")) { String value = line.getOptionValue("m"); if (value != null) { if (value.equals("msg")) { this.mechanism = Constants.GSI_SEC_MSG; } else if (value.equals("conv")) { this.mechanism = Constants.GSI_SEC_CONV; } else { throw new ParseException("Unsupported security mechanism: " + value); } } } // Protection if (line.hasOption("p")) { String value = line.getOptionValue("p"); if (value != null) { if (value.equals("sig")) { this.protection = Constants.SIGNATURE; } else if (value.equals("enc")) { this.protection = Constants.ENCRYPTION; } else { throw new ParseException("Unsupported protection mode: " + value); } } } // Delegation if (line.hasOption("g")) { String value = line.getOptionValue("g"); if (value != null) { if (value.equals("limited")) { this.delegation = GSIConstants.GSI_MODE_LIMITED_DELEG; } else if (value.equals("full")) { this.delegation = GSIConstants.GSI_MODE_FULL_DELEG; } else { throw new ParseException("Unsupported delegation mode: " + value); } } } // Authz if (line.hasOption("z")) { String value = line.getOptionValue("z"); if (value != null) { if (value.equals("self")) { this.authorization = SelfAuthorization.getInstance(); } else if (value.equals("host")) { this.authorization = HostAuthorization.getInstance(); } else if (value.equals("none")) { this.authorization = NoAuthorization.getInstance(); } else if (authorization == null) { this.authorization = new IdentityAuthorization(value); } } } // Anonymous if (line.hasOption("a")) { this.anonymous = Boolean.TRUE; } // context lifetime if (line.hasOption("l")) { String value = line.getOptionValue("l"); if (value != null) this.contextLifetime = new Integer(value); } // msg actor if (line.hasOption("x")) { String value = line.getOptionValue("x"); this.msgActor = value; } // conv actor if (line.hasOption("y")) { String value = line.getOptionValue("y"); this.convActor = value; } // Server's public key if (line.hasOption("c")) { String value = line.getOptionValue("c"); this.publicKeyFilename = value; } if (line.hasOption("f")) { String value = line.getOptionValue("f"); this.descriptorFile = value; } return line; }