commons-cli-1.3.1-src/CONTRIBUTING.md 0100644 0000765 0000024 00000012474 12537250703 017423 0 ustar 00bene staff 0000000 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.txt 0100644 0000765 0000024 00000026136 12537250703 017015 0 ustar 00bene staff 0000000 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.txt 0100644 0000765 0000024 00000000254 12537250703 016705 0 ustar 00bene staff 0000000 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.xml 0100644 0000765 0000024 00000024231 12537250704 016502 0 ustar 00bene staff 0000000 0000000
org.apache.commonscommons-parent374.0.0commons-clicommons-cli1.3.1Apache Commons CLI2002
Apache Commons CLI provides a simple API for presenting, processing and validating a command line interface.
http://commons.apache.org/proper/commons-cli/jirahttp://issues.apache.org/jira/browse/CLIscm: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 Strachanjstrachanjstrachan@apache.orgSpiritSoft, Inc.Bob McWhirterbobbob@werken.comWerkencontributed ideas and code from werken.optJohn Keyesjkeyesjbjk@mac.comintegral Sourcecontributed ideas and code from OptzRob Oxspringroxspringroxspring@imapmail.orgIndigo Stonedesigned CLI2Emmanuel Bourgebourgebourg@apache.orgAriane SoftwareThomas Neidharttntn@apache.orgBeluga BehrPeter Donaldcontributed ideas and code from Avalon Excalibur's cli packageBrian Eggemade the 1.1 release happenDuncan Jonessupplied patchesBerin Loritschbloritsch@apache.orghelped in the Avalon CLI mergePeter Maddockspeter_maddocks@hp.comHewlett-Packardsupplied patchAlexandru Mocanusupplied patchAndrew Shirleylots of fixes for 1.1Greg ThomasSlawek Zachcialunit testsjunitjunit4.12test1.51.5cli1.3.1commons-cli-${commons.release.version}org.apache.commons.cliCLI12310463RC1site-contentmaven-assembly-pluginsrc/assembly/bin.xmlsrc/assembly/src.xmlgnuorg.apache.maven.pluginsmaven-scm-publish-pluginjavadocs**org.apache.maven.pluginsmaven-javadoc-plugintrue
http://download.oracle.com/javase/6/docs/api
org.apache.maven.pluginsmaven-checkstyle-plugin2.15${basedir}/src/conf/checkstyle.xmlfalse${basedir}/src/conf/checkstyle-suppressions.xmlcheckstyleorg.codehaus.mojofindbugs-maven-plugin3.0.1NormalDefault${basedir}/src/conf/findbugs-exclude-filter.xmlmaven-pmd-plugin3.4${maven.compiler.target}apache.websiteApache Commons Sitescm:svn:${commons.scmPubUrl}rcapache.websiteApache 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}/sitesetup-checkoutsite-contentorg.apache.maven.pluginsmaven-antrun-plugin1.7prepare-checkoutpre-siterun
commons-cli-1.3.1-src/README.md 0100644 0000765 0000024 00000011417 12537250703 016445 0 ustar 00bene staff 0000000 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-clicommons-cli1.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.txt 0100644 0000765 0000024 00000022355 12537250703 017700 0 ustar 00bene staff 0000000 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 5 ustar 00bene staff 0000000 0000000 commons-cli-1.3.1-src/src/assembly/ 0040755 0000765 0000024 00000000000 12537250704 017574 5 ustar 00bene staff 0000000 0000000 commons-cli-1.3.1-src/src/changes/ 0040755 0000765 0000024 00000000000 12537250703 017364 5 ustar 00bene staff 0000000 0000000 commons-cli-1.3.1-src/src/conf/ 0040755 0000765 0000024 00000000000 12537250704 016702 5 ustar 00bene staff 0000000 0000000 commons-cli-1.3.1-src/src/main/ 0040755 0000765 0000024 00000000000 12537250703 016700 5 ustar 00bene staff 0000000 0000000 commons-cli-1.3.1-src/src/main/java/ 0040755 0000765 0000024 00000000000 12537250703 017621 5 ustar 00bene staff 0000000 0000000 commons-cli-1.3.1-src/src/main/java/org/ 0040755 0000765 0000024 00000000000 12537250703 020410 5 ustar 00bene staff 0000000 0000000 commons-cli-1.3.1-src/src/main/java/org/apache/ 0040755 0000765 0000024 00000000000 12537250703 021631 5 ustar 00bene staff 0000000 0000000 commons-cli-1.3.1-src/src/main/java/org/apache/commons/ 0040755 0000765 0000024 00000000000 12537250703 023304 5 ustar 00bene staff 0000000 0000000 commons-cli-1.3.1-src/src/main/java/org/apache/commons/cli/ 0040755 0000765 0000024 00000000000 12537250704 024054 5 ustar 00bene staff 0000000 0000000 commons-cli-1.3.1-src/src/media/ 0040755 0000765 0000024 00000000000 12537250704 017034 5 ustar 00bene staff 0000000 0000000 commons-cli-1.3.1-src/src/site/ 0040755 0000765 0000024 00000000000 12537250704 016721 5 ustar 00bene staff 0000000 0000000 commons-cli-1.3.1-src/src/site/resources/ 0040755 0000765 0000024 00000000000 12537250704 020733 5 ustar 00bene staff 0000000 0000000 commons-cli-1.3.1-src/src/site/resources/images/ 0040755 0000765 0000024 00000000000 12537250704 022200 5 ustar 00bene staff 0000000 0000000 commons-cli-1.3.1-src/src/site/resources/images/svg/ 0040755 0000765 0000024 00000000000 12537250704 022777 5 ustar 00bene staff 0000000 0000000 commons-cli-1.3.1-src/src/site/xdoc/ 0040755 0000765 0000024 00000000000 12537250704 017656 5 ustar 00bene staff 0000000 0000000 commons-cli-1.3.1-src/src/test/ 0040755 0000765 0000024 00000000000 12537250703 016733 5 ustar 00bene staff 0000000 0000000 commons-cli-1.3.1-src/src/test/java/ 0040755 0000765 0000024 00000000000 12537250703 017654 5 ustar 00bene staff 0000000 0000000 commons-cli-1.3.1-src/src/test/java/org/ 0040755 0000765 0000024 00000000000 12537250703 020443 5 ustar 00bene staff 0000000 0000000 commons-cli-1.3.1-src/src/test/java/org/apache/ 0040755 0000765 0000024 00000000000 12537250703 021664 5 ustar 00bene staff 0000000 0000000 commons-cli-1.3.1-src/src/test/java/org/apache/commons/ 0040755 0000765 0000024 00000000000 12537250703 023337 5 ustar 00bene staff 0000000 0000000 commons-cli-1.3.1-src/src/test/java/org/apache/commons/cli/ 0040755 0000765 0000024 00000000000 12537250704 024107 5 ustar 00bene staff 0000000 0000000 commons-cli-1.3.1-src/src/test/java/org/apache/commons/cli/bug/ 0040755 0000765 0000024 00000000000 12537250704 024664 5 ustar 00bene staff 0000000 0000000 commons-cli-1.3.1-src/src/test/resources/ 0040755 0000765 0000024 00000000000 12537250703 020745 5 ustar 00bene staff 0000000 0000000 commons-cli-1.3.1-src/src/assembly/bin.xml 0100644 0000765 0000024 00000003200 12537250704 021056 0 ustar 00bene staff 0000000 0000000
bintar.gzzipfalseLICENSE.txtNOTICE.txtRELEASE-NOTES.txtREADME.mdCONTRIBUTING.mdtarget*.jartarget/site/apidocsapidocs
commons-cli-1.3.1-src/src/assembly/src.xml 0100644 0000765 0000024 00000002677 12537250703 021115 0 ustar 00bene staff 0000000 0000000
srctar.gzzip${project.artifactId}-${commons.release.version}-srcLICENSE.txtNOTICE.txtpom.xmlRELEASE-NOTES.txtREADME.mdCONTRIBUTING.mdsrc
commons-cli-1.3.1-src/src/changes/changes.xml 0100644 0000765 0000024 00000033503 12537250703 021517 0 ustar 00bene staff 0000000 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.xml 0100644 0000765 0000024 00000003601 12537250704 024332 0 ustar 00bene staff 0000000 0000000
commons-cli-1.3.1-src/src/conf/checkstyle.xml 0100644 0000765 0000024 00000016225 12537250704 021565 0 ustar 00bene staff 0000000 0000000
commons-cli-1.3.1-src/src/conf/findbugs-exclude-filter.xml 0100644 0000765 0000024 00000002615 12537250704 024140 0 ustar 00bene staff 0000000 0000000
commons-cli-1.3.1-src/src/main/java/org/apache/commons/cli/AlreadySelectedException.java 0100644 0000765 0000024 00000005116 12537250704 031630 0 ustar 00bene staff 0000000 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.java 0100644 0000765 0000024 00000005345 12537250704 031726 0 ustar 00bene staff 0000000 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.java 0100644 0000765 0000024 00000003745 12537250704 027123 0 ustar 00bene staff 0000000 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.java 0100644 0000765 0000024 00000025300 12537250704 027102 0 ustar 00bene staff 0000000 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