Apache Commons CLI Version 1.9.0 Release Notes Apache Commons CLI provides a simple API for presenting, processing, and validating a Command Line Interface. This release contains new features and bug fixes and requires Java 8 or above. New Features ------------ * Add OptionGroup.isSelected(). Thanks to Gary Gregory. * You can now extend HelpFormatter.Builder. Thanks to Gary Gregory. * Add 'since' attribute to Option to track when an Option was introduced #292 Thanks to Claude Warren. Fixed Bugs ---------- * CLI-334: Fix Javadoc pathing #280. Thanks to Eric Pugh. * CLI-335: Updated properties documentation #285. Thanks to Claude Warren. * CLI-336: Deprecation not always reported #284. Thanks to Claude Warren, Gary Gregory. * Replace internal StringBuffer with StringBuilder. Thanks to Gary Gregory. Updates ------- * Bump org.apache.commons:commons-parent from 70 to 72 #283. Thanks to Gary Gregory, Dependabot. Historical list of changes: https://commons.apache.org/proper/commons-cli/changes-report.html For complete information on Apache Commons CLI, including instructions on how to submit bug reports, patches, or suggestions for improvement, see the Apache Commons CLI website: https://commons.apache.org/proper/commons-cli/ Download page: https://commons.apache.org/proper/commons-cli/download_cli.cgi Have fun! The Apache Commons Team ------------------------------------------------------------------------------ Apache Commons CLI Version 1.8.0 Release Notes Apache Commons CLI provides a simple API for presenting, processing, and validating a Command Line Interface. This release contains new features and bug fixes and requires Java 8 or above. New Features ------------ * CLI-332: Add optional HelpFormatter Function to document Deprecated options #271. Thanks to Claude Warren, Gary Gregory. * Add PMD check to default Maven goal. Thanks to Gary Gregory. Fixed Bugs ---------- * CLI-331: Handle reporting of deprecated options when parameters are not String type. #270. Thanks to Claude Warren, Gary Gregory. * Avoid throwing NullPointerException when calling CommandLineParser will null array elements. Thanks to Claude Warren, Gary Gregory. * Cleanup deprecation issues #272. Thanks to Claude Warren. * Fix PMD UnnecessaryFullyQualifiedName issues. Thanks to Gary Gregory. Updates ------- * Bump commons-parent from 69 to 70. Thanks to Gary Gregory. Historical list of changes: https://commons.apache.org/proper/commons-cli/changes-report.html For complete information on Apache Commons CLI, including instructions on how to submit bug reports, patches, or suggestions for improvement, see the Apache Commons CLI website: https://commons.apache.org/proper/commons-cli/ Download page: https://commons.apache.org/proper/commons-cli/download_cli.cgi Have fun! The Apache Commons Team ------------------------------------------------------------------------------ Apache Commons CLI Version 1.7.0 Release Notes This document contains the release notes for this version of the Apache Commons CLI Component of the Apache Commons Project. Commons CLI provides a simple API for working with the command line arguments and options. Apache Commons CLI provides a simple API for presenting, processing, and validating a Command Line Interface. New features and bug fixes. New Features ------------ * CLI-321: Add and use a Converter interface and implementations without using BeanUtils #216. Thanks to Claude Warren, Gary Gregory. * Add Maven property project.build.outputTimestamp for build reproducibility. Thanks to Gary Gregory. * CLI-322: Add '-' as an option char and implemented extensive tests #217. Thanks to Claude Warren, Gary Gregory. * CLI-324: Make adding OptionGroups and Options to existing Options easier #230. Thanks to Claude Warren, Gary Gregory. * CLI-323: Added Supplier defaults for getParsedOptionValue #229. Thanks to Claude Warren, Gary Gregory. * CLI-326: Make Option.getKey() public #239. Thanks to Claude Warren, Gary Gregory. * Add builder factory CommandLine#builder(). Thanks to Claude Warren, Gary Gregory. Fixed Bugs ---------- * CLI-312: Inconsistent behavior in key/value pairs (Java property style). Thanks to Claude Warren, Gary Gregory. * Avoid NullPointerException in Util.stripLeadingAndTrailingQuotes(String). Thanks to Gary Gregory. * CLI-320: Awkward behavior of Option.builder() for multiple optional args. Thanks to Paul King, Claude Warren. * CLI-325: Properties from multiple arguments with value separator. #237. Thanks to Claude Warren. * CLI-327: Fix for expected textual date values. #244. Thanks to Claude Warren, Gary Gregory. * Option.Builder.option("") should throw IllegalArgumentException instead of ArrayIndexOutOfBoundsException. Thanks to Gary Gregory. * Avoid NullPointerException in CommandLine.getOptionValues(Option|String). Thanks to Gary Gregory. Updates ------- * Bump commons-parent from 64 to 69 #256. Thanks to Gary Gregory. * Update the tests to JUnit 5 #238. Thanks to Elric, Gary Gregory. * Bump tests commons-io:commons-io from 2.16.0 to 2.16.1 #258. Thanks to Dependabot, Gary Gregory. Historical list of changes: https://commons.apache.org/proper/commons-cli/changes-report.html For complete information on Apache Commons CLI, including instructions on how to submit bug reports, patches, or suggestions for improvement, see the Apache Commons CLI website: https://commons.apache.org/proper/commons-cli/ Download page: https://commons.apache.org/proper/commons-cli/download_cli.cgi Have fun! The Apache Commons Team ------------------------------------------------------------------------------ Apache Commons CLI Version 1.6.0 Release Notes This document contains the release notes for this version of the Apache Commons CLI Component of the Apache Commons Project. Commons CLI provides a simple API for working with the command line arguments and options. Apache Commons CLI provides a simple API for presenting, processing, and validating a Command Line Interface. New features and bug fixes Changes in this version include: Fixed Bugs ---------- * [StepSecurity] ci: Harden GitHub Actions #176. Thanks to step-security-bot, Gary Gregory. * CLI-318: Inconsistent date format in changes report. Thanks to Alexander Veit, Gary Gregory. * CLI-283: Fix NPE in CommandLine.resolveOption(String). Thanks to Dilraj Singh, Gary Gregory. * CLI-283: CommandLine.addOption(Option) should not allow a null Option. Thanks to Dilraj Singh, Gary Gregory. * CLI-283: CommandLine.addArgs(String) should not allow a null String. Thanks to Gary Gregory. * CLI-303: Site docs: "Usage Scenarios" refers to deprecated methods. Thanks to Julian Schilling, Gary Gregory. * CLI-317: NullPointerException thrown by CommandLineParser.parse(). Thanks to Philippe Bastiani, Sruteesh Kumar Paramata, Gary Gregory. * CLI-313: StringIndexOutOfBoundsException thrown by CommandLineParser.parse(). Thanks to Dominik Stadler, HUNG LU, Sruteesh Kumar Paramata. Updates ------- * Fix SpotBugs Error: Medium: Method intentionally throws RuntimeException. [org.apache.commons.cli.Option] At Option.java:[lines 417-423] THROWS_METHOD_THROWS_RUNTIMEEXCEPTION Thanks to Gary Gregory. * Fix SpotBugs Error: Medium: Method intentionally throws RuntimeException. [org.apache.commons.cli.Option] At Option.java:[lines 446-450] THROWS_METHOD_THROWS_RUNTIMEEXCEPTION Thanks to Gary Gregory. * Fix SpotBugs Error: Medium: Method intentionally throws RuntimeException. [org.apache.commons.cli.Option] At Option.java:[lines 474-478] THROWS_METHOD_THROWS_RUNTIMEEXCEPTION Thanks to Gary Gregory. * Use EMPTY_STRING_ARRAY constant. #102. Thanks to Ken Dombeck. * Fix site links that are broken #155. Thanks to Arturo Bernal. * Use Math.max() #111. Delete unused assignment #112. Thanks to Arturo Bernal. * Add github/codeql-action. Thanks to Dependabot, Gary Gregory. * Bump Java from 7 to 8. Thanks to Gary Gregory. * Bump actions/cache from 2.1.7 to 3.0.10 #97, #130, #132. Thanks to Dependabot, Gary Gregory. * Bump actions/checkout from 3 to 3.1.0 #133. Thanks to Gary Gregory, Dependabot. * Bump actions/setup-java from 2 to 3.6.0 #136. Thanks to Gary Gregory. * Bump spotbugs from 4.5.3 to 4.7.3 #96, #107, #113, #125, #138. Thanks to Gary Gregory, Dependabot. * Bump spotbugs-maven-plugin from 4.5.3.0 to 4.7.3.0 #98, #108, #115, #117, #126, #145. Thanks to Dependabot. * Bump commons-parent from 52 to 64 #100, #128, #151, #158. Thanks to Dependabot, Gary Gregory. * Bump maven-antrun-plugin from 3.0.0 to 3.1.0 #103. Thanks to Dependabot. * Bump maven-javadoc-plugin from 3.3.2 to 3.4.1 #105, #120. Thanks to Dependabot. * Bump maven-pmd-plugin from 3.16.0 to 3.19.0 #110, #124. Thanks to Dependabot. * Bump jacoco-maven-plugin from 0.8.7 to 0.8.8. Thanks to Gary Gregory. * Bump maven-checkstyle-plugin from 3.1.2 to 3.2.0 #121. Thanks to Gary Gregory. * Bump japicmp-maven-plugin from 0.15.4 to 0.16.0. Thanks to Gary Gregory. * Update JUnit 4 to 5 vintage. Thanks to Gary Gregory. Historical list of changes: https://commons.apache.org/proper/commons-cli/changes-report.html For complete information on Apache Commons CLI, including instructions on how to submit bug reports, patches, or suggestions for improvement, see the Apache Commons CLI website: https://commons.apache.org/proper/commons-cli/ Download page: https://commons.apache.org/proper/commons-cli/download_cli.cgi Have fun! The Apache Commons Team ------------------------------------------------------------------------------ Apache Commons CLI Version 1.5.0 Release Notes This document contains the release notes for this version of the Apache Commons CLI Component of the Apache Commons Project. Commons CLI provides a simple API for working with the command line arguments and options. Apache Commons CLI provides a simple API for presenting, processing, and validating a Command Line Interface. New features and bug fixes (Java 7 or above). Changes in this version include: New Features ------------ * CLI-217: Accommodate toggling partial matching in DefaultParser. Thanks to Rubin Simons. * CLI-274: Option parser type EXISTING_FILE_VALUE not check file existing Thanks to Béla Schaum. * CLI-271: CommandLine.getXXX and CommandLine.hasXXX should accept an Option as a parameter Thanks to Christoph Läubrich. * CLI-276: Adjust access-modifier of checkRequiredOptions() to protected. Thanks to Jason Dillon. * CLI-282: TypeHandler should throw ParseException for an unsupported class. Thanks to Alex Nordlund. * Added setter for Builder.option #33. Thanks to Waldemar Sojka, Gary Gregory. * Add Option unit tests #76. Thanks to Waldemar Sojka, Gary Gregory. Fixed Bugs ---------- * Fix NPE in DefaultParser.isLongOption(String). Thanks to Gary Gregory. * CLI-279: @param or @return lines should end with a period in CommandLine.java Thanks to Krishna Mohan Rao Kandunoori. * Replace deprecated FindBugs with SpotBugs. Thanks to Gary Gregory. * Replace CLIRR with JApiCmp. Thanks to Gary Gregory. * Option Javadocs grammar nits #55. Thanks to Elliotte Rusty Harold. * Minor Improvements #57, #61. Thanks to Arturo Bernal, Gary Gregory. * CLI-254: Input "test" gets parsed as test, quotes die #58. Thanks to stoty. * CLI-287: Allow whitespace-only header and footer #26. Thanks to MrQubo, Gary Gregory. Updates ------- * CLI-294: Update Java from version 5 to 7. * Docs: Replace OptionBuilder in usage page #30. Thanks to Mincong Huang. * Remove deprecated sudo setting. #36. Thanks to dengliming. * Bump junit:junit from 4.12 to 4.13.2, #53, #60. Thanks to Gary Gregory, Dependabot. * Bump commons-parent from 48 to 52. Thanks to Dependabot. * Bump maven-pmd-plugin from 3.12.0 to 3.15.0, #44, #54, #67. Thanks to Dependabot. * Bump actions/checkout from v2.3.1 to v2.3.5 #46, #72. Thanks to Dependabot. * Bump actions/setup-java from v1.4.2 to v2 #50. Thanks to Dependabot, Gary Gregory. * Bump maven-antrun-plugin from 1.7 to 3.0.0 #43. Thanks to Dependabot. * Bump maven-checkstyle-plugin from 2.15 to 3.1.2 #41. Thanks to Gary Gregory. * Bump checkstyle to 9.0.1 #68. Thanks to Gary Gregory. * Bump actions/cache from 2 to 2.1.6 #64, #65. Thanks to Dependabot. * Bump commons.animal-sniffer.version 1.19 -> 1.20. Thanks to Gary Gregory. * Bump maven-bundle-plugin 5.1.1 -> 5.1.2. Thanks to Gary Gregory. * Bump biz.aQute.bndlib.version 5.1.2 -> 6.0.0. Thanks to Gary Gregory. * Bump spotbugs from 4.4.1 to 4.4.2 #70. Thanks to Dependabot. * Bump spotbugs-maven-plugin from 4.4.1 to 4.4.2.2 #71. Thanks to Dependabot. Historical list of changes: https://commons.apache.org/proper/commons-cli/changes-report.html For complete information on Apache Commons CLI, including instructions on how to submit bug reports, patches, or suggestions for improvement, see the Apache Commons CLI website: https://commons.apache.org/proper/commons-cli/ Download page: https://commons.apache.org/proper/commons-cli/download_cli.cgi Have fun! The Apache Commons Team ------------------------------------------------------------------------------ Apache Commons CLI Version 1.4 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.4 is a feature 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.4 at least requires Java 5.0. More information can be found on the project site at https://commons.apache.org/cli. NEW FEATURES ------------ * CLI-269: Introduce CommandLine.Builder * CLI-267: Add an addRequiredOption method to Options. Thanks to Ricardo Ribeiro. BUG FIXES --------- * CLI-265: Optional argument picking up next regular option as its argument. Thanks to Martin Sandiford. * CLI-266: HelpFormatter.setOptionComparator(null) doesn't display the values in inserted order. Thanks to Ravi Teja. ------------------------------------------------------------------------------ Release Notes for version 1.3.1 BUG FIXES --------- * 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 ------------ * org.apache.commons.cli.BasicParser replaced by org.apache.commons.cli.DefaultParser * org.apache.commons.cli.GnuParser replaced by org.apache.commons.cli.DefaultParser * 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 * org.apache.commons.cli.Parser replaced by org.apache.commons.cli.DefaultParser * org.apache.commons.cli.PosixParser replaced by org.apache.commons.cli.DefaultParser NEW FEATURES ------------ * CLI-161: PosixParser doesn't stop the parsing on "--" tokens following an option with an argument * CLI-167: Support options like Java memory settings (-Xmx512M) * CLI-181: Unified Parser * 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. * CLI-160: PosixParser now supports partial long options (--ver instead of --version). * CLI-169: HelpFormatter now supports setting the displayed separator of long options. Thanks to J. Lewis Muir. * CLI-214: Added new method Options.addOption(String, String). Thanks to Alexandru Mocanu. BUG FIXES --------- * CLI-248: Dead links on doc page. * CLI-234: Fixed code example in javadoc of "Option#Builder#valueSeparator(char)". Thanks to Greg Thomas. * CLI-241: Clarified behavior of "OptionValidator#validateOption(String)" in case of null input. Thanks to Beluga Behr. * CLI-202: Default options will now work correctly with required options that are missing. * CLI-203: Default options will now work correctly together with option groups. * CLI-205: HelpFormatter.setArgName(String) now correctly sets the argument name. * CLI-204: Passing default values for not defined options to a parser will now trigger a ParseException instead of a NullPointerException. * CLI-201: Default properties provided as input to the Parser.parse() methods are now correctly processed. * CLI-215: CommandLine.getParsedOptionValue() now returns a String object if no option type has been explicitly set. Thanks to Manuel Müller. * CLI-212: HelpFormatter now prints command-line options in the same order as they have been added. Thanks to Per Cederberg. * CLI-186: Standard help text now shows mandatory arguments also for the first option. Thanks to Kristoff Kiefer. * CLI-207: HelpFormatter does not strip anymore leading whitespace in the footer text. Thanks to Uri Moszkowicz. * 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. * CLI-184: Negative numerical arguments take precedence over numerical options. * CLI-193: Fix possible StringIndexOutOfBoundsException in HelpFormatter. Thanks to Travis McLeskey. * CLI-183: OptionGroups no longer throw an AlreadySelectedException when reused for several parsings. * CLI-182: OptionGroup now selects properly an option with no short name. CHANGES ------- * CLI-240: Small cleanup of Option class. Thanks to Beluga Behr. * CLI-230: Options.getRequiredOptions() now returns an unmodifiable list. * CLI-218: Clarify javadoc for CommandLine.getOptionValue() that the first specified argument will be returned. Thanks to Sven. * CLI-227: Changed unit tests to junit 4 annotation style. Thanks to Duncan Jones. * CLI-209: The javadoc of OptionBuilder now states that the class is not thread-safe. Thanks to Thomas Herre. * CLI-200: Fixed typo in javadoc of class CommandLine. Thanks to Gerard Weatherby. * CLI-223: Source code now uses generic types instead of raw types where possible. Thanks to Gerard Weatherby. * CLI-220 Corrected javadoc for return type of MissingOptionException.getMissingOptions(). Thanks to Joe Casadonte. * CLI-197: Improve description of parameter "stopAtNonOption" in method CommandLine.parse(Options, String[], boolean). Thanks to Anders Larsson. * CLI-231: Removed DoubleCheckedLocking test from checkstyle configuration. Thanks to Duncan Jones. ------------------------------------------------------------------------------ Release Notes for version 1.2 NEW FEATURES ------------ * -- : The method getOptionProperties() in the CommandLine class was added to retrieve easily the key/value pairs specified with options like -Dkey1=value1 -Dkey2=value2. * CLI-157: GnuParser now supports long options with an '=' sign (ie. --foo=bar and -foo=bar) * CLI-155: The ordering of options can be defined in help messages. BUG FIXES --------- * CLI-137: The number of arguments defined for an option specifies the arguments per occurrence of the option and not for all occurrences. * CLI-164: PosixParser no longer ignores unrecognized short options. * CLI-163: PosixParser no longer stops the bursting process of a token if stopAtNonOption is enabled and a non option character is encountered. * CLI-165: PosixParser no longer keeps processing the tokens after an unrecognized long option when stopAtNonOption is enabled. * CLI-156: Required options are properly checked if an Options instance is used twice to parse a command line. * CLI-151: The line wrapping in HelpFormatter now works properly. CHANGES ------- * CLI-149: The message of MissingOptionException has been improved. * CLI-86: The exceptions have been enhanced with methods to retrieve easily the related options. * CLI-141: Option.toString() now reports arguments properly. * CLI-142: The Parser class has been changed to be more easily extendable. * CLI-140: The following classes are now serializable: Option, OptionGroup, CommandLine and Options. * -- : OptionValidator is no longer public, its methods were all private. ------------------------------------------------------------------------------ Release Notes for version 1.1 NEW FEATURES ------------ * CLI-78: Setting description of a Option. CHANGES ------- * CLI-2: Wrong usage summary. * CLI-5: Dependecy on commons-lang-2.0 but commons-lang-1.0 is obtained. * CLI-8: Line separator as first char for helpformatter (footer) throws exception. * CLI-13: CommandLine.getOptionValue() behaves contrary to docs. * CLI-21: clone method in Option should use super.clone(). * CLI-23: Passing properties in Parser does not work for options with a single argument. * CLI-26: Only long options without short option seems to be noticed. * CLI-28: Infinite Loop in Command-Line processing. * CLI-29: Options should not be able to be added more than once. * CLI-35: HelpFormatter doesn't sort options properly. * CLI-38: HelpFormatter doesn't function correctly for options with only LongOpt. * CLI-44: Document enhancement. * CLI-45: Documentation errors. * CLI-51: Parameter value "-something" misinterpreted as a parameter. * CLI-56: clone() method doesn't fully clone contents. * CLI-59: No Javadoc for HelpFormatter!. * CLI-65: Parser breaks up command line parms into single characters. * CLI-67: Missing arguments in HelpFormatter.renderOptions(..). * CLI-69: Error parsing option arguments. * CLI-71: A weakness of parser. * CLI-129: CLI_1_BRANCH build.xml doesn't work. * CLI-130: Remove the Commons Lang dependency. * CLI-131: Options class returns options in random order. * CLI-132: MissingOptionException should contain a useful error message. * CLI-133: NullPointerException in Util.stripLeadingHyphens when passed a null argument. * CLI-134: 1.1 is not backwards compatible because it adds methods to the CommandLineParser interface. * CLI-135: Backwards compatibility between 1.1 and 1.0 broken due to Option.addValue removal. Historical list of changes: https://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: https://commons.apache.org/cli/ Have fun! -Apache Commons CLI team ------------------------------------------------------------------------------