commons-cli-1.3.1-src/CONTRIBUTING.md0100644 0000765 0000024 00000012474 12537250703 017423 0ustar00benestaff0000000 0000000 Contributing to Apache Commons CLI ====================== You have found a bug or you have an idea for a cool new feature? Contributing code is a great way to give something back to the open source community. Before you dig right into the code there are a few guidelines that we need contributors to follow so that we can have a chance of keeping on top of things. Getting Started --------------- + Make sure you have a [JIRA account](https://issues.apache.org/jira/). + Make sure you have a [GitHub account](https://github.com/signup/free). + If you're planning to implement a new feature it makes sense to discuss you're changes on the [dev list](https://commons.apache.org/mail-lists.html) first. This way you can make sure you're not wasting your time on something that isn't considered to be in Apache Commons CLI's scope. + Submit a ticket for your issue, assuming one does not already exist. + Clearly describe the issue including steps to reproduce when it is a bug. + Make sure you fill in the earliest version that you know has the issue. + Fork the repository on GitHub. Making Changes -------------- + Create a topic branch from where you want to base your work (this is usually the master/trunk branch). + Make commits of logical units. + Respect the original code style: + Only use spaces for indentation. + Create minimal diffs - disable on save actions like reformat source code or organize imports. If you feel the source code should be reformatted create a separate PR for this change. + Check for unnecessary whitespace with git diff --check before committing. + Make sure your commit messages are in the proper format. Your commit message should contain the key of the JIRA issue. + Make sure you have added the necessary tests for your changes. + Run all the tests with `mvn clean verify` to assure nothing else was accidentally broken. Making Trivial Changes ---------------------- For changes of a trivial nature to comments and documentation, it is not always necessary to create a new ticket in JIRA. In this case, it is appropriate to start the first line of a commit with '(doc)' instead of a ticket number. Submitting Changes ------------------ + Sign the [Contributor License Agreement][cla] if you haven't already. + Push your changes to a topic branch in your fork of the repository. + Submit a pull request to the repository in the apache organization. + Update your JIRA ticket and include a link to the pull request in the ticket. Additional Resources -------------------- + [Contributing patches](https://commons.apache.org/patches.html) + [Apache Commons CLI JIRA project page](https://issues.apache.org/jira/browse/CLI) + [Contributor License Agreement][cla] + [General GitHub documentation](https://help.github.com/) + [GitHub pull request documentation](https://help.github.com/send-pull-requests/) + [Apache Commons Twitter Account](https://twitter.com/ApacheCommons) + #apachecommons IRC channel on freenode.org [cla]:https://www.apache.org/licenses/#clas commons-cli-1.3.1-src/LICENSE.txt0100644 0000765 0000024 00000026136 12537250703 017015 0ustar00benestaff0000000 0000000 Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. commons-cli-1.3.1-src/NOTICE.txt0100644 0000765 0000024 00000000254 12537250703 016705 0ustar00benestaff0000000 0000000 Apache Commons CLI Copyright 2001-2015 The Apache Software Foundation This product includes software developed at The Apache Software Foundation (http://www.apache.org/). commons-cli-1.3.1-src/pom.xml0100644 0000765 0000024 00000024231 12537250704 016502 0ustar00benestaff0000000 0000000 org.apache.commons commons-parent 37 4.0.0 commons-cli commons-cli 1.3.1 Apache Commons CLI 2002 Apache Commons CLI provides a simple API for presenting, processing and validating a command line interface. http://commons.apache.org/proper/commons-cli/ jira http://issues.apache.org/jira/browse/CLI scm:svn:http://svn.apache.org/repos/asf/commons/proper/cli/tags/cli-1.3.1/ scm:svn:https://svn.apache.org/repos/asf/commons/proper/cli/tags/cli-1.3.1/ http://svn.apache.org/viewvc/commons/proper/cli/tags/cli-1.3.1/ James Strachan jstrachan jstrachan@apache.org SpiritSoft, Inc. Bob McWhirter bob bob@werken.com Werken contributed ideas and code from werken.opt John Keyes jkeyes jbjk@mac.com integral Source contributed ideas and code from Optz Rob Oxspring roxspring roxspring@imapmail.org Indigo Stone designed CLI2 Emmanuel Bourg ebourg ebourg@apache.org Ariane Software Thomas Neidhart tn tn@apache.org Beluga Behr Peter Donald contributed ideas and code from Avalon Excalibur's cli package Brian Egge made the 1.1 release happen Duncan Jones supplied patches Berin Loritsch bloritsch@apache.org helped in the Avalon CLI merge Peter Maddocks peter_maddocks@hp.com Hewlett-Packard supplied patch Alexandru Mocanu supplied patch Andrew Shirley lots of fixes for 1.1 Greg Thomas Slawek Zachcial unit tests junit junit 4.12 test 1.5 1.5 cli 1.3.1 commons-cli-${commons.release.version} org.apache.commons.cli CLI 12310463 RC1 site-content maven-assembly-plugin src/assembly/bin.xml src/assembly/src.xml gnu org.apache.maven.plugins maven-scm-publish-plugin javadocs** org.apache.maven.plugins maven-javadoc-plugin true http://download.oracle.com/javase/6/docs/api org.apache.maven.plugins maven-checkstyle-plugin 2.15 ${basedir}/src/conf/checkstyle.xml false ${basedir}/src/conf/checkstyle-suppressions.xml checkstyle org.codehaus.mojo findbugs-maven-plugin 3.0.1 Normal Default ${basedir}/src/conf/findbugs-exclude-filter.xml maven-pmd-plugin 3.4 ${maven.compiler.target} apache.website Apache Commons Site scm:svn:${commons.scmPubUrl} rc apache.website Apache Commons Release Candidate Staging Site ${commons.deployment.protocol}://people.apache.org/www/people.apache.org/builds/commons/${commons.componentid}/${commons.release.version}/${commons.rc.version}/site setup-checkout site-content org.apache.maven.plugins maven-antrun-plugin 1.7 prepare-checkout pre-site run commons-cli-1.3.1-src/README.md0100644 0000765 0000024 00000011417 12537250703 016445 0ustar00benestaff0000000 0000000 Apache Commons CLI =================== Apache Commons CLI provides a simple API for presenting, processing and validating a command line interface. Documentation ------------- More information can be found on the [homepage](https://commons.apache.org/proper/commons-cli). The [JavaDoc](https://commons.apache.org/proper/commons-cli/javadocs/api-release) can be browsed. Questions related to the usage of Apache Commons CLI should be posted to the [user mailing list][ml]. Where can I get the latest release? ----------------------------------- You can download source and binaries from our [download page](https://commons.apache.org/proper/commons-cli/download_cli.cgi). Alternatively you can pull it from the central Maven repositories: ```xml commons-cli commons-cli 1.3 ``` Contributing ------------ We accept PRs via github. The [developer mailing list][ml] is the main channel of communication for contributors. There are some guidelines which will make applying PRs easier for us: + No tabs! Please use spaces for indentation. + Respect the code style. + Create minimal diffs - disable on save actions like reformat source code or organize imports. If you feel the source code should be reformatted create a separate PR for this change. + Provide JUnit tests for your changes and make sure your changes don't break any existing tests by running ```mvn clean test```. If you plan to contribute on a regular basis, please consider filing a [contributor license agreement](https://www.apache.org/licenses/#clas). You can learn more about contributing via GitHub in our [contribution guidelines](CONTRIBUTING.md). License ------- Code is under the [Apache Licence v2](https://www.apache.org/licenses/LICENSE-2.0.txt). Donations --------- You like Apache Commons CLI? Then [donate back to the ASF](https://www.apache.org/foundation/contributing.html) to support the development. Additional Resources -------------------- + [Apache Commons Homepage](https://commons.apache.org/) + [Apache Bugtracker (JIRA)](https://issues.apache.org/jira/) + [Apache Commons Twitter Account](https://twitter.com/ApacheCommons) + #apachecommons IRC channel on freenode.org [ml]:https://commons.apache.org/mail-lists.html commons-cli-1.3.1-src/RELEASE-NOTES.txt0100644 0000765 0000024 00000022355 12537250703 017700 0ustar00benestaff0000000 0000000 Apache Commons CLI Version 1.3.1 Release Notes INTRODUCTION: This document contains the release notes for this version of the Commons CLI package. Commons CLI provides a simple API for working with the command line arguments and options. Commons CLI 1.3.1 is a bug fix release and binary compatible with the previous versions, except for the OptionValidator class that is no longer public (change introduced in v1.2). Commons CLI 1.3.1 at least requires Java 5.0. More information can be found on the project site at http://commons.apache.org/cli. BUG FIXES ========= o CLI-252: LongOpt falsely detected as ambiguous. Thanks to Simon Harrer. Release Notes for version 1.3 NOTES ===== A new parser is available: DefaultParser. It combines the features of the GnuParser and the PosixParser. It also provides additional features like partial matching for the long options, and long options without separator (i.e like the JVM memory settings: -Xmx512m). This new parser deprecates the previous ones. DEPRECATIONS ============ o org.apache.commons.cli.BasicParser replaced by org.apache.commons.cli.DefaultParser o org.apache.commons.cli.GnuParser replaced by org.apache.commons.cli.DefaultParser o org.apache.commons.cli.OptionBuilder replaced by org.apache.commons.cli.Option.builder() org.apache.commons.cli.Option.builder(String) org.apache.commons.cli.Option.Builder o org.apache.commons.cli.Parser replaced by org.apache.commons.cli.DefaultParser o org.apache.commons.cli.PosixParser replaced by org.apache.commons.cli.DefaultParser NEW FEATURES ============ o CLI-161: PosixParser doesn't stop the parsing on "--" tokens following an option with an argument o CLI-167: Support options like Java memory settings (-Xmx512M) o CLI-181: Unified Parser o CLI-224: Added new fluent API to create Option instances via builder class Option.Builder. This replaces the now deprecated OptionBuilder. Thanks to Duncan Jones, Brian Blount. o CLI-160: PosixParser now supports partial long options (--ver instead of --version). o CLI-169: HelpFormatter now supports setting the displayed separator of long options. Thanks to J. Lewis Muir. o CLI-214: Added new method Options.addOption(String, String). Thanks to Alexandru Mocanu. BUG FIXES ========= o CLI-248: Dead links on doc page. o CLI-234: Fixed code example in javadoc of "Option#Builder#valueSeparator(char)". Thanks to Greg Thomas. o CLI-241: Clarified behavior of "OptionValidator#validateOption(String)" in case of null input. Thanks to Beluga Behr. o CLI-202: Default options will now work correctly with required options that are missing. o CLI-203: Default options will now work correctly together with option groups. o CLI-205: HelpFormatter.setArgName(String) now correctly sets the argument name. o CLI-204: Passing default values for not defined options to a parser will now trigger a ParseException instead of a NullPointerException. o CLI-201: Default properties provided as input to the Parser.parse() methods are now correctly processed. o CLI-215: CommandLine.getParsedOptionValue() now returns a String object if no option type has been explicitly set. Thanks to Manuel Müller. o CLI-212: HelpFormatter now prints command-line options in the same order as they have been added. Thanks to Per Cederberg. o CLI-186: Standard help text now shows mandatory arguments also for the first option. Thanks to Kristoff Kiefer. o CLI-207: HelpFormatter does not strip anymore leading whitespace in the footer text. Thanks to Uri Moszkowicz. o CLI-185: Strip quotes contained in argument values only if there is exactly one at the beginning and one at the end. Thanks to Einar M. R. Rosenvinge. o CLI-184: Negative numerical arguments take precedence over numerical options. o CLI-193: Fix possible StringIndexOutOfBoundsException in HelpFormatter. Thanks to Travis McLeskey. o CLI-183: OptionGroups no longer throw an AlreadySelectedException when reused for several parsings. o CLI-182: OptionGroup now selects properly an option with no short name. CHANGES ======= o CLI-240: Small cleanup of Option class. Thanks to Beluga Behr. o CLI-230: Options.getRequiredOptions() now returns an unmodifiable list. o CLI-218: Clarify javadoc for CommandLine.getOptionValue() that the first specified argument will be returned. Thanks to Sven. o CLI-227: Changed unit tests to junit 4 annotation style. Thanks to Duncan Jones. o CLI-209: The javadoc of OptionBuilder now states that the class is not thread-safe. Thanks to Thomas Herre. o CLI-200: Fixed typo in javadoc of class CommandLine. Thanks to Gerard Weatherby. o CLI-223: Source code now uses generic types instead of raw types where possible. Thanks to Gerard Weatherby. o CLI-220 Corrected javadoc for return type of MissingOptionException.getMissingOptions(). Thanks to Joe Casadonte. o CLI-197: Improve description of parameter "stopAtNonOption" in method CommandLine.parse(Options, String[], boolean). Thanks to Anders Larsson. o CLI-231: Removed DoubleCheckedLocking test from checkstyle configuration. Thanks to Duncan Jones. Release Notes for version 1.2 NEW FEATURES ============ o -- : The method getOptionProperties() in the CommandLine class was added to retrieve easily the key/value pairs specified with options like -Dkey1=value1 -Dkey2=value2. o CLI-157: GnuParser now supports long options with an '=' sign (ie. --foo=bar and -foo=bar) o CLI-155: The ordering of options can be defined in help messages. BUG FIXES ========= o CLI-137: The number of arguments defined for an option specifies the arguments per occurence of the option and not for all occurences. o CLI-164: PosixParser no longer ignores unrecognized short options. o CLI-163: PosixParser no longer stops the bursting process of a token if stopAtNonOption is enabled and a non option character is encountered. o CLI-165: PosixParser no longer keeps processing the tokens after an unrecognized long option when stopAtNonOption is enabled. o CLI-156: Required options are properly checked if an Options instance is used twice to parse a command line. o CLI-151: The line wrapping in HelpFormatter now works properly. CHANGES ======= o CLI-149: The message of MissingOptionException has been improved. o CLI-86: The exceptions have been enhanced with methods to retrieve easily the related options. o CLI-141: Option.toString() now reports arguments properly. o CLI-142: The Parser class has been changed to be more easily extendable. o CLI-140: The following classes are now serializable: Option, OptionGroup, CommandLine and Options. o -- : OptionValidator is no longer public, its methods were all private. Release Notes for version 1.1 NEW FEATURES ============ o CLI-78: Setting description of a Option. CHANGES ======= o CLI-2: Wrong usage summary. o CLI-5: Dependecy on commons-lang-2.0 but commons-lang-1.0 is obtained. o CLI-8: Line separator as first char for helpformatter (footer) throws exception. o CLI-13: CommandLine.getOptionValue() behaves contrary to docs. o CLI-21: clone method in Option should use super.clone(). o CLI-23: Passing properties in Parser does not work for options with a single argument. o CLI-26: Only long options without short option seems to be noticed. o CLI-28: Infinite Loop in Command-Line processing. o CLI-29: Options should not be able to be added more than once. o CLI-35: HelpFormatter doesn't sort options properly. o CLI-38: HelpFormatter doesn't function correctly for options with only LongOpt. o CLI-44: Document enhancement. o CLI-45: Documentation errors. o CLI-51: Parameter value "-something" misinterpreted as a parameter. o CLI-56: clone() method doesn't fully clone contents. o CLI-59: No Javadoc for HelpFormatter!. o CLI-65: Parser breaks up command line parms into single characters. o CLI-67: Missing arguments in HelpFormatter.renderOptions(..). o CLI-69: Error parsing option arguments. o CLI-71: A weakness of parser. o CLI-129: CLI_1_BRANCH build.xml doesn't work. o CLI-130: Remove the Commons Lang dependency. o CLI-131: Options class returns options in random order. o CLI-132: MissingOptionException should contain a useful error message. o CLI-133: NullPointerException in Util.stripLeadingHyphens when passed a null argument. o CLI-134: 1.1 is not backwards compatible because it adds methods to the CommandLineParser interface. o CLI-135: Backwards compatibility between 1.1 and 1.0 broken due to Option.addValue removal. Historical list of changes: http://commons.apache.org/cli/changes-report.html For complete information on Commons CLI, including instructions on how to submit bug reports, patches, or suggestions for improvement, see the Apache Commons CLI website: http://commons.apache.org/cli/ Have fun! -Apache Commons CLI team commons-cli-1.3.1-src/src/0040755 0000765 0000024 00000000000 12537250704 015755 5ustar00benestaff0000000 0000000 commons-cli-1.3.1-src/src/assembly/0040755 0000765 0000024 00000000000 12537250704 017574 5ustar00benestaff0000000 0000000 commons-cli-1.3.1-src/src/changes/0040755 0000765 0000024 00000000000 12537250703 017364 5ustar00benestaff0000000 0000000 commons-cli-1.3.1-src/src/conf/0040755 0000765 0000024 00000000000 12537250704 016702 5ustar00benestaff0000000 0000000 commons-cli-1.3.1-src/src/main/0040755 0000765 0000024 00000000000 12537250703 016700 5ustar00benestaff0000000 0000000 commons-cli-1.3.1-src/src/main/java/0040755 0000765 0000024 00000000000 12537250703 017621 5ustar00benestaff0000000 0000000 commons-cli-1.3.1-src/src/main/java/org/0040755 0000765 0000024 00000000000 12537250703 020410 5ustar00benestaff0000000 0000000 commons-cli-1.3.1-src/src/main/java/org/apache/0040755 0000765 0000024 00000000000 12537250703 021631 5ustar00benestaff0000000 0000000 commons-cli-1.3.1-src/src/main/java/org/apache/commons/0040755 0000765 0000024 00000000000 12537250703 023304 5ustar00benestaff0000000 0000000 commons-cli-1.3.1-src/src/main/java/org/apache/commons/cli/0040755 0000765 0000024 00000000000 12537250704 024054 5ustar00benestaff0000000 0000000 commons-cli-1.3.1-src/src/media/0040755 0000765 0000024 00000000000 12537250704 017034 5ustar00benestaff0000000 0000000 commons-cli-1.3.1-src/src/site/0040755 0000765 0000024 00000000000 12537250704 016721 5ustar00benestaff0000000 0000000 commons-cli-1.3.1-src/src/site/resources/0040755 0000765 0000024 00000000000 12537250704 020733 5ustar00benestaff0000000 0000000 commons-cli-1.3.1-src/src/site/resources/images/0040755 0000765 0000024 00000000000 12537250704 022200 5ustar00benestaff0000000 0000000 commons-cli-1.3.1-src/src/site/resources/images/svg/0040755 0000765 0000024 00000000000 12537250704 022777 5ustar00benestaff0000000 0000000 commons-cli-1.3.1-src/src/site/xdoc/0040755 0000765 0000024 00000000000 12537250704 017656 5ustar00benestaff0000000 0000000 commons-cli-1.3.1-src/src/test/0040755 0000765 0000024 00000000000 12537250703 016733 5ustar00benestaff0000000 0000000 commons-cli-1.3.1-src/src/test/java/0040755 0000765 0000024 00000000000 12537250703 017654 5ustar00benestaff0000000 0000000 commons-cli-1.3.1-src/src/test/java/org/0040755 0000765 0000024 00000000000 12537250703 020443 5ustar00benestaff0000000 0000000 commons-cli-1.3.1-src/src/test/java/org/apache/0040755 0000765 0000024 00000000000 12537250703 021664 5ustar00benestaff0000000 0000000 commons-cli-1.3.1-src/src/test/java/org/apache/commons/0040755 0000765 0000024 00000000000 12537250703 023337 5ustar00benestaff0000000 0000000 commons-cli-1.3.1-src/src/test/java/org/apache/commons/cli/0040755 0000765 0000024 00000000000 12537250704 024107 5ustar00benestaff0000000 0000000 commons-cli-1.3.1-src/src/test/java/org/apache/commons/cli/bug/0040755 0000765 0000024 00000000000 12537250704 024664 5ustar00benestaff0000000 0000000 commons-cli-1.3.1-src/src/test/resources/0040755 0000765 0000024 00000000000 12537250703 020745 5ustar00benestaff0000000 0000000 commons-cli-1.3.1-src/src/assembly/bin.xml0100644 0000765 0000024 00000003200 12537250704 021056 0ustar00benestaff0000000 0000000 bin tar.gz zip false LICENSE.txt NOTICE.txt RELEASE-NOTES.txt README.md CONTRIBUTING.md target *.jar target/site/apidocs apidocs commons-cli-1.3.1-src/src/assembly/src.xml0100644 0000765 0000024 00000002677 12537250703 021115 0ustar00benestaff0000000 0000000 src tar.gz zip ${project.artifactId}-${commons.release.version}-src LICENSE.txt NOTICE.txt pom.xml RELEASE-NOTES.txt README.md CONTRIBUTING.md src commons-cli-1.3.1-src/src/changes/changes.xml0100644 0000765 0000024 00000033503 12537250703 021517 0ustar00benestaff0000000 0000000 Commons CLI Release Notes LongOpt falsely detected as ambiguous Fixed broken Javadoc links on Introduction page. Fixed code example in javadoc of "Option#Builder#valueSeparator(char)". Clarified behavior of "OptionValidator#validateOption(String)" in case of null input. Small cleanup of Option class. Removed DoubleCheckedLocking test from checkstyle configuration. Options.getRequiredOptions() now returns an unmodifiable list. Added new fluent API to create Option instances via builder class Option.Builder. This replaces the now deprecated OptionBuilder. Clarify javadoc for CommandLine.getOptionValue() that the first specified argument will be returned. Added new method Options.addOption(String, String). Changed unit tests to junit 4 annotation style. Default options will now work correctly with required options that are missing. Default options will now work correctly together with option groups. The javadoc of OptionBuilder now states that the class is not thread-safe. HelpFormatter now supports setting the displayed separator of long options. Improve description of parameter "stopAtNonOption" in method CommandLine.parse(Options, String[], boolean). Passing default values for not defined options to a parser will now trigger a ParseException instead of a NullPointerException. HelpFormatter.setArgName(String) now correctly sets the argument name. Default properties provided as input to the Parser.parse() methods are now correctly processed. CommandLine.getParsedOptionValue() now returns a String object if no option type has been explicitly set. Fixed typo in javadoc of class CommandLine. Source code now uses generic types instead of raw types where possible. Corrected javadoc for return type of MissingOptionException.getMissingOptions(). HelpFormatter now prints command-line options in the same order as they have been added. Standard help text now shows mandatory arguments also for the first option. HelpFormatter does not strip anymore leading whitespace in the footer text. Strip quotes contained in argument values only if there is exactly one at the beginning and one at the end. Negative numerical arguments take precedence over numerical options (only supported by the new DefaultParser). Fix possible StringIndexOutOfBoundsException in HelpFormatter. A new parser is available: DefaultParser. It combines the features of the GnuParser and the PosixParser. It also provides additional features like partial matching for the long options, and long options without separator (i.e like the JVM memory settings: -Xmx512m). This new parser deprecates the previous ones. OptionGroups no longer throw an AlreadySelectedException when reused for several parsings. OptionGroup now selects properly an option with no short name. PosixParser now supports partial long options (--ver instead of --version). OptionBuilder is now reseted if an IllegalArgumentException occurs in create(). Ant build system removed. Incomplete usage documentation about Java property option. TypeHandler prints messages to stderr. Infinite loop in the wrapping code of HelpFormatter. Fixing some minor javadoc issues. The number of arguments defined for an option specifies the arguments per occurrence of the option and not for all occurrences. This was a major regression in CLI 1.1 which prevented the use of repeated options. Added a getOptionProperties() method in the CommandLine class to retrieve easily the key/value pairs specified with options like -Dkey1=value1 -Dkey2=value2. GnuParser now supports long options with an '=' sign (ie. --foo=bar and -foo=bar) PosixParser no longer ignores unrecognized short options. PosixParser no longer stops the bursting process of a token if stopAtNonOption is enabled and a non option character is encountered. PosixParser no longer keeps processing the tokens after an unrecognized long option when stopAtNonOption is enabled. Required options are properly checked if an Options instance is used twice to parse a command line. The ordering of options can be defined in help messages. The line wrapping in HelpFormatter now works properly. This caused CLI-162, and thus there was a feature change for the HelpFormatter in that it is strict on width now rather than what seemed to be lenience before. Text without whitespace will be cut off to fit in the spacing, and an IllegalStateException will be thrown if it is impossible to output the information due to spacing constraints. The message of MissingOptionException has been improved. The exceptions have been enhanced with methods to retrieve easily the related options. Option.toString() now reports arguments properly. The Parser class has been changed to be more easily extendable. The following classes are now serializable: Option, OptionGroup, CommandLine and Options. OptionValidator is no longer public, its methods were all private. Wrong usage summary. Dependecy on commons-lang-2.0 but commons-lang-1.0 is obtained. Line separator as first char for helpformatter (footer) throws exception. CommandLine.getOptionValue() behaves contrary to docs. clone method in Option should use super.clone(). Passing properties in Parser does not work for options with a single argument. Only long options without short option seems to be noticed. Infinite Loop in Command-Line processing. Options should not be able to be added more than once. HelpFormatter doesn't sort options properly. HelpFormatter doesn't function correctly for options with only LongOpt. Document enhancement. Documentation errors. Parameter value "-something" misinterpreted as a parameter. clone() method doesn't fully clone contents. No Javadoc for HelpFormatter!. Parser breaks up command line parms into single characters. Missing arguments in HelpFormatter.renderOptions(..). Error parsing option arguments. A weakness of parser. Setting description of a Option. CLI_1_BRANCH build.xml doesn't work. Remove the Commons Lang dependency. Options class returns options in random order. MissingOptionException should contain a useful error message. NullPointerException in Util.stripLeadingHyphens when passed a null argument. 1.1 is not backwards compatible because it adds methods to the CommandLineParser interface. Backwards compatibility between 1.1 and 1.0 broken due to Option.addValue removal. commons-cli-1.3.1-src/src/conf/checkstyle-suppressions.xml0100644 0000765 0000024 00000003601 12537250704 024332 0ustar00benestaff0000000 0000000 commons-cli-1.3.1-src/src/conf/checkstyle.xml0100644 0000765 0000024 00000016225 12537250704 021565 0ustar00benestaff0000000 0000000 commons-cli-1.3.1-src/src/conf/findbugs-exclude-filter.xml0100644 0000765 0000024 00000002615 12537250704 024140 0ustar00benestaff0000000 0000000 commons-cli-1.3.1-src/src/main/java/org/apache/commons/cli/AlreadySelectedException.java0100644 0000765 0000024 00000005116 12537250704 031630 0ustar00benestaff0000000 0000000 /** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.commons.cli; /** * Thrown when more than one option in an option group * has been provided. * * @version $Id: AlreadySelectedException.java 1443102 2013-02-06 18:12:16Z tn $ */ public class AlreadySelectedException extends ParseException { /** * This exception {@code serialVersionUID}. */ private static final long serialVersionUID = 3674381532418544760L; /** The option group selected. */ private OptionGroup group; /** The option that triggered the exception. */ private Option option; /** * Construct a new AlreadySelectedException * with the specified detail message. * * @param message the detail message */ public AlreadySelectedException(String message) { super(message); } /** * Construct a new AlreadySelectedException * for the specified option group. * * @param group the option group already selected * @param option the option that triggered the exception * @since 1.2 */ public AlreadySelectedException(OptionGroup group, Option option) { this("The option '" + option.getKey() + "' was specified but an option from this group " + "has already been selected: '" + group.getSelected() + "'"); this.group = group; this.option = option; } /** * Returns the option group where another option has been selected. * * @return the related option group * @since 1.2 */ public OptionGroup getOptionGroup() { return group; } /** * Returns the option that was added to the group and triggered the exception. * * @return the related option * @since 1.2 */ public Option getOption() { return option; } } commons-cli-1.3.1-src/src/main/java/org/apache/commons/cli/AmbiguousOptionException.java0100644 0000765 0000024 00000005345 12537250704 031726 0ustar00benestaff0000000 0000000 /** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.commons.cli; import java.util.Collection; import java.util.Iterator; /** * Exception thrown when an option can't be identified from a partial name. * * @version $Id: AmbiguousOptionException.java 1669814 2015-03-28 18:09:26Z britter $ * @since 1.3 */ public class AmbiguousOptionException extends UnrecognizedOptionException { /** * This exception {@code serialVersionUID}. */ private static final long serialVersionUID = 5829816121277947229L; /** The list of options matching the partial name specified */ private final Collection matchingOptions; /** * Constructs a new AmbiguousOptionException. * * @param option the partial option name * @param matchingOptions the options matching the name */ public AmbiguousOptionException(String option, Collection matchingOptions) { super(createMessage(option, matchingOptions), option); this.matchingOptions = matchingOptions; } /** * Returns the options matching the partial name. * @return a collection of options matching the name */ public Collection getMatchingOptions() { return matchingOptions; } /** * Build the exception message from the specified list of options. * * @param option * @param matchingOptions * @return */ private static String createMessage(String option, Collection matchingOptions) { StringBuilder buf = new StringBuilder("Ambiguous option: '"); buf.append(option); buf.append("' (could be: "); Iterator it = matchingOptions.iterator(); while (it.hasNext()) { buf.append("'"); buf.append(it.next()); buf.append("'"); if (it.hasNext()) { buf.append(", "); } } buf.append(")"); return buf.toString(); } } commons-cli-1.3.1-src/src/main/java/org/apache/commons/cli/BasicParser.java0100644 0000765 0000024 00000003745 12537250704 027123 0ustar00benestaff0000000 0000000 /** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.commons.cli; /** * The class BasicParser provides a very simple implementation of * the {@link Parser#flatten(Options,String[],boolean) flatten} method. * * @version $Id: BasicParser.java 1443102 2013-02-06 18:12:16Z tn $ * @deprecated since 1.3, use the {@link DefaultParser} instead */ @Deprecated public class BasicParser extends Parser { /** *

A simple implementation of {@link Parser}'s abstract * {@link Parser#flatten(Options, String[], boolean) flatten} method.

* *

Note: options and stopAtNonOption * are not used in this flatten method.

* * @param options The command line {@link Options} * @param arguments The command line arguments to be parsed * @param stopAtNonOption Specifies whether to stop flattening * when an non option is found. * @return The arguments String array. */ @Override protected String[] flatten(@SuppressWarnings("unused") Options options, String[] arguments, @SuppressWarnings("unused") boolean stopAtNonOption) { // just echo the arguments return arguments; } } commons-cli-1.3.1-src/src/main/java/org/apache/commons/cli/CommandLine.java0100644 0000765 0000024 00000025300 12537250704 027102 0ustar00benestaff0000000 0000000 /** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.commons.cli; import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Properties; /** * Represents list of arguments parsed against a {@link Options} descriptor. *

* It allows querying of a boolean {@link #hasOption(String opt)}, * in addition to retrieving the {@link #getOptionValue(String opt)} * for options requiring arguments. *

* Additionally, any left-over or unrecognized arguments, * are available for further processing. * * @version $Id: CommandLine.java 1444365 2013-02-09 14:21:27Z tn $ */ public class CommandLine implements Serializable { /** The serial version UID. */ private static final long serialVersionUID = 1L; /** the unrecognised options/arguments */ private final List args = new LinkedList(); /** the processed options */ private final List

Dump state, suitable for debugging.

* * @return Stringified form of this object */ /* public String toString() { StringBuilder buf = new StringBuilder(); buf.append("[ CommandLine: [ options: "); buf.append(options.toString()); buf.append(" ] [ args: "); buf.append(args.toString()); buf.append(" ] ]"); return buf.toString(); } */ /** * Add left-over unrecognized option/argument. * * @param arg the unrecognised option/argument. */ protected void addArg(String arg) { args.add(arg); } /** * Add an option to the command line. The values of the option are stored. * * @param opt the processed option */ protected void addOption(Option opt) { options.add(opt); } /** * Returns an iterator over the Option members of CommandLine. * * @return an Iterator over the processed {@link Option} * members of this {@link CommandLine} */ public Iterator