From ca881bdb39205027b3896d21eed91bdb622f7c5e Mon Sep 17 00:00:00 2001 From: sanagaraj-pivotal Date: Tue, 16 Aug 2022 11:35:17 +0100 Subject: [PATCH 1/3] intermediate commit --- .../BootUpgrade_27_30_IntegrationTest.java | 53 ++++++++++++++----- .../testcode/boot-migration-27-30/pom.xml | 4 ++ ...oot-2.7-3.0-dependency-version-update.yaml | 7 ++- 3 files changed, 49 insertions(+), 15 deletions(-) diff --git a/applications/spring-shell/src/test/java/org/springframework/sbm/BootUpgrade_27_30_IntegrationTest.java b/applications/spring-shell/src/test/java/org/springframework/sbm/BootUpgrade_27_30_IntegrationTest.java index 271a7313c..c92728c12 100644 --- a/applications/spring-shell/src/test/java/org/springframework/sbm/BootUpgrade_27_30_IntegrationTest.java +++ b/applications/spring-shell/src/test/java/org/springframework/sbm/BootUpgrade_27_30_IntegrationTest.java @@ -53,24 +53,33 @@ void migrateSimpleApplication() { verifyCrudRepoAddition(); verifyAutoConfigurationIsRefactored(); verifyEhCacheVersionIsUpgraded(); + verifyJohnzonCoreDependencyIsUpgraded(); } - private void verifyEhCacheVersionIsUpgraded() { - String pomContent = loadFile(Path.of("pom.xml")); + private void verifyJohnzonCoreDependencyIsUpgraded() { + Optional johnzonResult = getDependencyByArtifactId("johnzon-core"); - Xml.Document mavenAsXMLDocument = parsePom(pomContent); + assertThat(johnzonResult.isPresent()).isTrue(); - List dependencies = mavenAsXMLDocument - .getMarkers() - .findFirst(MavenResolutionResult.class) - .get() - .getPom() - .getRequestedDependencies(); + Dependency johnzonDependency = johnzonResult.get(); - Optional ehcacheResult = dependencies + assertThat(johnzonDependency.getClassifier()).isEqualTo("jakarta"); + assertThat(johnzonDependency.getArtifactId()).isEqualTo("johnzon-core"); + assertThat(johnzonDependency.getVersion()).isEqualTo("1.2.18"); + } + + @NotNull + private Optional getDependencyByArtifactId(String artifactId) { + Xml.Document mavenAsXMLDocument = getRootBuildFile(); + List dependencies = getDependencies(mavenAsXMLDocument); + return dependencies .stream() - .filter(dependency -> dependency.getArtifactId().equals("ehcache")) + .filter(dependency -> dependency.getArtifactId().equals(artifactId)) .findFirst(); + } + + private void verifyEhCacheVersionIsUpgraded() { + Optional ehcacheResult = getDependencyByArtifactId("ehcache"); assertThat(ehcacheResult).isPresent(); @@ -82,6 +91,24 @@ private void verifyEhCacheVersionIsUpgraded() { assertThat(ehcacheDependency.getClassifier()).isEqualTo("jakarta"); } + @NotNull + private List getDependencies(Xml.Document mavenAsXMLDocument) { + return mavenAsXMLDocument + .getMarkers() + .findFirst(MavenResolutionResult.class) + .get() + .getPom() + .getRequestedDependencies(); + } + + @NotNull + private Xml.Document getRootBuildFile() { + String pomContent = loadFile(Path.of("pom.xml")); + + Xml.Document mavenAsXMLDocument = parsePom(pomContent); + return mavenAsXMLDocument; + } + private void verifyAutoConfigurationIsRefactored() { String autoConfig = loadFile(Path.of("src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports")); assertThat(autoConfig).isEqualTo("com.hello.GreetingConfig"); @@ -244,9 +271,7 @@ private void verifyPropertyConfigurationUpdate() { } private void verifyParentPomVersion() { - String pomContent = loadFile(Path.of("pom.xml")); - - Xml.Document mavenAsXMLDocument = parsePom(pomContent); + Xml.Document mavenAsXMLDocument = getRootBuildFile(); Xml.Tag parentTag =mavenAsXMLDocument .getRoot() diff --git a/applications/spring-shell/src/test/resources/testcode/boot-migration-27-30/pom.xml b/applications/spring-shell/src/test/resources/testcode/boot-migration-27-30/pom.xml index 3a1f59d30..96b1c0eb6 100644 --- a/applications/spring-shell/src/test/resources/testcode/boot-migration-27-30/pom.xml +++ b/applications/spring-shell/src/test/resources/testcode/boot-migration-27-30/pom.xml @@ -48,6 +48,10 @@ rxjava 3.1.5 + + org.apache.johnzon + johnzon-core + org.springframework.boot spring-boot-starter-test diff --git a/components/sbm-recipes-boot-upgrade/src/main/resources/recipes/boot-2.7-3.0-dependency-version-update.yaml b/components/sbm-recipes-boot-upgrade/src/main/resources/recipes/boot-2.7-3.0-dependency-version-update.yaml index ae17856f1..6fc1ec973 100644 --- a/components/sbm-recipes-boot-upgrade/src/main/resources/recipes/boot-2.7-3.0-dependency-version-update.yaml +++ b/components/sbm-recipes-boot-upgrade/src/main/resources/recipes/boot-2.7-3.0-dependency-version-update.yaml @@ -28,6 +28,11 @@ condition: type: org.springframework.sbm.boot.upgrade.common.conditions.BootHasAutoconfigurationCondition + - type: org.springframework.sbm.boot.upgrade_27_30.actions.Boot_27_30_UpgradeReplaceJohnzonDependencies + condition: + type: org.springframework.sbm.boot.upgrade_27_30.conditions.JohnzonDependencyCondition + description: Changing JohnzonDependency version and classifier + - type: org.springframework.sbm.engine.recipe.OpenRewriteDeclarativeRecipeAdapter condition: type: org.springframework.sbm.boot.upgrade.common.conditions.HasSpringBootParentOfVersion @@ -43,7 +48,7 @@ - org.openrewrite.maven.ChangeDependencyClassifier: groupId: org.ehcache artifactId: ehcache - newClassifier: jakarta + newClassifier: jakarta - org.openrewrite.maven.ChangeDependencyVersion: dependencyPattern: org.ehcache:ehcache newVersion: 3.10.0 From 168978596a3661a90ee4490958d75a4c7637e4e2 Mon Sep 17 00:00:00 2001 From: sanagaraj-pivotal Date: Wed, 17 Aug 2022 13:49:51 +0100 Subject: [PATCH 2/3] Removing peek() call --- .../Boot_27_30_UpgradeReplaceJohnzonDependencies.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/components/sbm-recipes-boot-upgrade/src/main/java/org/springframework/sbm/boot/upgrade_27_30/actions/Boot_27_30_UpgradeReplaceJohnzonDependencies.java b/components/sbm-recipes-boot-upgrade/src/main/java/org/springframework/sbm/boot/upgrade_27_30/actions/Boot_27_30_UpgradeReplaceJohnzonDependencies.java index 4d01c0695..02d325205 100644 --- a/components/sbm-recipes-boot-upgrade/src/main/java/org/springframework/sbm/boot/upgrade_27_30/actions/Boot_27_30_UpgradeReplaceJohnzonDependencies.java +++ b/components/sbm-recipes-boot-upgrade/src/main/java/org/springframework/sbm/boot/upgrade_27_30/actions/Boot_27_30_UpgradeReplaceJohnzonDependencies.java @@ -28,11 +28,14 @@ public class Boot_27_30_UpgradeReplaceJohnzonDependencies extends AbstractAction @Override public void apply(ProjectContext context) { + context.getApplicationModules() .stream() .map(ApplicationModule::getBuildFile) - .peek(bf -> bf.removeDependenciesMatchingRegex(JOHNZON_DEPENDENCY_PATTERN)) - .forEach(bf -> bf.addDependency(Dependency.fromCoordinates(JOHNZON_DEPENDENCY))); + .forEach(bf -> { + bf.removeDependenciesMatchingRegex(JOHNZON_DEPENDENCY_PATTERN); + bf.addDependency(Dependency.fromCoordinates(JOHNZON_DEPENDENCY)); + }); } @Override From 9568fc39cdd58721b4a7584a64f4b0a72a59b581 Mon Sep 17 00:00:00 2001 From: sanagaraj-pivotal Date: Thu, 18 Aug 2022 12:11:56 +0100 Subject: [PATCH 3/3] Small refactor --- .../sbm/BootUpgrade_27_30_IntegrationTest.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/applications/spring-shell/src/test/java/org/springframework/sbm/BootUpgrade_27_30_IntegrationTest.java b/applications/spring-shell/src/test/java/org/springframework/sbm/BootUpgrade_27_30_IntegrationTest.java index c7dd7af09..9444be152 100644 --- a/applications/spring-shell/src/test/java/org/springframework/sbm/BootUpgrade_27_30_IntegrationTest.java +++ b/applications/spring-shell/src/test/java/org/springframework/sbm/BootUpgrade_27_30_IntegrationTest.java @@ -106,10 +106,8 @@ private List getDependencies(Xml.Document mavenAsXMLDocument) { @NotNull private Xml.Document getRootBuildFile() { - String pomContent = loadFile(Path.of("pom.xml")); - Xml.Document mavenAsXMLDocument = parsePom(pomContent); - return mavenAsXMLDocument; + return parsePom(loadFile(Path.of("pom.xml"))); } private void verifyAutoConfigurationIsRefactored() {