
            Commons CLI Package
                Version 1.3
               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 is a bugfix release and binary compatible with the previous versions,
except for the OptionValidator class that is no longer public (change introduced in v1.2).

More information can be found on the project site at http://commons.apache.org/cli


NEW FEATURES:

  * 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.
    (CLI-161, CLI-167, CLI-181)

  * 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-224)

  * PosixParser now supports partial long options (--ver instead of --version). (CLI-160) 

  * HelpFormatter now supports setting the displayed separator of long options. Thanks to J. Lewis Muir. (CLI-169) 

  * Added new method Options.addOption(String, String). Thanks to Alexandru Mocanu. (CLI-214)
  

BUG FIXES:

  * Fixed code example in javadoc of "Option#Builder#valueSeparator(char)". Thanks to Greg Thomas. (CLI-234)

  * Clarified behavior of "OptionValidator#validateOption(String)" in case of null input. Thanks to Beluga Behr. (CLI-241)

  * Default options will now work correctly with required options that are missing. (CLI-202)

  * Default options will now work correctly together with option groups. (CLI-203) 
  
  * HelpFormatter.setArgName(String) now correctly sets the argument name. (CLI-205)

  * Passing default values for not defined options to a parser will now trigger
    a ParseException instead of a NullPointerException. (CLI-204)

  * Default properties provided as input to the Parser.parse() methods are now
    correctly processed. (CLI-201)

  * CommandLine.getParsedOptionValue() now returns a String object if no
    option type has been explicitly set. Thanks to Manuel Mller. (CLI-215) 
 
  * HelpFormatter now prints command-line options in the same order as they
    have been added. Thanks to Per Cederberg. (CLI-212)

  * Standard help text now shows mandatory arguments also for the first option. Thanks to Kristoff Kiefer. (CLI-186)

  * HelpFormatter does not strip anymore leading whitespace in the footer text. Thanks to Uri Moszkowicz. (CLI-207)

  * 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-185)

  * Negative numerical arguments take precedence over numerical options. (CLI-184) 

  * Fix possible StringIndexOutOfBoundsException in HelpFormatter. Thanks to Travis McLeskey. (CLI-193)

  * OptionGroups no longer throw an AlreadySelectedException when reused for several parsings. (CLI-183)
    
  * OptionGroup now selects properly an option with no short name. (CLI-182)


CHANGES:

  * Small cleanup of Option class. Thanks to Beluga Behr. (CLI-240)

  * Options.getRequiredOptions() now returns an unmodifiable list. (CLI-230) 

  * Clarify javadoc for CommandLine.getOptionValue() that the first specified
    argument will be returned. Thanks to Sven. (CLI-218) 

  * Changed unit tests to junit 4 annotation style. Thanks to Duncan Jones. (CLI-227) 

  * The javadoc of OptionBuilder now states that the class is not thread-safe. Thanks to Thomas Herre. (CLI-209) 

  * Fixed typo in javadoc of class CommandLine. Thanks to Gerard Weatherby. (CLI-200) 
  
  * Source code now uses generic types instead of raw types where possible. Thanks to Gerard Weatherby. (CLI-223) 

  * Corrected javadoc for return type of MissingOptionException.getMissingOptions(). Thanks to Joe Casadonte. (CLI-220)

  * Improve description of parameter "stopAtNonOption" in method
    CommandLine.parse(Options, String[], boolean). Thanks to Anders Larsson. (CLI-197)
    
  * Removed DoubleCheckedLocking test from checkstyle configuration. Thanks to Duncan Jones. (CLI-231)
