diff --git a/rewrite-gradle/src/main/java/org/openrewrite/gradle/ChangeDependencyConfiguration.java b/rewrite-gradle/src/main/java/org/openrewrite/gradle/ChangeDependencyConfiguration.java index ad6747d3a41..f7e1674bd3d 100644 --- a/rewrite-gradle/src/main/java/org/openrewrite/gradle/ChangeDependencyConfiguration.java +++ b/rewrite-gradle/src/main/java/org/openrewrite/gradle/ChangeDependencyConfiguration.java @@ -70,7 +70,7 @@ public String getInstanceNameSuffix() { @Override public String getDescription() { return "A common example is the need to change `compile` to `api`/`implementation` as " + - "[part of the move](https://docs.gradle.org/current/userguide/upgrading_version_6.html) to Gradle 7.x and later."; + "[part of the move](https://docs.gradle.org/current/userguide/upgrading_version_6.html) to Gradle 7.x and later."; } @Override @@ -96,10 +96,13 @@ public J.MethodInvocation visitMethodInvocation(J.MethodInvocation method, Execu GradleDependency.Matcher gradleDependencyMatcher = new GradleDependency.Matcher() .configuration(configuration); - if (!(gradleDependencyMatcher.get(getCursor()).isPresent() || dependencyDsl.matches(m))) { + boolean matchesConfiguration = gradleDependencyMatcher.get(getCursor()).isPresent(); + if (!matchesConfiguration && configuration != null) { + return m; + } + if (!matchesConfiguration && !dependencyDsl.matches(m)) { return m; } - DependencyMatcher dependencyMatcher = new DependencyMatcher(groupId, artifactId, null); List args = m.getArguments(); diff --git a/rewrite-gradle/src/main/java/org/openrewrite/gradle/trait/GradleDependency.java b/rewrite-gradle/src/main/java/org/openrewrite/gradle/trait/GradleDependency.java index e4a806cdd25..fd73e81388d 100644 --- a/rewrite-gradle/src/main/java/org/openrewrite/gradle/trait/GradleDependency.java +++ b/rewrite-gradle/src/main/java/org/openrewrite/gradle/trait/GradleDependency.java @@ -93,7 +93,7 @@ public Matcher artifactId(@Nullable String artifactId) { return null; } - if (!(StringUtils.isBlank(configuration) || methodInvocation.getSimpleName().equals(configuration))) { + if (!StringUtils.isBlank(configuration) && !methodInvocation.getSimpleName().equals(configuration)) { return null; } diff --git a/rewrite-gradle/src/test/java/org/openrewrite/gradle/ChangeDependencyConfigurationTest.java b/rewrite-gradle/src/test/java/org/openrewrite/gradle/ChangeDependencyConfigurationTest.java index 3c1d0433699..38702d388f0 100644 --- a/rewrite-gradle/src/test/java/org/openrewrite/gradle/ChangeDependencyConfigurationTest.java +++ b/rewrite-gradle/src/test/java/org/openrewrite/gradle/ChangeDependencyConfigurationTest.java @@ -388,4 +388,37 @@ void dependenciesBlockInFreestandingScript() { ) ); } + + @Test + void changeWithWildcards() { + rewriteRun( + spec -> spec.recipe(new ChangeDependencyConfiguration("*", "*", "testImplementation", "testRuntimeOnly")), + buildGradle( + """ + plugins { + id 'java-library' + } + repositories { + mavenCentral() + } + dependencies { + implementation 'org.openrewrite:rewrite-maven:latest.release' + testRuntimeOnly 'org.openrewrite:rewrite-gradle:latest.release' + } + """, + """ + plugins { + id 'java-library' + } + repositories { + mavenCentral() + } + dependencies { + implementation 'org.openrewrite:rewrite-maven:latest.release' + testImplementation 'org.openrewrite:rewrite-gradle:latest.release' + } + """ + ) + ); + } }