diff --git a/build.gradle.kts b/build.gradle.kts index 1c66139..95dba1e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -43,6 +43,7 @@ dependencies { testImplementation("org.junit.jupiter:junit-jupiter-params:latest.release") testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:latest.release") + testImplementation("org.openrewrite:rewrite-kotlin:${rewriteVersion}") testImplementation("org.openrewrite:rewrite-maven") testImplementation("org.openrewrite:rewrite-test") testImplementation("org.openrewrite:rewrite-java-tck") diff --git a/src/main/java/org/openrewrite/java/logging/ParameterizedLogging.java b/src/main/java/org/openrewrite/java/logging/ParameterizedLogging.java index 19c2c56..10703b9 100644 --- a/src/main/java/org/openrewrite/java/logging/ParameterizedLogging.java +++ b/src/main/java/org/openrewrite/java/logging/ParameterizedLogging.java @@ -30,6 +30,7 @@ import org.openrewrite.java.tree.J; import org.openrewrite.java.tree.JavaType; import org.openrewrite.java.tree.TypeUtils; +import org.openrewrite.staticanalysis.kotlin.KotlinFileChecker; import java.util.*; @@ -68,7 +69,10 @@ public Set getTags() { @Override public TreeVisitor getVisitor() { - return Preconditions.check(new UsesMethod<>(methodPattern, true), new JavaIsoVisitor() { + TreeVisitor preconditions = Preconditions.and( + new UsesMethod<>(methodPattern, true), + Preconditions.not(new KotlinFileChecker<>())); + return Preconditions.check(preconditions, new JavaIsoVisitor() { private final MethodMatcher matcher = new MethodMatcher(methodPattern, true); private final RemoveToStringVisitor removeToStringVisitor = new RemoveToStringVisitor(); diff --git a/src/test/java/org/openrewrite/java/logging/ParameterizedLoggingTest.java b/src/test/java/org/openrewrite/java/logging/ParameterizedLoggingTest.java index dba58c2..75670b4 100644 --- a/src/test/java/org/openrewrite/java/logging/ParameterizedLoggingTest.java +++ b/src/test/java/org/openrewrite/java/logging/ParameterizedLoggingTest.java @@ -20,10 +20,12 @@ import org.openrewrite.InMemoryExecutionContext; import org.openrewrite.Issue; import org.openrewrite.java.JavaParser; +import org.openrewrite.kotlin.KotlinParser; import org.openrewrite.test.RecipeSpec; import org.openrewrite.test.RewriteTest; import static org.openrewrite.java.Assertions.java; +import static org.openrewrite.kotlin.Assertions.kotlin; @SuppressWarnings({ "EmptyTryBlock", @@ -613,15 +615,35 @@ static void method(Logger logger, Marker marker, String name) { } """, """ - import org.slf4j.Logger; - import org.slf4j.Marker; + import org.slf4j.Logger; + import org.slf4j.Marker; - class Test { - static void method(Logger logger, Marker marker, String name) { - logger.info(marker, "Hello {}, nice to meet you {}", name, name); - } - } - """ + class Test { + static void method(Logger logger, Marker marker, String name) { + logger.info(marker, "Hello {}, nice to meet you {}", name, name); + } + } + """ + ) + ); + } + + @Test + void kotlinStringTemplateSkipped() { + rewriteRun( + spec -> spec + .recipe(new ParameterizedLogging("org.slf4j.Logger info(..)", false)) + .parser(KotlinParser.builder().classpathFromResources(new InMemoryExecutionContext(), "slf4j-api-2.1")), + //language=kotlin + kotlin( + """ + import org.slf4j.Logger + + fun main(logger: Logger, name: String) { + logger.info("Hello $name") + logger.info("Hello " + name) + } + """ ) ); }