From 5067785b2951a736552c7f1949a0acff339b09ac Mon Sep 17 00:00:00 2001 From: Ravi Gupta Date: Sat, 26 Nov 2022 18:03:25 +0530 Subject: [PATCH 1/5] Initial proposal for Spring Managed Dependencies removal --- .../build/api/SpringManagedDependencies.java | 57 ++++++++++++++++++ .../actions/RemoveManagedDependencies.java | 58 +++++++++++++++++++ .../api/SpringManagedDependenciesTest.java | 18 ++++++ .../RemoveManagedDependenciesTest.java | 51 ++++++++++++++++ 4 files changed, 184 insertions(+) create mode 100644 components/sbm-core/src/main/java/org/springframework/sbm/build/api/SpringManagedDependencies.java create mode 100644 components/sbm-core/src/main/java/org/springframework/sbm/build/migration/actions/RemoveManagedDependencies.java create mode 100644 components/sbm-core/src/test/java/org/springframework/sbm/build/api/SpringManagedDependenciesTest.java create mode 100644 components/sbm-core/src/test/java/org/springframework/sbm/build/migration/actions/RemoveManagedDependenciesTest.java diff --git a/components/sbm-core/src/main/java/org/springframework/sbm/build/api/SpringManagedDependencies.java b/components/sbm-core/src/main/java/org/springframework/sbm/build/api/SpringManagedDependencies.java new file mode 100644 index 000000000..47260013a --- /dev/null +++ b/components/sbm-core/src/main/java/org/springframework/sbm/build/api/SpringManagedDependencies.java @@ -0,0 +1,57 @@ +package org.springframework.sbm.build.api; + +import org.openrewrite.InMemoryExecutionContext; +import org.openrewrite.maven.internal.MavenPomDownloader; +import org.openrewrite.maven.tree.GroupArtifactVersion; +import org.openrewrite.maven.tree.MavenRepository; + +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Stream; + +public class SpringManagedDependencies { + + private static final String SPRING_BOOT_GROUP = "org.springframework.boot"; + private static final String SPRING_GROUP = "org.springframework"; + + private static List SPRING_REPOSITORIES = List.of( + new MavenRepository("spring-release", "https://repo.spring.io/release", true, false, null, null) + ); + + private List dependencies; + private static Map INSTANCES = new HashMap<>(); + + public static SpringManagedDependencies byBootArtifact(String artifact,String version){ + final GroupArtifactVersion groupArtifactVersion = + new GroupArtifactVersion(SPRING_BOOT_GROUP, artifact, version); + + INSTANCES.computeIfAbsent(groupArtifactVersion, SpringManagedDependencies::new); + return INSTANCES.get(groupArtifactVersion); + } + + public static SpringManagedDependencies byArtifact(String artifact,String version){ + final GroupArtifactVersion groupArtifactVersion = + new GroupArtifactVersion(SPRING_GROUP, artifact, version); + + INSTANCES.computeIfAbsent(groupArtifactVersion, SpringManagedDependencies::new); + return INSTANCES.get(groupArtifactVersion); + } + + private SpringManagedDependencies(GroupArtifactVersion groupArtifactVersion){ + dependencies = new MavenPomDownloader(Collections.emptyMap(), new InMemoryExecutionContext()) + .download(groupArtifactVersion, null, null, SPRING_REPOSITORIES) + .getDependencies(); + } + + public Stream stream(){ + return dependencies.stream() + .map(d -> Dependency.builder() + .groupId(d.getGroupId()) + .artifactId(d.getArtifactId()) + .version(d.getVersion()) + .build() + ); + } +} diff --git a/components/sbm-core/src/main/java/org/springframework/sbm/build/migration/actions/RemoveManagedDependencies.java b/components/sbm-core/src/main/java/org/springframework/sbm/build/migration/actions/RemoveManagedDependencies.java new file mode 100644 index 000000000..fdbe3b9b3 --- /dev/null +++ b/components/sbm-core/src/main/java/org/springframework/sbm/build/migration/actions/RemoveManagedDependencies.java @@ -0,0 +1,58 @@ +package org.springframework.sbm.build.migration.actions; + +import org.springframework.sbm.build.api.Dependency; +import org.springframework.sbm.build.api.SpringManagedDependencies; +import org.springframework.sbm.engine.context.ProjectContext; +import org.springframework.sbm.engine.recipe.AbstractAction; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import static org.openrewrite.maven.tree.Scope.Compile; + +/** + * The action removes the dependencies directly managed by Spring from the project dependencies + * Add this action at the end of recipe so that any spring artifact inclusions as part of the + * other actions are also included while removing the dependencies. + */ +public class RemoveManagedDependencies extends AbstractAction { + + @Override + public void apply(ProjectContext context) { + final Map> listMap = context.getBuildFile() + .getDeclaredDependencies(Compile) + .stream() + .filter(this::isSpringFrameworkDependency) + .collect(Collectors.partitioningBy(d -> "org.springframework.boot".equals(d.getGroupId()))); + + List springManagedDependencies = Stream.concat(listMap.get(true) + .stream() + .map(i -> SpringManagedDependencies.byBootArtifact(i.getArtifactId(), i.getVersion())), + listMap.get(false) + .stream() + .map(i -> SpringManagedDependencies.byArtifact(i.getArtifactId(), i.getVersion())) + ).flatMap(SpringManagedDependencies::stream) + .distinct() + .map(Dependency::getCoordinates) + .collect(Collectors.toList()); + + //FIXME Also include the dependencies with lesser version. How to do the version comparison? String comparison + // will not work for 3.2 < 13.2? + final List dependenciesToBeRemoved = context.getBuildFile() + .getDeclaredDependencies(Compile) + .stream() + .filter(d -> springManagedDependencies.contains(d.getCoordinates())) + .collect(Collectors.toList()); + + RemoveDependencies removeDependenciesAction = new RemoveDependencies(); + removeDependenciesAction.setDependencies(dependenciesToBeRemoved); + removeDependenciesAction.apply(context); + } + + private boolean isSpringFrameworkDependency(Dependency dependency){ + return "org.springframework.boot".equals(dependency.getGroupId()) + || "org.springframework".equals(dependency.getGroupId()); + } +} diff --git a/components/sbm-core/src/test/java/org/springframework/sbm/build/api/SpringManagedDependenciesTest.java b/components/sbm-core/src/test/java/org/springframework/sbm/build/api/SpringManagedDependenciesTest.java new file mode 100644 index 000000000..c77089d96 --- /dev/null +++ b/components/sbm-core/src/test/java/org/springframework/sbm/build/api/SpringManagedDependenciesTest.java @@ -0,0 +1,18 @@ +package org.springframework.sbm.build.api; + +import org.junit.jupiter.api.Test; +import static org.assertj.core.api.Assertions.assertThat; + +public class SpringManagedDependenciesTest { + + @Test + public void pullBootStarter274Dependencies_expectJakartaAnnotationDependency(){ + String jakartaCoordinates = "jakarta.annotation:jakarta.annotation-api:1.3.5"; + + assertThat( SpringManagedDependencies.byBootArtifact("spring-boot-starter", "2.7.4") + .stream() + .map(Dependency::getCoordinates) + .anyMatch(jakartaCoordinates::equals) + ).isTrue(); + } +} diff --git a/components/sbm-core/src/test/java/org/springframework/sbm/build/migration/actions/RemoveManagedDependenciesTest.java b/components/sbm-core/src/test/java/org/springframework/sbm/build/migration/actions/RemoveManagedDependenciesTest.java new file mode 100644 index 000000000..5809a12f1 --- /dev/null +++ b/components/sbm-core/src/test/java/org/springframework/sbm/build/migration/actions/RemoveManagedDependenciesTest.java @@ -0,0 +1,51 @@ +package org.springframework.sbm.build.migration.actions; + +import org.junit.jupiter.api.Test; +import org.springframework.sbm.build.api.Dependency; +import org.springframework.sbm.engine.context.ProjectContext; +import org.springframework.sbm.project.resource.TestProjectContext; + +import static org.assertj.core.api.AssertionsForClassTypes.assertThat; + +public class RemoveManagedDependenciesTest { + + @Test + public void givenProjectWithHibernateDependency_removeManagedDependencies_expectHibernateDependencyRemoved(){ + final String hibernateCoordinates = "org.hibernate:hibernate-core:5.6.11.Final"; + final String springBootDataJpaCoordinates = "org.springframework.boot:spring-boot-starter-data-jpa:2.7.4"; + + final ProjectContext projectContext = TestProjectContext.buildProjectContext() + .withBuildFileHavingDependencies(hibernateCoordinates, springBootDataJpaCoordinates) + .build(); + + RemoveManagedDependencies removeManagedDependencies = new RemoveManagedDependencies(); + removeManagedDependencies.apply(projectContext); + + assertThat(projectContext.getBuildFile() + .getDeclaredDependencies() + .stream() + .map(Dependency::getCoordinates) + .anyMatch(hibernateCoordinates::equals) + ).isFalse(); + } + + @Test + public void givenProjectWithHibernateDependencyOfDifferentVersion_removeManagedDependencies_expectNoOp(){ + final String hibernateCoordinates = "org.hibernate:hibernate-core:5.3.2.Final"; + final String springBootDataJpaCoordinates = "org.springframework.boot:spring-boot-starter-data-jpa:2.7.4"; + + final ProjectContext projectContext = TestProjectContext.buildProjectContext() + .withBuildFileHavingDependencies(hibernateCoordinates, springBootDataJpaCoordinates) + .build(); + + RemoveManagedDependencies removeManagedDependencies = new RemoveManagedDependencies(); + removeManagedDependencies.apply(projectContext); + + assertThat(projectContext.getBuildFile() + .getDeclaredDependencies() + .stream() + .map(Dependency::getCoordinates) + .anyMatch(hibernateCoordinates::equals) + ).isTrue(); + } +} From 3c77f7060a13271a797321f473e64c0b987db10f Mon Sep 17 00:00:00 2001 From: Ravi Gupta Date: Wed, 21 Dec 2022 20:26:16 +0530 Subject: [PATCH 2/5] Remove spring managed dependency with version consideration --- .../sbm/build/api/Dependency.java | 11 +++++++++ .../build/api/SpringManagedDependencies.java | 2 ++ .../actions/RemoveManagedDependencies.java | 13 ++++++---- .../RemoveManagedDependenciesTest.java | 24 +++++++++++++++++-- 4 files changed, 43 insertions(+), 7 deletions(-) diff --git a/components/sbm-core/src/main/java/org/springframework/sbm/build/api/Dependency.java b/components/sbm-core/src/main/java/org/springframework/sbm/build/api/Dependency.java index 0be85a001..55a026acf 100644 --- a/components/sbm-core/src/main/java/org/springframework/sbm/build/api/Dependency.java +++ b/components/sbm-core/src/main/java/org/springframework/sbm/build/api/Dependency.java @@ -17,9 +17,11 @@ import io.micrometer.core.lang.Nullable; import lombok.*; +import org.openrewrite.semver.LatestRelease; import javax.validation.constraints.NotNull; import java.util.ArrayList; +import java.util.Comparator; import java.util.List; @Getter @@ -66,6 +68,15 @@ public String toString() { ""; } + public boolean isRecentThen(Dependency that){ + return this.equals(that) && comparator().compare(this, that) > 0; + } + + private Comparator comparator(){ + LatestRelease latestRelease = new LatestRelease(null); + return Comparator.comparing(Dependency::getVersion, latestRelease::compare); + } + private String exclusionString() { if (exclusions.isEmpty()) { return ""; diff --git a/components/sbm-core/src/main/java/org/springframework/sbm/build/api/SpringManagedDependencies.java b/components/sbm-core/src/main/java/org/springframework/sbm/build/api/SpringManagedDependencies.java index 47260013a..82426786f 100644 --- a/components/sbm-core/src/main/java/org/springframework/sbm/build/api/SpringManagedDependencies.java +++ b/components/sbm-core/src/main/java/org/springframework/sbm/build/api/SpringManagedDependencies.java @@ -54,4 +54,6 @@ public Stream stream(){ .build() ); } + + } diff --git a/components/sbm-core/src/main/java/org/springframework/sbm/build/migration/actions/RemoveManagedDependencies.java b/components/sbm-core/src/main/java/org/springframework/sbm/build/migration/actions/RemoveManagedDependencies.java index fdbe3b9b3..5b3815963 100644 --- a/components/sbm-core/src/main/java/org/springframework/sbm/build/migration/actions/RemoveManagedDependencies.java +++ b/components/sbm-core/src/main/java/org/springframework/sbm/build/migration/actions/RemoveManagedDependencies.java @@ -7,6 +7,7 @@ import java.util.List; import java.util.Map; +import java.util.function.Predicate; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -27,7 +28,7 @@ public void apply(ProjectContext context) { .filter(this::isSpringFrameworkDependency) .collect(Collectors.partitioningBy(d -> "org.springframework.boot".equals(d.getGroupId()))); - List springManagedDependencies = Stream.concat(listMap.get(true) + List springManagedDependencies = Stream.concat(listMap.get(true) .stream() .map(i -> SpringManagedDependencies.byBootArtifact(i.getArtifactId(), i.getVersion())), listMap.get(false) @@ -35,15 +36,17 @@ public void apply(ProjectContext context) { .map(i -> SpringManagedDependencies.byArtifact(i.getArtifactId(), i.getVersion())) ).flatMap(SpringManagedDependencies::stream) .distinct() - .map(Dependency::getCoordinates) .collect(Collectors.toList()); - //FIXME Also include the dependencies with lesser version. How to do the version comparison? String comparison - // will not work for 3.2 < 13.2? + Predicate isAlreadyManagedBySpring = d -> springManagedDependencies + .stream() + .filter(d::equals) + .anyMatch(s -> s.isRecentThen(d)); + final List dependenciesToBeRemoved = context.getBuildFile() .getDeclaredDependencies(Compile) .stream() - .filter(d -> springManagedDependencies.contains(d.getCoordinates())) + .filter(isAlreadyManagedBySpring) .collect(Collectors.toList()); RemoveDependencies removeDependenciesAction = new RemoveDependencies(); diff --git a/components/sbm-core/src/test/java/org/springframework/sbm/build/migration/actions/RemoveManagedDependenciesTest.java b/components/sbm-core/src/test/java/org/springframework/sbm/build/migration/actions/RemoveManagedDependenciesTest.java index 5809a12f1..4932e872e 100644 --- a/components/sbm-core/src/test/java/org/springframework/sbm/build/migration/actions/RemoveManagedDependenciesTest.java +++ b/components/sbm-core/src/test/java/org/springframework/sbm/build/migration/actions/RemoveManagedDependenciesTest.java @@ -10,7 +10,7 @@ public class RemoveManagedDependenciesTest { @Test - public void givenProjectWithHibernateDependency_removeManagedDependencies_expectHibernateDependencyRemoved(){ + public void givenProjectWithManagedDependency_removeSpringManagedDependencies_expectHibernateDependencyRemoved(){ final String hibernateCoordinates = "org.hibernate:hibernate-core:5.6.11.Final"; final String springBootDataJpaCoordinates = "org.springframework.boot:spring-boot-starter-data-jpa:2.7.4"; @@ -30,7 +30,7 @@ public void givenProjectWithHibernateDependency_removeManagedDependencies_expect } @Test - public void givenProjectWithHibernateDependencyOfDifferentVersion_removeManagedDependencies_expectNoOp(){ + public void givenProjectWithLowerVersionedManagedDependency_removeSpringManagedDependencies_expectDependencyRemoved(){ final String hibernateCoordinates = "org.hibernate:hibernate-core:5.3.2.Final"; final String springBootDataJpaCoordinates = "org.springframework.boot:spring-boot-starter-data-jpa:2.7.4"; @@ -41,6 +41,26 @@ public void givenProjectWithHibernateDependencyOfDifferentVersion_removeManagedD RemoveManagedDependencies removeManagedDependencies = new RemoveManagedDependencies(); removeManagedDependencies.apply(projectContext); + assertThat(projectContext.getBuildFile() + .getDeclaredDependencies() + .stream() + .map(Dependency::getCoordinates) + .anyMatch(hibernateCoordinates::equals) + ).isFalse(); + } + + @Test + public void givenProjectWithHigherVersionedManagedDependency_removeSpringManagedDependencies_expectDependencyRemoved(){ + final String hibernateCoordinates = "org.hibernate:hibernate-core:5.12.2.Final"; + final String springBootDataJpaCoordinates = "org.springframework.boot:spring-boot-starter-data-jpa:2.7.4"; + + final ProjectContext projectContext = TestProjectContext.buildProjectContext() + .withBuildFileHavingDependencies(hibernateCoordinates, springBootDataJpaCoordinates) + .build(); + + RemoveManagedDependencies removeManagedDependencies = new RemoveManagedDependencies(); + removeManagedDependencies.apply(projectContext); + assertThat(projectContext.getBuildFile() .getDeclaredDependencies() .stream() From 8ad9a5472377b1c9f2ae36b9040d9c74a15f1919 Mon Sep 17 00:00:00 2001 From: Ravi Gupta Date: Sat, 7 Jan 2023 12:24:24 +0530 Subject: [PATCH 3/5] Fixed review comments --- .../build/api/SpringManagedDependencies.java | 22 ++++++------------- .../actions/RemoveManagedDependencies.java | 22 +++++-------------- .../api/SpringManagedDependenciesTest.java | 2 +- .../RemoveManagedDependenciesTest.java | 5 +++++ 4 files changed, 19 insertions(+), 32 deletions(-) diff --git a/components/sbm-core/src/main/java/org/springframework/sbm/build/api/SpringManagedDependencies.java b/components/sbm-core/src/main/java/org/springframework/sbm/build/api/SpringManagedDependencies.java index 82426786f..92f85babe 100644 --- a/components/sbm-core/src/main/java/org/springframework/sbm/build/api/SpringManagedDependencies.java +++ b/components/sbm-core/src/main/java/org/springframework/sbm/build/api/SpringManagedDependencies.java @@ -1,9 +1,9 @@ package org.springframework.sbm.build.api; -import org.openrewrite.InMemoryExecutionContext; import org.openrewrite.maven.internal.MavenPomDownloader; import org.openrewrite.maven.tree.GroupArtifactVersion; import org.openrewrite.maven.tree.MavenRepository; +import org.springframework.sbm.openrewrite.RewriteExecutionContext; import java.util.Collections; import java.util.HashMap; @@ -11,11 +11,11 @@ import java.util.Map; import java.util.stream.Stream; +/** + * This class holds all the dependencies included in a spring artifact + */ public class SpringManagedDependencies { - private static final String SPRING_BOOT_GROUP = "org.springframework.boot"; - private static final String SPRING_GROUP = "org.springframework"; - private static List SPRING_REPOSITORIES = List.of( new MavenRepository("spring-release", "https://repo.spring.io/release", true, false, null, null) ); @@ -23,24 +23,16 @@ public class SpringManagedDependencies { private List dependencies; private static Map INSTANCES = new HashMap<>(); - public static SpringManagedDependencies byBootArtifact(String artifact,String version){ - final GroupArtifactVersion groupArtifactVersion = - new GroupArtifactVersion(SPRING_BOOT_GROUP, artifact, version); - - INSTANCES.computeIfAbsent(groupArtifactVersion, SpringManagedDependencies::new); - return INSTANCES.get(groupArtifactVersion); - } - - public static SpringManagedDependencies byArtifact(String artifact,String version){ + public static SpringManagedDependencies by(String groupId, String artifact, String version){ final GroupArtifactVersion groupArtifactVersion = - new GroupArtifactVersion(SPRING_GROUP, artifact, version); + new GroupArtifactVersion(groupId, artifact, version); INSTANCES.computeIfAbsent(groupArtifactVersion, SpringManagedDependencies::new); return INSTANCES.get(groupArtifactVersion); } private SpringManagedDependencies(GroupArtifactVersion groupArtifactVersion){ - dependencies = new MavenPomDownloader(Collections.emptyMap(), new InMemoryExecutionContext()) + dependencies = new MavenPomDownloader(Collections.emptyMap(), new RewriteExecutionContext()) .download(groupArtifactVersion, null, null, SPRING_REPOSITORIES) .getDependencies(); } diff --git a/components/sbm-core/src/main/java/org/springframework/sbm/build/migration/actions/RemoveManagedDependencies.java b/components/sbm-core/src/main/java/org/springframework/sbm/build/migration/actions/RemoveManagedDependencies.java index 5b3815963..ae50547de 100644 --- a/components/sbm-core/src/main/java/org/springframework/sbm/build/migration/actions/RemoveManagedDependencies.java +++ b/components/sbm-core/src/main/java/org/springframework/sbm/build/migration/actions/RemoveManagedDependencies.java @@ -6,10 +6,8 @@ import org.springframework.sbm.engine.recipe.AbstractAction; import java.util.List; -import java.util.Map; import java.util.function.Predicate; import java.util.stream.Collectors; -import java.util.stream.Stream; import static org.openrewrite.maven.tree.Scope.Compile; @@ -22,21 +20,14 @@ public class RemoveManagedDependencies extends AbstractAction { @Override public void apply(ProjectContext context) { - final Map> listMap = context.getBuildFile() + final List springManagedDependencies = context.getBuildFile() .getDeclaredDependencies(Compile) .stream() .filter(this::isSpringFrameworkDependency) - .collect(Collectors.partitioningBy(d -> "org.springframework.boot".equals(d.getGroupId()))); - - List springManagedDependencies = Stream.concat(listMap.get(true) - .stream() - .map(i -> SpringManagedDependencies.byBootArtifact(i.getArtifactId(), i.getVersion())), - listMap.get(false) - .stream() - .map(i -> SpringManagedDependencies.byArtifact(i.getArtifactId(), i.getVersion())) - ).flatMap(SpringManagedDependencies::stream) - .distinct() - .collect(Collectors.toList()); + .map(d -> SpringManagedDependencies.by(d.getGroupId(),d.getArtifactId(),d.getVersion())) + .flatMap(SpringManagedDependencies::stream) + .distinct() + .collect(Collectors.toList()); Predicate isAlreadyManagedBySpring = d -> springManagedDependencies .stream() @@ -55,7 +46,6 @@ public void apply(ProjectContext context) { } private boolean isSpringFrameworkDependency(Dependency dependency){ - return "org.springframework.boot".equals(dependency.getGroupId()) - || "org.springframework".equals(dependency.getGroupId()); + return dependency.getGroupId().startsWith("org.springframework"); } } diff --git a/components/sbm-core/src/test/java/org/springframework/sbm/build/api/SpringManagedDependenciesTest.java b/components/sbm-core/src/test/java/org/springframework/sbm/build/api/SpringManagedDependenciesTest.java index c77089d96..fd4a28bfa 100644 --- a/components/sbm-core/src/test/java/org/springframework/sbm/build/api/SpringManagedDependenciesTest.java +++ b/components/sbm-core/src/test/java/org/springframework/sbm/build/api/SpringManagedDependenciesTest.java @@ -9,7 +9,7 @@ public class SpringManagedDependenciesTest { public void pullBootStarter274Dependencies_expectJakartaAnnotationDependency(){ String jakartaCoordinates = "jakarta.annotation:jakarta.annotation-api:1.3.5"; - assertThat( SpringManagedDependencies.byBootArtifact("spring-boot-starter", "2.7.4") + assertThat( SpringManagedDependencies.by("org.springframework.boot", "spring-boot-starter", "2.7.4") .stream() .map(Dependency::getCoordinates) .anyMatch(jakartaCoordinates::equals) diff --git a/components/sbm-core/src/test/java/org/springframework/sbm/build/migration/actions/RemoveManagedDependenciesTest.java b/components/sbm-core/src/test/java/org/springframework/sbm/build/migration/actions/RemoveManagedDependenciesTest.java index 4932e872e..1146c83b4 100644 --- a/components/sbm-core/src/test/java/org/springframework/sbm/build/migration/actions/RemoveManagedDependenciesTest.java +++ b/components/sbm-core/src/test/java/org/springframework/sbm/build/migration/actions/RemoveManagedDependenciesTest.java @@ -1,6 +1,7 @@ package org.springframework.sbm.build.migration.actions; import org.junit.jupiter.api.Test; +import org.openrewrite.semver.LatestRelease; import org.springframework.sbm.build.api.Dependency; import org.springframework.sbm.engine.context.ProjectContext; import org.springframework.sbm.project.resource.TestProjectContext; @@ -11,6 +12,10 @@ public class RemoveManagedDependenciesTest { @Test public void givenProjectWithManagedDependency_removeSpringManagedDependencies_expectHibernateDependencyRemoved(){ + + LatestRelease latestRelease = new LatestRelease(null); + System.out.println(latestRelease.compare(null, "5.6.11.Final", "5.6.11.Final")); + final String hibernateCoordinates = "org.hibernate:hibernate-core:5.6.11.Final"; final String springBootDataJpaCoordinates = "org.springframework.boot:spring-boot-starter-data-jpa:2.7.4"; From af34a29511a27151340f7707d76be5cf4a25cc4f Mon Sep 17 00:00:00 2001 From: Ravi Gupta Date: Sat, 7 Jan 2023 12:37:31 +0530 Subject: [PATCH 4/5] Fixed review comments --- .../main/java/org/springframework/sbm/build/api/Dependency.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/sbm-core/src/main/java/org/springframework/sbm/build/api/Dependency.java b/components/sbm-core/src/main/java/org/springframework/sbm/build/api/Dependency.java index 55a026acf..848598518 100644 --- a/components/sbm-core/src/main/java/org/springframework/sbm/build/api/Dependency.java +++ b/components/sbm-core/src/main/java/org/springframework/sbm/build/api/Dependency.java @@ -69,7 +69,7 @@ public String toString() { } public boolean isRecentThen(Dependency that){ - return this.equals(that) && comparator().compare(this, that) > 0; + return this.equals(that) && comparator().compare(this, that) >= 0; } private Comparator comparator(){ From b3a5839142c43dbc20aa0343612051c1dc49d1f3 Mon Sep 17 00:00:00 2001 From: Ravi Gupta Date: Mon, 9 Jan 2023 19:53:06 +0530 Subject: [PATCH 5/5] Added fixme to make RemoveManagedDependencies multi-module ready --- .../sbm/build/migration/actions/RemoveManagedDependencies.java | 1 + 1 file changed, 1 insertion(+) diff --git a/components/sbm-core/src/main/java/org/springframework/sbm/build/migration/actions/RemoveManagedDependencies.java b/components/sbm-core/src/main/java/org/springframework/sbm/build/migration/actions/RemoveManagedDependencies.java index ae50547de..b89571d27 100644 --- a/components/sbm-core/src/main/java/org/springframework/sbm/build/migration/actions/RemoveManagedDependencies.java +++ b/components/sbm-core/src/main/java/org/springframework/sbm/build/migration/actions/RemoveManagedDependencies.java @@ -20,6 +20,7 @@ public class RemoveManagedDependencies extends AbstractAction { @Override public void apply(ProjectContext context) { + //FIXME handle multi-module projects final List springManagedDependencies = context.getBuildFile() .getDeclaredDependencies(Compile) .stream()