diff --git a/spring-shell-core-autoconfigure/src/main/java/org/springframework/shell/core/autoconfigure/JLineShellAutoConfiguration.java b/spring-shell-core-autoconfigure/src/main/java/org/springframework/shell/core/autoconfigure/JLineShellAutoConfiguration.java index 216a9a082..cd89028b3 100644 --- a/spring-shell-core-autoconfigure/src/main/java/org/springframework/shell/core/autoconfigure/JLineShellAutoConfiguration.java +++ b/spring-shell-core-autoconfigure/src/main/java/org/springframework/shell/core/autoconfigure/JLineShellAutoConfiguration.java @@ -46,6 +46,7 @@ import org.springframework.context.event.ContextClosedEvent; import org.springframework.context.event.EventListener; import org.springframework.core.env.Environment; +import org.springframework.shell.core.NonInteractiveShellRunner; import org.springframework.shell.core.ShellRunner; import org.springframework.shell.core.command.Command; import org.springframework.shell.core.command.CommandParser; @@ -67,6 +68,7 @@ * @author Florent Biville * @author Mahmoud Ben Hassine * @author Piotr Olaszewski + * @author David Pilar */ @AutoConfiguration @EnableConfigurationProperties(SpringShellProperties.class) @@ -109,6 +111,13 @@ public ShellRunner jlineShellRunner(JLineInputProvider inputProvider, CommandPar return jLineShellRunner; } + @Bean + @ConditionalOnProperty(prefix = "spring.shell.interactive", name = "enabled", havingValue = "false") + public ShellRunner jlineNonInteractiveShellRunner(CommandParser commandParser, CommandRegistry commandRegistry, + Terminal terminal) { + return new NonInteractiveShellRunner(commandParser, commandRegistry, terminal.writer()); + } + @Bean public LineReader lineReader(Terminal terminal, Parser parser, CommandCompleter commandCompleter, CommandHighlighter commandHighlighter) { diff --git a/spring-shell-core-autoconfigure/src/main/java/org/springframework/shell/core/autoconfigure/ShellRunnerAutoConfiguration.java b/spring-shell-core-autoconfigure/src/main/java/org/springframework/shell/core/autoconfigure/ShellRunnerAutoConfiguration.java index 4b9fc6d89..d87d8c87f 100644 --- a/spring-shell-core-autoconfigure/src/main/java/org/springframework/shell/core/autoconfigure/ShellRunnerAutoConfiguration.java +++ b/spring-shell-core-autoconfigure/src/main/java/org/springframework/shell/core/autoconfigure/ShellRunnerAutoConfiguration.java @@ -53,6 +53,7 @@ public ShellRunner systemShellRunner(ConsoleInputProvider consoleInputProvider, } @Bean + @ConditionalOnMissingClass("org.springframework.shell.jline.DefaultJLineShellConfiguration") @ConditionalOnProperty(prefix = "spring.shell.interactive", name = "enabled", havingValue = "false") public ShellRunner nonInteractiveShellRunner(CommandParser commandParser, CommandRegistry commandRegistry) { return new NonInteractiveShellRunner(commandParser, commandRegistry);