1## Changelog 2 3### Current 42017-03-05 5 6* Fixed: '--' handling, #296 7* Added: Add `getProgramName` to `JCommander`, #247 8* Added: Documentation for `listConverter` and `splitter`, #253, (@jeremysolarz) 9* Fixed: Return right parameter name in exception, #227, (@jeremysolarz) 10* Fixed: `JCommander#getParameters` returning nothing, #315, (@simon04) 11* Fixed: Allow empty string (e.g. `java -jar jcommander-program.jar param1 ""`) as part of main parameter, #306 (@jeremysolarz) 12* Fixed: Default value for `@Parameter(help=true)` parameter is not displayed in output of `JCommander.usage()`, #305 (@jeremysolarz) 13* Fixed: When providing two names in `@Parameter` always first name is given to `IValueValidator`, #309 (@jeremysolarz) 14 15### 1.58 162016-09-29 17 18* Added: `IStringConverterInstanceFactory` to create converter instances, #279 (@simon04) 19* Added: Allow to specify the `@file` charset, #286 (@simon04) 20* Added: Converters `InetAddressConverter` (#288), `CharArrayConverter` (#289; @garydgregory) 21* Fixed: When using `parseWithoutValidation()`, JCommander uses 'parse()' on child commanders, #267 (@simon04) 22* Fixed: Share all options (such as column size, allow abbreviated options, case sensitivity) with sub commands, see `JCommander.Options` class, #280 (fixes #155, #244, #261, #274; @simon04) 23* Fixed: Thread-safe and non-shared converter factories, #284 (@simon04) 24* Fixed: Skip `Path` converter when class is not available (Android), #287 (@JesusFreke) 25* Added: JCommander now requires Java 8 26 27### 1.56 282016-08-05 29 30* Added: Allow user to retrieve unknown command, #275 31 32### 1.55 332016-02-28 34 35* Added: Support for disabling the `@file` expansion, #156 36* Fixed: Wrap usage for commands and main parameters, #258 37* Added: Read parameters from interfaces, #252 38* Added: Refuse to write to final fields, #243 39* Added: Access private fields/methods, #236 40* Fixed: Fix description line wrapping, #239 41* Fixed: Prioritize registered converters for enums over generic enum conversion, #179 42* Added: Travis CI support, https://travis-ci.org/cbeust/jcommander 43* Added: Gradle build support 44* Fixed: Better error message when there's a visibility problem. 45* Require Java 7 46 47### 1.48 482015-04-11 49 50* Added: Added support for URL, URI, Java NIO paths parameters, #189, #219 51* Fixed: Incorrect usage formatting with single long options, #200 52 53### 1.37 542014-10-05 55 56* Added: Support for `hidden` commands (`Parameters`), #191 57* Added: parameter overwriting (and even disallowing it for certain parameters) 58* Added: `#` mark comments in a `@file`, #199 59* Added: Support for "--" 60* Fixed: Bug in enum parsing, #184 61 62### 1.34 632014-02-22 64 65* Fixed problem whereby Parameters returning Lists and with alternate names were being reset on the first use of an alternate name, #182 66 67### 1.32 682013-09-09 69 70* Fixed: Main parameters with a default value should be overridden if a main parameter is specified, #137 71* Fixed: Allow enum values without converting them to uppercase, #107 72 73### 1.30 742012/10/27 75 76* Added: JCommander#acceptUnknownOption and JCommander#getUnknownArgs 77* Added: JCommander#allowAbbreviatedOptions (default: false) 78* Added: JCommander#setCaseSensitiveOptions (default: true) 79* Added: Support for enums (Scott M Stark) 80* Fixed: Missing new lines in usage (styurin) 81* Fixed: The description of commands is now displayed on the next line and indented. 82 83### 1.29 842012/07/28 85 86* Fixed: Empty string defaults now displayed as "<empty string>" in the usage 87* Fixed: Bugs with the PositiveInteger validator 88* Fixed: Parameters with a single double quote were not working properly 89 90### 1.27 912012/07/05 92 93* Added: IValueValidator to validate parameter values (typed) as opposed to IParameterValidator which validates strings 94* Added: echoInput, used when password=true to echo the characters (Jason Wheeler) 95* Added: @Parameter(help = true) 96* Fixed: wasn't handling parameters that start with " but don't end with one correctly 97* Fixed: if using a different option prefix, unknown option are mistakenly reported as "no main parameter defined" (kurmasz) 98* Fixed: 113: getCommandDescription() returns the description of the main parameter instead of that of the command 99* Fixed: bug with several multiple arity parameters (VariableArityTest) 100* Fixed: variable arities not working when same parameter appears multiple times. 101 102### 1.25 1032012/04/26 104 105* Added: Default passwords are no longer displayed in the usage (Paul Mendelson) 106* Added: Variable arities now work magically, no need for IVariableArity any more 107* Fixed: Commands using @Parameters(resourceBundle) were not i18n'ed properly in the usage() 108* Fixed: StringIndexOutOfBoundsException if passing an empty parameter (bomanz) 109* Fixed: #105: If no description is given for an enum, use that enum's value (Adrian Muraru) 110* Fixed: #108: Dynamic parameters with "=" in them are not parsed correctly (szhem) 111* Fixed: Commands with same prefix as options were not working properly. 112* Fixed: #97: Required password always complains that it is not specified (timoteoponce) 113 114### 1.23 1152012/01/12 116 117* Added: @DynamicParameter 118* Fixed: Use JDK 6 Console() when available to improve support of non ascii chars (Julien Henry) 119 120### 1.20 1212011/11/24 122 123* Added: Support for delegating parameter definitions to child classes (rodionmoiseev) 124* Added: @Parameter(commandNames) so that command names can be specified with annotations 125* Added: Support for enums (Adrian Muraru) 126* Fixed: Throw if an unknown option is found 127* Fixed: Main parameters are now validated as well (Connor Mullen) 128 129### 1.19 1302011/10/10 131 132* Added: commandDescriptionKey to @Parameters, to allow internationalized command descriptions 133* Added: JCommander#setParameterDescriptionComparator for better control over usage() 134* Fixed: Fields of type Set (HashSet and SortedSet) are now supported 135* Fixed: defaults for commands were not properly applied (Stevo Slavic) 136* Fixed: "-args=a=b,b=c" was not being parsed correctly (Michael Lancaster) 137* Fixed: #73: descriptionKey was being ignored on main parameters 138 139### 1.18 1402011/07/20 141 142* Added: Default converter factories can be overridden (Scott Clasen) 143* Added: IParameterValidator 144* Added: Don't display "Options:" if none were defined 145* Added: Enforce that the type of the main parameter is a List 146* Added: usage() now displays the options for each command as well 147* Fixed: Default values with a validator were being validate at parse() time instead of creation time. 148* Fixed: Exception when using an @ file with empty lines between options 149* Fixed: OOM when parsing certain descriptions with long URL's in them 150 151### 1.15 1522011/01/24 153 154* Added: Added a constructor that takes a Bundle only, #47 (Russell Egan) 155* Fixed: NPE with calling getCommandDescription() of an unknown command 156 157### 1.13 1582010/12/15 159 160* Added: Boolean parameters with arity 0 (e.g. "foo -debug") 161* Fixed: JCommander would sometimes just print a stack trace and continue, now rethrowing. 162 163### 1.7 1642010/09/06 165 166* Added: Command usages are now shown in the order they were added to the JCommander object 167* Fixed: JCommander now compatible with Java 5 168* Fixed: Minor bug in the command display (Marc Ende) 169 170### 1.6 1712010/08/28 172 173* Added: @Parameters(commandDescription = "command description") 174* Added: now throwing an exception if required main parameters are not supplied 175* Fixed: usage() was changing default values after two runs (jstrachan) 176 177### 1.5 1782010/08/15 179 180* Added: overloaded versions of usage() with StringBuilders 181* Added: inheritance support (Guillaume Sauthier) 182* Added: support for commands (e.g. "main add --author=cbeust Foo.java") 183* Added: support for converters for main parameters (e.g. List<HostPort>). 184 185### 1.4 1862010/07/28 187 188* Added: string converter factories 189* Added: IDefaultProvider 190* Added: PropertyFileDefaultProvider 191* Added: Usage is now showing required parameters and default value 192* Added: Support for values that look like parameters ("-integer -3", "/file /tmp/a") 193* Added: @Parameters(optionPrefixes) to allow for different prefixes than "-" 194 195### 1.2 1962010/07/25 197 198* Usage is now aligned and alphabetically sorted 199* Added the hidden attribute 200* Added support for different separators than " " (e.g. "="). 201* Deprecated @ResourceBundle, replaced with @Parameters 202 203### 1.1 2042010/08/15 205 206* Better internationalization 207* Password support 208* Type converters 209 210