Only NonInteractiveShellRunner is active on default
- Disable InteractiveShellRunner and ScriptShellRunner on default - Enable those in commands and e2e sample apps - Document changes - Fixes #1017
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2021-2023 the original author or authors.
|
||||
* Copyright 2021-2024 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -59,7 +59,7 @@ public class ShellRunnerAutoConfiguration {
|
||||
public static class NonePrimaryCommandConfiguration {
|
||||
|
||||
@Bean
|
||||
@ConditionalOnProperty(prefix = "spring.shell.interactive", value = "enabled", havingValue = "true", matchIfMissing = true)
|
||||
@ConditionalOnProperty(prefix = "spring.shell.interactive", value = "enabled", havingValue = "true", matchIfMissing = false)
|
||||
public InteractiveShellRunner interactiveApplicationRunner(LineReader lineReader, PromptProvider promptProvider,
|
||||
Shell shell, ShellContext shellContext) {
|
||||
return new InteractiveShellRunner(lineReader, promptProvider, shell, shellContext);
|
||||
@@ -75,7 +75,7 @@ public class ShellRunnerAutoConfiguration {
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnProperty(prefix = "spring.shell.script", value = "enabled", havingValue = "true", matchIfMissing = true)
|
||||
@ConditionalOnProperty(prefix = "spring.shell.script", value = "enabled", havingValue = "true", matchIfMissing = false)
|
||||
public ScriptShellRunner scriptApplicationRunner(Parser parser, Shell shell) {
|
||||
return new ScriptShellRunner(parser, shell);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2022-2023 the original author or authors.
|
||||
* Copyright 2022-2024 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -53,9 +53,10 @@ class ShellRunnerAutoConfigurationTests {
|
||||
|
||||
@Nested
|
||||
class Interactive {
|
||||
|
||||
@Test
|
||||
void enabledByDefault() {
|
||||
contextRunner.run(context -> assertThat(context).hasSingleBean(InteractiveShellRunner.class));
|
||||
void disabledByDefault() {
|
||||
contextRunner.run(context -> assertThat(context).doesNotHaveBean(InteractiveShellRunner.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -67,6 +68,7 @@ class ShellRunnerAutoConfigurationTests {
|
||||
|
||||
@Nested
|
||||
class NonInteractive {
|
||||
|
||||
@Test
|
||||
void enabledByDefault() {
|
||||
contextRunner.run(context -> assertThat(context).hasSingleBean(NonInteractiveShellRunner.class));
|
||||
@@ -101,9 +103,10 @@ class ShellRunnerAutoConfigurationTests {
|
||||
|
||||
@Nested
|
||||
class Script {
|
||||
|
||||
@Test
|
||||
void enabledByDefault() {
|
||||
contextRunner.run(context -> assertThat(context).hasSingleBean(ScriptShellRunner.class));
|
||||
void disabledByDefault() {
|
||||
contextRunner.run(context -> assertThat(context).doesNotHaveBean(ScriptShellRunner.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -31,6 +31,22 @@ and its default implementation makes a choice which `ShellRunner` is used. There
|
||||
only one `ShellApplicationRunner` but it can be redefined if needed for some reason.
|
||||
|
||||
Three `ShellRunner` implementation exists, named `InteractiveShellRunner`,
|
||||
`NonInteractiveShellRunner` and `ScriptShellRunner`. These are enabled on default but
|
||||
can be disable if needed using properties `spring.shell.interactive.enabled`,
|
||||
`spring.shell.noninteractive.enabled` and `spring.shell.script.enabled` respecively.
|
||||
`NonInteractiveShellRunner` and `ScriptShellRunner`. Only `NonInteractiveShellRunner`
|
||||
is enabled by default. Enabled state can be modified using properties
|
||||
`spring.shell.interactive.enabled`, `spring.shell.noninteractive.enabled` and
|
||||
`spring.shell.script.enabled` respecively.
|
||||
|
||||
For example enabling interactive and script runners use properties:
|
||||
|
||||
[source, yaml]
|
||||
----
|
||||
spring:
|
||||
shell:
|
||||
interactive:
|
||||
enabled: true
|
||||
script:
|
||||
enabled: true
|
||||
----
|
||||
|
||||
NOTE: Versions up to `3.2.x` had all runners enabled by default, starting from `3.3.x`
|
||||
only `NonInteractiveShellRunner` is enabled by default.
|
||||
|
||||
@@ -2,6 +2,8 @@ spring:
|
||||
main:
|
||||
banner-mode: off
|
||||
shell:
|
||||
interactive:
|
||||
enabled: true
|
||||
## pick global default option naming
|
||||
# option:
|
||||
# naming:
|
||||
|
||||
@@ -2,6 +2,8 @@ spring:
|
||||
main:
|
||||
banner-mode: off
|
||||
shell:
|
||||
interactive:
|
||||
enabled: true
|
||||
## pick global default option naming
|
||||
# option:
|
||||
# naming:
|
||||
|
||||
Reference in New Issue
Block a user