From b453412f9988af7c49c923c3cd3e7eda8e42b26d Mon Sep 17 00:00:00 2001 From: Matt J <28297283+ajohnsonz@users.noreply.github.com> Date: Mon, 29 Jan 2024 14:07:11 +0000 Subject: [PATCH] fix: prevent all referenced properties from updating to latest regardless of recipe --- .../gradle/UpgradeDependencyVersion.java | 3 ++ .../gradle/UpgradeDependencyVersionTest.java | 34 +++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/rewrite-gradle/src/main/java/org/openrewrite/gradle/UpgradeDependencyVersion.java b/rewrite-gradle/src/main/java/org/openrewrite/gradle/UpgradeDependencyVersion.java index f68a78ca514..bfa89a209e1 100644 --- a/rewrite-gradle/src/main/java/org/openrewrite/gradle/UpgradeDependencyVersion.java +++ b/rewrite-gradle/src/main/java/org/openrewrite/gradle/UpgradeDependencyVersion.java @@ -236,6 +236,9 @@ public boolean isAcceptable(SourceFile sourceFile, ExecutionContext ctx) { public org.openrewrite.properties.tree.Properties visitEntry(Properties.Entry entry, ExecutionContext ctx) { if (acc.buildDependencies.containsKey(entry.getKey()) && acc.gradleProject != null) { GroupArtifact groupArtifact = acc.buildDependencies.get(entry.getKey()); + if(groupArtifact == null || !dependencyMatcher.matches(groupArtifact.getGroupId(), groupArtifact.getArtifactId())) { + return entry; + } if (!StringUtils.isBlank(newVersion)) { String resolvedVersion; try { diff --git a/rewrite-gradle/src/test/java/org/openrewrite/gradle/UpgradeDependencyVersionTest.java b/rewrite-gradle/src/test/java/org/openrewrite/gradle/UpgradeDependencyVersionTest.java index c253875027a..d0ecb77bdad 100644 --- a/rewrite-gradle/src/test/java/org/openrewrite/gradle/UpgradeDependencyVersionTest.java +++ b/rewrite-gradle/src/test/java/org/openrewrite/gradle/UpgradeDependencyVersionTest.java @@ -666,4 +666,38 @@ void mapNotationGStringVariableInPropertiesFile() { ) ); } + + @Test + void globVersionsInPropertiesFileWithMultipleVersionsOnlyUpdatesCorrectProperty() { + rewriteRun( + spec -> spec.recipe(new UpgradeDependencyVersion("org.springframework.security", "*", "5.4.x", null)), + properties( + """ + springBootVersion=3.0.0 + springSecurityVersion=5.4.0 + """, + """ + springBootVersion=3.0.0 + springSecurityVersion=5.4.11 + """, + spec -> spec.path("gradle.properties") + ), + buildGradle( + """ + plugins { + id 'java' + } + + repositories { + mavenCentral() + } + + dependencies { + implementation("org.springframework.boot:spring-boot-starter-actuator:${springBootVersion}") + implementation("org.springframework.security:spring-security-oauth2-core:${springSecurityVersion}") + } + """ + ) + ); + } }