From 6497df181d36e476b9b2bdc155e81ce22fc7429b Mon Sep 17 00:00:00 2001 From: Eric Bottard Date: Thu, 3 Aug 2017 18:06:28 +0200 Subject: [PATCH] Refactor packages and artifactIds to prepare for official migration to spring-projects repo. Remove usage of component scan in favor of auto-conf Fixes #61 --- README.adoc | 9 ++- pom.xml | 29 +++++----- .../pom.xml | 7 ++- .../shell}/ValueResultAsserts.java | 2 +- .../pom.xml | 6 +- .../shell}/CommandNotFound.java | 2 +- .../shell}/CommandRegistry.java | 2 +- .../shell}/CompletingParsedLine.java | 2 +- .../shell}/CompletionContext.java | 2 +- .../shell}/CompletionProposal.java | 2 +- .../springframework/shell}/ExitRequest.java | 2 +- .../org/springframework/shell}/Input.java | 2 +- .../springframework/shell}/MethodTarget.java | 2 +- .../shell}/MethodTargetResolver.java | 2 +- .../shell}/ParameterDescription.java | 2 +- .../ParameterMissingResolutionException.java | 2 +- .../shell}/ParameterResolver.java | 2 +- .../springframework/shell}/ResultHandler.java | 2 +- .../org/springframework/shell}/Shell.java | 4 +- .../shell/SpringShellAutoConfiguration.java | 55 +++++++++++++++++++ ...nfinishedParameterResolutionException.java | 2 +- .../org/springframework/shell}/Utils.java | 5 +- .../springframework/shell}/ValueResult.java | 2 +- .../shell}/jline/ExtendedDefaultParser.java | 4 +- .../shell}/jline/JLineShell.java | 16 +++--- .../AttributedCharSequenceResultHandler.java | 6 +- .../result/CommandNotFoundResultHandler.java | 6 +- .../shell}/result/DefaultResultHandler.java | 4 +- .../result/ExitRequestResultHandler.java | 8 +-- .../shell}/result/IterableResultHandler.java | 5 +- .../shell}/result/ResultHandlerConfig.java | 6 +- .../result/TerminalAwareResultHandler.java | 5 +- .../shell}/result/ThrowableResultHandler.java | 6 +- .../result/TypeHierarchyResultHandler.java | 5 +- .../shell}/result/package-info.java | 2 +- .../main/resources/META-INF/spring.factories | 3 + .../src/main/resources/logback.xml | 0 .../org/springframework/shell}/ShellTest.java | 2 +- .../org/springframework/shell}/UtilsTest.java | 2 +- .../pom.xml | 8 ++- .../JCommanderParameterResolver.java | 15 +++-- ...derParameterResolverAutoConfiguration.java | 34 ++++++++++++ .../shell}/jcommander/package-info.java | 2 +- .../main/resources/META-INF/spring.factories | 2 + .../shell}/jcommander/FieldCollins.java | 2 +- .../JCommanderParameterResolverTest.java | 11 ++-- .../shell}/jcommander/MyLordCommands.java | 2 +- .../pom.xml | 17 +++--- .../shell/samples/SpringShellSample.java | 22 ++++---- .../shell}/samples/jcommander/Args.java | 2 +- .../jcommander/JCommanderCommands.java | 8 +-- .../shell}/samples/legacy/ArtifactType.java | 2 +- .../shell}/samples/legacy/LegacyCommands.java | 10 ++-- .../shell}/samples/standard/Commands.java | 16 +++--- .../pom.xml | 12 ++-- .../LegacyAdapterAutoConfiguration.java | 15 ++++- .../legacy/LegacyMethodTargetResolver.java | 6 +- .../legacy/LegacyParameterResolver.java | 12 ++-- .../shell}/legacy/package-info.java | 2 +- .../main/resources/META-INF/spring.factories | 2 + .../shell}/legacy/ArtifactType.java | 2 +- .../shell}/legacy/LegacyCommands.java | 2 +- .../LegacyMethodTargetResolverTest.java | 6 +- .../legacy/LegacyParameterResolverTest.java | 14 ++--- .../pom.xml | 8 ++- .../shell}/standard/commands/Console.java | 9 +-- .../shell}/standard/commands/Help.java | 23 ++++---- .../shell}/standard/commands/Quit.java | 8 +-- .../shell}/standard/commands/Stacktrace.java | 11 ++-- .../StandardCommandsAutoConfiguration.java | 52 ++++++++++++++++++ .../standard/commands/package-info.java | 2 +- .../main/resources/META-INF/spring.factories | 2 + .../shell}/standard/commands/HelpTest.java | 16 +++--- .../commands/HelpTest-testCommandHelp.txt | 0 .../commands/HelpTest-testCommandList.txt | 0 .../pom.xml | 10 ++-- .../shell}/standard/CommandValueProvider.java | 8 +-- .../shell}/standard/EnumValueProvider.java | 6 +- .../shell}/standard/ShellComponent.java | 2 +- .../shell}/standard/ShellMethod.java | 2 +- .../shell}/standard/ShellOption.java | 4 +- .../StandardAPIAutoConfiguration.java | 53 ++++++++++++++++++ .../StandardMethodTargetResolver.java | 10 +--- .../standard/StandardParameterResolver.java | 20 +++---- .../shell}/standard/ValueProvider.java | 6 +- .../shell}/standard/ValueProviderSupport.java | 4 +- .../shell}/standard/package-info.java | 2 +- .../main/resources/META-INF/spring.factories | 2 + .../standard/CommandValueProviderTest.java | 12 ++-- .../shell}/standard/Remote.java | 7 +-- .../StandardParameterResolverTest.java | 20 +++---- 91 files changed, 488 insertions(+), 264 deletions(-) rename {spring-shell2-core-tests => spring-shell-core-test-support}/pom.xml (78%) rename {spring-shell2-core-tests/src/main/java/org/springframework/shell2 => spring-shell-core-test-support/src/main/java/org/springframework/shell}/ValueResultAsserts.java (98%) rename {spring-shell2-core => spring-shell-core}/pom.xml (89%) rename {spring-shell2-core/src/main/java/org/springframework/shell2 => spring-shell-core/src/main/java/org/springframework/shell}/CommandNotFound.java (96%) rename {spring-shell2-core/src/main/java/org/springframework/shell2 => spring-shell-core/src/main/java/org/springframework/shell}/CommandRegistry.java (96%) rename {spring-shell2-core/src/main/java/org/springframework/shell2 => spring-shell-core/src/main/java/org/springframework/shell}/CompletingParsedLine.java (96%) rename {spring-shell2-core/src/main/java/org/springframework/shell2 => spring-shell-core/src/main/java/org/springframework/shell}/CompletionContext.java (98%) rename {spring-shell2-core/src/main/java/org/springframework/shell2 => spring-shell-core/src/main/java/org/springframework/shell}/CompletionProposal.java (98%) rename {spring-shell2-core/src/main/java/org/springframework/shell2 => spring-shell-core/src/main/java/org/springframework/shell}/ExitRequest.java (96%) rename {spring-shell2-core/src/main/java/org/springframework/shell2 => spring-shell-core/src/main/java/org/springframework/shell}/Input.java (97%) rename {spring-shell2-core/src/main/java/org/springframework/shell2 => spring-shell-core/src/main/java/org/springframework/shell}/MethodTarget.java (98%) rename {spring-shell2-core/src/main/java/org/springframework/shell2 => spring-shell-core/src/main/java/org/springframework/shell}/MethodTargetResolver.java (96%) rename {spring-shell2-core/src/main/java/org/springframework/shell2 => spring-shell-core/src/main/java/org/springframework/shell}/ParameterDescription.java (99%) rename {spring-shell2-core/src/main/java/org/springframework/shell2 => spring-shell-core/src/main/java/org/springframework/shell}/ParameterMissingResolutionException.java (97%) rename {spring-shell2-core/src/main/java/org/springframework/shell2 => spring-shell-core/src/main/java/org/springframework/shell}/ParameterResolver.java (98%) rename {spring-shell2-core/src/main/java/org/springframework/shell2 => spring-shell-core/src/main/java/org/springframework/shell}/ResultHandler.java (96%) rename {spring-shell2-core/src/main/java/org/springframework/shell2 => spring-shell-core/src/main/java/org/springframework/shell}/Shell.java (98%) create mode 100644 spring-shell-core/src/main/java/org/springframework/shell/SpringShellAutoConfiguration.java rename {spring-shell2-core/src/main/java/org/springframework/shell2 => spring-shell-core/src/main/java/org/springframework/shell}/UnfinishedParameterResolutionException.java (97%) rename {spring-shell2-core/src/main/java/org/springframework/shell2 => spring-shell-core/src/main/java/org/springframework/shell}/Utils.java (95%) rename {spring-shell2-core/src/main/java/org/springframework/shell2 => spring-shell-core/src/main/java/org/springframework/shell}/ValueResult.java (98%) rename {spring-shell2-core/src/main/java/org/springframework/shell2 => spring-shell-core/src/main/java/org/springframework/shell}/jline/ExtendedDefaultParser.java (98%) rename {spring-shell2-core/src/main/java/org/springframework/shell2 => spring-shell-core/src/main/java/org/springframework/shell}/jline/JLineShell.java (93%) rename {spring-shell2-core/src/main/java/org/springframework/shell2 => spring-shell-core/src/main/java/org/springframework/shell}/result/AttributedCharSequenceResultHandler.java (85%) rename {spring-shell2-core/src/main/java/org/springframework/shell2 => spring-shell-core/src/main/java/org/springframework/shell}/result/CommandNotFoundResultHandler.java (89%) rename {spring-shell2-core/src/main/java/org/springframework/shell2 => spring-shell-core/src/main/java/org/springframework/shell}/result/DefaultResultHandler.java (91%) rename {spring-shell2-core/src/main/java/org/springframework/shell2 => spring-shell-core/src/main/java/org/springframework/shell}/result/ExitRequestResultHandler.java (83%) rename {spring-shell2-core/src/main/java/org/springframework/shell2 => spring-shell-core/src/main/java/org/springframework/shell}/result/IterableResultHandler.java (89%) rename {spring-shell2-core/src/main/java/org/springframework/shell2 => spring-shell-core/src/main/java/org/springframework/shell}/result/ResultHandlerConfig.java (91%) rename {spring-shell2-core/src/main/java/org/springframework/shell2 => spring-shell-core/src/main/java/org/springframework/shell}/result/TerminalAwareResultHandler.java (89%) rename {spring-shell2-core/src/main/java/org/springframework/shell2 => spring-shell-core/src/main/java/org/springframework/shell}/result/ThrowableResultHandler.java (94%) rename {spring-shell2-core/src/main/java/org/springframework/shell2 => spring-shell-core/src/main/java/org/springframework/shell}/result/TypeHierarchyResultHandler.java (95%) rename {spring-shell2-core/src/main/java/org/springframework/shell2 => spring-shell-core/src/main/java/org/springframework/shell}/result/package-info.java (94%) create mode 100644 spring-shell-core/src/main/resources/META-INF/spring.factories rename {spring-shell2-core => spring-shell-core}/src/main/resources/logback.xml (100%) rename {spring-shell2-core/src/test/java/org/springframework/shell2 => spring-shell-core/src/test/java/org/springframework/shell}/ShellTest.java (99%) rename {spring-shell2-core/src/test/java/org/springframework/shell2 => spring-shell-core/src/test/java/org/springframework/shell}/UtilsTest.java (96%) rename {spring-shell2-jcommander-adapter => spring-shell-jcommander-adapter}/pom.xml (82%) rename {spring-shell2-jcommander-adapter/src/main/java/org/springframework/shell2 => spring-shell-jcommander-adapter/src/main/java/org/springframework/shell}/jcommander/JCommanderParameterResolver.java (92%) create mode 100644 spring-shell-jcommander-adapter/src/main/java/org/springframework/shell/jcommander/JCommanderParameterResolverAutoConfiguration.java rename {spring-shell2-jcommander-adapter/src/main/java/org/springframework/shell2 => spring-shell-jcommander-adapter/src/main/java/org/springframework/shell}/jcommander/package-info.java (93%) create mode 100644 spring-shell-jcommander-adapter/src/main/resources/META-INF/spring.factories rename {spring-shell2-jcommander-adapter/src/test/java/org/springframework/shell2 => spring-shell-jcommander-adapter/src/test/java/org/springframework/shell}/jcommander/FieldCollins.java (96%) rename {spring-shell2-jcommander-adapter/src/test/java/org/springframework/shell2 => spring-shell-jcommander-adapter/src/test/java/org/springframework/shell}/jcommander/JCommanderParameterResolverTest.java (93%) rename {spring-shell2-jcommander-adapter/src/test/java/org/springframework/shell2 => spring-shell-jcommander-adapter/src/test/java/org/springframework/shell}/jcommander/MyLordCommands.java (95%) rename {spring-shell2-samples => spring-shell-samples}/pom.xml (70%) rename spring-shell2-core/src/main/java/org/springframework/shell2/Bootstrap.java => spring-shell-samples/src/main/java/org/springframework/shell/samples/SpringShellSample.java (71%) rename {spring-shell2-samples/src/main/java/org/springframework/shell2 => spring-shell-samples/src/main/java/org/springframework/shell}/samples/jcommander/Args.java (96%) rename {spring-shell2-samples/src/main/java/org/springframework/shell2 => spring-shell-samples/src/main/java/org/springframework/shell}/samples/jcommander/JCommanderCommands.java (79%) rename {spring-shell2-samples/src/main/java/org/springframework/shell2 => spring-shell-samples/src/main/java/org/springframework/shell}/samples/legacy/ArtifactType.java (93%) rename {spring-shell2-samples/src/main/java/org/springframework/shell2 => spring-shell-samples/src/main/java/org/springframework/shell}/samples/legacy/LegacyCommands.java (94%) rename {spring-shell2-samples/src/main/java/org/springframework/shell2 => spring-shell-samples/src/main/java/org/springframework/shell}/samples/standard/Commands.java (84%) rename {spring-shell2-shell1-adapter => spring-shell-shell1-adapter}/pom.xml (74%) rename spring-shell2-shell1-adapter/src/main/java/org/springframework/shell2/legacy/LegacyConfiguration.java => spring-shell-shell1-adapter/src/main/java/org/springframework/shell/legacy/LegacyAdapterAutoConfiguration.java (78%) rename {spring-shell2-shell1-adapter/src/main/java/org/springframework/shell2 => spring-shell-shell1-adapter/src/main/java/org/springframework/shell}/legacy/LegacyMethodTargetResolver.java (93%) rename {spring-shell2-shell1-adapter/src/main/java/org/springframework/shell2 => spring-shell-shell1-adapter/src/main/java/org/springframework/shell}/legacy/LegacyParameterResolver.java (95%) rename {spring-shell2-shell1-adapter/src/main/java/org/springframework/shell2 => spring-shell-shell1-adapter/src/main/java/org/springframework/shell}/legacy/package-info.java (93%) create mode 100644 spring-shell-shell1-adapter/src/main/resources/META-INF/spring.factories rename {spring-shell2-shell1-adapter/src/test/java/org/springframework/shell2 => spring-shell-shell1-adapter/src/test/java/org/springframework/shell}/legacy/ArtifactType.java (94%) rename {spring-shell2-shell1-adapter/src/test/java/org/springframework/shell2 => spring-shell-shell1-adapter/src/test/java/org/springframework/shell}/legacy/LegacyCommands.java (98%) rename {spring-shell2-shell1-adapter/src/test/java/org/springframework/shell2 => spring-shell-shell1-adapter/src/test/java/org/springframework/shell}/legacy/LegacyMethodTargetResolverTest.java (93%) rename {spring-shell2-shell1-adapter/src/test/java/org/springframework/shell2 => spring-shell-shell1-adapter/src/test/java/org/springframework/shell}/legacy/LegacyParameterResolverTest.java (96%) rename {spring-shell2-standard-commands => spring-shell-standard-commands}/pom.xml (81%) rename {spring-shell2-standard-commands/src/main/java/org/springframework/shell2 => spring-shell-standard-commands/src/main/java/org/springframework/shell}/standard/commands/Console.java (81%) rename {spring-shell2-standard-commands/src/main/java/org/springframework/shell2 => spring-shell-standard-commands/src/main/java/org/springframework/shell}/standard/commands/Help.java (92%) rename {spring-shell2-standard-commands/src/main/java/org/springframework/shell2 => spring-shell-standard-commands/src/main/java/org/springframework/shell}/standard/commands/Quit.java (79%) rename {spring-shell2-standard-commands/src/main/java/org/springframework/shell2 => spring-shell-standard-commands/src/main/java/org/springframework/shell}/standard/commands/Stacktrace.java (80%) create mode 100644 spring-shell-standard-commands/src/main/java/org/springframework/shell/standard/commands/StandardCommandsAutoConfiguration.java rename {spring-shell2-standard-commands/src/main/java/org/springframework/shell2 => spring-shell-standard-commands/src/main/java/org/springframework/shell}/standard/commands/package-info.java (93%) create mode 100644 spring-shell-standard-commands/src/main/resources/META-INF/spring.factories rename {spring-shell2-standard-commands/src/test/java/org/springframework/shell2 => spring-shell-standard-commands/src/test/java/org/springframework/shell}/standard/commands/HelpTest.java (91%) rename {spring-shell2-standard-commands/src/test/resources/org/springframework/shell2 => spring-shell-standard-commands/src/test/resources/org/springframework/shell}/standard/commands/HelpTest-testCommandHelp.txt (100%) rename {spring-shell2-standard-commands/src/test/resources/org/springframework/shell2 => spring-shell-standard-commands/src/test/resources/org/springframework/shell}/standard/commands/HelpTest-testCommandList.txt (100%) rename {spring-shell2-standard => spring-shell-standard}/pom.xml (78%) rename {spring-shell2-standard/src/main/java/org/springframework/shell2 => spring-shell-standard/src/main/java/org/springframework/shell}/standard/CommandValueProvider.java (88%) rename {spring-shell2-standard/src/main/java/org/springframework/shell2 => spring-shell-standard/src/main/java/org/springframework/shell}/standard/EnumValueProvider.java (91%) rename {spring-shell2-standard/src/main/java/org/springframework/shell2 => spring-shell-standard/src/main/java/org/springframework/shell}/standard/ShellComponent.java (96%) rename {spring-shell2-standard/src/main/java/org/springframework/shell2 => spring-shell-standard/src/main/java/org/springframework/shell}/standard/ShellMethod.java (97%) rename {spring-shell2-standard/src/main/java/org/springframework/shell2 => spring-shell-standard/src/main/java/org/springframework/shell}/standard/ShellOption.java (93%) create mode 100644 spring-shell-standard/src/main/java/org/springframework/shell/standard/StandardAPIAutoConfiguration.java rename {spring-shell2-standard/src/main/java/org/springframework/shell2 => spring-shell-standard/src/main/java/org/springframework/shell}/standard/StandardMethodTargetResolver.java (87%) rename {spring-shell2-standard/src/main/java/org/springframework/shell2 => spring-shell-standard/src/main/java/org/springframework/shell}/standard/StandardParameterResolver.java (97%) rename {spring-shell2-standard/src/main/java/org/springframework/shell2 => spring-shell-standard/src/main/java/org/springframework/shell}/standard/ValueProvider.java (86%) rename {spring-shell2-standard/src/main/java/org/springframework/shell2 => spring-shell-standard/src/main/java/org/springframework/shell}/standard/ValueProviderSupport.java (92%) rename {spring-shell2-standard/src/main/java/org/springframework/shell2 => spring-shell-standard/src/main/java/org/springframework/shell}/standard/package-info.java (94%) create mode 100644 spring-shell-standard/src/main/resources/META-INF/spring.factories rename {spring-shell2-standard/src/test/java/org/springframework/shell2 => spring-shell-standard/src/test/java/org/springframework/shell}/standard/CommandValueProviderTest.java (88%) rename {spring-shell2-standard/src/test/java/org/springframework/shell2 => spring-shell-standard/src/test/java/org/springframework/shell}/standard/Remote.java (93%) rename {spring-shell2-standard/src/test/java/org/springframework/shell2 => spring-shell-standard/src/test/java/org/springframework/shell}/standard/StandardParameterResolverTest.java (93%) diff --git a/README.adoc b/README.adoc index 5608df7f..20815057 100644 --- a/README.adoc +++ b/README.adoc @@ -10,13 +10,12 @@ while maintaining some level of backward compatibility with your existing comman ``` == Running -*Note:* the dummy commands that are currently available are not here to stay. Expect a more modular -setup in the future. In the meantime, to get a grasp of how the shell would behave, you can +The project comes with a sample application, showcasing the various ways you can write commands. + ``` -# if using a local snapshot version ./mvnw install -./mvnw -pl spring-shell2-samples spring-boot:run +./mvnw -pl spring-shell-samples spring-boot:run ``` -From there, try typing `help` at the shell prompt. +From there, try typing `help` or `help ` at the shell prompt. diff --git a/pom.xml b/pom.xml index 4a8e842d..497ed2de 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,8 @@ 4.0.0 org.springframework.shell - spring-shell2-parent + spring-shell-parent + Spring Shell Parent POM 2.0.0.BUILD-SNAPSHOT pom @@ -20,13 +21,13 @@ - spring-shell2-core - spring-shell2-core-tests - spring-shell2-standard - spring-shell2-standard-commands - spring-shell2-jcommander-adapter - spring-shell2-samples - spring-shell2-shell1-adapter + spring-shell-core + spring-shell-core-test-support + spring-shell-standard + spring-shell-standard-commands + spring-shell-jcommander-adapter + spring-shell-samples + spring-shell-shell1-adapter @@ -34,32 +35,32 @@ org.springframework.shell - spring-shell2-core + spring-shell-core ${project.version} org.springframework.shell - spring-shell2-core-tests + spring-shell-core-test-support ${project.version} org.springframework.shell - spring-shell2-standard + spring-shell-standard ${project.version} org.springframework.shell - spring-shell2-standard-commands + spring-shell-standard-commands ${project.version} org.springframework.shell - spring-shell2-shell1-adapter + spring-shell-shell1-adapter ${project.version} org.springframework.shell - spring-shell2-jcommander-adapter + spring-shell-jcommander-adapter ${project.version} diff --git a/spring-shell2-core-tests/pom.xml b/spring-shell-core-test-support/pom.xml similarity index 78% rename from spring-shell2-core-tests/pom.xml rename to spring-shell-core-test-support/pom.xml index 01dff2f5..ea4f5aa8 100644 --- a/spring-shell2-core-tests/pom.xml +++ b/spring-shell-core-test-support/pom.xml @@ -2,12 +2,13 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - spring-shell2-core-tests + spring-shell-core-test-support + Spring Shell Core Test Support jar org.springframework.shell - spring-shell2-parent + spring-shell-parent 2.0.0.BUILD-SNAPSHOT @@ -16,7 +17,7 @@ org.springframework.shell - spring-shell2-core + spring-shell-core org.assertj diff --git a/spring-shell2-core-tests/src/main/java/org/springframework/shell2/ValueResultAsserts.java b/spring-shell-core-test-support/src/main/java/org/springframework/shell/ValueResultAsserts.java similarity index 98% rename from spring-shell2-core-tests/src/main/java/org/springframework/shell2/ValueResultAsserts.java rename to spring-shell-core-test-support/src/main/java/org/springframework/shell/ValueResultAsserts.java index b6f85b1e..00424931 100644 --- a/spring-shell2-core-tests/src/main/java/org/springframework/shell2/ValueResultAsserts.java +++ b/spring-shell-core-test-support/src/main/java/org/springframework/shell/ValueResultAsserts.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.shell2; +package org.springframework.shell; import org.assertj.core.api.AbstractAssert; import org.assertj.core.api.Assertions; diff --git a/spring-shell2-core/pom.xml b/spring-shell-core/pom.xml similarity index 89% rename from spring-shell2-core/pom.xml rename to spring-shell-core/pom.xml index 84bc9dd9..15b7a225 100644 --- a/spring-shell2-core/pom.xml +++ b/spring-shell-core/pom.xml @@ -2,12 +2,13 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - spring-shell2-core + spring-shell-core + Spring Shell Core jar org.springframework.shell - spring-shell2-parent + spring-shell-parent 2.0.0.BUILD-SNAPSHOT @@ -25,6 +26,7 @@ org.springframework.boot spring-boot-starter-test + test org.jline diff --git a/spring-shell2-core/src/main/java/org/springframework/shell2/CommandNotFound.java b/spring-shell-core/src/main/java/org/springframework/shell/CommandNotFound.java similarity index 96% rename from spring-shell2-core/src/main/java/org/springframework/shell2/CommandNotFound.java rename to spring-shell-core/src/main/java/org/springframework/shell/CommandNotFound.java index 30e51b10..c20c6b1e 100644 --- a/spring-shell2-core/src/main/java/org/springframework/shell2/CommandNotFound.java +++ b/spring-shell-core/src/main/java/org/springframework/shell/CommandNotFound.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2; +package org.springframework.shell; import java.util.List; import java.util.stream.Collectors; diff --git a/spring-shell2-core/src/main/java/org/springframework/shell2/CommandRegistry.java b/spring-shell-core/src/main/java/org/springframework/shell/CommandRegistry.java similarity index 96% rename from spring-shell2-core/src/main/java/org/springframework/shell2/CommandRegistry.java rename to spring-shell-core/src/main/java/org/springframework/shell/CommandRegistry.java index ca625b8d..bb5959c8 100644 --- a/spring-shell2-core/src/main/java/org/springframework/shell2/CommandRegistry.java +++ b/spring-shell-core/src/main/java/org/springframework/shell/CommandRegistry.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2; +package org.springframework.shell; import java.util.Map; diff --git a/spring-shell2-core/src/main/java/org/springframework/shell2/CompletingParsedLine.java b/spring-shell-core/src/main/java/org/springframework/shell/CompletingParsedLine.java similarity index 96% rename from spring-shell2-core/src/main/java/org/springframework/shell2/CompletingParsedLine.java rename to spring-shell-core/src/main/java/org/springframework/shell/CompletingParsedLine.java index 02c935dd..5c6f3953 100644 --- a/spring-shell2-core/src/main/java/org/springframework/shell2/CompletingParsedLine.java +++ b/spring-shell-core/src/main/java/org/springframework/shell/CompletingParsedLine.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2; +package org.springframework.shell; import org.jline.reader.ParsedLine; diff --git a/spring-shell2-core/src/main/java/org/springframework/shell2/CompletionContext.java b/spring-shell-core/src/main/java/org/springframework/shell/CompletionContext.java similarity index 98% rename from spring-shell2-core/src/main/java/org/springframework/shell2/CompletionContext.java rename to spring-shell-core/src/main/java/org/springframework/shell/CompletionContext.java index 5ca8a461..375f6588 100644 --- a/spring-shell2-core/src/main/java/org/springframework/shell2/CompletionContext.java +++ b/spring-shell-core/src/main/java/org/springframework/shell/CompletionContext.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2; +package org.springframework.shell; import java.util.ArrayList; import java.util.List; diff --git a/spring-shell2-core/src/main/java/org/springframework/shell2/CompletionProposal.java b/spring-shell-core/src/main/java/org/springframework/shell/CompletionProposal.java similarity index 98% rename from spring-shell2-core/src/main/java/org/springframework/shell2/CompletionProposal.java rename to spring-shell-core/src/main/java/org/springframework/shell/CompletionProposal.java index 141622d1..ba0d25cd 100644 --- a/spring-shell2-core/src/main/java/org/springframework/shell2/CompletionProposal.java +++ b/spring-shell-core/src/main/java/org/springframework/shell/CompletionProposal.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2; +package org.springframework.shell; /** * Represents a proposal for TAB completion, made not only of the text to append, but also metadata about the proposal. diff --git a/spring-shell2-core/src/main/java/org/springframework/shell2/ExitRequest.java b/spring-shell-core/src/main/java/org/springframework/shell/ExitRequest.java similarity index 96% rename from spring-shell2-core/src/main/java/org/springframework/shell2/ExitRequest.java rename to spring-shell-core/src/main/java/org/springframework/shell/ExitRequest.java index 4dcecdec..157dc554 100644 --- a/spring-shell2-core/src/main/java/org/springframework/shell2/ExitRequest.java +++ b/spring-shell-core/src/main/java/org/springframework/shell/ExitRequest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2; +package org.springframework.shell; /** * This exception, when thrown and caught, will ask the shell to gracefully shutdown. diff --git a/spring-shell2-core/src/main/java/org/springframework/shell2/Input.java b/spring-shell-core/src/main/java/org/springframework/shell/Input.java similarity index 97% rename from spring-shell2-core/src/main/java/org/springframework/shell2/Input.java rename to spring-shell-core/src/main/java/org/springframework/shell/Input.java index 62ed87fe..c5cf5098 100644 --- a/spring-shell2-core/src/main/java/org/springframework/shell2/Input.java +++ b/spring-shell-core/src/main/java/org/springframework/shell/Input.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2; +package org.springframework.shell; import java.util.Arrays; import java.util.Collections; diff --git a/spring-shell2-core/src/main/java/org/springframework/shell2/MethodTarget.java b/spring-shell-core/src/main/java/org/springframework/shell/MethodTarget.java similarity index 98% rename from spring-shell2-core/src/main/java/org/springframework/shell2/MethodTarget.java rename to spring-shell-core/src/main/java/org/springframework/shell/MethodTarget.java index dbf236d3..950abda7 100644 --- a/spring-shell2-core/src/main/java/org/springframework/shell2/MethodTarget.java +++ b/spring-shell-core/src/main/java/org/springframework/shell/MethodTarget.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2; +package org.springframework.shell; import java.lang.reflect.Method; import java.util.HashSet; diff --git a/spring-shell2-core/src/main/java/org/springframework/shell2/MethodTargetResolver.java b/spring-shell-core/src/main/java/org/springframework/shell/MethodTargetResolver.java similarity index 96% rename from spring-shell2-core/src/main/java/org/springframework/shell2/MethodTargetResolver.java rename to spring-shell-core/src/main/java/org/springframework/shell/MethodTargetResolver.java index 5900a617..3b76bd02 100644 --- a/spring-shell2-core/src/main/java/org/springframework/shell2/MethodTargetResolver.java +++ b/spring-shell-core/src/main/java/org/springframework/shell/MethodTargetResolver.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2; +package org.springframework.shell; import java.util.Map; diff --git a/spring-shell2-core/src/main/java/org/springframework/shell2/ParameterDescription.java b/spring-shell-core/src/main/java/org/springframework/shell/ParameterDescription.java similarity index 99% rename from spring-shell2-core/src/main/java/org/springframework/shell2/ParameterDescription.java rename to spring-shell-core/src/main/java/org/springframework/shell/ParameterDescription.java index bca8b5a2..a7a49f66 100644 --- a/spring-shell2-core/src/main/java/org/springframework/shell2/ParameterDescription.java +++ b/spring-shell-core/src/main/java/org/springframework/shell/ParameterDescription.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2; +package org.springframework.shell; import java.util.Collections; import java.util.List; diff --git a/spring-shell2-core/src/main/java/org/springframework/shell2/ParameterMissingResolutionException.java b/spring-shell-core/src/main/java/org/springframework/shell/ParameterMissingResolutionException.java similarity index 97% rename from spring-shell2-core/src/main/java/org/springframework/shell2/ParameterMissingResolutionException.java rename to spring-shell-core/src/main/java/org/springframework/shell/ParameterMissingResolutionException.java index ca1780ed..b065b678 100644 --- a/spring-shell2-core/src/main/java/org/springframework/shell2/ParameterMissingResolutionException.java +++ b/spring-shell-core/src/main/java/org/springframework/shell/ParameterMissingResolutionException.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2; +package org.springframework.shell; /** * Thrown by a {@link ParameterResolver} when a parameter that should have been set has been left out altogether. diff --git a/spring-shell2-core/src/main/java/org/springframework/shell2/ParameterResolver.java b/spring-shell-core/src/main/java/org/springframework/shell/ParameterResolver.java similarity index 98% rename from spring-shell2-core/src/main/java/org/springframework/shell2/ParameterResolver.java rename to spring-shell-core/src/main/java/org/springframework/shell/ParameterResolver.java index 53702ded..ccea74b4 100644 --- a/spring-shell2-core/src/main/java/org/springframework/shell2/ParameterResolver.java +++ b/spring-shell-core/src/main/java/org/springframework/shell/ParameterResolver.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2; +package org.springframework.shell; import java.util.List; import java.util.stream.Stream; diff --git a/spring-shell2-core/src/main/java/org/springframework/shell2/ResultHandler.java b/spring-shell-core/src/main/java/org/springframework/shell/ResultHandler.java similarity index 96% rename from spring-shell2-core/src/main/java/org/springframework/shell2/ResultHandler.java rename to spring-shell-core/src/main/java/org/springframework/shell/ResultHandler.java index 23366bf2..1561e8c5 100644 --- a/spring-shell2-core/src/main/java/org/springframework/shell2/ResultHandler.java +++ b/spring-shell-core/src/main/java/org/springframework/shell/ResultHandler.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2; +package org.springframework.shell; /** * Implementations know how to deal with results of method invocations, whether normal results or exceptions thrown. diff --git a/spring-shell2-core/src/main/java/org/springframework/shell2/Shell.java b/spring-shell-core/src/main/java/org/springframework/shell/Shell.java similarity index 98% rename from spring-shell2-core/src/main/java/org/springframework/shell2/Shell.java rename to spring-shell-core/src/main/java/org/springframework/shell/Shell.java index 8fd50ba6..3bb15b9b 100644 --- a/spring-shell2-core/src/main/java/org/springframework/shell2/Shell.java +++ b/spring-shell-core/src/main/java/org/springframework/shell/Shell.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2; +package org.springframework.shell; import java.io.IOException; import java.lang.reflect.Method; @@ -33,6 +33,8 @@ import javax.validation.Validation; import javax.validation.executable.ExecutableValidator; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; import org.springframework.context.ApplicationContext; import org.springframework.core.MethodParameter; import org.springframework.util.ReflectionUtils; diff --git a/spring-shell-core/src/main/java/org/springframework/shell/SpringShellAutoConfiguration.java b/spring-shell-core/src/main/java/org/springframework/shell/SpringShellAutoConfiguration.java new file mode 100644 index 00000000..6b39e30b --- /dev/null +++ b/spring-shell-core/src/main/java/org/springframework/shell/SpringShellAutoConfiguration.java @@ -0,0 +1,55 @@ +/* + * Copyright 2017 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.shell; + +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; +import org.springframework.core.convert.ConversionService; +import org.springframework.core.convert.support.DefaultConversionService; +import org.springframework.shell.jline.JLineShell; +import org.springframework.shell.result.ResultHandlerConfig; + +/** + * Creates supporting beans for running the Shell + */ +@Configuration +@ComponentScan(basePackageClasses = ResultHandlerConfig.class) +@Import(JLineShell.class) +public class SpringShellAutoConfiguration { + + @Bean + @ConditionalOnMissingBean(ConversionService.class) + public ConversionService conversionService() { + return new DefaultConversionService(); + } + + @Bean + public ApplicationRunner applicationRunner(Shell shell) { + return new ApplicationRunner() { + @Override + public void run(ApplicationArguments args) throws Exception { + shell.run(); + } + }; + } + +} diff --git a/spring-shell2-core/src/main/java/org/springframework/shell2/UnfinishedParameterResolutionException.java b/spring-shell-core/src/main/java/org/springframework/shell/UnfinishedParameterResolutionException.java similarity index 97% rename from spring-shell2-core/src/main/java/org/springframework/shell2/UnfinishedParameterResolutionException.java rename to spring-shell-core/src/main/java/org/springframework/shell/UnfinishedParameterResolutionException.java index f5057a38..600e3a8f 100644 --- a/spring-shell2-core/src/main/java/org/springframework/shell2/UnfinishedParameterResolutionException.java +++ b/spring-shell-core/src/main/java/org/springframework/shell/UnfinishedParameterResolutionException.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2; +package org.springframework.shell; /** * Thrown during parameter resolution, when a parameter has been identified, but could not be correctly resolved. diff --git a/spring-shell2-core/src/main/java/org/springframework/shell2/Utils.java b/spring-shell-core/src/main/java/org/springframework/shell/Utils.java similarity index 95% rename from spring-shell2-core/src/main/java/org/springframework/shell2/Utils.java rename to spring-shell-core/src/main/java/org/springframework/shell/Utils.java index a60fb461..25b85d48 100644 --- a/spring-shell2-core/src/main/java/org/springframework/shell2/Utils.java +++ b/spring-shell-core/src/main/java/org/springframework/shell/Utils.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2; +package org.springframework.shell; import java.lang.reflect.Constructor; import java.lang.reflect.Executable; @@ -78,6 +78,9 @@ public class Utils { return methodParameter; } + /** + * Return MethodParameters for each parameter of the given method/constructor. + */ public static Stream createMethodParameters(Executable executable) { return IntStream.range(0, executable.getParameterCount()) .mapToObj(i -> createMethodParameter(executable, i)); diff --git a/spring-shell2-core/src/main/java/org/springframework/shell2/ValueResult.java b/spring-shell-core/src/main/java/org/springframework/shell/ValueResult.java similarity index 98% rename from spring-shell2-core/src/main/java/org/springframework/shell2/ValueResult.java rename to spring-shell-core/src/main/java/org/springframework/shell/ValueResult.java index a86524d4..ca3c665b 100644 --- a/spring-shell2-core/src/main/java/org/springframework/shell2/ValueResult.java +++ b/spring-shell-core/src/main/java/org/springframework/shell/ValueResult.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.shell2; +package org.springframework.shell; import java.util.BitSet; import java.util.List; diff --git a/spring-shell2-core/src/main/java/org/springframework/shell2/jline/ExtendedDefaultParser.java b/spring-shell-core/src/main/java/org/springframework/shell/jline/ExtendedDefaultParser.java similarity index 98% rename from spring-shell2-core/src/main/java/org/springframework/shell2/jline/ExtendedDefaultParser.java rename to spring-shell-core/src/main/java/org/springframework/shell/jline/ExtendedDefaultParser.java index c49a7827..e4f318b2 100644 --- a/spring-shell2-core/src/main/java/org/springframework/shell2/jline/ExtendedDefaultParser.java +++ b/spring-shell-core/src/main/java/org/springframework/shell/jline/ExtendedDefaultParser.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2.jline; +package org.springframework.shell.jline; import java.util.Collections; import java.util.LinkedList; @@ -26,7 +26,7 @@ import org.jline.reader.EOFError; import org.jline.reader.ParsedLine; import org.jline.reader.Parser; -import org.springframework.shell2.CompletingParsedLine; +import org.springframework.shell.CompletingParsedLine; /** * Shameful copy-paste of JLine's {@link org.jline.reader.impl.DefaultParser} which diff --git a/spring-shell2-core/src/main/java/org/springframework/shell2/jline/JLineShell.java b/spring-shell-core/src/main/java/org/springframework/shell/jline/JLineShell.java similarity index 93% rename from spring-shell2-core/src/main/java/org/springframework/shell2/jline/JLineShell.java rename to spring-shell-core/src/main/java/org/springframework/shell/jline/JLineShell.java index 320b2183..038e9506 100644 --- a/spring-shell2-core/src/main/java/org/springframework/shell2/jline/JLineShell.java +++ b/spring-shell-core/src/main/java/org/springframework/shell/jline/JLineShell.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2.jline; +package org.springframework.shell.jline; import java.io.IOException; import java.util.List; @@ -40,13 +40,13 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.shell2.CompletingParsedLine; -import org.springframework.shell2.CompletionContext; -import org.springframework.shell2.CompletionProposal; -import org.springframework.shell2.ExitRequest; -import org.springframework.shell2.Input; -import org.springframework.shell2.ResultHandler; -import org.springframework.shell2.Shell; +import org.springframework.shell.CompletingParsedLine; +import org.springframework.shell.CompletionContext; +import org.springframework.shell.CompletionProposal; +import org.springframework.shell.ExitRequest; +import org.springframework.shell.Input; +import org.springframework.shell.ResultHandler; +import org.springframework.shell.Shell; /** * Shell implementation using JLine to capture input and trigger completions. diff --git a/spring-shell2-core/src/main/java/org/springframework/shell2/result/AttributedCharSequenceResultHandler.java b/spring-shell-core/src/main/java/org/springframework/shell/result/AttributedCharSequenceResultHandler.java similarity index 85% rename from spring-shell2-core/src/main/java/org/springframework/shell2/result/AttributedCharSequenceResultHandler.java rename to spring-shell-core/src/main/java/org/springframework/shell/result/AttributedCharSequenceResultHandler.java index 287c89ca..a7ec18e6 100644 --- a/spring-shell2-core/src/main/java/org/springframework/shell2/result/AttributedCharSequenceResultHandler.java +++ b/spring-shell-core/src/main/java/org/springframework/shell/result/AttributedCharSequenceResultHandler.java @@ -14,13 +14,11 @@ * limitations under the License. */ -package org.springframework.shell2.result; +package org.springframework.shell.result; -import org.jline.terminal.Terminal; import org.jline.utils.AttributedCharSequence; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.shell2.ResultHandler; +import org.springframework.shell.ResultHandler; import org.springframework.stereotype.Component; /** diff --git a/spring-shell2-core/src/main/java/org/springframework/shell2/result/CommandNotFoundResultHandler.java b/spring-shell-core/src/main/java/org/springframework/shell/result/CommandNotFoundResultHandler.java similarity index 89% rename from spring-shell2-core/src/main/java/org/springframework/shell2/result/CommandNotFoundResultHandler.java rename to spring-shell-core/src/main/java/org/springframework/shell/result/CommandNotFoundResultHandler.java index c175ffb2..17ae3fbe 100644 --- a/spring-shell2-core/src/main/java/org/springframework/shell2/result/CommandNotFoundResultHandler.java +++ b/spring-shell-core/src/main/java/org/springframework/shell/result/CommandNotFoundResultHandler.java @@ -14,13 +14,13 @@ * limitations under the License. */ -package org.springframework.shell2.result; +package org.springframework.shell.result; import org.jline.utils.AttributedString; import org.jline.utils.AttributedStyle; -import org.springframework.shell2.CommandNotFound; -import org.springframework.shell2.ResultHandler; +import org.springframework.shell.CommandNotFound; +import org.springframework.shell.ResultHandler; import org.springframework.stereotype.Component; /** diff --git a/spring-shell2-core/src/main/java/org/springframework/shell2/result/DefaultResultHandler.java b/spring-shell-core/src/main/java/org/springframework/shell/result/DefaultResultHandler.java similarity index 91% rename from spring-shell2-core/src/main/java/org/springframework/shell2/result/DefaultResultHandler.java rename to spring-shell-core/src/main/java/org/springframework/shell/result/DefaultResultHandler.java index 394fa8b6..4a0c2a9c 100644 --- a/spring-shell2-core/src/main/java/org/springframework/shell2/result/DefaultResultHandler.java +++ b/spring-shell-core/src/main/java/org/springframework/shell/result/DefaultResultHandler.java @@ -14,9 +14,9 @@ * limitations under the License. */ -package org.springframework.shell2.result; +package org.springframework.shell.result; -import org.springframework.shell2.ResultHandler; +import org.springframework.shell.ResultHandler; import org.springframework.stereotype.Component; /** diff --git a/spring-shell2-core/src/main/java/org/springframework/shell2/result/ExitRequestResultHandler.java b/spring-shell-core/src/main/java/org/springframework/shell/result/ExitRequestResultHandler.java similarity index 83% rename from spring-shell2-core/src/main/java/org/springframework/shell2/result/ExitRequestResultHandler.java rename to spring-shell-core/src/main/java/org/springframework/shell/result/ExitRequestResultHandler.java index e41f499b..0e16fe5e 100644 --- a/spring-shell2-core/src/main/java/org/springframework/shell2/result/ExitRequestResultHandler.java +++ b/spring-shell-core/src/main/java/org/springframework/shell/result/ExitRequestResultHandler.java @@ -14,19 +14,19 @@ * limitations under the License. */ -package org.springframework.shell2.result; +package org.springframework.shell.result; import java.io.Closeable; import java.io.IOException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; -import org.springframework.shell2.ExitRequest; -import org.springframework.shell2.ResultHandler; +import org.springframework.shell.ExitRequest; +import org.springframework.shell.ResultHandler; import org.springframework.stereotype.Component; /** - * Intercepts {@link org.springframework.shell2.ExitRequest} exceptions and gracefully exits the running process. + * Intercepts {@link org.springframework.shell.ExitRequest} exceptions and gracefully exits the running process. * * @author Eric Bottard */ diff --git a/spring-shell2-core/src/main/java/org/springframework/shell2/result/IterableResultHandler.java b/spring-shell-core/src/main/java/org/springframework/shell/result/IterableResultHandler.java similarity index 89% rename from spring-shell2-core/src/main/java/org/springframework/shell2/result/IterableResultHandler.java rename to spring-shell-core/src/main/java/org/springframework/shell/result/IterableResultHandler.java index 0249b486..14d76d08 100644 --- a/spring-shell2-core/src/main/java/org/springframework/shell2/result/IterableResultHandler.java +++ b/spring-shell-core/src/main/java/org/springframework/shell/result/IterableResultHandler.java @@ -14,10 +14,9 @@ * limitations under the License. */ -package org.springframework.shell2.result; +package org.springframework.shell.result; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.shell2.ResultHandler; +import org.springframework.shell.ResultHandler; import org.springframework.stereotype.Component; /** diff --git a/spring-shell2-core/src/main/java/org/springframework/shell2/result/ResultHandlerConfig.java b/spring-shell-core/src/main/java/org/springframework/shell/result/ResultHandlerConfig.java similarity index 91% rename from spring-shell2-core/src/main/java/org/springframework/shell2/result/ResultHandlerConfig.java rename to spring-shell-core/src/main/java/org/springframework/shell/result/ResultHandlerConfig.java index 7abf6d53..d1341a1d 100644 --- a/spring-shell2-core/src/main/java/org/springframework/shell2/result/ResultHandlerConfig.java +++ b/spring-shell-core/src/main/java/org/springframework/shell/result/ResultHandlerConfig.java @@ -14,17 +14,17 @@ * limitations under the License. */ -package org.springframework.shell2.result; +package org.springframework.shell.result; import javax.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Bean; -import org.springframework.shell2.ResultHandler; +import org.springframework.shell.ResultHandler; /** - * Used for explicit configuration of {@link org.springframework.shell2.ResultHandler}s. + * Used for explicit configuration of {@link org.springframework.shell.ResultHandler}s. * * @author Eric Bottard */ diff --git a/spring-shell2-core/src/main/java/org/springframework/shell2/result/TerminalAwareResultHandler.java b/spring-shell-core/src/main/java/org/springframework/shell/result/TerminalAwareResultHandler.java similarity index 89% rename from spring-shell2-core/src/main/java/org/springframework/shell2/result/TerminalAwareResultHandler.java rename to spring-shell-core/src/main/java/org/springframework/shell/result/TerminalAwareResultHandler.java index 433bd96a..d9baf647 100644 --- a/spring-shell2-core/src/main/java/org/springframework/shell2/result/TerminalAwareResultHandler.java +++ b/spring-shell-core/src/main/java/org/springframework/shell/result/TerminalAwareResultHandler.java @@ -14,11 +14,12 @@ * limitations under the License. */ -package org.springframework.shell2.result; +package org.springframework.shell.result; import org.jline.terminal.Terminal; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; /** * Base class for ResultHandlers that rely on JLine's {@link Terminal}. @@ -28,7 +29,7 @@ import org.springframework.beans.factory.annotation.Autowired; public abstract class TerminalAwareResultHandler { protected Terminal terminal; - @Autowired + @Autowired @Lazy public void setTerminal(Terminal terminal) { this.terminal = terminal; } diff --git a/spring-shell2-core/src/main/java/org/springframework/shell2/result/ThrowableResultHandler.java b/spring-shell-core/src/main/java/org/springframework/shell/result/ThrowableResultHandler.java similarity index 94% rename from spring-shell2-core/src/main/java/org/springframework/shell2/result/ThrowableResultHandler.java rename to spring-shell-core/src/main/java/org/springframework/shell/result/ThrowableResultHandler.java index 4ddbc27f..d3644e5d 100644 --- a/spring-shell2-core/src/main/java/org/springframework/shell2/result/ThrowableResultHandler.java +++ b/spring-shell-core/src/main/java/org/springframework/shell/result/ThrowableResultHandler.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2.result; +package org.springframework.shell.result; import org.jline.utils.AttributedString; import org.jline.utils.AttributedStringBuilder; @@ -22,8 +22,8 @@ import org.jline.utils.AttributedStyle; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; -import org.springframework.shell2.CommandRegistry; -import org.springframework.shell2.ResultHandler; +import org.springframework.shell.CommandRegistry; +import org.springframework.shell.ResultHandler; import org.springframework.stereotype.Component; /** diff --git a/spring-shell2-core/src/main/java/org/springframework/shell2/result/TypeHierarchyResultHandler.java b/spring-shell-core/src/main/java/org/springframework/shell/result/TypeHierarchyResultHandler.java similarity index 95% rename from spring-shell2-core/src/main/java/org/springframework/shell2/result/TypeHierarchyResultHandler.java rename to spring-shell-core/src/main/java/org/springframework/shell/result/TypeHierarchyResultHandler.java index c71536c9..d1fea1ae 100644 --- a/spring-shell2-core/src/main/java/org/springframework/shell2/result/TypeHierarchyResultHandler.java +++ b/spring-shell-core/src/main/java/org/springframework/shell/result/TypeHierarchyResultHandler.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2.result; +package org.springframework.shell.result; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; @@ -23,8 +23,7 @@ import java.util.Map; import java.util.Set; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.shell2.ResultHandler; -import org.springframework.stereotype.Component; +import org.springframework.shell.ResultHandler; /** * A delegating {@link ResultHandler} that dispatches handling based on the type of the result. diff --git a/spring-shell2-core/src/main/java/org/springframework/shell2/result/package-info.java b/spring-shell-core/src/main/java/org/springframework/shell/result/package-info.java similarity index 94% rename from spring-shell2-core/src/main/java/org/springframework/shell2/result/package-info.java rename to spring-shell-core/src/main/java/org/springframework/shell/result/package-info.java index b010add4..90a73786 100644 --- a/spring-shell2-core/src/main/java/org/springframework/shell2/result/package-info.java +++ b/spring-shell-core/src/main/java/org/springframework/shell/result/package-info.java @@ -19,4 +19,4 @@ * * @author Eric Bottard */ -package org.springframework.shell2.result; +package org.springframework.shell.result; diff --git a/spring-shell-core/src/main/resources/META-INF/spring.factories b/spring-shell-core/src/main/resources/META-INF/spring.factories new file mode 100644 index 00000000..df56751b --- /dev/null +++ b/spring-shell-core/src/main/resources/META-INF/spring.factories @@ -0,0 +1,3 @@ +org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ +org.springframework.shell.SpringShellAutoConfiguration,\ +org.springframework.shell.jline.JLineShell diff --git a/spring-shell2-core/src/main/resources/logback.xml b/spring-shell-core/src/main/resources/logback.xml similarity index 100% rename from spring-shell2-core/src/main/resources/logback.xml rename to spring-shell-core/src/main/resources/logback.xml diff --git a/spring-shell2-core/src/test/java/org/springframework/shell2/ShellTest.java b/spring-shell-core/src/test/java/org/springframework/shell/ShellTest.java similarity index 99% rename from spring-shell2-core/src/test/java/org/springframework/shell2/ShellTest.java rename to spring-shell-core/src/test/java/org/springframework/shell/ShellTest.java index 8cac4511..238f7f8e 100644 --- a/spring-shell2-core/src/test/java/org/springframework/shell2/ShellTest.java +++ b/spring-shell-core/src/test/java/org/springframework/shell/ShellTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2; +package org.springframework.shell; import java.io.IOException; import java.util.Arrays; diff --git a/spring-shell2-core/src/test/java/org/springframework/shell2/UtilsTest.java b/spring-shell-core/src/test/java/org/springframework/shell/UtilsTest.java similarity index 96% rename from spring-shell2-core/src/test/java/org/springframework/shell2/UtilsTest.java rename to spring-shell-core/src/test/java/org/springframework/shell/UtilsTest.java index 4d8ef95a..44cf779f 100644 --- a/spring-shell2-core/src/test/java/org/springframework/shell2/UtilsTest.java +++ b/spring-shell-core/src/test/java/org/springframework/shell/UtilsTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2; +package org.springframework.shell; import static org.assertj.core.api.Assertions.assertThat; diff --git a/spring-shell2-jcommander-adapter/pom.xml b/spring-shell-jcommander-adapter/pom.xml similarity index 82% rename from spring-shell2-jcommander-adapter/pom.xml rename to spring-shell-jcommander-adapter/pom.xml index d5324cf9..573cbd91 100644 --- a/spring-shell2-jcommander-adapter/pom.xml +++ b/spring-shell-jcommander-adapter/pom.xml @@ -2,12 +2,13 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - spring-shell2-jcommander-adapter + spring-shell-jcommander-adapter + Spring Shell JCommander Adapter jar org.springframework.shell - spring-shell2-parent + spring-shell-parent 2.0.0.BUILD-SNAPSHOT @@ -16,7 +17,7 @@ org.springframework.shell - spring-shell2-core + spring-shell-core com.beust @@ -26,6 +27,7 @@ org.springframework.boot spring-boot-starter-test + test org.assertj diff --git a/spring-shell2-jcommander-adapter/src/main/java/org/springframework/shell2/jcommander/JCommanderParameterResolver.java b/spring-shell-jcommander-adapter/src/main/java/org/springframework/shell/jcommander/JCommanderParameterResolver.java similarity index 92% rename from spring-shell2-jcommander-adapter/src/main/java/org/springframework/shell2/jcommander/JCommanderParameterResolver.java rename to spring-shell-jcommander-adapter/src/main/java/org/springframework/shell/jcommander/JCommanderParameterResolver.java index fb1d0c5b..ee0dd5ba 100644 --- a/spring-shell2-jcommander-adapter/src/main/java/org/springframework/shell2/jcommander/JCommanderParameterResolver.java +++ b/spring-shell-jcommander-adapter/src/main/java/org/springframework/shell/jcommander/JCommanderParameterResolver.java @@ -14,9 +14,9 @@ * limitations under the License. */ -package org.springframework.shell2.jcommander; +package org.springframework.shell.jcommander; -import static org.springframework.shell2.Utils.unCamelify; +import static org.springframework.shell.Utils.unCamelify; import java.lang.annotation.Annotation; import java.util.Arrays; @@ -29,11 +29,11 @@ import java.util.stream.Stream; import org.springframework.beans.BeanUtils; import org.springframework.core.MethodParameter; -import org.springframework.shell2.CompletionContext; -import org.springframework.shell2.CompletionProposal; -import org.springframework.shell2.ParameterDescription; -import org.springframework.shell2.ParameterResolver; -import org.springframework.shell2.ValueResult; +import org.springframework.shell.CompletionContext; +import org.springframework.shell.CompletionProposal; +import org.springframework.shell.ParameterDescription; +import org.springframework.shell.ParameterResolver; +import org.springframework.shell.ValueResult; import org.springframework.stereotype.Component; import org.springframework.util.ReflectionUtils; @@ -48,7 +48,6 @@ import com.beust.jcommander.ParametersDelegate; * * @author Eric Bottard */ -@Component public class JCommanderParameterResolver implements ParameterResolver { private static final Collection> JCOMMANDER_ANNOTATIONS = diff --git a/spring-shell-jcommander-adapter/src/main/java/org/springframework/shell/jcommander/JCommanderParameterResolverAutoConfiguration.java b/spring-shell-jcommander-adapter/src/main/java/org/springframework/shell/jcommander/JCommanderParameterResolverAutoConfiguration.java new file mode 100644 index 00000000..b0e772c5 --- /dev/null +++ b/spring-shell-jcommander-adapter/src/main/java/org/springframework/shell/jcommander/JCommanderParameterResolverAutoConfiguration.java @@ -0,0 +1,34 @@ +/* + * Copyright 2017 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.shell.jcommander; + +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Bean; + +/** + * Registers JCommanderParameterResolver and supporting beans as appropriate. + * + * @author Eric Bottard + */ +@Configuration +public class JCommanderParameterResolverAutoConfiguration { + + @Bean + public JCommanderParameterResolver jCommanderParameterResolver() { + return new JCommanderParameterResolver(); + } +} diff --git a/spring-shell2-jcommander-adapter/src/main/java/org/springframework/shell2/jcommander/package-info.java b/spring-shell-jcommander-adapter/src/main/java/org/springframework/shell/jcommander/package-info.java similarity index 93% rename from spring-shell2-jcommander-adapter/src/main/java/org/springframework/shell2/jcommander/package-info.java rename to spring-shell-jcommander-adapter/src/main/java/org/springframework/shell/jcommander/package-info.java index b3affc6d..c0d4611e 100644 --- a/spring-shell2-jcommander-adapter/src/main/java/org/springframework/shell2/jcommander/package-info.java +++ b/spring-shell-jcommander-adapter/src/main/java/org/springframework/shell/jcommander/package-info.java @@ -19,4 +19,4 @@ * * @author Eric Bottard */ -package org.springframework.shell2.jcommander; +package org.springframework.shell.jcommander; diff --git a/spring-shell-jcommander-adapter/src/main/resources/META-INF/spring.factories b/spring-shell-jcommander-adapter/src/main/resources/META-INF/spring.factories new file mode 100644 index 00000000..5f1a4cad --- /dev/null +++ b/spring-shell-jcommander-adapter/src/main/resources/META-INF/spring.factories @@ -0,0 +1,2 @@ +org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ +org.springframework.shell.jcommander.JCommanderParameterResolverAutoConfiguration diff --git a/spring-shell2-jcommander-adapter/src/test/java/org/springframework/shell2/jcommander/FieldCollins.java b/spring-shell-jcommander-adapter/src/test/java/org/springframework/shell/jcommander/FieldCollins.java similarity index 96% rename from spring-shell2-jcommander-adapter/src/test/java/org/springframework/shell2/jcommander/FieldCollins.java rename to spring-shell-jcommander-adapter/src/test/java/org/springframework/shell/jcommander/FieldCollins.java index cd379227..868446f1 100644 --- a/spring-shell2-jcommander-adapter/src/test/java/org/springframework/shell2/jcommander/FieldCollins.java +++ b/spring-shell-jcommander-adapter/src/test/java/org/springframework/shell/jcommander/FieldCollins.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2.jcommander; +package org.springframework.shell.jcommander; import java.util.ArrayList; import java.util.List; diff --git a/spring-shell2-jcommander-adapter/src/test/java/org/springframework/shell2/jcommander/JCommanderParameterResolverTest.java b/spring-shell-jcommander-adapter/src/test/java/org/springframework/shell/jcommander/JCommanderParameterResolverTest.java similarity index 93% rename from spring-shell2-jcommander-adapter/src/test/java/org/springframework/shell2/jcommander/JCommanderParameterResolverTest.java rename to spring-shell-jcommander-adapter/src/test/java/org/springframework/shell/jcommander/JCommanderParameterResolverTest.java index 1201b90f..d92322a9 100644 --- a/spring-shell2-jcommander-adapter/src/test/java/org/springframework/shell2/jcommander/JCommanderParameterResolverTest.java +++ b/spring-shell-jcommander-adapter/src/test/java/org/springframework/shell/jcommander/JCommanderParameterResolverTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2.jcommander; +package org.springframework.shell.jcommander; import static java.util.Arrays.asList; import static java.util.Collections.singletonList; @@ -25,14 +25,13 @@ import java.util.Arrays; import java.util.Collections; import java.util.stream.Stream; -import org.hamcrest.Matchers; import org.junit.Test; import org.springframework.core.MethodParameter; -import org.springframework.shell2.CompletionContext; -import org.springframework.shell2.CompletionProposal; -import org.springframework.shell2.ParameterDescription; -import org.springframework.shell2.Utils; +import org.springframework.shell.CompletionContext; +import org.springframework.shell.CompletionProposal; +import org.springframework.shell.ParameterDescription; +import org.springframework.shell.Utils; import org.springframework.util.ReflectionUtils; /** diff --git a/spring-shell2-jcommander-adapter/src/test/java/org/springframework/shell2/jcommander/MyLordCommands.java b/spring-shell-jcommander-adapter/src/test/java/org/springframework/shell/jcommander/MyLordCommands.java similarity index 95% rename from spring-shell2-jcommander-adapter/src/test/java/org/springframework/shell2/jcommander/MyLordCommands.java rename to spring-shell-jcommander-adapter/src/test/java/org/springframework/shell/jcommander/MyLordCommands.java index 0ef47ae6..546f7746 100644 --- a/spring-shell2-jcommander-adapter/src/test/java/org/springframework/shell2/jcommander/MyLordCommands.java +++ b/spring-shell-jcommander-adapter/src/test/java/org/springframework/shell/jcommander/MyLordCommands.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2.jcommander; +package org.springframework.shell.jcommander; /** * An hypothetical command class, with one method using JCommander args, and the other not. diff --git a/spring-shell2-samples/pom.xml b/spring-shell-samples/pom.xml similarity index 70% rename from spring-shell2-samples/pom.xml rename to spring-shell-samples/pom.xml index 31f5abc9..f2e35238 100644 --- a/spring-shell2-samples/pom.xml +++ b/spring-shell-samples/pom.xml @@ -2,12 +2,13 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - spring-shell2-samples + spring-shell-samples + Spring Shell Samples jar org.springframework.shell - spring-shell2-parent + spring-shell-parent 2.0.0.BUILD-SNAPSHOT @@ -19,7 +20,7 @@ org.springframework.boot spring-boot-maven-plugin - org.springframework.shell2.Bootstrap + org.springframework.shell.samples.SpringShellSample @@ -28,24 +29,24 @@ org.springframework.shell - spring-shell2-core + spring-shell-core org.springframework.shell - spring-shell2-standard + spring-shell-standard org.springframework.shell - spring-shell2-standard-commands + spring-shell-standard-commands runtime org.springframework.shell - spring-shell2-shell1-adapter + spring-shell-shell1-adapter org.springframework.shell - spring-shell2-jcommander-adapter + spring-shell-jcommander-adapter diff --git a/spring-shell2-core/src/main/java/org/springframework/shell2/Bootstrap.java b/spring-shell-samples/src/main/java/org/springframework/shell/samples/SpringShellSample.java similarity index 71% rename from spring-shell2-core/src/main/java/org/springframework/shell2/Bootstrap.java rename to spring-shell-samples/src/main/java/org/springframework/shell/samples/SpringShellSample.java index 6fd01356..18728d79 100644 --- a/spring-shell2-core/src/main/java/org/springframework/shell2/Bootstrap.java +++ b/spring-shell-samples/src/main/java/org/springframework/shell/samples/SpringShellSample.java @@ -1,5 +1,5 @@ /* - * Copyright 2015-2017 the original author or authors. + * Copyright 2017 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. @@ -14,14 +14,20 @@ * limitations under the License. */ -package org.springframework.shell2; +package org.springframework.shell.samples; import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; import org.springframework.core.convert.ConversionService; import org.springframework.core.convert.support.DefaultConversionService; +import org.springframework.shell.Shell; +import org.springframework.shell.jline.JLineShell; +import org.springframework.shell.result.ResultHandlerConfig; /** * Main entry point for the application. @@ -29,19 +35,11 @@ import org.springframework.core.convert.support.DefaultConversionService; *

Creates the application context and start the REPL.

* * @author Eric Bottard - * @author Camilo Gonzalez */ @SpringBootApplication -public class Bootstrap { +public class SpringShellSample { public static void main(String[] args) throws Exception { - ConfigurableApplicationContext context = SpringApplication.run(Bootstrap.class); - context.getBean(Shell.class).run(); + ConfigurableApplicationContext context = SpringApplication.run(SpringShellSample.class); } - - @Bean - public ConversionService conversionService() { - return new DefaultConversionService(); - } - } diff --git a/spring-shell2-samples/src/main/java/org/springframework/shell2/samples/jcommander/Args.java b/spring-shell-samples/src/main/java/org/springframework/shell/samples/jcommander/Args.java similarity index 96% rename from spring-shell2-samples/src/main/java/org/springframework/shell2/samples/jcommander/Args.java rename to spring-shell-samples/src/main/java/org/springframework/shell/samples/jcommander/Args.java index 32c0309e..fb9b9af3 100644 --- a/spring-shell2-samples/src/main/java/org/springframework/shell2/samples/jcommander/Args.java +++ b/spring-shell-samples/src/main/java/org/springframework/shell/samples/jcommander/Args.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2.samples.jcommander; +package org.springframework.shell.samples.jcommander; import java.util.ArrayList; import java.util.List; diff --git a/spring-shell2-samples/src/main/java/org/springframework/shell2/samples/jcommander/JCommanderCommands.java b/spring-shell-samples/src/main/java/org/springframework/shell/samples/jcommander/JCommanderCommands.java similarity index 79% rename from spring-shell2-samples/src/main/java/org/springframework/shell2/samples/jcommander/JCommanderCommands.java rename to spring-shell-samples/src/main/java/org/springframework/shell/samples/jcommander/JCommanderCommands.java index 83c1334d..e59ae08f 100644 --- a/spring-shell2-samples/src/main/java/org/springframework/shell2/samples/jcommander/JCommanderCommands.java +++ b/spring-shell-samples/src/main/java/org/springframework/shell/samples/jcommander/JCommanderCommands.java @@ -14,11 +14,11 @@ * limitations under the License. */ -package org.springframework.shell2.samples.jcommander; +package org.springframework.shell.samples.jcommander; -import org.springframework.shell2.standard.ShellComponent; -import org.springframework.shell2.standard.ShellMethod; -import org.springframework.shell2.standard.ShellOption; +import org.springframework.shell.standard.ShellComponent; +import org.springframework.shell.standard.ShellMethod; +import org.springframework.shell.standard.ShellOption; /** * A class with JCommander commands. diff --git a/spring-shell2-samples/src/main/java/org/springframework/shell2/samples/legacy/ArtifactType.java b/spring-shell-samples/src/main/java/org/springframework/shell/samples/legacy/ArtifactType.java similarity index 93% rename from spring-shell2-samples/src/main/java/org/springframework/shell2/samples/legacy/ArtifactType.java rename to spring-shell-samples/src/main/java/org/springframework/shell/samples/legacy/ArtifactType.java index d7f59324..cf46ba60 100644 --- a/spring-shell2-samples/src/main/java/org/springframework/shell2/samples/legacy/ArtifactType.java +++ b/spring-shell-samples/src/main/java/org/springframework/shell/samples/legacy/ArtifactType.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2.samples.legacy; +package org.springframework.shell.samples.legacy; /** * Created by ericbottard on 09/12/15. diff --git a/spring-shell2-samples/src/main/java/org/springframework/shell2/samples/legacy/LegacyCommands.java b/spring-shell-samples/src/main/java/org/springframework/shell/samples/legacy/LegacyCommands.java similarity index 94% rename from spring-shell2-samples/src/main/java/org/springframework/shell2/samples/legacy/LegacyCommands.java rename to spring-shell-samples/src/main/java/org/springframework/shell/samples/legacy/LegacyCommands.java index 32e721cc..bd4964af 100644 --- a/spring-shell2-samples/src/main/java/org/springframework/shell2/samples/legacy/LegacyCommands.java +++ b/spring-shell-samples/src/main/java/org/springframework/shell/samples/legacy/LegacyCommands.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2.samples.legacy; +package org.springframework.shell.samples.legacy; import java.lang.reflect.Method; @@ -25,7 +25,9 @@ import org.springframework.stereotype.Component; import org.springframework.util.ReflectionUtils; /** - * Created by ericbottard on 09/12/15. + * A sample of legacy Shell 1 commands that can be run thanks to the legacy adapter. + * + * @author Eric Bottard */ @Component public class LegacyCommands implements CommandMarker { @@ -69,12 +71,12 @@ public class LegacyCommands implements CommandMarker { @CliOption(key = "v3", mandatory = false) int c) { return a + b + c; } - + @CliCommand(value = "legacy-echo", help = "Echoes a message") public String legacyEcho(@CliOption(key = "", mandatory = true) String message) { return message; } - + @CliCommand(value = "optional-echo", help = "Echoes an optional message") public String optionalEcho(@CliOption(key = "", mandatory = false) String message) { return message; diff --git a/spring-shell2-samples/src/main/java/org/springframework/shell2/samples/standard/Commands.java b/spring-shell-samples/src/main/java/org/springframework/shell/samples/standard/Commands.java similarity index 84% rename from spring-shell2-samples/src/main/java/org/springframework/shell2/samples/standard/Commands.java rename to spring-shell-samples/src/main/java/org/springframework/shell/samples/standard/Commands.java index 3d9c8535..1f72a649 100644 --- a/spring-shell2-samples/src/main/java/org/springframework/shell2/samples/standard/Commands.java +++ b/spring-shell-samples/src/main/java/org/springframework/shell/samples/standard/Commands.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2.samples.standard; +package org.springframework.shell.samples.standard; import java.lang.annotation.ElementType; import java.util.Arrays; @@ -22,12 +22,12 @@ import java.util.List; import java.util.stream.Collectors; import org.springframework.core.MethodParameter; -import org.springframework.shell2.CompletionContext; -import org.springframework.shell2.CompletionProposal; -import org.springframework.shell2.standard.ShellComponent; -import org.springframework.shell2.standard.ShellMethod; -import org.springframework.shell2.standard.ShellOption; -import org.springframework.shell2.standard.ValueProviderSupport; +import org.springframework.shell.CompletionContext; +import org.springframework.shell.CompletionProposal; +import org.springframework.shell.standard.ShellComponent; +import org.springframework.shell.standard.ShellMethod; +import org.springframework.shell.standard.ShellOption; +import org.springframework.shell.standard.ValueProviderSupport; import org.springframework.stereotype.Component; /** @@ -80,7 +80,7 @@ public class Commands { } /** - * A {@link org.springframework.shell2.standard.ValueProvider} that emits values with special characters + * A {@link org.springframework.shell.standard.ValueProvider} that emits values with special characters * (quotes, escapes, etc.) * * @author Eric Bottard diff --git a/spring-shell2-shell1-adapter/pom.xml b/spring-shell-shell1-adapter/pom.xml similarity index 74% rename from spring-shell2-shell1-adapter/pom.xml rename to spring-shell-shell1-adapter/pom.xml index 80ea95ce..64876872 100644 --- a/spring-shell2-shell1-adapter/pom.xml +++ b/spring-shell-shell1-adapter/pom.xml @@ -2,12 +2,13 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - spring-shell2-shell1-adapter + spring-shell-shell1-adapter + Spring Shell 1 Adapter jar org.springframework.shell - spring-shell2-parent + spring-shell-parent 2.0.0.BUILD-SNAPSHOT @@ -16,8 +17,10 @@ org.springframework.shell - spring-shell2-core + spring-shell-core + + org.springframework.shell spring-shell @@ -26,10 +29,11 @@ org.springframework.boot spring-boot-starter-test + test org.springframework.shell - spring-shell2-core-tests + spring-shell-core-test-support test diff --git a/spring-shell2-shell1-adapter/src/main/java/org/springframework/shell2/legacy/LegacyConfiguration.java b/spring-shell-shell1-adapter/src/main/java/org/springframework/shell/legacy/LegacyAdapterAutoConfiguration.java similarity index 78% rename from spring-shell2-shell1-adapter/src/main/java/org/springframework/shell2/legacy/LegacyConfiguration.java rename to spring-shell-shell1-adapter/src/main/java/org/springframework/shell/legacy/LegacyAdapterAutoConfiguration.java index 907a45fa..df108497 100644 --- a/spring-shell2-shell1-adapter/src/main/java/org/springframework/shell2/legacy/LegacyConfiguration.java +++ b/spring-shell-shell1-adapter/src/main/java/org/springframework/shell/legacy/LegacyAdapterAutoConfiguration.java @@ -13,9 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.shell2.legacy; +package org.springframework.shell.legacy; import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.FilterType; import org.springframework.shell.converters.ArrayConverter; @@ -31,6 +32,16 @@ import org.springframework.shell.converters.SimpleFileConverter; @ComponentScan(basePackageClasses = {ArrayConverter.class}, excludeFilters = @ComponentScan.Filter( type = FilterType.ASSIGNABLE_TYPE, value = {AvailableCommandsConverter.class, SimpleFileConverter.class})) -public class LegacyConfiguration { +public class LegacyAdapterAutoConfiguration { + + @Bean + public LegacyMethodTargetResolver legacyMethodTargetResolver() { + return new LegacyMethodTargetResolver(); + } + + @Bean + public LegacyParameterResolver legacyParameterResolver() { + return new LegacyParameterResolver(); + } } diff --git a/spring-shell2-shell1-adapter/src/main/java/org/springframework/shell2/legacy/LegacyMethodTargetResolver.java b/spring-shell-shell1-adapter/src/main/java/org/springframework/shell/legacy/LegacyMethodTargetResolver.java similarity index 93% rename from spring-shell2-shell1-adapter/src/main/java/org/springframework/shell2/legacy/LegacyMethodTargetResolver.java rename to spring-shell-shell1-adapter/src/main/java/org/springframework/shell/legacy/LegacyMethodTargetResolver.java index 1834839e..8fc90edc 100644 --- a/spring-shell2-shell1-adapter/src/main/java/org/springframework/shell2/legacy/LegacyMethodTargetResolver.java +++ b/spring-shell-shell1-adapter/src/main/java/org/springframework/shell/legacy/LegacyMethodTargetResolver.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2.legacy; +package org.springframework.shell.legacy; import static org.springframework.util.StringUtils.collectionToDelimitedString; @@ -25,8 +25,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.shell.core.CommandMarker; import org.springframework.shell.core.annotation.CliCommand; -import org.springframework.shell2.MethodTarget; -import org.springframework.shell2.MethodTargetResolver; +import org.springframework.shell.MethodTarget; +import org.springframework.shell.MethodTargetResolver; import org.springframework.stereotype.Component; import org.springframework.util.ReflectionUtils; diff --git a/spring-shell2-shell1-adapter/src/main/java/org/springframework/shell2/legacy/LegacyParameterResolver.java b/spring-shell-shell1-adapter/src/main/java/org/springframework/shell/legacy/LegacyParameterResolver.java similarity index 95% rename from spring-shell2-shell1-adapter/src/main/java/org/springframework/shell2/legacy/LegacyParameterResolver.java rename to spring-shell-shell1-adapter/src/main/java/org/springframework/shell/legacy/LegacyParameterResolver.java index 4f3a2942..34c3e145 100644 --- a/spring-shell2-shell1-adapter/src/main/java/org/springframework/shell2/legacy/LegacyParameterResolver.java +++ b/spring-shell-shell1-adapter/src/main/java/org/springframework/shell/legacy/LegacyParameterResolver.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2.legacy; +package org.springframework.shell.legacy; import java.lang.reflect.Parameter; import java.util.ArrayList; @@ -33,11 +33,11 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.MethodParameter; import org.springframework.shell.core.Converter; import org.springframework.shell.core.annotation.CliOption; -import org.springframework.shell2.CompletionContext; -import org.springframework.shell2.CompletionProposal; -import org.springframework.shell2.ParameterDescription; -import org.springframework.shell2.ParameterResolver; -import org.springframework.shell2.ValueResult; +import org.springframework.shell.CompletionContext; +import org.springframework.shell.CompletionProposal; +import org.springframework.shell.ParameterDescription; +import org.springframework.shell.ParameterResolver; +import org.springframework.shell.ValueResult; import org.springframework.stereotype.Component; import org.springframework.util.Assert; diff --git a/spring-shell2-shell1-adapter/src/main/java/org/springframework/shell2/legacy/package-info.java b/spring-shell-shell1-adapter/src/main/java/org/springframework/shell/legacy/package-info.java similarity index 93% rename from spring-shell2-shell1-adapter/src/main/java/org/springframework/shell2/legacy/package-info.java rename to spring-shell-shell1-adapter/src/main/java/org/springframework/shell/legacy/package-info.java index b55252fa..32ce2628 100644 --- a/spring-shell2-shell1-adapter/src/main/java/org/springframework/shell2/legacy/package-info.java +++ b/spring-shell-shell1-adapter/src/main/java/org/springframework/shell/legacy/package-info.java @@ -17,4 +17,4 @@ /** * Provides integration with Spring Shell 1. */ -package org.springframework.shell2.legacy; +package org.springframework.shell.legacy; diff --git a/spring-shell-shell1-adapter/src/main/resources/META-INF/spring.factories b/spring-shell-shell1-adapter/src/main/resources/META-INF/spring.factories new file mode 100644 index 00000000..a6006a67 --- /dev/null +++ b/spring-shell-shell1-adapter/src/main/resources/META-INF/spring.factories @@ -0,0 +1,2 @@ +org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ +org.springframework.shell.legacy.LegacyAdapterAutoConfiguration diff --git a/spring-shell2-shell1-adapter/src/test/java/org/springframework/shell2/legacy/ArtifactType.java b/spring-shell-shell1-adapter/src/test/java/org/springframework/shell/legacy/ArtifactType.java similarity index 94% rename from spring-shell2-shell1-adapter/src/test/java/org/springframework/shell2/legacy/ArtifactType.java rename to spring-shell-shell1-adapter/src/test/java/org/springframework/shell/legacy/ArtifactType.java index 10891465..169e1792 100644 --- a/spring-shell2-shell1-adapter/src/test/java/org/springframework/shell2/legacy/ArtifactType.java +++ b/spring-shell-shell1-adapter/src/test/java/org/springframework/shell/legacy/ArtifactType.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2.legacy; +package org.springframework.shell.legacy; /** * Created by ericbottard on 09/12/15. diff --git a/spring-shell2-shell1-adapter/src/test/java/org/springframework/shell2/legacy/LegacyCommands.java b/spring-shell-shell1-adapter/src/test/java/org/springframework/shell/legacy/LegacyCommands.java similarity index 98% rename from spring-shell2-shell1-adapter/src/test/java/org/springframework/shell2/legacy/LegacyCommands.java rename to spring-shell-shell1-adapter/src/test/java/org/springframework/shell/legacy/LegacyCommands.java index 66ede284..308687d7 100644 --- a/spring-shell2-shell1-adapter/src/test/java/org/springframework/shell2/legacy/LegacyCommands.java +++ b/spring-shell-shell1-adapter/src/test/java/org/springframework/shell/legacy/LegacyCommands.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2.legacy; +package org.springframework.shell.legacy; import java.lang.reflect.Method; diff --git a/spring-shell2-shell1-adapter/src/test/java/org/springframework/shell2/legacy/LegacyMethodTargetResolverTest.java b/spring-shell-shell1-adapter/src/test/java/org/springframework/shell/legacy/LegacyMethodTargetResolverTest.java similarity index 93% rename from spring-shell2-shell1-adapter/src/test/java/org/springframework/shell2/legacy/LegacyMethodTargetResolverTest.java rename to spring-shell-shell1-adapter/src/test/java/org/springframework/shell/legacy/LegacyMethodTargetResolverTest.java index 0086dcf1..c454aaae 100644 --- a/spring-shell2-shell1-adapter/src/test/java/org/springframework/shell2/legacy/LegacyMethodTargetResolverTest.java +++ b/spring-shell-shell1-adapter/src/test/java/org/springframework/shell/legacy/LegacyMethodTargetResolverTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2.legacy; +package org.springframework.shell.legacy; import static org.assertj.core.api.Assertions.assertThat; @@ -27,8 +27,8 @@ import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.shell2.MethodTarget; -import org.springframework.shell2.MethodTargetResolver; +import org.springframework.shell.MethodTarget; +import org.springframework.shell.MethodTargetResolver; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; diff --git a/spring-shell2-shell1-adapter/src/test/java/org/springframework/shell2/legacy/LegacyParameterResolverTest.java b/spring-shell-shell1-adapter/src/test/java/org/springframework/shell/legacy/LegacyParameterResolverTest.java similarity index 96% rename from spring-shell2-shell1-adapter/src/test/java/org/springframework/shell2/legacy/LegacyParameterResolverTest.java rename to spring-shell-shell1-adapter/src/test/java/org/springframework/shell/legacy/LegacyParameterResolverTest.java index 5ecbe21b..16fe1350 100644 --- a/spring-shell2-shell1-adapter/src/test/java/org/springframework/shell2/legacy/LegacyParameterResolverTest.java +++ b/spring-shell-shell1-adapter/src/test/java/org/springframework/shell/legacy/LegacyParameterResolverTest.java @@ -14,12 +14,12 @@ * limitations under the License. */ -package org.springframework.shell2.legacy; +package org.springframework.shell.legacy; import static java.util.Arrays.asList; import static org.assertj.core.api.Assertions.assertThat; -import static org.springframework.shell2.ValueResultAsserts.assertThat; -import static org.springframework.shell2.legacy.LegacyCommands.REGISTER_METHOD; +import static org.springframework.shell.ValueResultAsserts.assertThat; +import static org.springframework.shell.legacy.LegacyCommands.REGISTER_METHOD; import org.junit.Rule; import org.junit.Test; @@ -34,10 +34,10 @@ import org.springframework.shell.converters.EnumConverter; import org.springframework.shell.converters.StringConverter; import org.springframework.shell.core.Converter; import org.springframework.shell.core.annotation.CliOption; -import org.springframework.shell2.ParameterDescription; -import org.springframework.shell2.ParameterResolver; -import org.springframework.shell2.Utils; -import org.springframework.shell2.ValueResult; +import org.springframework.shell.ParameterDescription; +import org.springframework.shell.ParameterResolver; +import org.springframework.shell.Utils; +import org.springframework.shell.ValueResult; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; diff --git a/spring-shell2-standard-commands/pom.xml b/spring-shell-standard-commands/pom.xml similarity index 81% rename from spring-shell2-standard-commands/pom.xml rename to spring-shell-standard-commands/pom.xml index 237ac79f..2accbe2b 100644 --- a/spring-shell2-standard-commands/pom.xml +++ b/spring-shell-standard-commands/pom.xml @@ -2,12 +2,13 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - spring-shell2-standard-commands + spring-shell-standard-commands + Spring Shell Standard Commands jar org.springframework.shell - spring-shell2-parent + spring-shell-parent 2.0.0.BUILD-SNAPSHOT @@ -15,11 +16,12 @@ org.springframework.shell - spring-shell2-standard + spring-shell-standard org.springframework.boot spring-boot-starter-test + test org.jline diff --git a/spring-shell2-standard-commands/src/main/java/org/springframework/shell2/standard/commands/Console.java b/spring-shell-standard-commands/src/main/java/org/springframework/shell/standard/commands/Console.java similarity index 81% rename from spring-shell2-standard-commands/src/main/java/org/springframework/shell2/standard/commands/Console.java rename to spring-shell-standard-commands/src/main/java/org/springframework/shell/standard/commands/Console.java index 41dbf93d..5cf6d41a 100644 --- a/spring-shell2-standard-commands/src/main/java/org/springframework/shell2/standard/commands/Console.java +++ b/spring-shell-standard-commands/src/main/java/org/springframework/shell/standard/commands/Console.java @@ -14,14 +14,15 @@ * limitations under the License. */ -package org.springframework.shell2.standard.commands; +package org.springframework.shell.standard.commands; import org.jline.terminal.Terminal; import org.jline.utils.InfoCmp; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.shell2.standard.ShellComponent; -import org.springframework.shell2.standard.ShellMethod; +import org.springframework.context.annotation.Lazy; +import org.springframework.shell.standard.ShellComponent; +import org.springframework.shell.standard.ShellMethod; /** * ANSI console related commands. @@ -31,7 +32,7 @@ import org.springframework.shell2.standard.ShellMethod; @ShellComponent public class Console { - @Autowired + @Autowired @Lazy private Terminal terminal; @ShellMethod(help = "Clear the shell screen.") diff --git a/spring-shell2-standard-commands/src/main/java/org/springframework/shell2/standard/commands/Help.java b/spring-shell-standard-commands/src/main/java/org/springframework/shell/standard/commands/Help.java similarity index 92% rename from spring-shell2-standard-commands/src/main/java/org/springframework/shell2/standard/commands/Help.java rename to spring-shell-standard-commands/src/main/java/org/springframework/shell/standard/commands/Help.java index 78697014..c351ff2e 100644 --- a/spring-shell2-standard-commands/src/main/java/org/springframework/shell2/standard/commands/Help.java +++ b/spring-shell-standard-commands/src/main/java/org/springframework/shell/standard/commands/Help.java @@ -14,14 +14,12 @@ * limitations under the License. */ -package org.springframework.shell2.standard.commands; +package org.springframework.shell.standard.commands; import static java.util.stream.Collectors.mapping; import static java.util.stream.Collectors.toCollection; import java.io.IOException; -import java.lang.reflect.Parameter; -import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.Map; @@ -33,16 +31,15 @@ import org.jline.utils.AttributedStringBuilder; import org.jline.utils.AttributedStyle; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.core.MethodParameter; -import org.springframework.shell2.MethodTarget; -import org.springframework.shell2.ParameterDescription; -import org.springframework.shell2.ParameterResolver; -import org.springframework.shell2.CommandRegistry; -import org.springframework.shell2.standard.CommandValueProvider; -import org.springframework.shell2.standard.ShellComponent; -import org.springframework.shell2.standard.ShellMethod; -import org.springframework.shell2.standard.ShellOption; -import org.springframework.shell2.Utils; +import org.springframework.shell.MethodTarget; +import org.springframework.shell.ParameterDescription; +import org.springframework.shell.ParameterResolver; +import org.springframework.shell.CommandRegistry; +import org.springframework.shell.standard.CommandValueProvider; +import org.springframework.shell.standard.ShellComponent; +import org.springframework.shell.standard.ShellMethod; +import org.springframework.shell.standard.ShellOption; +import org.springframework.shell.Utils; /** * A command to display help about all available commands. diff --git a/spring-shell2-standard-commands/src/main/java/org/springframework/shell2/standard/commands/Quit.java b/spring-shell-standard-commands/src/main/java/org/springframework/shell/standard/commands/Quit.java similarity index 79% rename from spring-shell2-standard-commands/src/main/java/org/springframework/shell2/standard/commands/Quit.java rename to spring-shell-standard-commands/src/main/java/org/springframework/shell/standard/commands/Quit.java index 24068704..aec97a2e 100644 --- a/spring-shell2-standard-commands/src/main/java/org/springframework/shell2/standard/commands/Quit.java +++ b/spring-shell-standard-commands/src/main/java/org/springframework/shell/standard/commands/Quit.java @@ -14,11 +14,11 @@ * limitations under the License. */ -package org.springframework.shell2.standard.commands; +package org.springframework.shell.standard.commands; -import org.springframework.shell2.ExitRequest; -import org.springframework.shell2.standard.ShellComponent; -import org.springframework.shell2.standard.ShellMethod; +import org.springframework.shell.ExitRequest; +import org.springframework.shell.standard.ShellComponent; +import org.springframework.shell.standard.ShellMethod; /** * A command that terminates the running shell. diff --git a/spring-shell2-standard-commands/src/main/java/org/springframework/shell2/standard/commands/Stacktrace.java b/spring-shell-standard-commands/src/main/java/org/springframework/shell/standard/commands/Stacktrace.java similarity index 80% rename from spring-shell2-standard-commands/src/main/java/org/springframework/shell2/standard/commands/Stacktrace.java rename to spring-shell-standard-commands/src/main/java/org/springframework/shell/standard/commands/Stacktrace.java index 13418094..9959d36a 100644 --- a/spring-shell2-standard-commands/src/main/java/org/springframework/shell2/standard/commands/Stacktrace.java +++ b/spring-shell-standard-commands/src/main/java/org/springframework/shell/standard/commands/Stacktrace.java @@ -14,14 +14,15 @@ * limitations under the License. */ -package org.springframework.shell2.standard.commands; +package org.springframework.shell.standard.commands; import org.jline.terminal.Terminal; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.shell2.result.ThrowableResultHandler; -import org.springframework.shell2.standard.ShellComponent; -import org.springframework.shell2.standard.ShellMethod; +import org.springframework.context.annotation.Lazy; +import org.springframework.shell.result.ThrowableResultHandler; +import org.springframework.shell.standard.ShellComponent; +import org.springframework.shell.standard.ShellMethod; /** * A command to display the full stacktrace when an error occurs. @@ -29,7 +30,7 @@ import org.springframework.shell2.standard.ShellMethod; @ShellComponent public class Stacktrace { - @Autowired + @Autowired @Lazy private Terminal terminal; @Autowired diff --git a/spring-shell-standard-commands/src/main/java/org/springframework/shell/standard/commands/StandardCommandsAutoConfiguration.java b/spring-shell-standard-commands/src/main/java/org/springframework/shell/standard/commands/StandardCommandsAutoConfiguration.java new file mode 100644 index 00000000..c66ca942 --- /dev/null +++ b/spring-shell-standard-commands/src/main/java/org/springframework/shell/standard/commands/StandardCommandsAutoConfiguration.java @@ -0,0 +1,52 @@ +/* + * Copyright 2017 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.shell.standard.commands; + +import java.util.List; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.shell.ParameterResolver; + +/** + * Creates beans for standard commands. + * + * @author Eric Bottard + */ +@Configuration +public class StandardCommandsAutoConfiguration { + + @Bean + public Help help(List parameterResolvers) { + return new Help(parameterResolvers); + } + + @Bean + public Console console() { + return new Console(); + } + + @Bean + public Quit quit() { + return new Quit(); + } + + @Bean + public Stacktrace stacktrace() { + return new Stacktrace(); + } +} diff --git a/spring-shell2-standard-commands/src/main/java/org/springframework/shell2/standard/commands/package-info.java b/spring-shell-standard-commands/src/main/java/org/springframework/shell/standard/commands/package-info.java similarity index 93% rename from spring-shell2-standard-commands/src/main/java/org/springframework/shell2/standard/commands/package-info.java rename to spring-shell-standard-commands/src/main/java/org/springframework/shell/standard/commands/package-info.java index c5be80fc..bce8234f 100644 --- a/spring-shell2-standard-commands/src/main/java/org/springframework/shell2/standard/commands/package-info.java +++ b/spring-shell-standard-commands/src/main/java/org/springframework/shell/standard/commands/package-info.java @@ -19,4 +19,4 @@ * * @author Eric Bottard */ -package org.springframework.shell2.standard.commands; +package org.springframework.shell.standard.commands; diff --git a/spring-shell-standard-commands/src/main/resources/META-INF/spring.factories b/spring-shell-standard-commands/src/main/resources/META-INF/spring.factories new file mode 100644 index 00000000..786cb611 --- /dev/null +++ b/spring-shell-standard-commands/src/main/resources/META-INF/spring.factories @@ -0,0 +1,2 @@ +org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ +org.springframework.shell.standard.commands.StandardCommandsAutoConfiguration diff --git a/spring-shell2-standard-commands/src/test/java/org/springframework/shell2/standard/commands/HelpTest.java b/spring-shell-standard-commands/src/test/java/org/springframework/shell/standard/commands/HelpTest.java similarity index 91% rename from spring-shell2-standard-commands/src/test/java/org/springframework/shell2/standard/commands/HelpTest.java rename to spring-shell-standard-commands/src/test/java/org/springframework/shell/standard/commands/HelpTest.java index 84b43898..04d3abeb 100644 --- a/spring-shell2-standard-commands/src/test/java/org/springframework/shell2/standard/commands/HelpTest.java +++ b/spring-shell-standard-commands/src/test/java/org/springframework/shell/standard/commands/HelpTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2.standard.commands; +package org.springframework.shell.standard.commands; import java.io.IOException; import java.io.InputStream; @@ -35,13 +35,13 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.convert.support.DefaultConversionService; import org.springframework.core.io.ClassPathResource; -import org.springframework.shell2.standard.StandardParameterResolver; -import org.springframework.shell2.MethodTarget; -import org.springframework.shell2.ParameterResolver; -import org.springframework.shell2.CommandRegistry; -import org.springframework.shell2.standard.ShellComponent; -import org.springframework.shell2.standard.ShellMethod; -import org.springframework.shell2.standard.ShellOption; +import org.springframework.shell.standard.StandardParameterResolver; +import org.springframework.shell.MethodTarget; +import org.springframework.shell.ParameterResolver; +import org.springframework.shell.CommandRegistry; +import org.springframework.shell.standard.ShellComponent; +import org.springframework.shell.standard.ShellMethod; +import org.springframework.shell.standard.ShellOption; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.util.FileCopyUtils; diff --git a/spring-shell2-standard-commands/src/test/resources/org/springframework/shell2/standard/commands/HelpTest-testCommandHelp.txt b/spring-shell-standard-commands/src/test/resources/org/springframework/shell/standard/commands/HelpTest-testCommandHelp.txt similarity index 100% rename from spring-shell2-standard-commands/src/test/resources/org/springframework/shell2/standard/commands/HelpTest-testCommandHelp.txt rename to spring-shell-standard-commands/src/test/resources/org/springframework/shell/standard/commands/HelpTest-testCommandHelp.txt diff --git a/spring-shell2-standard-commands/src/test/resources/org/springframework/shell2/standard/commands/HelpTest-testCommandList.txt b/spring-shell-standard-commands/src/test/resources/org/springframework/shell/standard/commands/HelpTest-testCommandList.txt similarity index 100% rename from spring-shell2-standard-commands/src/test/resources/org/springframework/shell2/standard/commands/HelpTest-testCommandList.txt rename to spring-shell-standard-commands/src/test/resources/org/springframework/shell/standard/commands/HelpTest-testCommandList.txt diff --git a/spring-shell2-standard/pom.xml b/spring-shell-standard/pom.xml similarity index 78% rename from spring-shell2-standard/pom.xml rename to spring-shell-standard/pom.xml index 6ea5b41f..4a08f2b8 100644 --- a/spring-shell2-standard/pom.xml +++ b/spring-shell-standard/pom.xml @@ -2,12 +2,13 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - spring-shell2-standard + spring-shell-standard + Spring Shell Standard API jar org.springframework.shell - spring-shell2-parent + spring-shell-parent 2.0.0.BUILD-SNAPSHOT @@ -15,15 +16,16 @@ org.springframework.shell - spring-shell2-core + spring-shell-core org.springframework.boot spring-boot-starter-test + test org.springframework.shell - spring-shell2-core-tests + spring-shell-core-test-support test diff --git a/spring-shell2-standard/src/main/java/org/springframework/shell2/standard/CommandValueProvider.java b/spring-shell-standard/src/main/java/org/springframework/shell/standard/CommandValueProvider.java similarity index 88% rename from spring-shell2-standard/src/main/java/org/springframework/shell2/standard/CommandValueProvider.java rename to spring-shell-standard/src/main/java/org/springframework/shell/standard/CommandValueProvider.java index 42f5110a..c4d5ba05 100644 --- a/spring-shell2-standard/src/main/java/org/springframework/shell2/standard/CommandValueProvider.java +++ b/spring-shell-standard/src/main/java/org/springframework/shell/standard/CommandValueProvider.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2.standard; +package org.springframework.shell.standard; import java.util.List; import java.util.stream.Collectors; @@ -22,9 +22,9 @@ import java.util.stream.Collectors; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.core.MethodParameter; -import org.springframework.shell2.CompletionContext; -import org.springframework.shell2.CompletionProposal; -import org.springframework.shell2.CommandRegistry; +import org.springframework.shell.CompletionContext; +import org.springframework.shell.CompletionProposal; +import org.springframework.shell.CommandRegistry; import org.springframework.stereotype.Component; /** diff --git a/spring-shell2-standard/src/main/java/org/springframework/shell2/standard/EnumValueProvider.java b/spring-shell-standard/src/main/java/org/springframework/shell/standard/EnumValueProvider.java similarity index 91% rename from spring-shell2-standard/src/main/java/org/springframework/shell2/standard/EnumValueProvider.java rename to spring-shell-standard/src/main/java/org/springframework/shell/standard/EnumValueProvider.java index a8ab96ca..cfaa6703 100644 --- a/spring-shell2-standard/src/main/java/org/springframework/shell2/standard/EnumValueProvider.java +++ b/spring-shell-standard/src/main/java/org/springframework/shell/standard/EnumValueProvider.java @@ -14,14 +14,14 @@ * limitations under the License. */ -package org.springframework.shell2.standard; +package org.springframework.shell.standard; import java.util.ArrayList; import java.util.List; import org.springframework.core.MethodParameter; -import org.springframework.shell2.CompletionContext; -import org.springframework.shell2.CompletionProposal; +import org.springframework.shell.CompletionContext; +import org.springframework.shell.CompletionProposal; import org.springframework.stereotype.Component; /** diff --git a/spring-shell2-standard/src/main/java/org/springframework/shell2/standard/ShellComponent.java b/spring-shell-standard/src/main/java/org/springframework/shell/standard/ShellComponent.java similarity index 96% rename from spring-shell2-standard/src/main/java/org/springframework/shell2/standard/ShellComponent.java rename to spring-shell-standard/src/main/java/org/springframework/shell/standard/ShellComponent.java index df10401b..cab04b2b 100644 --- a/spring-shell2-standard/src/main/java/org/springframework/shell2/standard/ShellComponent.java +++ b/spring-shell-standard/src/main/java/org/springframework/shell/standard/ShellComponent.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2.standard; +package org.springframework.shell.standard; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; diff --git a/spring-shell2-standard/src/main/java/org/springframework/shell2/standard/ShellMethod.java b/spring-shell-standard/src/main/java/org/springframework/shell/standard/ShellMethod.java similarity index 97% rename from spring-shell2-standard/src/main/java/org/springframework/shell2/standard/ShellMethod.java rename to spring-shell-standard/src/main/java/org/springframework/shell/standard/ShellMethod.java index 30e0bde9..e3409844 100644 --- a/spring-shell2-standard/src/main/java/org/springframework/shell2/standard/ShellMethod.java +++ b/spring-shell-standard/src/main/java/org/springframework/shell/standard/ShellMethod.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2.standard; +package org.springframework.shell.standard; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; diff --git a/spring-shell2-standard/src/main/java/org/springframework/shell2/standard/ShellOption.java b/spring-shell-standard/src/main/java/org/springframework/shell/standard/ShellOption.java similarity index 93% rename from spring-shell2-standard/src/main/java/org/springframework/shell2/standard/ShellOption.java rename to spring-shell-standard/src/main/java/org/springframework/shell/standard/ShellOption.java index 880d32a1..bcfd58e0 100644 --- a/spring-shell2-standard/src/main/java/org/springframework/shell2/standard/ShellOption.java +++ b/spring-shell-standard/src/main/java/org/springframework/shell/standard/ShellOption.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2.standard; +package org.springframework.shell.standard; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; @@ -69,7 +69,7 @@ public @interface ShellOption { /** * Used to indicate to the framework that the given parameter should NOT be resolved by * {@link StandardParameterResolver}. This is useful if several implementations of - * {@link org.springframework.shell2.ParameterResolver} are present, given that the standard one can work with no + * {@link org.springframework.shell.ParameterResolver} are present, given that the standard one can work with no * annotation at all. */ boolean optOut() default false; diff --git a/spring-shell-standard/src/main/java/org/springframework/shell/standard/StandardAPIAutoConfiguration.java b/spring-shell-standard/src/main/java/org/springframework/shell/standard/StandardAPIAutoConfiguration.java new file mode 100644 index 00000000..3d5d8f69 --- /dev/null +++ b/spring-shell-standard/src/main/java/org/springframework/shell/standard/StandardAPIAutoConfiguration.java @@ -0,0 +1,53 @@ +/* + * Copyright 2017 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.shell.standard; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.convert.ConversionService; +import org.springframework.shell.CommandRegistry; +import org.springframework.shell.MethodTargetResolver; +import org.springframework.shell.ParameterResolver; + +/** + * Sets up all required beans for supporting the standard Shell API. + * + * @author Eric Bottard + */ +@Configuration +public class StandardAPIAutoConfiguration { + + @Bean + public ValueProvider commandValueProvider(CommandRegistry commandRegistry) { + return new CommandValueProvider(commandRegistry); + } + + @Bean + public ValueProvider enumValueProvider() { + return new EnumValueProvider(); + } + + @Bean + public MethodTargetResolver standardMethodTargetResolver() { + return new StandardMethodTargetResolver(); + } + + @Bean + public ParameterResolver standardParameterResolver(ConversionService conversionService) { + return new StandardParameterResolver(conversionService); + } +} diff --git a/spring-shell2-standard/src/main/java/org/springframework/shell2/standard/StandardMethodTargetResolver.java b/spring-shell-standard/src/main/java/org/springframework/shell/standard/StandardMethodTargetResolver.java similarity index 87% rename from spring-shell2-standard/src/main/java/org/springframework/shell2/standard/StandardMethodTargetResolver.java rename to spring-shell-standard/src/main/java/org/springframework/shell/standard/StandardMethodTargetResolver.java index ec52959d..74ef49cb 100644 --- a/spring-shell2-standard/src/main/java/org/springframework/shell2/standard/StandardMethodTargetResolver.java +++ b/spring-shell-standard/src/main/java/org/springframework/shell/standard/StandardMethodTargetResolver.java @@ -14,9 +14,8 @@ * limitations under the License. */ -package org.springframework.shell2.standard; +package org.springframework.shell.standard; -import static org.springframework.util.StringUtils.collectionToCommaDelimitedString; import static org.springframework.util.StringUtils.collectionToDelimitedString; import java.util.HashMap; @@ -24,12 +23,10 @@ import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; -import org.springframework.shell2.MethodTarget; -import org.springframework.shell2.MethodTargetResolver; +import org.springframework.shell.MethodTarget; +import org.springframework.shell.MethodTargetResolver; import org.springframework.stereotype.Component; -import org.springframework.util.CollectionUtils; import org.springframework.util.ReflectionUtils; -import org.springframework.util.StringUtils; /** * The standard implementation of {@link MethodTargetResolver} for new shell applications, @@ -39,7 +36,6 @@ import org.springframework.util.StringUtils; * @author Florent Biville * @author Camilo Gonzalez */ -@Component public class StandardMethodTargetResolver implements MethodTargetResolver { @Autowired diff --git a/spring-shell2-standard/src/main/java/org/springframework/shell2/standard/StandardParameterResolver.java b/spring-shell-standard/src/main/java/org/springframework/shell/standard/StandardParameterResolver.java similarity index 97% rename from spring-shell2-standard/src/main/java/org/springframework/shell2/standard/StandardParameterResolver.java rename to spring-shell-standard/src/main/java/org/springframework/shell/standard/StandardParameterResolver.java index e9c29d20..562491d8 100644 --- a/spring-shell2-standard/src/main/java/org/springframework/shell2/standard/StandardParameterResolver.java +++ b/spring-shell-standard/src/main/java/org/springframework/shell/standard/StandardParameterResolver.java @@ -14,9 +14,9 @@ * limitations under the License. */ -package org.springframework.shell2.standard; +package org.springframework.shell.standard; -import static org.springframework.shell2.Utils.unCamelify; +import static org.springframework.shell.Utils.unCamelify; import java.lang.reflect.Array; import java.lang.reflect.Method; @@ -40,14 +40,14 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.MethodParameter; import org.springframework.core.convert.ConversionService; import org.springframework.core.convert.TypeDescriptor; -import org.springframework.shell2.CompletionContext; -import org.springframework.shell2.CompletionProposal; -import org.springframework.shell2.ParameterDescription; -import org.springframework.shell2.ParameterMissingResolutionException; -import org.springframework.shell2.ParameterResolver; -import org.springframework.shell2.UnfinishedParameterResolutionException; -import org.springframework.shell2.Utils; -import org.springframework.shell2.ValueResult; +import org.springframework.shell.CompletionContext; +import org.springframework.shell.CompletionProposal; +import org.springframework.shell.ParameterDescription; +import org.springframework.shell.ParameterMissingResolutionException; +import org.springframework.shell.ParameterResolver; +import org.springframework.shell.UnfinishedParameterResolutionException; +import org.springframework.shell.Utils; +import org.springframework.shell.ValueResult; import org.springframework.stereotype.Component; import org.springframework.util.Assert; import org.springframework.util.ConcurrentReferenceHashMap; diff --git a/spring-shell2-standard/src/main/java/org/springframework/shell2/standard/ValueProvider.java b/spring-shell-standard/src/main/java/org/springframework/shell/standard/ValueProvider.java similarity index 86% rename from spring-shell2-standard/src/main/java/org/springframework/shell2/standard/ValueProvider.java rename to spring-shell-standard/src/main/java/org/springframework/shell/standard/ValueProvider.java index 8892c7f9..bd5f07de 100644 --- a/spring-shell2-standard/src/main/java/org/springframework/shell2/standard/ValueProvider.java +++ b/spring-shell-standard/src/main/java/org/springframework/shell/standard/ValueProvider.java @@ -14,13 +14,13 @@ * limitations under the License. */ -package org.springframework.shell2.standard; +package org.springframework.shell.standard; import java.util.List; import org.springframework.core.MethodParameter; -import org.springframework.shell2.CompletionContext; -import org.springframework.shell2.CompletionProposal; +import org.springframework.shell.CompletionContext; +import org.springframework.shell.CompletionProposal; /** */ diff --git a/spring-shell2-standard/src/main/java/org/springframework/shell2/standard/ValueProviderSupport.java b/spring-shell-standard/src/main/java/org/springframework/shell/standard/ValueProviderSupport.java similarity index 92% rename from spring-shell2-standard/src/main/java/org/springframework/shell2/standard/ValueProviderSupport.java rename to spring-shell-standard/src/main/java/org/springframework/shell/standard/ValueProviderSupport.java index f37923a2..56117dc9 100644 --- a/spring-shell2-standard/src/main/java/org/springframework/shell2/standard/ValueProviderSupport.java +++ b/spring-shell-standard/src/main/java/org/springframework/shell/standard/ValueProviderSupport.java @@ -14,10 +14,10 @@ * limitations under the License. */ -package org.springframework.shell2.standard; +package org.springframework.shell.standard; import org.springframework.core.MethodParameter; -import org.springframework.shell2.CompletionContext; +import org.springframework.shell.CompletionContext; /** * Base class for {@link ValueProvider} that match by type. Subclasses {@literal C} will be selected for parameters diff --git a/spring-shell2-standard/src/main/java/org/springframework/shell2/standard/package-info.java b/spring-shell-standard/src/main/java/org/springframework/shell/standard/package-info.java similarity index 94% rename from spring-shell2-standard/src/main/java/org/springframework/shell2/standard/package-info.java rename to spring-shell-standard/src/main/java/org/springframework/shell/standard/package-info.java index 9317f8fc..22f8cfeb 100644 --- a/spring-shell2-standard/src/main/java/org/springframework/shell2/standard/package-info.java +++ b/spring-shell-standard/src/main/java/org/springframework/shell/standard/package-info.java @@ -19,4 +19,4 @@ * * @author Eric Bottard */ -package org.springframework.shell2.standard; +package org.springframework.shell.standard; diff --git a/spring-shell-standard/src/main/resources/META-INF/spring.factories b/spring-shell-standard/src/main/resources/META-INF/spring.factories new file mode 100644 index 00000000..a575b3ed --- /dev/null +++ b/spring-shell-standard/src/main/resources/META-INF/spring.factories @@ -0,0 +1,2 @@ +org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ +org.springframework.shell.standard.StandardAPIAutoConfiguration diff --git a/spring-shell2-standard/src/test/java/org/springframework/shell2/standard/CommandValueProviderTest.java b/spring-shell-standard/src/test/java/org/springframework/shell/standard/CommandValueProviderTest.java similarity index 88% rename from spring-shell2-standard/src/test/java/org/springframework/shell2/standard/CommandValueProviderTest.java rename to spring-shell-standard/src/test/java/org/springframework/shell/standard/CommandValueProviderTest.java index 10ac43c7..abf64bd2 100644 --- a/spring-shell2-standard/src/test/java/org/springframework/shell2/standard/CommandValueProviderTest.java +++ b/spring-shell-standard/src/test/java/org/springframework/shell/standard/CommandValueProviderTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.shell2.standard; +package org.springframework.shell.standard; import static org.assertj.core.api.Assertions.assertThat; @@ -32,11 +32,11 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.springframework.core.MethodParameter; -import org.springframework.shell2.CompletionContext; -import org.springframework.shell2.CompletionProposal; -import org.springframework.shell2.MethodTarget; -import org.springframework.shell2.CommandRegistry; -import org.springframework.shell2.Utils; +import org.springframework.shell.CompletionContext; +import org.springframework.shell.CompletionProposal; +import org.springframework.shell.MethodTarget; +import org.springframework.shell.CommandRegistry; +import org.springframework.shell.Utils; import org.springframework.util.ReflectionUtils; /** diff --git a/spring-shell2-standard/src/test/java/org/springframework/shell2/standard/Remote.java b/spring-shell-standard/src/test/java/org/springframework/shell/standard/Remote.java similarity index 93% rename from spring-shell2-standard/src/test/java/org/springframework/shell2/standard/Remote.java rename to spring-shell-standard/src/test/java/org/springframework/shell/standard/Remote.java index c457aeb6..d9e20b97 100644 --- a/spring-shell2-standard/src/test/java/org/springframework/shell2/standard/Remote.java +++ b/spring-shell-standard/src/test/java/org/springframework/shell/standard/Remote.java @@ -14,16 +14,15 @@ * limitations under the License. */ -package org.springframework.shell2.standard; +package org.springframework.shell.standard; -import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; import org.springframework.core.MethodParameter; -import org.springframework.shell2.CompletionContext; -import org.springframework.shell2.CompletionProposal; +import org.springframework.shell.CompletionContext; +import org.springframework.shell.CompletionProposal; /** * An example commands class. diff --git a/spring-shell2-standard/src/test/java/org/springframework/shell2/standard/StandardParameterResolverTest.java b/spring-shell-standard/src/test/java/org/springframework/shell/standard/StandardParameterResolverTest.java similarity index 93% rename from spring-shell2-standard/src/test/java/org/springframework/shell2/standard/StandardParameterResolverTest.java rename to spring-shell-standard/src/test/java/org/springframework/shell/standard/StandardParameterResolverTest.java index f50b9a45..d79d525b 100644 --- a/spring-shell2-standard/src/test/java/org/springframework/shell2/standard/StandardParameterResolverTest.java +++ b/spring-shell-standard/src/test/java/org/springframework/shell/standard/StandardParameterResolverTest.java @@ -14,12 +14,12 @@ * limitations under the License. */ -package org.springframework.shell2.standard; +package org.springframework.shell.standard; import static java.util.Arrays.asList; import static java.util.Collections.singletonList; import static org.assertj.core.api.Assertions.assertThat; -import static org.springframework.shell2.ValueResultAsserts.assertThat; +import static org.springframework.shell.ValueResultAsserts.assertThat; import static org.springframework.util.ReflectionUtils.findMethod; import java.lang.reflect.Method; @@ -32,12 +32,12 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; import org.springframework.core.convert.support.DefaultConversionService; -import org.springframework.shell2.CompletionContext; -import org.springframework.shell2.CompletionProposal; -import org.springframework.shell2.ParameterMissingResolutionException; -import org.springframework.shell2.UnfinishedParameterResolutionException; -import org.springframework.shell2.Utils; -import org.springframework.shell2.ValueResult; +import org.springframework.shell.CompletionContext; +import org.springframework.shell.CompletionProposal; +import org.springframework.shell.ParameterMissingResolutionException; +import org.springframework.shell.UnfinishedParameterResolutionException; +import org.springframework.shell.Utils; +import org.springframework.shell.ValueResult; /** * Unit tests for DefaultParameterResolver. @@ -220,8 +220,8 @@ public class StandardParameterResolverTest { resolver.setValueProviders(singletonList(new Remote.NumberValueProvider("12", "42", "7"))); Method[] methods = { - findMethod(org.springframework.shell2.standard.Remote.class, "add", List.class), - findMethod(org.springframework.shell2.standard.Remote.class, "addAsArray", int[].class), + findMethod(org.springframework.shell.standard.Remote.class, "add", List.class), + findMethod(org.springframework.shell.standard.Remote.class, "addAsArray", int[].class), }; for (Method method : methods) { List completions = resolver