From 2df88974cbd6e9802890e9faae8942966db4f9de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Kwiecin=CC=81ski?= Date: Sat, 30 Mar 2024 21:37:00 +0100 Subject: [PATCH] Simplify the code --- README.md | 2 +- .../mavensympathy/SympathyForMrMavenTask.kt | 25 ++++----- .../mavensympathy/IntegrationTest.kt | 51 ++++++++++++++++++- 3 files changed, 61 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index eebf975..2676ba0 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ plugins { ```
-Version Catalog entry +Version Catalog ```toml usefulness-maven-sympathy = { id = "io.github.usefulness.maven-sympathy", version = "{{version}}" } diff --git a/maven-sympathy/src/main/kotlin/io/github/usefulness/mavensympathy/SympathyForMrMavenTask.kt b/maven-sympathy/src/main/kotlin/io/github/usefulness/mavensympathy/SympathyForMrMavenTask.kt index 888dcdc..09e0f76 100644 --- a/maven-sympathy/src/main/kotlin/io/github/usefulness/mavensympathy/SympathyForMrMavenTask.kt +++ b/maven-sympathy/src/main/kotlin/io/github/usefulness/mavensympathy/SympathyForMrMavenTask.kt @@ -38,21 +38,18 @@ public open class SympathyForMrMavenTask @Inject constructor(objectFactory: Obje val errorMessages = mutableListOf() configurationWithDependencies.get().forEach { (name, root) -> - root.dependencies.asSequence() - .filterIsInstance() - .filter { it.requested is ModuleComponentSelector } - .forEach { rdr -> - val requested = rdr.requested as? ModuleComponentSelector - val selected = rdr.selected - val requestedVersion = requested?.version - val selectedVersion = selected.moduleVersion?.version - if (!requestedVersion.isNullOrBlank() && requestedVersion != selectedVersion) { - val errorMessage = "[$name] dependency $requested version changed $requestedVersion -> $selectedVersion" - errorMessages.add(errorMessage) - logger.error(errorMessage) - fail = true - } + root.dependencies.filterIsInstance().forEach perDependency@{ rdr -> + val requested = rdr.requested as? ModuleComponentSelector ?: return@perDependency + val selected = rdr.selected + val requestedVersion = requested.version + val selectedVersion = selected.moduleVersion?.version + if (!requestedVersion.isNullOrBlank() && requestedVersion != selectedVersion) { + val errorMessage = "[$name] dependency $requested version changed $requestedVersion -> $selectedVersion" + errorMessages.add(errorMessage) + logger.error(errorMessage) + fail = true } + } } val report = outputFile.get().asFile if (fail) { diff --git a/maven-sympathy/src/test/kotlin/io/github/usefulness/mavensympathy/IntegrationTest.kt b/maven-sympathy/src/test/kotlin/io/github/usefulness/mavensympathy/IntegrationTest.kt index 0220e0f..3153887 100644 --- a/maven-sympathy/src/test/kotlin/io/github/usefulness/mavensympathy/IntegrationTest.kt +++ b/maven-sympathy/src/test/kotlin/io/github/usefulness/mavensympathy/IntegrationTest.kt @@ -70,7 +70,54 @@ class IntegrationTest { } @Test - fun ownUpgrade() { + fun boms() { + rootDirectory.resolve("build.gradle") { + // language=groovy + writeText( + """ + plugins { + id("java-library") + id("io.github.usefulness.maven-sympathy") + } + + dependencies { + implementation(platform("com.squareup.retrofit2:retrofit-bom:2.11.0") ) + implementation("com.squareup.retrofit2:retrofit") + implementation("com.squareup.retrofit2:converter-jackson") + implementation("com.squareup.okhttp3:okhttp:3.14.8") + } + """.trimIndent(), + ) + } + val result = runGradle(projectDir = rootDirectory, shouldFail = true) + assertThat(result.output).contains("dependency com.squareup.okhttp3:okhttp:3.14.8 version changed 3.14.8 -> 3.14.9") + assertThat(result.task(":sympathyForMrMaven")?.outcome).isEqualTo(TaskOutcome.FAILED) + + rootDirectory.resolve("build.gradle") { + // language=groovy + writeText( + """ + plugins { + id("java-library") + id("io.github.usefulness.maven-sympathy") + } + + dependencies { + implementation(platform("com.squareup.retrofit2:retrofit-bom:2.11.0") ) + implementation("com.squareup.retrofit2:retrofit") + implementation("com.squareup.retrofit2:converter-jackson") + implementation("com.squareup.okhttp3:okhttp:3.14.9") + } + """.trimIndent(), + ) + } + val reRunResult = runGradle(projectDir = rootDirectory) + assertThat(reRunResult.output).doesNotContain("changed to") + assertThat(reRunResult.task(":sympathyForMrMaven")?.outcome).isEqualTo(TaskOutcome.SUCCESS) + } + + @Test + fun bumpViaOwnDependency() { rootDirectory.resolve("build.gradle") { // language=groovy writeText( @@ -93,7 +140,7 @@ class IntegrationTest { } @Test - fun automaticBump() { + fun bumpViaTransitiveDependency() { rootDirectory.resolve("build.gradle") { // language=groovy writeText(