- Extend CommandRegistry for add/remove methods.
- For rest of shell classes move to use registry
directly instead of caching commands as registry
is not immutable anymore.
- Add new sample
- Fixes#379
- Now passing version command attributes
even if those are nulls(not set) as ST
logs those in a listener as errors while
it doesn't cause any failures.
- Change all LoggingSTErrorListener methods
into debug level to limit more noise.
- Fixes#363
- New option spring.shell.command.help.grouping-mode which can be either flat/group.
- Build-in help command can now choose if to group command or just show flat list.
- Fixes#347
- Add new styling system which works around concept that
you use tags to request jline styles where tags comes
from an activated theme.
- There is a default theme with options to add custom
ones and change it via property.
- Add templating system which uses antlr stringtemplate which
allows to write output with a template instead of manually
crafting code.
- Add version command which integrates to Boot's BuildProperties
and GitProperties. Only version field is visible on default
and others can be enabled/disable via properties.
- Fixes#352
- Fixes#353
- Add new ShellContext concept which now is just a way
to stash info about interaction mode where ShellRunner
can update supported mode.
- ShellMethod has a new field interactionMode which user
can use to define commands between interactive/non-interactive
modes which then prevents CommandRegistry to show
commands at runtime.
- Fixes#345
- Add basic support of defining a command `completion bash` which
outputs a generic bash script which can be used in a user environment.
- Idea for completion is copied from go's cobra library what comes for
a bash dance itself.
- Goes through command registry, builds a model for command structure
and uses antlr st4 for templating bash.
- Should give foundation to create other completions just like in cobra.
- Currently as we don't know a root-command in a generic way, option
`spring.shell.command.completion.root-command` is required user to set.
- Fixes#343
- Lot of rework to move better model to work around bean cycles
- Remove use of @Lazy
- Move StandardAPIAutoConfiguration to autoconfig package
- Remove some of a direct ObjectProvider use in constructors
- Adds spring-native support with most of a things working out of a box
- Relates #324
- Relates #329
- Relates #323
- Shuffle things around into different auto-config and configuration
classes and use other tricks like ObjectProvider to work around
boot 2.6.x imposing bean cycle checks.
- This is first set of changes to work around this issue, not
to make things perfect. Further refactoring work is needed
making code base more boot 2.x friendly as things are based
on boot 1.5.x times.
- Fixes#324
- Migrate tests to junit5 and assertj as those
are on a classpath automatically.
- Temporarily use spring.main.allow-circular-references=true
to allow time for fixes to remove cycles.
Introduce availability concept on MethodTarget (with reason if not available)
Add bridge to @CliAvailabilityIndicator to Legacy registrar
Fixes#138
Add help for unavailable commands
Add standard API for availability