- CommandRegistration now has a structure to define
it beind hidden
- Modify relevant parts to filter out hidden commands
- Essentially command is hidden from all other than
command execution
- Sample in e2e tests
- Fixes#416
- BaseComponentContext has new field terminalWidth.
- StringToStyleExpressionRenderer contains new format
for "truncate-" prefixes and this is something
what template can use to instruct max length based
on terminal width.
- Change single/multi selectors to use this feature.
- Fixes#543
- Add exception handling around new interface CommandExceptionResolver
which allows to define a chain of resolvers to process errors before
exception is bubbled up to result handlers.
- Will be foundation to add more sophisticated error handling features
compared to what spring itself have for rest layer.
- Resolver returns CommandHandlingResult holder which further can be
used to make a choice what to print into console and if spesific exit
code should be used in non-interactive mode.
- Exception handling can be defined globally and per command giving
a change for user to customise i.e. error thrown by parser.
- CommandParserExceptionResolver replaces CommandParserExceptionsExceptionResultHandler
and provides more meaninful message for missing options.
- Fixes#503
- Modify CommandParser to convert given option value if its type is defined
- This change makes option default value to behave same as given value
what comes for the actual value in a CommandContext.
- Fixes#548
- Basically doing same what framework/boot does for jar manifests.
- Copied gradle settings from boot which gives us dot format like
Automatic-Module-Name: spring.shell.core
- Fixes#529
- This is a fix for regression introduced in a9a420df22
which was an attempt to work better with boot's aot plugin.
- Fix is a bit hacky but should work until we find better fix for this using
tooling from gradle.
- Fixes#521
- Looks like with gradle we don't get automatic utf-8 encoding with compiler
so add it and same time use separate JavaConventions as we want to
apply it to modules and samples.
- Relates #470
- Looks like if plain deps are not defined as constraints test
deps will leak into a fatjar build i.e. with sample.
- Change it how its done in spring security where this idea
was taken.
- Remove use of maven-publish plugin which is not needed.
- Relates #470
- This commit fixes two issues.
- Firstly complete with correct option as existing bug was
to wrongly always complete with first option which used
wrong provider.
- Secondly filter out duplicate option proposals giving better
result when options is already in place.
- Fixes#495