- Fixes issue when last "word" is within quotes and
cursor is at the end of a line which caused empty
"word" string in an argument list.
- This then caused i.e. string option to have a collection
as an input(if no arity settings used) and via
spring conversions a comma were added.
- Backport #763
- Fixes#765
- In `CommandRegistration` add `ResolvableType` for `OptionSpec` giving
more spesific handling of a type.
- In `CommandParser` handle source and target types so that we
have generics with `List`, `Set` and arrays working better.
- In `HandlerMethodArgumentResolver` add better handling for
`ConversionService` for generic types.
- In `StandardMethodTargetRegistrar` add better types via `ResolvableType`
now that `CommandRegistration` support it.
- In `OptionConversionCommands` remove converter from `String` to `Set` as
now things should work as is if generic in a `Set` has a converter.
- Fixes#694
- When target is set and only one option argument is given,
we should not convert to list as user expects string to xxx
Converter to work.
- This is how it used to work and previous changes caused
regression.
- Bug is actually in an old parser and new parser works fine.
- Backport #667
- Fixes#669
- Now lexing better with valid options
- Only report unrecognised option with double dash
as current parser don't have structure to do
deeper analysis.
- Backport #651
- Fixes#653
- Handle any option collection type so that list is generated for
values, this then works well when actual type conversions happen.
- Backport #630
- Fixes#631
- Issue in #622 is that its command type is `String` and internally
some incoming arguments(it's List) were converted to String by
joining with space. This caused one case with help command to get
conversion via spring's ConversionService(CollectionToStringConverter)
which joins by commas. That was we saw in failed example.
- Remove needed joins in CommandParser and let it just pass List which
then works better with ConversionService.
- This then needs a `command` option type change from String to String[]
which it really is as you should be able to give whole command as
an argument.
- Backport #622
- Fixes#623
- Introduce new error TooManyArgumentsOptionException
and NotEnoughArgumentsOptionException.
- Parser not tracks arity min/max and imposes
if num of option arguments.
- Backport #614
- Fixes#615
- Original commit this sources had some additional changes
which is not possible to merge.