diff --git a/build.gradle.kts b/build.gradle.kts index 367aabb7f5..26fec7a18d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -56,6 +56,7 @@ dependencies { testRuntimeOnly("com.fasterxml.jackson.datatype:jackson-datatype-jsr353") testRuntimeOnly("com.fasterxml.jackson.core:jackson-core") testRuntimeOnly("com.fasterxml.jackson.core:jackson-databind") + testRuntimeOnly("com.fasterxml.jackson.module:jackson-module-jaxb-annotations") testRuntimeOnly("org.apache.johnzon:johnzon-core:1.2.18") testRuntimeOnly("org.codehaus.groovy:groovy:latest.release") testRuntimeOnly("jakarta.annotation:jakarta.annotation-api:2.1.1") diff --git a/src/main/resources/META-INF/rewrite/jakarta-ee-9.yml b/src/main/resources/META-INF/rewrite/jakarta-ee-9.yml index af337163fa..9adba307be 100644 --- a/src/main/resources/META-INF/rewrite/jakarta-ee-9.yml +++ b/src/main/resources/META-INF/rewrite/jakarta-ee-9.yml @@ -918,6 +918,9 @@ recipeList: - org.openrewrite.java.ChangeType: oldFullyQualifiedTypeName: com.fasterxml.jackson.datatype.jsr353.JSR353Module newFullyQualifiedTypeName: com.fasterxml.jackson.datatype.jsonp.JSONPModule + - org.openrewrite.java.ChangeType: + oldFullyQualifiedTypeName: com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule + newFullyQualifiedTypeName: com.fasterxml.jackson.module.jakarta.xmlbind.JakartaXmlBindAnnotationModule --- type: specs.openrewrite.org/v1beta/recipe diff --git a/src/test/java/org/openrewrite/java/migrate/jakarta/JacksonJavaxtoJakartaTest.java b/src/test/java/org/openrewrite/java/migrate/jakarta/JacksonJavaxtoJakartaTest.java index c818ed55ab..1d9af9bc6c 100644 --- a/src/test/java/org/openrewrite/java/migrate/jakarta/JacksonJavaxtoJakartaTest.java +++ b/src/test/java/org/openrewrite/java/migrate/jakarta/JacksonJavaxtoJakartaTest.java @@ -17,6 +17,7 @@ import org.junit.jupiter.api.Test; import org.openrewrite.DocumentExample; +import org.openrewrite.Issue; import org.openrewrite.config.Environment; import org.openrewrite.java.JavaParser; import org.openrewrite.test.RecipeSpec; @@ -294,4 +295,40 @@ private JSONPModule getModule() { ) ); } + + @Issue("https://github.com/openrewrite/rewrite-migrate-java/issues/652") + @Test + void thatJaxbAnnotationModuleIsRewritten() { + rewriteRun( + spec -> spec.parser(JavaParser.fromJavaVersion().classpath( + "jackson-core", + "jackson-databind", + "jackson-module-jaxb-annotations")), + //language=java + java( + """ + import com.fasterxml.jackson.databind.ObjectMapper; + import com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule; + + public class JacksonTest { + void foo() { + ObjectMapper mapper = new ObjectMapper(); + mapper.registerModule(new JaxbAnnotationModule()); + } + } + """, + """ + import com.fasterxml.jackson.databind.ObjectMapper; + import com.fasterxml.jackson.module.jakarta.xmlbind.JakartaXmlBindAnnotationModule; + + public class JacksonTest { + void foo() { + ObjectMapper mapper = new ObjectMapper(); + mapper.registerModule(new JakartaXmlBindAnnotationModule()); + } + } + """ + ) + ); + } }