From 78a9a453c9b0bd917e6d3297382a20e164fe2518 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20Kr=C3=BCger?= Date: Sun, 18 Jun 2023 10:32:53 +0200 Subject: [PATCH 1/2] clean: Remove unused imports --- .../org/springframework/sbm/java/impl/RewriteJavaParser.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/components/sbm-core/src/main/java/org/springframework/sbm/java/impl/RewriteJavaParser.java b/components/sbm-core/src/main/java/org/springframework/sbm/java/impl/RewriteJavaParser.java index 059cb2a85..d2bf8111f 100644 --- a/components/sbm-core/src/main/java/org/springframework/sbm/java/impl/RewriteJavaParser.java +++ b/components/sbm-core/src/main/java/org/springframework/sbm/java/impl/RewriteJavaParser.java @@ -24,8 +24,6 @@ import org.openrewrite.java.tree.J; import org.springframework.sbm.project.resource.SbmApplicationProperties; import org.springframework.sbm.scopes.annotations.ScanScope; -import org.springframework.sbm.engine.annotations.StatefulComponent; -import org.springframework.sbm.project.resource.SbmApplicationProperties; import org.springframework.stereotype.Component; import java.nio.file.Path; From d6c7ed9bdd1bc842edfffe3f8d58e3ed54f513a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20Kr=C3=BCger?= Date: Sun, 18 Jun 2023 10:32:56 +0200 Subject: [PATCH 2/2] ApplicableRecipeListCommand handles ApplicableRecipeListHolder --- .../springframework/sbm/shell/ApplyShellCommand.java | 1 + .../springframework/sbm/shell/ScanShellCommand.java | 4 ---- .../sbm/shell/ScanShellCommandTest.java | 1 + .../sbm/shell/ScanShellCommandWithWindowsPathTest.java | 2 +- .../engine/commands/ApplicableRecipeListCommand.java | 10 ++++++++-- .../engine/recipe}/ApplicableRecipesListHolder.java | 3 +-- 6 files changed, 12 insertions(+), 9 deletions(-) rename {applications/spring-shell/src/main/java/org/springframework/sbm/shell => components/sbm-core/src/main/java/org/springframework/sbm/engine/recipe}/ApplicableRecipesListHolder.java (92%) diff --git a/applications/spring-shell/src/main/java/org/springframework/sbm/shell/ApplyShellCommand.java b/applications/spring-shell/src/main/java/org/springframework/sbm/shell/ApplyShellCommand.java index 80028c14c..4020e29a2 100644 --- a/applications/spring-shell/src/main/java/org/springframework/sbm/shell/ApplyShellCommand.java +++ b/applications/spring-shell/src/main/java/org/springframework/sbm/shell/ApplyShellCommand.java @@ -26,6 +26,7 @@ import org.springframework.sbm.engine.context.ProjectContext; import org.springframework.sbm.engine.context.ProjectContextHolder; import org.springframework.sbm.engine.recipe.Action; +import org.springframework.sbm.engine.recipe.ApplicableRecipesListHolder; import org.springframework.sbm.engine.recipe.Recipe; import org.springframework.shell.Availability; import org.springframework.shell.CompletionContext; diff --git a/applications/spring-shell/src/main/java/org/springframework/sbm/shell/ScanShellCommand.java b/applications/spring-shell/src/main/java/org/springframework/sbm/shell/ScanShellCommand.java index 06a9e0d45..03a711ecb 100644 --- a/applications/spring-shell/src/main/java/org/springframework/sbm/shell/ScanShellCommand.java +++ b/applications/spring-shell/src/main/java/org/springframework/sbm/shell/ScanShellCommand.java @@ -42,7 +42,6 @@ public class ScanShellCommand { private final PreconditionVerificationRenderer preconditionVerificationRenderer; private final ScanCommandHeaderRenderer scanCommandHeaderRenderer; private final ConsolePrinter consolePrinter; - private final ApplicableRecipesListHolder applicableRecipesListHolder; @ShellMethod(key = {"scan", "s"}, value = "Scans the target project directory and get the list of applicable recipes.") @@ -51,8 +50,6 @@ public String scan( help = "The root directory of the target application.") String projectRoot) { - applicableRecipesListHolder.clear(); - List resources = scanCommand.scanProjectRoot(projectRoot); String scanCommandHeader = scanCommandHeaderRenderer.renderHeader(projectRoot); PreconditionVerificationResult result = scanCommand.checkPreconditions(projectRoot, resources); @@ -70,7 +67,6 @@ public String scan( ProjectContext projectContext = scanCommand.execute(projectRoot); contextHolder.setProjectContext(projectContext); List recipes = applicableRecipeListCommand.execute(projectContext); - applicableRecipesListHolder.setRecipes(recipes); AttributedString recipeList = applicableRecipeListRenderer.render(recipes); stringBuilder.append(recipeList); } diff --git a/applications/spring-shell/src/test/java/org/springframework/sbm/shell/ScanShellCommandTest.java b/applications/spring-shell/src/test/java/org/springframework/sbm/shell/ScanShellCommandTest.java index c0d662784..9deece602 100644 --- a/applications/spring-shell/src/test/java/org/springframework/sbm/shell/ScanShellCommandTest.java +++ b/applications/spring-shell/src/test/java/org/springframework/sbm/shell/ScanShellCommandTest.java @@ -31,6 +31,7 @@ import org.springframework.sbm.engine.context.ProjectContext; import org.springframework.sbm.engine.context.ProjectContextHolder; import org.springframework.sbm.engine.precondition.PreconditionVerificationResult; +import org.springframework.sbm.engine.recipe.ApplicableRecipesListHolder; import org.springframework.sbm.engine.recipe.Recipe; import java.util.List; diff --git a/applications/spring-shell/src/test/java/org/springframework/sbm/shell/ScanShellCommandWithWindowsPathTest.java b/applications/spring-shell/src/test/java/org/springframework/sbm/shell/ScanShellCommandWithWindowsPathTest.java index 4f9fac437..816275d09 100644 --- a/applications/spring-shell/src/test/java/org/springframework/sbm/shell/ScanShellCommandWithWindowsPathTest.java +++ b/applications/spring-shell/src/test/java/org/springframework/sbm/shell/ScanShellCommandWithWindowsPathTest.java @@ -59,7 +59,7 @@ void beforeEach() { recipes = List.of(); projectContext = mock(ProjectContext.class); - sut = new ScanShellCommand(scanCommand, applicationRecipeListRenderer, applicableRecipeListCommand, contextHolder, preconditionVerificationRenderer, scanCommandHeaderRenderer, consolePrinter, new ApplicableRecipesListHolder()); + sut = new ScanShellCommand(scanCommand, applicationRecipeListRenderer, applicableRecipeListCommand, contextHolder, preconditionVerificationRenderer, scanCommandHeaderRenderer, consolePrinter); } private void recordMocks(String projectRoot, ScanCommand scanCommand, ApplicableRecipeListRenderer applicationRecipeListRenderer, ApplicableRecipeListCommand applicableRecipeListCommand, List resources, List recipes, ProjectContext projectContext) { diff --git a/components/sbm-core/src/main/java/org/springframework/sbm/engine/commands/ApplicableRecipeListCommand.java b/components/sbm-core/src/main/java/org/springframework/sbm/engine/commands/ApplicableRecipeListCommand.java index 5492b0a1a..d6e8795b5 100644 --- a/components/sbm-core/src/main/java/org/springframework/sbm/engine/commands/ApplicableRecipeListCommand.java +++ b/components/sbm-core/src/main/java/org/springframework/sbm/engine/commands/ApplicableRecipeListCommand.java @@ -23,6 +23,7 @@ import org.springframework.sbm.engine.recipe.RecipesBuilder; import org.springframework.sbm.project.parser.ProjectContextInitializer; import org.springframework.sbm.scopes.ExecutionScope; +import org.springframework.sbm.engine.recipe.ApplicableRecipesListHolder; import org.springframework.stereotype.Component; import java.util.List; @@ -38,14 +39,16 @@ public class ApplicableRecipeListCommand extends AbstractCommand> { private final ConfigurableListableBeanFactory beanFactory; private final ExecutionScope executionScope; + private final ApplicableRecipesListHolder applicableRecipesListHolder; - protected ApplicableRecipeListCommand(ProjectRootPathResolver projectRootPathResolver, RecipesBuilder recipesBuilder, ProjectContextInitializer projectContextBuilder, ConfigurableListableBeanFactory beanFactory, ExecutionScope executionScope) { + protected ApplicableRecipeListCommand(ProjectRootPathResolver projectRootPathResolver, RecipesBuilder recipesBuilder, ProjectContextInitializer projectContextBuilder, ConfigurableListableBeanFactory beanFactory, ExecutionScope executionScope, ApplicableRecipesListHolder applicableRecipesListHolder) { super(COMMAND_NAME); this.projectRootPathResolver = projectRootPathResolver; this.recipesBuilder = recipesBuilder; this.projectContextBuilder = projectContextBuilder; this.beanFactory = beanFactory; this.executionScope = executionScope; + this.applicableRecipesListHolder = applicableRecipesListHolder; } public List execute(ProjectContext projectContext) { @@ -53,8 +56,11 @@ public List execute(ProjectContext projectContext) { } private List getApplicableRecipes(ProjectContext context) { + applicableRecipesListHolder.clear(); Recipes recipes = recipesBuilder.buildRecipes(); - return recipes.getApplicable(context); + List applicable = recipes.getApplicable(context); + applicableRecipesListHolder.setRecipes(applicable); + return applicable; } @Override diff --git a/applications/spring-shell/src/main/java/org/springframework/sbm/shell/ApplicableRecipesListHolder.java b/components/sbm-core/src/main/java/org/springframework/sbm/engine/recipe/ApplicableRecipesListHolder.java similarity index 92% rename from applications/spring-shell/src/main/java/org/springframework/sbm/shell/ApplicableRecipesListHolder.java rename to components/sbm-core/src/main/java/org/springframework/sbm/engine/recipe/ApplicableRecipesListHolder.java index 28842ce6a..668481e28 100644 --- a/applications/spring-shell/src/main/java/org/springframework/sbm/shell/ApplicableRecipesListHolder.java +++ b/components/sbm-core/src/main/java/org/springframework/sbm/engine/recipe/ApplicableRecipesListHolder.java @@ -13,9 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.sbm.shell; +package org.springframework.sbm.engine.recipe; -import org.springframework.sbm.engine.recipe.Recipe; import org.springframework.stereotype.Component; import java.util.ArrayList;