This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat-jakartaee-migration.git


The following commit(s) were added to refs/heads/main by this push:
     new ddc2f11  Additional Profile to Migrate Back to JEE8 from Jakarta EE
ddc2f11 is described below

commit ddc2f1173ae9da5204913aa20199b634941e6161
Author: Steffen Blaß <bla...@hdpgmbh.de>
AuthorDate: Tue Jul 12 12:02:28 2022 +0200

    Additional Profile to Migrate Back to JEE8 from Jakarta EE
---
 .gitignore                                         |  1 +
 .../apache/tomcat/jakartaee/ClassConverter.java    | 10 ++---
 .../org/apache/tomcat/jakartaee/EESpecProfile.java | 49 ++++++++++++++++++++--
 .../tomcat/jakartaee/LocalStrings.properties       |  3 +-
 4 files changed, 53 insertions(+), 10 deletions(-)

diff --git a/.gitignore b/.gitignore
index 2a968e1..f723270 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,3 +6,4 @@ target
 *.iml
 *.ipr
 *.iws
+/bin/
diff --git a/src/main/java/org/apache/tomcat/jakartaee/ClassConverter.java 
b/src/main/java/org/apache/tomcat/jakartaee/ClassConverter.java
index f6d08e2..da9ee42 100644
--- a/src/main/java/org/apache/tomcat/jakartaee/ClassConverter.java
+++ b/src/main/java/org/apache/tomcat/jakartaee/ClassConverter.java
@@ -26,7 +26,6 @@ import java.lang.instrument.IllegalClassFormatException;
 import java.security.ProtectionDomain;
 import java.util.logging.Level;
 import java.util.logging.Logger;
-
 import org.apache.bcel.classfile.ClassParser;
 import org.apache.bcel.classfile.Constant;
 import org.apache.bcel.classfile.ConstantUtf8;
@@ -100,10 +99,10 @@ public class ClassConverter implements Converter, 
ClassFileTransformer {
                         // Jakarta EE specification classes that exist in the 
container
                         String[] split = newString.split(";|<");
                         for (String current : split) {
-                            int pos = current.indexOf("jakarta/");
+                            int pos = current.indexOf(profile.getTarget() + 
"/");
                             boolean dotMode = false;
                             if (pos < 0) {
-                                pos = current.indexOf("jakarta.");
+                                pos = current.indexOf(profile.getTarget() + 
".");
                                 dotMode = true;
                             }
                             if (pos >= 0) {
@@ -115,14 +114,15 @@ public class ClassConverter implements Converter, 
ClassFileTransformer {
                                 if (loader.getResource(resourceName) == null) {
                                     if (logger.isLoggable(Level.FINE)) {
                                         logger.log(Level.FINE, 
sm.getString("classConverter.skipName",
+                                                profile.getSource(),
                                                 
current.substring(pos).replace('/','.')));
                                     }
                                     // Cancel the replacement as the 
replacement does not exist
                                     String originalFragment;
                                     if (dotMode) {
-                                        originalFragment = 
current.replace("jakarta.", "javax.");
+                                        originalFragment = 
current.replace(profile.getTarget() + ".", profile.getSource() + ".");
                                     } else {
-                                        originalFragment = 
current.replace("jakarta/", "javax/");
+                                        originalFragment = 
current.replace(profile.getTarget() + "/", profile.getSource() + "/");
                                     }
                                     newString = newString.replace(current, 
originalFragment);
                                 }
diff --git a/src/main/java/org/apache/tomcat/jakartaee/EESpecProfile.java 
b/src/main/java/org/apache/tomcat/jakartaee/EESpecProfile.java
index 36d201b..23eecbc 100644
--- a/src/main/java/org/apache/tomcat/jakartaee/EESpecProfile.java
+++ b/src/main/java/org/apache/tomcat/jakartaee/EESpecProfile.java
@@ -24,7 +24,8 @@ import java.util.regex.Pattern;
  */
 public enum EESpecProfile {
 
-    TOMCAT("javax([/\\.](annotation(?![/\\.]processing)" +
+    TOMCAT("javax", "jakarta", 
+            "javax([/\\.](annotation(?![/\\.]processing)" +
             "|ejb" +
             "|el" +
             "|mail" +
@@ -34,7 +35,33 @@ public enum EESpecProfile {
             "|transaction(?![/\\.]xa)" +
             "|websocket))"),
 
-    EE("javax([/\\.](activation" +
+    EE("javax", "jakarta", 
+            "javax([/\\.](activation" +
+            "|annotation(?![/\\.]processing)" +
+            "|batch" +
+            "|decorator" +
+            "|ejb" +
+            "|el" +
+            "|enterprise" +
+            "|faces" +
+            "|jms" +
+            "|json" +
+            "|jws" +
+            "|interceptor" +
+            "|inject" +
+            "|mail" +
+            "|management[/\\.]j2ee" +
+            "|persistence" +
+            "|resource" +
+            "|security[/\\.](auth[/\\.]message|enterprise|jacc)" +
+            "|servlet" +
+            "|transaction(?![/\\.]xa)" +
+            "|validation" +
+            "|websocket" +
+            "|ws[/\\.]rs" +
+            "|xml[/\\.](bind|soap|ws)))"),
+    JEE8("jakarta", "javax", 
+            "jakarta([/\\.](activation" +
             "|annotation(?![/\\.]processing)" +
             "|batch" +
             "|decorator" +
@@ -59,14 +86,28 @@ public enum EESpecProfile {
             "|ws[/\\.]rs" +
             "|xml[/\\.](bind|soap|ws)))");
 
+    private String source;
+    private String target;
     private Pattern pattern;
 
-    EESpecProfile(String pattern) {
+    EESpecProfile(String source, String target, String pattern) {
+        this.source = source;
+        this.target = target;
         this.pattern = Pattern.compile(pattern);
     }
 
     public String convert(String name) {
         Matcher m = pattern.matcher(name);
-        return m.replaceAll("jakarta$1");
+        return m.replaceAll(target + "$1");
+    }
+    
+    public String getSource()
+    {
+        return source;
+    }
+    
+    public String getTarget()
+    {
+        return target;
     }
 }
diff --git 
a/src/main/resources/org/apache/tomcat/jakartaee/LocalStrings.properties 
b/src/main/resources/org/apache/tomcat/jakartaee/LocalStrings.properties
index a4786c3..d3a63bc 100644
--- a/src/main/resources/org/apache/tomcat/jakartaee/LocalStrings.properties
+++ b/src/main/resources/org/apache/tomcat/jakartaee/LocalStrings.properties
@@ -15,7 +15,7 @@
 
 classConverter.converted=Migrated class [{0}]
 classConverter.noConversion=No conversion necessary for [{0}] 
-classConverter.skipName=Skip conversion of class usage from the javax 
namespace to [{0}] as it is not accessible to the classloader
+classConverter.skipName=Skip conversion of class usage from the [{0}] 
namespace to [{1}] as it is not accessible to the classloader
 
 migration.archive.complete=Migration finished for archive [{0}]
 migration.archive.memory=Migration starting for archive [{0}] using in memory 
copy
@@ -38,6 +38,7 @@ where options includes:\n\
 \    -profile=<profile name>\n\
 \                TOMCAT (default) to convert Java EE APIs provided by Tomcat\n\
 \                EE to convert all Java EE APIs\n\
+\                JEE8 to convert back to old Java EE8 APIs\n\
 \    -zipInMemory\n\
 \                By default zip format archives (.zip, jar, .war, .ear, 
etc.)\n\
 \                are processed as streams. This is more efficient but is not\n\


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to