Skip to content

Commit 44fed8a

Browse files
fabapp2Sourav
andauthored
Finish #803 (#860)
* Fixed issue #803 * Remove RewriteRecipeRunner and change all client code --------- Co-authored-by: Sourav <[email protected]>
1 parent d45d9b4 commit 44fed8a

File tree

14 files changed

+31
-88
lines changed

14 files changed

+31
-88
lines changed

components/recipe-test-support/src/main/java/org/springframework/sbm/test/RecipeTestSupport.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,6 @@ private RecipeTestSupport() {
6969
DefaultActionDeserializer.class,
7070
RewriteJavaSearchActionDeserializer.class,
7171
RewriteRecipeLoader.class,
72-
RewriteRecipeRunner.class,
7372
RewriteMigrationResultMerger.class,
7473
RewriteSourceFileWrapper.class,
7574
SbmRecipeLoader.class,

components/sbm-core/src/main/java/org/springframework/sbm/engine/context/ProjectContext.java

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,26 @@
1515
*/
1616
package org.springframework.sbm.engine.context;
1717

18+
import lombok.Getter;
19+
import lombok.Setter;
1820
import org.openrewrite.ExecutionContext;
21+
import org.openrewrite.Recipe;
22+
import org.openrewrite.Result;
23+
import org.openrewrite.SourceFile;
1924
import org.openrewrite.java.JavaParser;
2025
import org.springframework.sbm.build.api.ApplicationModules;
21-
import org.springframework.sbm.build.api.Module;
2226
import org.springframework.sbm.build.api.BuildFile;
27+
import org.springframework.sbm.build.api.Module;
2328
import org.springframework.sbm.build.api.RootBuildFileFilter;
2429
import org.springframework.sbm.build.filter.BuildFileProjectResourceFilter;
30+
import org.springframework.sbm.engine.recipe.OpenRewriteSourceFilesFinder;
31+
import org.springframework.sbm.engine.recipe.RewriteMigrationResultMerger;
2532
import org.springframework.sbm.java.api.ProjectJavaSources;
2633
import org.springframework.sbm.java.impl.ProjectJavaSourcesImpl;
2734
import org.springframework.sbm.java.refactoring.JavaRefactoringFactory;
2835
import org.springframework.sbm.java.util.BasePackageCalculator;
2936
import org.springframework.sbm.project.resource.ProjectResourceSet;
3037
import org.springframework.sbm.project.resource.filter.ProjectResourceFinder;
31-
import lombok.Getter;
32-
import lombok.Setter;
3338

3439
import java.nio.file.Path;
3540
import java.util.List;
@@ -46,14 +51,16 @@ public class ProjectContext {
4651
private String revision;
4752
private final JavaParser javaParser;
4853
private final ExecutionContext executionContext;
54+
private final RewriteMigrationResultMerger resultMerger;
4955

50-
public ProjectContext(JavaRefactoringFactory javaRefactoringFactory, Path projectRootDirectory, ProjectResourceSet projectResources, BasePackageCalculator basePackageCalculator, JavaParser javaParser, ExecutionContext executionContext) {
56+
public ProjectContext(JavaRefactoringFactory javaRefactoringFactory, Path projectRootDirectory, ProjectResourceSet projectResources, BasePackageCalculator basePackageCalculator, JavaParser javaParser, ExecutionContext executionContext, RewriteMigrationResultMerger resultMerger) {
5157
this.projectRootDirectory = projectRootDirectory.toAbsolutePath();
5258
this.projectResources = projectResources;
5359
this.javaRefactoringFactory = javaRefactoringFactory;
5460
this.basePackageCalculator = basePackageCalculator;
5561
this.javaParser = javaParser;
5662
this.executionContext = executionContext;
63+
this.resultMerger = resultMerger;
5764
}
5865

5966
public ProjectResourceSet getProjectResources() {
@@ -103,4 +110,9 @@ public ApplicationModules getApplicationModules() {
103110
return new ApplicationModules(getModules());
104111
}
105112

113+
public void apply(Recipe recipe) {
114+
List<? extends SourceFile> rewriteSourceFiles = this.search(new OpenRewriteSourceFilesFinder());
115+
List<Result> results = recipe.run(rewriteSourceFiles, executionContext).getResults();
116+
resultMerger.mergeResults(this, results);
117+
}
106118
}

components/sbm-core/src/main/java/org/springframework/sbm/engine/context/ProjectContextFactory.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import org.openrewrite.java.JavaParser;
2020
import org.springframework.sbm.build.api.BuildFile;
2121
import org.springframework.sbm.build.filter.BuildFileProjectResourceFilter;
22+
import org.springframework.sbm.engine.recipe.RewriteMigrationResultMerger;
2223
import org.springframework.sbm.java.refactoring.JavaRefactoringFactory;
2324
import org.springframework.sbm.java.impl.ClasspathRegistry;
2425
import org.springframework.sbm.java.util.BasePackageCalculator;
@@ -41,14 +42,15 @@ public class ProjectContextFactory {
4142
private final BasePackageCalculator basePackageCalculator;
4243
private final JavaParser javaParser;
4344
private final ExecutionContext executionContext;
45+
private final RewriteMigrationResultMerger resultMerger;
4446

4547
@NotNull
4648
public ProjectContext createProjectContext(Path projectDir, ProjectResourceSet projectResourceSet) {
4749
projectResourceSetHolder.setProjectResourceSet(projectResourceSet);
4850
applyProjectResourceWrappers(projectResourceSet);
4951
List<BuildFile> buildFiles = new BuildFileProjectResourceFilter().apply(projectResourceSet);
5052
ClasspathRegistry.initializeFromBuildFiles(buildFiles);
51-
ProjectContext projectContext = new ProjectContext(javaRefactoringFactory, projectDir, projectResourceSet, basePackageCalculator, javaParser, executionContext);
53+
ProjectContext projectContext = new ProjectContext(javaRefactoringFactory, projectDir, projectResourceSet, basePackageCalculator, javaParser, executionContext, resultMerger);
5254
return projectContext;
5355
}
5456

components/sbm-core/src/main/java/org/springframework/sbm/engine/recipe/OpenRewriteDeclarativeRecipeAdapter.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,6 @@ public class OpenRewriteDeclarativeRecipeAdapter extends AbstractAction {
3434
@JsonIgnore
3535
@Setter
3636
private RewriteRecipeLoader rewriteRecipeLoader;
37-
@JsonIgnore
38-
@Autowired
39-
@Setter
40-
private RewriteRecipeRunner rewriteRecipeRunner;
4137

4238
public OpenRewriteDeclarativeRecipeAdapter() {
4339
super(builder());
@@ -51,6 +47,6 @@ public boolean isApplicable(ProjectContext context) {
5147
@Override
5248
public void apply(ProjectContext context) {
5349
Recipe recipe = rewriteRecipeLoader.createRecipe(openRewriteRecipe);
54-
rewriteRecipeRunner.run(context, recipe);
50+
context.apply(recipe);
5551
}
5652
}

components/sbm-core/src/main/java/org/springframework/sbm/engine/recipe/OpenRewriteNamedRecipeAdapter.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,9 @@ public class OpenRewriteNamedRecipeAdapter extends AbstractAction {
3737
@JsonIgnore
3838
private RewriteRecipeLoader rewriteRecipeLoader;
3939

40-
@JsonIgnore
41-
@Autowired
42-
private RewriteRecipeRunner rewriteRecipeRunner;
43-
4440
@Override
4541
public void apply(ProjectContext context) {
4642
Recipe recipe = rewriteRecipeLoader.loadRewriteRecipe(openRewriteRecipeName);
47-
rewriteRecipeRunner.run(context, recipe);
43+
context.apply(recipe);
4844
}
4945
}

components/sbm-core/src/main/java/org/springframework/sbm/engine/recipe/RewriteRecipeRunner.java

Lines changed: 0 additions & 41 deletions
This file was deleted.

components/sbm-core/src/test/java/org/springframework/sbm/archfitfun/ExecutionScopeArchFitTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@
119119
RewritePlainTextParser.class,
120120
RewriteMavenParser.class,
121121
MavenSettingsInitializer.class,
122+
RewriteMigrationResultMerger.class,
122123
RewriteMavenArtifactDownloader.class,
123124
JavaProvenanceMarkerFactory.class,
124125
MavenConfigHandler.class,

components/sbm-core/src/test/java/org/springframework/sbm/engine/recipe/OpenRewriteDeclarativeRecipeAdapterIntegrationTest.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
import java.io.IOException;
3333

3434
import static org.assertj.core.api.Assertions.assertThat;
35-
import static org.junit.jupiter.api.Assertions.assertThrows;
3635

3736
@SpringBootTest(classes = {
3837
RecipeParser.class,
@@ -43,7 +42,6 @@
4342
ActionDeserializerRegistry.class,
4443
DefaultActionDeserializer.class,
4544
RewriteMigrationResultMerger.class,
46-
RewriteRecipeRunner.class,
4745
RewriteSourceFileWrapper.class,
4846
CustomValidatorBean.class,
4947
RewriteExecutionContext.class,

components/sbm-core/src/test/java/org/springframework/sbm/engine/recipe/OpenRewriteDeclarativeRecipeAdapterTest.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,24 +31,20 @@ public class OpenRewriteDeclarativeRecipeAdapterTest {
3131
@Mock
3232
RewriteRecipeLoader rewriteRecipeLoader;
3333

34-
@Mock
35-
RewriteRecipeRunner rewriteRecipeRunner;
36-
3734
@InjectMocks
3835
OpenRewriteDeclarativeRecipeAdapter sut;
3936

4037
@Test
4138
void testApply() {
4239
String recipeDeclaration = "name: some-recipe";
4340
sut.setOpenRewriteRecipe(recipeDeclaration);
44-
4541
org.openrewrite.Recipe recipe = mock(org.openrewrite.Recipe.class);
4642
when(rewriteRecipeLoader.createRecipe(recipeDeclaration)).thenReturn(recipe);
4743
ProjectContext context = mock(ProjectContext.class);
4844

4945
sut.apply(context);
5046

51-
verify(rewriteRecipeRunner).run(context, recipe);
47+
verify(context).apply(recipe);
5248
}
5349

5450

components/sbm-core/src/test/java/org/springframework/sbm/engine/recipe/OpenRewriteNamedRecipeAdapterIntegrationTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@
4242
ActionDeserializerRegistry.class,
4343
DefaultActionDeserializer.class,
4444
RewriteMigrationResultMerger.class,
45-
RewriteRecipeRunner.class,
4645
RewriteSourceFileWrapper.class,
4746
RewriteRecipeLoader.class,
4847
CustomValidatorBean.class,

components/sbm-core/src/test/java/org/springframework/sbm/engine/recipe/OpenRewriteNamedRecipeAdapterTest.java

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,28 +21,15 @@
2121
import org.mockito.InjectMocks;
2222
import org.mockito.Mock;
2323
import org.mockito.junit.jupiter.MockitoExtension;
24-
import org.springframework.beans.factory.annotation.Autowired;
25-
import org.springframework.boot.test.context.SpringBootTest;
2624
import org.springframework.sbm.engine.context.ProjectContext;
27-
import org.springframework.sbm.project.RewriteSourceFileWrapper;
28-
import org.springframework.sbm.project.resource.ResourceHelper;
29-
import org.springframework.sbm.project.resource.TestProjectContext;
30-
import org.springframework.validation.beanvalidation.CustomValidatorBean;
3125

32-
import java.io.IOException;
33-
34-
import static org.assertj.core.api.Assertions.assertThat;
35-
import static org.junit.jupiter.api.Assertions.assertThrows;
3626
import static org.mockito.Mockito.*;
3727

3828
@ExtendWith(MockitoExtension.class)
3929
public class OpenRewriteNamedRecipeAdapterTest {
4030
@Mock
4131
RewriteRecipeLoader rewriteRecipeLoader;
4232

43-
@Mock
44-
RewriteRecipeRunner rewriteRecipeRunner;
45-
4633
@InjectMocks
4734
OpenRewriteNamedRecipeAdapter sut;
4835

@@ -57,7 +44,7 @@ void testApply() {
5744

5845
sut.apply(context);
5946

60-
verify(rewriteRecipeRunner).run(context, recipe);
47+
verify(context).apply(recipe);
6148
}
6249

6350
}

components/sbm-core/src/test/java/org/springframework/sbm/project/parser/ProjectContextInitializerTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
import org.springframework.sbm.engine.context.ProjectRootPathResolver;
4444
import org.springframework.sbm.engine.git.GitSupport;
4545
import org.springframework.sbm.engine.precondition.PreconditionVerifier;
46+
import org.springframework.sbm.engine.recipe.RewriteMigrationResultMerger;
4647
import org.springframework.sbm.java.impl.RewriteJavaParser;
4748
import org.springframework.sbm.java.refactoring.JavaRefactoringFactoryImpl;
4849
import org.springframework.sbm.java.util.BasePackageCalculator;
@@ -75,6 +76,7 @@
7576
ProjectContextFactory.class,
7677
MavenPomCacheProvider.class,
7778
SbmApplicationProperties.class,
79+
RewriteMigrationResultMerger.class,
7880
PathScanner.class,
7981
RewriteJavaParser.class,
8082
RewritePlainTextParser.class,

components/sbm-recipes-jee-to-boot/src/main/java/org/springframework/sbm/jee/jaxrs/MigrateJaxRsRecipe.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import org.springframework.sbm.engine.recipe.OpenRewriteDeclarativeRecipeAdapter;
2626
import org.springframework.sbm.engine.recipe.Recipe;
2727
import org.springframework.sbm.engine.recipe.RewriteRecipeLoader;
28-
import org.springframework.sbm.engine.recipe.RewriteRecipeRunner;
2928
import org.springframework.sbm.java.JavaRecipeAction;
3029
import org.springframework.sbm.java.impl.ClasspathRegistry;
3130
import org.springframework.sbm.java.migration.actions.ReplaceTypeAction;
@@ -50,7 +49,7 @@ public class MigrateJaxRsRecipe {
5049
private final Supplier<JavaParser> javaParserSupplier = () -> JavaParser.fromJavaVersion().classpath(ClasspathRegistry.getInstance().getCurrentDependencies()).build();
5150

5251
@Bean
53-
public Recipe jaxRs(RewriteRecipeLoader rewriteRecipeLoader, RewriteRecipeRunner rewriteRecipeRunner) {
52+
public Recipe jaxRs(RewriteRecipeLoader rewriteRecipeLoader) {
5453
return Recipe.builder()
5554
.name("migrate-jax-rs")
5655
.order(60)
@@ -137,7 +136,6 @@ public Recipe jaxRs(RewriteRecipeLoader rewriteRecipeLoader, RewriteRecipeRunner
137136
.condition(HasAnnotation.builder().annotation("org.springframework.web.bind.annotation.RequestParam").build())
138137
.description("Adds required=false to all @RequestParam annotations")
139138
.rewriteRecipeLoader(rewriteRecipeLoader)
140-
.rewriteRecipeRunner(rewriteRecipeRunner)
141139
.openRewriteRecipe(
142140
"""
143141
type: specs.openrewrite.org/v1beta/recipe

components/sbm-recipes-jee-to-boot/src/test/java/org/springframework/sbm/jee/jaxrs/recipes/BootifyJaxRsAnnotationsRecipeTest.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,15 @@
1515
*/
1616
package org.springframework.sbm.jee.jaxrs.recipes;
1717

18-
import org.springframework.sbm.engine.recipe.OpenRewriteDeclarativeRecipeAdapter;
19-
import org.springframework.sbm.java.impl.RewriteJavaParser;
20-
import org.springframework.sbm.project.resource.SbmApplicationProperties;
21-
import org.springframework.sbm.test.RecipeTestSupport;
18+
import org.junit.jupiter.api.Test;
2219
import org.springframework.sbm.build.migration.actions.AddDependencies;
20+
import org.springframework.sbm.engine.recipe.OpenRewriteDeclarativeRecipeAdapter;
2321
import org.springframework.sbm.engine.recipe.Recipe;
2422
import org.springframework.sbm.java.JavaRecipeAction;
2523
import org.springframework.sbm.java.migration.actions.ReplaceTypeAction;
2624
import org.springframework.sbm.jee.jaxrs.MigrateJaxRsRecipe;
2725
import org.springframework.sbm.jee.jaxrs.actions.ConvertJaxRsAnnotations;
28-
import org.junit.jupiter.api.Test;
26+
import org.springframework.sbm.test.RecipeTestSupport;
2927

3028
import java.util.Optional;
3129

@@ -34,7 +32,7 @@ public class BootifyJaxRsAnnotationsRecipeTest {
3432
@Test
3533
void test() {
3634

37-
Recipe jaxRsRecipe = new MigrateJaxRsRecipe().jaxRs(null, null);
35+
Recipe jaxRsRecipe = new MigrateJaxRsRecipe().jaxRs(null);
3836
Optional<Recipe> recipe = Optional.of(jaxRsRecipe);
3937
RecipeTestSupport.assertThatRecipeExists(recipe);
4038
RecipeTestSupport.assertThatRecipeHasActions(recipe,

0 commit comments

Comments
 (0)