Changelog
Current
2017-01-14
- Added: Documentation for
listConverter
and splitter
, #253, (@jeremysolarz) - Fixed: Return right parameter name in exception, #227, (@jeremysolarz)
- Fixed:
JCommander#getParameters
returning nothing, #315, (@simon04) - Fixed: Allow empty string (e.g.
java -jar jcommander-program.jar param1 ""
) as part of main parameter, #306 (@jeremysolarz) - Fixed: Default value for
@Parameter(help=true)
parameter is not displayed in output of JCommander.usage()
, #305 (@jeremysolarz) - Fixed: When providing two names in
@Parameter
always first name is given to IValueValidator
, #309 (@jeremysolarz)
1.58
2016-09-29
- Added:
IStringConverterInstanceFactory
to create converter instances, #279 (@simon04) - Added: Allow to specify the
@file
charset, #286 (@simon04) - Added: Converters
InetAddressConverter
(#288), CharArrayConverter
(#289; @garydgregory) - Fixed: When using
parseWithoutValidation()
, JCommander uses 'parse()' on child commanders, #267 (@simon04) - 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) - Fixed: Thread-safe and non-shared converter factories, #284 (@simon04)
- Fixed: Skip
Path
converter when class is not available (Android), #287 (@JesusFreke) - Added: JCommander now requires Java 8
1.56
2016-08-05
- Added: Allow user to retrieve unknown command, #275
1.55
2016-02-28
- Added: Support for disabling the
@file
expansion, #156 - Fixed: Wrap usage for commands and main parameters, #258
- Added: Read parameters from interfaces, #252
- Added: Refuse to write to final fields, #243
- Added: Access private fields/methods, #236
- Fixed: Fix description line wrapping, #239
- Fixed: Prioritize registered converters for enums over generic enum conversion, #179
- Added: Travis CI support, https://travis-ci.org/cbeust/jcommander
- Added: Gradle build support
- Fixed: Better error message when there's a visibility problem.
- Require Java 7
1.48
2015-04-11
- Added: Added support for URL, URI, Java NIO paths parameters, #189, #219
- Fixed: Incorrect usage formatting with single long options, #200
1.37
2014-10-05
- Added: Support for
hidden
commands (Parameters
), #191 - Added: parameter overwriting (and even disallowing it for certain parameters)
- Added:
#
mark comments in a @file
, #199 - Added: Support for "--"
- Fixed: Bug in enum parsing, #184
1.34
2014-02-22
- Fixed problem whereby Parameters returning Lists and with alternate names were being reset on the first use of an alternate name, #182
1.32
2013-09-09
- Fixed: Main parameters with a default value should be overridden if a main parameter is specified, #137
- Fixed: Allow enum values without converting them to uppercase, #107
1.30
2012/10/27
- Added: JCommander#acceptUnknownOption and JCommander#getUnknownArgs
- Added: JCommander#allowAbbreviatedOptions (default: false)
- Added: JCommander#setCaseSensitiveOptions (default: true)
- Added: Support for enums (Scott M Stark)
- Fixed: Missing new lines in usage (styurin)
- Fixed: The description of commands is now displayed on the next line and indented.
1.29
2012/07/28
- Fixed: Empty string defaults now displayed as "" in the usage
- Fixed: Bugs with the PositiveInteger validator
- Fixed: Parameters with a single double quote were not working properly
1.27
2012/07/05
- Added: IValueValidator to validate parameter values (typed) as opposed to IParameterValidator which validates strings
- Added: echoInput, used when password=true to echo the characters (Jason Wheeler)
- Added: @Parameter(help = true)
- Fixed: wasn't handling parameters that start with " but don't end with one correctly
- Fixed: if using a different option prefix, unknown option are mistakenly reported as "no main parameter defined" (kurmasz)
- Fixed: 113: getCommandDescription() returns the description of the main parameter instead of that of the command
- Fixed: bug with several multiple arity parameters (VariableArityTest)
- Fixed: variable arities not working when same parameter appears multiple times.
1.25
2012/04/26
- Added: Default passwords are no longer displayed in the usage (Paul Mendelson)
- Added: Variable arities now work magically, no need for IVariableArity any more
- Fixed: Commands using @Parameters(resourceBundle) were not i18n'ed properly in the usage()
- Fixed: StringIndexOutOfBoundsException if passing an empty parameter (bomanz)
- Fixed: #105: If no description is given for an enum, use that enum's value (Adrian Muraru)
- Fixed: #108: Dynamic parameters with "=" in them are not parsed correctly (szhem)
- Fixed: Commands with same prefix as options were not working properly.
- Fixed: #97: Required password always complains that it is not specified (timoteoponce)
1.23
2012/01/12
- Added: @DynamicParameter
- Fixed: Use JDK 6 Console() when available to improve support of non ascii chars (Julien Henry)
1.20
2011/11/24
- Added: Support for delegating parameter definitions to child classes (rodionmoiseev)
- Added: @Parameter(commandNames) so that command names can be specified with annotations
- Added: Support for enums (Adrian Muraru)
- Fixed: Throw if an unknown option is found
- Fixed: Main parameters are now validated as well (Connor Mullen)
1.19
2011/10/10
- Added: commandDescriptionKey to @Parameters, to allow internationalized command descriptions
- Added: JCommander#setParameterDescriptionComparator for better control over usage()
- Fixed: Fields of type Set (HashSet and SortedSet) are now supported
- Fixed: defaults for commands were not properly applied (Stevo Slavic)
- Fixed: "-args=a=b,b=c" was not being parsed correctly (Michael Lancaster)
- Fixed: #73: descriptionKey was being ignored on main parameters
1.18
2011/07/20
- Added: Default converter factories can be overridden (Scott Clasen)
- Added: IParameterValidator
- Added: Don't display "Options:" if none were defined
- Added: Enforce that the type of the main parameter is a List
- Added: usage() now displays the options for each command as well
- Fixed: Default values with a validator were being validate at parse() time instead of creation time.
- Fixed: Exception when using an @ file with empty lines between options
- Fixed: OOM when parsing certain descriptions with long URL's in them
1.15
2011/01/24
- Added: Added a constructor that takes a Bundle only, #47 (Russell Egan)
- Fixed: NPE with calling getCommandDescription() of an unknown command
1.13
2010/12/15
- Added: Boolean parameters with arity 0 (e.g. "foo -debug")
- Fixed: JCommander would sometimes just print a stack trace and continue, now rethrowing.
1.7
2010/09/06
- Added: Command usages are now shown in the order they were added to the JCommander object
- Fixed: JCommander now compatible with Java 5
- Fixed: Minor bug in the command display (Marc Ende)
1.6
2010/08/28
- Added: @Parameters(commandDescription = "command description")
- Added: now throwing an exception if required main parameters are not supplied
- Fixed: usage() was changing default values after two runs (jstrachan)
1.5
2010/08/15
- Added: overloaded versions of usage() with StringBuilders
- Added: inheritance support (Guillaume Sauthier)
- Added: support for commands (e.g. "main add --author=cbeust Foo.java")
- Added: support for converters for main parameters (e.g. List).
1.4
2010/07/28
- Added: string converter factories
- Added: IDefaultProvider
- Added: PropertyFileDefaultProvider
- Added: Usage is now showing required parameters and default value
- Added: Support for values that look like parameters ("-integer -3", "/file /tmp/a")
- Added: @Parameters(optionPrefixes) to allow for different prefixes than "-"
1.2
2010/07/25
- Usage is now aligned and alphabetically sorted
- Added the hidden attribute
- Added support for different separators than " " (e.g. "=").
- Deprecated @ResourceBundle, replaced with @Parameters
1.1
2010/08/15
- Better internationalization
- Password support
- Type converters