From d0b34c55004c5941fec6a5dca539622af640544b Mon Sep 17 00:00:00 2001 From: Sakshi Chitnis Date: Wed, 1 Jul 2026 15:56:13 +0530 Subject: [PATCH] Fix Jakarta EE 10 web.xml migration --- .../META-INF/rewrite/jakarta-faces-3.yml | 20 ++++++---- .../JavaxWebXmlToJakartaWebXmlTest.java | 37 +++++++++++++++++++ 2 files changed, 49 insertions(+), 8 deletions(-) diff --git a/src/main/resources/META-INF/rewrite/jakarta-faces-3.yml b/src/main/resources/META-INF/rewrite/jakarta-faces-3.yml index 36e9bd259d..e3c2be46ef 100644 --- a/src/main/resources/META-INF/rewrite/jakarta-faces-3.yml +++ b/src/main/resources/META-INF/rewrite/jakarta-faces-3.yml @@ -197,6 +197,8 @@ tags: - faces - jsf preconditions: + - org.openrewrite.FindSourceFiles: + filePattern: '**/web.xml' - org.openrewrite.Singleton recipeList: - org.openrewrite.xml.ChangeTagAttribute: @@ -215,14 +217,16 @@ recipeList: oldValue: (?s).*xml/ns/javaee.* newValue: https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd regex: true - - org.openrewrite.text.FindAndReplace: - find: "javax." - replace: "jakarta." - filePattern: '**/web.xml' - - org.openrewrite.text.FindAndReplace: - find: "jakarta.sql." - replace: "javax.sql." - filePattern: '**/web.xml' + - org.openrewrite.xml.ChangeTagValue: + elementName: //* + oldValue: "javax\\." + newValue: "jakarta." + regex: true + - org.openrewrite.xml.ChangeTagValue: + elementName: //* + oldValue: "jakarta\\.sql\\." + newValue: "javax.sql." + regex: true --- type: specs.openrewrite.org/v1beta/recipe name: org.openrewrite.java.migrate.jakarta.JakartaFacesEcmaScript diff --git a/src/test/java/org/openrewrite/java/migrate/jakarta/JavaxWebXmlToJakartaWebXmlTest.java b/src/test/java/org/openrewrite/java/migrate/jakarta/JavaxWebXmlToJakartaWebXmlTest.java index 793fdd97ff..c898beba61 100644 --- a/src/test/java/org/openrewrite/java/migrate/jakarta/JavaxWebXmlToJakartaWebXmlTest.java +++ b/src/test/java/org/openrewrite/java/migrate/jakarta/JavaxWebXmlToJakartaWebXmlTest.java @@ -179,6 +179,43 @@ void migrateMultilineSchemaLocation() { ); } + @Test + void jakartaEE10UpdatesWebXmlToVersion6AfterJavaxReplacement() { + rewriteRun( + spec -> spec.recipeFromResources("org.openrewrite.java.migrate.jakarta.JakartaEE10"), + //language=xml + xml( + """ + + + example-project + + javax.faces.PROJECT_STAGE + Production + + + """, + """ + + + example-project + + jakarta.faces.PROJECT_STAGE + Production + + + """, + sourceSpecs -> sourceSpecs.path("src/main/webapp/WEB-INF/web.xml") + ) + ); + } + @Nested class NoChanges { @Test