Skip to content

Commit e41fa70

Browse files
committed
fix api usage
closes #171 upgrades open rewrite to 7.30.1
1 parent 3236869 commit e41fa70

File tree

6 files changed

+128
-15
lines changed

6 files changed

+128
-15
lines changed

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

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -103,11 +103,10 @@ protected List<SourceFile> visit(List<SourceFile> before, ExecutionContext ctx)
103103
List<Xml.Document> newMavenFiles = mavenParser.parseInputs(parserInput, null, ctx);
104104

105105
for (int i = 0; i < newMavenFiles.size(); i++) {
106-
Optional<MavenResolutionResult> mavenModels = MavenBuildFileUtil.findMavenResolution(mavenFiles.get(i));
107106
Optional<MavenResolutionResult> newMavenModels = MavenBuildFileUtil.findMavenResolution(newMavenFiles.get(i));
108-
mavenFiles.get(i).withMarkers(Markers.build(Arrays.asList(newMavenModels.get())));
109-
// FIXME: 497 verify correctness
110-
mavenFiles.set(i, newMavenFiles.get(i));
107+
Markers markers = mavenFiles.get(0).getMarkers().removeByType(MavenResolutionResult.class);
108+
Markers add = markers.add(newMavenModels.get());
109+
mavenFiles.set(i, mavenFiles.get(i).withMarkers(add));
111110
}
112111

113112
sourceFiles = nonMavenFiles;
@@ -392,8 +391,7 @@ protected void addDependenciesInner(List<Dependency> dependencies) {
392391
if (!dependencies.isEmpty()) {
393392
Recipe r = getAddDependencyRecipe(dependencies.get(0));
394393
dependencies.stream().skip(1).forEach(d -> r.doNext(getAddDependencyRecipe(d)));
395-
apply(r);
396-
apply(new RefreshPomModel());
394+
apply(r.doNext(new RefreshPomModel()));
397395
List<Dependency> exclusions = dependencies.stream()
398396
.filter(not(d -> d.getExclusions().isEmpty()))
399397
.flatMap(d -> d.getExclusions().stream())
@@ -413,8 +411,7 @@ private void excludeDependenciesInner(List<Dependency> exclusions) {
413411
Dependency excludedDependency = exclusions.get(0);
414412
ExcludeDependency excludeDependency = new ExcludeDependency(excludedDependency.getGroupId(), excludedDependency.getArtifactId(), excludedDependency.getScope());
415413
exclusions.stream().skip(1).forEach(d -> excludeDependency.doNext(new ExcludeDependency(d.getGroupId(), d.getArtifactId(), d.getScope())));
416-
apply(excludeDependency);
417-
apply(new RefreshPomModel()); // TODO: 482: check if required
414+
apply(excludeDependency.doNext(new RefreshPomModel()));
418415
}
419416
}
420417

@@ -453,8 +450,8 @@ public void removeDependenciesInner(List<Dependency> dependencies) {
453450
dependencies.stream().skip(1).forEach(d -> {
454451
r.doNext(getDeleteDependencyVisitor(d));
455452
});
456-
apply(r);
457-
apply(new RefreshPomModel()); // TODO: Should be obsolete with 7.23.0, see https://github.com/openrewrite/rewrite/issues/1754
453+
apply(r.doNext(new RefreshPomModel()));
454+
// apply(new RefreshPomModel()); // TODO: Should be obsolete with 7.23.0, see https://github.com/openrewrite/rewrite/issues/1754
458455
}
459456
}
460457

@@ -501,9 +498,9 @@ private Dependency getDependency(ResolvedManagedDependency d) {
501498
@Override
502499
public void addToDependencyManagementInner(Dependency dependency) {
503500
AddOrUpdateDependencyManagement addOrUpdateDependencyManagement = new AddOrUpdateDependencyManagement(dependency);
504-
apply(new GenericOpenRewriteRecipe<>(() -> addOrUpdateDependencyManagement));
501+
apply(new GenericOpenRewriteRecipe<>(() -> addOrUpdateDependencyManagement).doNext(new RefreshPomModel()));
505502
// Execute separately since RefreshPomModel caches the refreshed maven files after the first visit
506-
apply(new RefreshPomModel());
503+
// apply(new RefreshPomModel());
507504
}
508505
// FIXME: #7 rework dependencies/classpath registry
509506
// collect declared dependencies (jar/pom)
@@ -579,7 +576,7 @@ final public void setProperty(String key, String value) {
579576
apply(new RemoveProperty(key));
580577
} else {
581578
String current = getProperty(key);
582-
apply(current == null ? new AddProperty(key, value) : new ChangePropertyValue(key, value, false));
579+
apply(current == null ? new AddProperty(key, value) : new ChangePropertyValue(key, value, false, true));
583580
}
584581
apply(new RefreshPomModel());
585582
}

components/sbm-core/src/main/java/org/springframework/sbm/project/parser/DependencyHelper.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ public Set<Dependency> mapCoordinatesToDependencies(List<String> coordinates) {
8585
true,
8686
true,
8787
null,
88+
null,
8889
null
8990
);
9091

components/sbm-openrewrite/src/main/java/org/openrewrite/maven/spring/UpgradeUnmanagedSpringProject.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ private void mayBeUpdateVersion(String key, Xml.Tag tag) {
147147
}
148148
if (versionValue.startsWith("${")) {
149149
String propertyName = versionValue.substring(2, versionValue.length() - 1);
150-
version.ifPresent(xml -> doAfterVisit(new ChangePropertyValue(propertyName, dependencyVersion, true)));
150+
version.ifPresent(xml -> doAfterVisit(new ChangePropertyValue(propertyName, dependencyVersion, true, true)));
151151
} else {
152152
version.ifPresent(xml -> doAfterVisit(new ChangeTagValueVisitor(xml, dependencyVersion)));
153153
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,7 @@ void replaceMethodAnnotations() throws Exception {
209209
"import org.springframework.web.bind.annotation.RequestMapping;\n" +
210210
"import org.springframework.web.bind.annotation.RequestMethod;\n" +
211211
"import org.springframework.web.bind.annotation.RestController;\n" +
212+
"\n" +
212213
"import javax.ws.rs.PathParam;\n" +
213214
"import javax.ws.rs.core.MediaType;\n" +
214215
"\n" +

components/sbm-support-boot/src/test/java/org/springframework/sbm/boot/common/recipes/InitializeSpringBootMigrationRecipeIntegrationTest.java

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,17 @@
1515
*/
1616
package org.springframework.sbm.boot.common.recipes;
1717

18+
import org.assertj.core.api.Assertions;
19+
import org.springframework.sbm.build.api.Dependency;
20+
import org.springframework.sbm.build.migration.actions.AddMavenDependencyManagementAction;
21+
import org.springframework.sbm.build.migration.conditions.NoDependencyExistMatchingRegex;
22+
import org.springframework.sbm.engine.context.ProjectContext;
23+
import org.springframework.sbm.project.resource.TestProjectContext;
1824
import org.springframework.sbm.test.RecipeIntegrationTestSupport;
1925
import org.junit.jupiter.api.Test;
2026

27+
import java.util.List;
28+
2129
public class InitializeSpringBootMigrationRecipeIntegrationTest {
2230

2331
@Test
@@ -34,4 +42,110 @@ void initializeSimpleMultiModuleProjectAsSpringBootApplication() {
3442
.andApplyRecipeComparingWithExpected("initialize-spring-boot-migration");
3543
}
3644

45+
@Test
46+
void test_renameMe() {
47+
ProjectContext context = TestProjectContext
48+
.buildProjectContext()
49+
.withMavenRootBuildFileSource("""
50+
<project xmlns="http://maven.apache.org/POM/4.0.0"
51+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
52+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
53+
<modelVersion>4.0.0</modelVersion>
54+
<groupId>org.example</groupId>
55+
<artifactId>parent</artifactId>
56+
<version>1.0-SNAPSHOT</version>
57+
<packaging>pom</packaging>
58+
<properties>
59+
<maven.compiler.source>17</maven.compiler.source>
60+
<maven.compiler.target>17</maven.compiler.target>
61+
</properties>
62+
<modules>
63+
<module>module1</module>
64+
<module>module2</module>
65+
</modules>
66+
</project>
67+
""")
68+
.withMavenBuildFileSource("modue1/pom.xml", """
69+
<project xmlns="http://maven.apache.org/POM/4.0.0"
70+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
71+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
72+
<modelVersion>4.0.0</modelVersion>
73+
<parent>
74+
<groupId>org.example</groupId>
75+
<artifactId>parent</artifactId>
76+
<version>1.0-SNAPSHOT</version>
77+
<relativePath>../pom.xml</relativePath>
78+
</parent>
79+
<artifactId>module1</artifactId>
80+
<properties>
81+
<maven.compiler.source>17</maven.compiler.source>
82+
<maven.compiler.target>17</maven.compiler.target>
83+
<spring-boot.version>2.7.2</spring-boot.version>
84+
</properties>
85+
<dependencies>
86+
<dependency>
87+
<groupId>org.example</groupId>
88+
<artifactId>module2</artifactId>
89+
<version>${project.version}</version>
90+
</dependency>
91+
<dependency>
92+
<groupId>org.junit.jupiter</groupId>
93+
<artifactId>junit-jupiter</artifactId>
94+
<version>5.8.2</version>
95+
<scope>test</scope>
96+
</dependency>
97+
</dependencies>
98+
</project>
99+
""")
100+
.addJavaSource("module1/src/main/java", "package com.example;\n" + "\n" + "public class Foo {\n" + "}")
101+
.withMavenBuildFileSource("module2/pom.xml", """
102+
<project xmlns="http://maven.apache.org/POM/4.0.0"
103+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
104+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
105+
<modelVersion>4.0.0</modelVersion>
106+
<parent>
107+
<groupId>org.example</groupId>
108+
<artifactId>parent</artifactId>
109+
<version>1.0-SNAPSHOT</version>
110+
<relativePath>../pom.xml</relativePath>
111+
</parent>
112+
<artifactId>module2</artifactId>
113+
<properties>
114+
<maven.compiler.source>17</maven.compiler.source>
115+
<maven.compiler.target>17</maven.compiler.target>
116+
</properties>
117+
</project>
118+
""")
119+
.addJavaSource("module2/src/main/java", "package com.example;\n" + "\n" + "public class Bar {}")
120+
.build();
121+
122+
/*
123+
type: org.springframework.sbm.build.migration.actions.AddMavenDependencyManagementAction
124+
condition:
125+
type: org.springframework.sbm.build.migration.conditions.NoDependencyExistMatchingRegex
126+
dependencies:
127+
- 'org\.springframework\.boot'
128+
name: "add managed dependency to Maven"
129+
groupId: org.springframework.boot
130+
artifactId: spring-boot-dependencies
131+
version: 2.7.3
132+
dependencyType: pom
133+
scope: import
134+
*/
135+
136+
AddMavenDependencyManagementAction sut = new AddMavenDependencyManagementAction();
137+
sut.setCondition(new NoDependencyExistMatchingRegex(List.of("org\\.springframework\\.boot")));
138+
sut.setGroupId("org.springframework.boot");
139+
sut.setArtifactId("spring-boot-dependencies");
140+
sut.setVersion("2.7.3");
141+
142+
sut.apply(context);
143+
144+
Assertions.assertThat(context
145+
.getApplicationModules()
146+
.getRootModule()
147+
.getBuildFile()
148+
.getDependencyManagement()).hasSize(1);
149+
}
150+
37151
}

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
<maven-compiler-plugin.version>3.10.1</maven-compiler-plugin.version>
3232
<java.version>17</java.version>
3333
<spring-shell.version>2.1.1</spring-shell.version>
34-
<openrewrite.version>7.29.0</openrewrite.version>
34+
<openrewrite.version>7.30.1</openrewrite.version>
3535
<openrewrite.spring.version>4.26.0</openrewrite.spring.version>
3636
<rewrite-migrate-java.version>1.11.0</rewrite-migrate-java.version>
3737
<spring-boot.version>2.7.4</spring-boot.version>

0 commit comments

Comments
 (0)