- New CommandNotFoundResultHandler which handles
CommandNotFound to be able to customize error shown.
- New CommandNotFoundMessageProvider which is a plain
function given a "context" and returns a string.
Context contains common info to provide better
error messages.
- Default provider gives same message but
removes long stacktrace(which previously originated
from a common ThrowableResultHandler.
- Relates #778
- Longnames in a command option if modified via
name modifier didn't provide enough backmapping
info for command execution experience being accurate.
- Add new getLongNamesModified() into CommandOption
which is populated if name modifier is used.
- Add more hints in CommandExecution for modified
option names.
- This should bring annotation, legacy annotation
and programmatic commands up to date.
- Fixes#777
- Take 2 of #763
- Revert changes in 06e89dcca3
what comes for `ExtendedDefaultParser`.
- Discard empty args in a `Shell` coming from `ExtendedDefaultParser`
- `ExtendedDefaultParserTests` has more tests, some commented out, to
see some differences for jline default parser impl. Something
to get handled in #517
- New OptionMethodArgumentResolver which is similar
than ShellOptionMethodArgumentResolver for @ShellOption.
- Add missing annotation commands for e2e test command.
- Fixes#767
- 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.
- Fixes#763
- Annotate ShellComponent with @Reflective and use custom
AvailabilityReflectiveProcessor to find possible method
targets returning Availability.
- Fixes#747
- Add short options as valid tokens in a `CommandModel` so that Lexer
create tokens with accurate info and doesn't then cascade this issue
in Ast and Parser.
- Previously with a command `command -a aaa -b bbb` tokenisation resulted
`COMMAND OPTION ARGUMENT ARGUMENT ARGUMENT` with multiple short options
while it should have been `COMMAND OPTION ARGUMENT OPTION ARGUMENT`.
- Relates #757
- Use io.spring.asciidoctor.backends:spring-asciidoctor-backends:0.0.5
- As this relates to anon repo access, use ge conventions from
public repos and fix some other used repos.
- Fixes#722
- 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.
- Backport #694#699
- Fixes#700
- Better alignment for use of positional args without using
an option.
- Should work similarly with old parsing framework.
- Change position where missing options are checked.
- Fixes#701