Skip to content

Commit 2b34281

Browse files
authored
Fix applicable recipe list holder (#822)
* clean: Remove unused imports * ApplicableRecipeListCommand handles ApplicableRecipeListHolder
1 parent cfe6d21 commit 2b34281

File tree

7 files changed

+12
-11
lines changed

7 files changed

+12
-11
lines changed

applications/spring-shell/src/main/java/org/springframework/sbm/shell/ApplyShellCommand.java

+1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import org.springframework.sbm.engine.context.ProjectContext;
2727
import org.springframework.sbm.engine.context.ProjectContextHolder;
2828
import org.springframework.sbm.engine.recipe.Action;
29+
import org.springframework.sbm.engine.recipe.ApplicableRecipesListHolder;
2930
import org.springframework.sbm.engine.recipe.Recipe;
3031
import org.springframework.shell.Availability;
3132
import org.springframework.shell.CompletionContext;

applications/spring-shell/src/main/java/org/springframework/sbm/shell/ScanShellCommand.java

-4
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ public class ScanShellCommand {
4242
private final PreconditionVerificationRenderer preconditionVerificationRenderer;
4343
private final ScanCommandHeaderRenderer scanCommandHeaderRenderer;
4444
private final ConsolePrinter consolePrinter;
45-
private final ApplicableRecipesListHolder applicableRecipesListHolder;
4645

4746
@ShellMethod(key = {"scan", "s"},
4847
value = "Scans the target project directory and get the list of applicable recipes.")
@@ -51,8 +50,6 @@ public String scan(
5150
help = "The root directory of the target application.")
5251
String projectRoot) {
5352

54-
applicableRecipesListHolder.clear();
55-
5653
List<Resource> resources = scanCommand.scanProjectRoot(projectRoot);
5754
String scanCommandHeader = scanCommandHeaderRenderer.renderHeader(projectRoot);
5855
PreconditionVerificationResult result = scanCommand.checkPreconditions(projectRoot, resources);
@@ -70,7 +67,6 @@ public String scan(
7067
ProjectContext projectContext = scanCommand.execute(projectRoot);
7168
contextHolder.setProjectContext(projectContext);
7269
List<Recipe> recipes = applicableRecipeListCommand.execute(projectContext);
73-
applicableRecipesListHolder.setRecipes(recipes);
7470
AttributedString recipeList = applicableRecipeListRenderer.render(recipes);
7571
stringBuilder.append(recipeList);
7672
}

applications/spring-shell/src/test/java/org/springframework/sbm/shell/ScanShellCommandTest.java

+1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import org.springframework.sbm.engine.context.ProjectContext;
3232
import org.springframework.sbm.engine.context.ProjectContextHolder;
3333
import org.springframework.sbm.engine.precondition.PreconditionVerificationResult;
34+
import org.springframework.sbm.engine.recipe.ApplicableRecipesListHolder;
3435
import org.springframework.sbm.engine.recipe.Recipe;
3536

3637
import java.util.List;

applications/spring-shell/src/test/java/org/springframework/sbm/shell/ScanShellCommandWithWindowsPathTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ void beforeEach() {
5959
recipes = List.of();
6060
projectContext = mock(ProjectContext.class);
6161

62-
sut = new ScanShellCommand(scanCommand, applicationRecipeListRenderer, applicableRecipeListCommand, contextHolder, preconditionVerificationRenderer, scanCommandHeaderRenderer, consolePrinter, new ApplicableRecipesListHolder());
62+
sut = new ScanShellCommand(scanCommand, applicationRecipeListRenderer, applicableRecipeListCommand, contextHolder, preconditionVerificationRenderer, scanCommandHeaderRenderer, consolePrinter);
6363
}
6464

6565
private void recordMocks(String projectRoot, ScanCommand scanCommand, ApplicableRecipeListRenderer applicationRecipeListRenderer, ApplicableRecipeListCommand applicableRecipeListCommand, List<Resource> resources, List<Recipe> recipes, ProjectContext projectContext) {

components/sbm-core/src/main/java/org/springframework/sbm/engine/commands/ApplicableRecipeListCommand.java

+8-2
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import org.springframework.sbm.engine.recipe.RecipesBuilder;
2424
import org.springframework.sbm.project.parser.ProjectContextInitializer;
2525
import org.springframework.sbm.scopes.ExecutionScope;
26+
import org.springframework.sbm.engine.recipe.ApplicableRecipesListHolder;
2627
import org.springframework.stereotype.Component;
2728

2829
import java.util.List;
@@ -38,23 +39,28 @@ public class ApplicableRecipeListCommand extends AbstractCommand<List<Recipe>> {
3839
private final ConfigurableListableBeanFactory beanFactory;
3940

4041
private final ExecutionScope executionScope;
42+
private final ApplicableRecipesListHolder applicableRecipesListHolder;
4143

42-
protected ApplicableRecipeListCommand(ProjectRootPathResolver projectRootPathResolver, RecipesBuilder recipesBuilder, ProjectContextInitializer projectContextBuilder, ConfigurableListableBeanFactory beanFactory, ExecutionScope executionScope) {
44+
protected ApplicableRecipeListCommand(ProjectRootPathResolver projectRootPathResolver, RecipesBuilder recipesBuilder, ProjectContextInitializer projectContextBuilder, ConfigurableListableBeanFactory beanFactory, ExecutionScope executionScope, ApplicableRecipesListHolder applicableRecipesListHolder) {
4345
super(COMMAND_NAME);
4446
this.projectRootPathResolver = projectRootPathResolver;
4547
this.recipesBuilder = recipesBuilder;
4648
this.projectContextBuilder = projectContextBuilder;
4749
this.beanFactory = beanFactory;
4850
this.executionScope = executionScope;
51+
this.applicableRecipesListHolder = applicableRecipesListHolder;
4952
}
5053

5154
public List<Recipe> execute(ProjectContext projectContext) {
5255
return getApplicableRecipes(projectContext);
5356
}
5457

5558
private List<Recipe> getApplicableRecipes(ProjectContext context) {
59+
applicableRecipesListHolder.clear();
5660
Recipes recipes = recipesBuilder.buildRecipes();
57-
return recipes.getApplicable(context);
61+
List<Recipe> applicable = recipes.getApplicable(context);
62+
applicableRecipesListHolder.setRecipes(applicable);
63+
return applicable;
5864
}
5965

6066
@Override
+1-2
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,8 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
package org.springframework.sbm.shell;
16+
package org.springframework.sbm.engine.recipe;
1717

18-
import org.springframework.sbm.engine.recipe.Recipe;
1918
import org.springframework.stereotype.Component;
2019

2120
import java.util.ArrayList;

components/sbm-core/src/main/java/org/springframework/sbm/java/impl/RewriteJavaParser.java

-2
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@
2424
import org.openrewrite.java.tree.J;
2525
import org.springframework.sbm.project.resource.SbmApplicationProperties;
2626
import org.springframework.sbm.scopes.annotations.ScanScope;
27-
import org.springframework.sbm.engine.annotations.StatefulComponent;
28-
import org.springframework.sbm.project.resource.SbmApplicationProperties;
2927
import org.springframework.stereotype.Component;
3028

3129
import java.nio.file.Path;

0 commit comments

Comments
 (0)