#159 - Remove Spring Framework/Reactor from dependency upgrade process.
Also, consider groupId when resolving dependencies to avoid artifactId clashes.
This commit is contained in:
@@ -54,8 +54,6 @@ public class Dependencies {
|
|||||||
|
|
||||||
public static final Dependency QUERYDSL = Dependency.of("Querydsl", "com.querydsl:querydsl-jpa");
|
public static final Dependency QUERYDSL = Dependency.of("Querydsl", "com.querydsl:querydsl-jpa");
|
||||||
|
|
||||||
public static final Dependency PROJECT_REACTOR = Dependency.of("Project Reactor", "io.projectreactor:reactor-bom");
|
|
||||||
|
|
||||||
public static final Dependency RXJAVA1 = Dependency.of("RxJava", "io.reactivex:rxjava");
|
public static final Dependency RXJAVA1 = Dependency.of("RxJava", "io.reactivex:rxjava");
|
||||||
|
|
||||||
public static final Dependency RXJAVA2 = Dependency.of("RxJava", "io.reactivex.rxjava2:rxjava");
|
public static final Dependency RXJAVA2 = Dependency.of("RxJava", "io.reactivex.rxjava2:rxjava");
|
||||||
@@ -65,9 +63,6 @@ public class Dependencies {
|
|||||||
public static final Dependency RXJAVA_RS = Dependency.of("RxJava Reactive Streams",
|
public static final Dependency RXJAVA_RS = Dependency.of("RxJava Reactive Streams",
|
||||||
"io.reactivex:rxjava-reactive-streams");
|
"io.reactivex:rxjava-reactive-streams");
|
||||||
|
|
||||||
public static final Dependency SPRING_FRAMEWORK = Dependency.of("Spring Framework",
|
|
||||||
"org.springframework:spring-core");
|
|
||||||
|
|
||||||
public static final Dependency SPRING_HATEOAS = Dependency.of("Spring Hateoas",
|
public static final Dependency SPRING_HATEOAS = Dependency.of("Spring Hateoas",
|
||||||
"org.springframework.hateoas:spring-hateoas");
|
"org.springframework.hateoas:spring-hateoas");
|
||||||
|
|
||||||
@@ -136,9 +131,10 @@ public class Dependencies {
|
|||||||
.orElseThrow(() -> new IllegalArgumentException(String.format("No such dependency: %s", name)));
|
.orElseThrow(() -> new IllegalArgumentException(String.format("No such dependency: %s", name)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Dependency getRequiredByArtifactId(String artifactId) {
|
public static Dependency getRequiredDepependency(String groupId, String artifactId) {
|
||||||
|
|
||||||
return dependencies.stream().filter(it -> it.getArtifactId().equals(artifactId)).findFirst()
|
return dependencies.stream().filter(it -> it.getGroupId().equals(groupId) && it.getArtifactId().equals(artifactId))
|
||||||
|
.findFirst()
|
||||||
.orElseThrow(() -> new IllegalArgumentException(String.format("No such dependency: %s", artifactId)));
|
.orElseThrow(() -> new IllegalArgumentException(String.format("No such dependency: %s", artifactId)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -98,7 +98,8 @@ public class DependencyOperations {
|
|||||||
|
|
||||||
DependencyVersion currentVersion = currentDependencies.get(dependency);
|
DependencyVersion currentVersion = currentDependencies.get(dependency);
|
||||||
List<DependencyVersion> versions = getAvailableVersions(dependency);
|
List<DependencyVersion> versions = getAvailableVersions(dependency);
|
||||||
DependencyUpgradeProposal proposal = getDependencyUpgradeProposal(iteration, currentVersion, versions);
|
DependencyUpgradeProposal proposal = getDependencyUpgradeProposal(iteration, dependency, currentVersion,
|
||||||
|
versions);
|
||||||
|
|
||||||
proposals.put(dependency, proposal);
|
proposals.put(dependency, proposal);
|
||||||
});
|
});
|
||||||
@@ -223,9 +224,9 @@ public class DependencyOperations {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected static DependencyUpgradeProposal getDependencyUpgradeProposal(Iteration iteration,
|
protected static DependencyUpgradeProposal getDependencyUpgradeProposal(Iteration iteration,
|
||||||
DependencyVersion currentVersion, List<DependencyVersion> allVersions) {
|
Dependency dependency, DependencyVersion currentVersion, List<DependencyVersion> allVersions) {
|
||||||
|
|
||||||
DependencyVersion latestMinor = findLatestMinor(iteration, currentVersion, allVersions);
|
DependencyVersion latestMinor = findLatestMinor(iteration, dependency, currentVersion, allVersions);
|
||||||
DependencyVersion latest = findLatest(iteration, allVersions);
|
DependencyVersion latest = findLatest(iteration, allVersions);
|
||||||
List<DependencyVersion> newerVersions = allVersions.stream() //
|
List<DependencyVersion> newerVersions = allVersions.stream() //
|
||||||
.sorted() //
|
.sorted() //
|
||||||
@@ -249,7 +250,8 @@ public class DependencyOperations {
|
|||||||
() -> new IllegalArgumentException("Cannot determine new latest version from " + availableVersions));
|
() -> new IllegalArgumentException("Cannot determine new latest version from " + availableVersions));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static DependencyVersion findLatestMinor(Iteration iteration, DependencyVersion currentVersion,
|
private static DependencyVersion findLatestMinor(Iteration iteration, Dependency dependency,
|
||||||
|
DependencyVersion currentVersion,
|
||||||
List<DependencyVersion> availableVersions) {
|
List<DependencyVersion> availableVersions) {
|
||||||
|
|
||||||
return availableVersions.stream().filter(it -> {
|
return availableVersions.stream().filter(it -> {
|
||||||
@@ -275,7 +277,9 @@ public class DependencyOperations {
|
|||||||
}) //
|
}) //
|
||||||
.max(DependencyVersion::compareTo) //
|
.max(DependencyVersion::compareTo) //
|
||||||
.orElseThrow(
|
.orElseThrow(
|
||||||
() -> new IllegalArgumentException("Cannot determine new minor version from " + availableVersions));
|
() -> new IllegalArgumentException(String.format(
|
||||||
|
"Cannot determine new minor version from %s for %s (%s). Current version: %s", availableVersions,
|
||||||
|
dependency.getName(), dependency.getArtifactId(), currentVersion.getIdentifier())));
|
||||||
}
|
}
|
||||||
|
|
||||||
DependencyVersions getCurrentDependencies(Project project) {
|
DependencyVersions getCurrentDependencies(Project project) {
|
||||||
@@ -296,7 +300,7 @@ public class DependencyOperations {
|
|||||||
Dependency dependency = projectDependency.getDependency();
|
Dependency dependency = projectDependency.getDependency();
|
||||||
|
|
||||||
if (!((project == Projects.MONGO_DB && projectDependency.getProperty().equals("mongo.reactivestreams"))
|
if (!((project == Projects.MONGO_DB && projectDependency.getProperty().equals("mongo.reactivestreams"))
|
||||||
|| project == Projects.NEO4J)) {
|
|| project == Projects.NEO4J || project == Projects.BUILD)) {
|
||||||
|
|
||||||
if (it.getDependencyVersion(dependency.getArtifactId()) == null
|
if (it.getDependencyVersion(dependency.getArtifactId()) == null
|
||||||
&& it.getManagedDependency(dependency.getArtifactId()) == null) {
|
&& it.getManagedDependency(dependency.getArtifactId()) == null) {
|
||||||
|
|||||||
@@ -162,8 +162,9 @@ public class DependencyUpgradeProposals {
|
|||||||
throw new IllegalArgumentException(String.format("Unexpected key: %s", k));
|
throw new IllegalArgumentException(String.format("Unexpected key: %s", k));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String groupId = matcher.group(1);
|
||||||
String artifactId = matcher.group(2);
|
String artifactId = matcher.group(2);
|
||||||
Dependency dependency = Dependencies.getRequiredByArtifactId(artifactId);
|
Dependency dependency = Dependencies.getRequiredDepependency(groupId, artifactId);
|
||||||
|
|
||||||
result.put(dependency, DependencyVersion.of(v.toString()));
|
result.put(dependency, DependencyVersion.of(v.toString()));
|
||||||
|
|
||||||
|
|||||||
@@ -48,13 +48,12 @@ public class ProjectDependencies implements Streamable<ProjectDependencies.Proje
|
|||||||
config.add(Projects.BUILD, ProjectDependency.ofProperty("kotlin", Dependencies.KOTLIN));
|
config.add(Projects.BUILD, ProjectDependency.ofProperty("kotlin", Dependencies.KOTLIN));
|
||||||
config.add(Projects.BUILD, ProjectDependency.ofProperty("kotlin-coroutines", Dependencies.KOTLIN_COROUTINES));
|
config.add(Projects.BUILD, ProjectDependency.ofProperty("kotlin-coroutines", Dependencies.KOTLIN_COROUTINES));
|
||||||
config.add(Projects.BUILD, ProjectDependency.ofProperty("mockito", Dependencies.MOCKITO));
|
config.add(Projects.BUILD, ProjectDependency.ofProperty("mockito", Dependencies.MOCKITO));
|
||||||
|
config.add(Projects.BUILD, ProjectDependency.ofProperty("mockk", Dependencies.MOCKK));
|
||||||
config.add(Projects.BUILD, ProjectDependency.ofProperty("querydsl", Dependencies.QUERYDSL));
|
config.add(Projects.BUILD, ProjectDependency.ofProperty("querydsl", Dependencies.QUERYDSL));
|
||||||
config.add(Projects.BUILD, ProjectDependency.ofProperty("reactor", Dependencies.PROJECT_REACTOR));
|
|
||||||
config.add(Projects.BUILD, ProjectDependency.ofProperty("rxjava", Dependencies.RXJAVA1));
|
config.add(Projects.BUILD, ProjectDependency.ofProperty("rxjava", Dependencies.RXJAVA1));
|
||||||
config.add(Projects.BUILD, ProjectDependency.ofProperty("rxjava2", Dependencies.RXJAVA2));
|
config.add(Projects.BUILD, ProjectDependency.ofProperty("rxjava2", Dependencies.RXJAVA2));
|
||||||
config.add(Projects.BUILD, ProjectDependency.ofProperty("rxjava3", Dependencies.RXJAVA3));
|
config.add(Projects.BUILD, ProjectDependency.ofProperty("rxjava3", Dependencies.RXJAVA3));
|
||||||
config.add(Projects.BUILD, ProjectDependency.ofProperty("rxjava-reactive-streams", Dependencies.RXJAVA_RS));
|
config.add(Projects.BUILD, ProjectDependency.ofProperty("rxjava-reactive-streams", Dependencies.RXJAVA_RS));
|
||||||
config.add(Projects.BUILD, ProjectDependency.ofProperty("spring", Dependencies.SPRING_FRAMEWORK));
|
|
||||||
config.add(Projects.BUILD, ProjectDependency.ofProperty("spring-hateoas", Dependencies.SPRING_HATEOAS));
|
config.add(Projects.BUILD, ProjectDependency.ofProperty("spring-hateoas", Dependencies.SPRING_HATEOAS));
|
||||||
config.add(Projects.BUILD, ProjectDependency.ofProperty("spring-plugin", Dependencies.SPRING_PLUGIN));
|
config.add(Projects.BUILD, ProjectDependency.ofProperty("spring-plugin", Dependencies.SPRING_PLUGIN));
|
||||||
config.add(Projects.BUILD, ProjectDependency.ofProperty("testcontainers", Dependencies.TESTCONTAINERS));
|
config.add(Projects.BUILD, ProjectDependency.ofProperty("testcontainers", Dependencies.TESTCONTAINERS));
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ class DependencyOperationsIntegrationTests extends AbstractIntegrationTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
void shouldDiscoverDependencyVersions() {
|
void shouldDiscoverDependencyVersions() {
|
||||||
assertThat(operations.getAvailableVersions(Dependencies.PROJECT_REACTOR)).isNotEmpty();
|
assertThat(operations.getAvailableVersions(Dependencies.SPRING_HATEOAS)).isNotEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ class DependencyOperationsUnitTests {
|
|||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
DependencyUpgradeProposal proposal = DependencyOperations.getDependencyUpgradeProposal(Iteration.SR1,
|
DependencyUpgradeProposal proposal = DependencyOperations.getDependencyUpgradeProposal(Iteration.SR1,
|
||||||
DependencyVersion.of("5.7.0"), availableVersions);
|
Dependencies.JUNIT5, DependencyVersion.of("5.7.0"), availableVersions);
|
||||||
|
|
||||||
assertThat(proposal.getCurrent()).isEqualTo(DependencyVersion.of("5.7.0"));
|
assertThat(proposal.getCurrent()).isEqualTo(DependencyVersion.of("5.7.0"));
|
||||||
assertThat(proposal.getLatestMinor()).isEqualTo(DependencyVersion.of("5.7.0"));
|
assertThat(proposal.getLatestMinor()).isEqualTo(DependencyVersion.of("5.7.0"));
|
||||||
@@ -58,7 +58,7 @@ class DependencyOperationsUnitTests {
|
|||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
DependencyUpgradeProposal proposal = DependencyOperations.getDependencyUpgradeProposal(Iteration.SR1,
|
DependencyUpgradeProposal proposal = DependencyOperations.getDependencyUpgradeProposal(Iteration.SR1,
|
||||||
DependencyVersion.of("5.7.0"), availableVersions);
|
Dependencies.JUNIT5, DependencyVersion.of("5.7.0"), availableVersions);
|
||||||
|
|
||||||
assertThat(proposal.getCurrent()).isEqualTo(DependencyVersion.of("5.7.0"));
|
assertThat(proposal.getCurrent()).isEqualTo(DependencyVersion.of("5.7.0"));
|
||||||
assertThat(proposal.getLatestMinor()).isEqualTo(DependencyVersion.of("5.7.1"));
|
assertThat(proposal.getLatestMinor()).isEqualTo(DependencyVersion.of("5.7.1"));
|
||||||
@@ -75,7 +75,7 @@ class DependencyOperationsUnitTests {
|
|||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
DependencyUpgradeProposal proposal = DependencyOperations.getDependencyUpgradeProposal(Iteration.M1,
|
DependencyUpgradeProposal proposal = DependencyOperations.getDependencyUpgradeProposal(Iteration.M1,
|
||||||
DependencyVersion.of("5.7.0"), availableVersions);
|
Dependencies.JUNIT5, DependencyVersion.of("5.7.0"), availableVersions);
|
||||||
|
|
||||||
assertThat(proposal.getCurrent()).isEqualTo(DependencyVersion.of("5.7.0"));
|
assertThat(proposal.getCurrent()).isEqualTo(DependencyVersion.of("5.7.0"));
|
||||||
assertThat(proposal.getLatestMinor()).isEqualTo(DependencyVersion.of("5.7.1"));
|
assertThat(proposal.getLatestMinor()).isEqualTo(DependencyVersion.of("5.7.1"));
|
||||||
@@ -92,7 +92,7 @@ class DependencyOperationsUnitTests {
|
|||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
DependencyUpgradeProposal proposal = DependencyOperations.getDependencyUpgradeProposal(Iteration.SR1,
|
DependencyUpgradeProposal proposal = DependencyOperations.getDependencyUpgradeProposal(Iteration.SR1,
|
||||||
DependencyVersion.of("5.7.1"), availableVersions);
|
Dependencies.JUNIT5, DependencyVersion.of("5.7.1"), availableVersions);
|
||||||
|
|
||||||
assertThat(proposal.getNewerVersions()).extracting(DependencyVersion::getIdentifier).containsExactly("5.7.2-M2",
|
assertThat(proposal.getNewerVersions()).extracting(DependencyVersion::getIdentifier).containsExactly("5.7.2-M2",
|
||||||
"5.7.2", "5.8.0");
|
"5.7.2", "5.8.0");
|
||||||
@@ -107,7 +107,7 @@ class DependencyOperationsUnitTests {
|
|||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
DependencyUpgradeProposal proposal = DependencyOperations.getDependencyUpgradeProposal(Iteration.M1,
|
DependencyUpgradeProposal proposal = DependencyOperations.getDependencyUpgradeProposal(Iteration.M1,
|
||||||
DependencyVersion.of("5.7.1"), availableVersions);
|
Dependencies.JUNIT5, DependencyVersion.of("5.7.1"), availableVersions);
|
||||||
|
|
||||||
assertThat(proposal.getLatest()).extracting(DependencyVersion::getIdentifier).isEqualTo("5.7.2-M2");
|
assertThat(proposal.getLatest()).extracting(DependencyVersion::getIdentifier).isEqualTo("5.7.2-M2");
|
||||||
assertThat(proposal.getProposal()).extracting(DependencyVersion::getIdentifier).isEqualTo("5.7.2-M2");
|
assertThat(proposal.getProposal()).extracting(DependencyVersion::getIdentifier).isEqualTo("5.7.2-M2");
|
||||||
@@ -123,7 +123,7 @@ class DependencyOperationsUnitTests {
|
|||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
DependencyUpgradeProposal proposal = DependencyOperations.getDependencyUpgradeProposal(Iteration.RC1,
|
DependencyUpgradeProposal proposal = DependencyOperations.getDependencyUpgradeProposal(Iteration.RC1,
|
||||||
DependencyVersion.of("5.7.1"), availableVersions);
|
Dependencies.JUNIT5, DependencyVersion.of("5.7.1"), availableVersions);
|
||||||
|
|
||||||
assertThat(proposal.getLatest()).extracting(DependencyVersion::getIdentifier).isEqualTo("5.7.1");
|
assertThat(proposal.getLatest()).extracting(DependencyVersion::getIdentifier).isEqualTo("5.7.1");
|
||||||
assertThat(proposal.getProposal()).extracting(DependencyVersion::getIdentifier).isEqualTo("5.7.1");
|
assertThat(proposal.getProposal()).extracting(DependencyVersion::getIdentifier).isEqualTo("5.7.1");
|
||||||
|
|||||||
@@ -38,11 +38,13 @@ class DependencyUpgradeProposalsUnitTests {
|
|||||||
properties.put("dependency.train", "Pascal");
|
properties.put("dependency.train", "Pascal");
|
||||||
properties.put("dependency.iteration", "M1");
|
properties.put("dependency.iteration", "M1");
|
||||||
properties.put("dependency[org.assertj:assertj-core]", "3.18.1");
|
properties.put("dependency[org.assertj:assertj-core]", "3.18.1");
|
||||||
|
properties.put("dependency[io.reactivex.rxjava3:rxjava]", "1.2.3");
|
||||||
|
|
||||||
DependencyVersions dependencies = DependencyUpgradeProposals
|
DependencyVersions dependencies = DependencyUpgradeProposals
|
||||||
.fromProperties(ReleaseTrains.PASCAL.getIteration(Iteration.M1), properties);
|
.fromProperties(ReleaseTrains.PASCAL.getIteration(Iteration.M1), properties);
|
||||||
|
|
||||||
assertThat(dependencies.getVersions()).hasSize(1).containsEntry(Dependencies.ASSERTJ,
|
assertThat(dependencies.getVersions()).hasSize(2)
|
||||||
DependencyVersion.of("3.18.1"));
|
.containsEntry(Dependencies.ASSERTJ, DependencyVersion.of("3.18.1"))
|
||||||
|
.containsEntry(Dependencies.RXJAVA3, DependencyVersion.of("1.2.3"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user