You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2020/06/13 23:23:51 UTC

[tomee-patch-plugin] 01/11: Update specific annotation values that reference javax

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

dblevins pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tomee-patch-plugin.git

commit 1ffab8d69d1638d63c059d0549cc2be40368b6a3
Author: David Blevins <da...@gmail.com>
AuthorDate: Fri Jun 12 19:44:00 2020 -0700

    Update specific annotation values that reference javax
---
 .../tomee/patch/core/AnnotationTransformer.java    | 16 +++++++++++++++
 .../{AnnotationTransformer.java => Replace.java}   | 23 +++++++++++-----------
 2 files changed, 27 insertions(+), 12 deletions(-)

diff --git a/tomee-patch-core/src/main/java/org/apache/tomee/patch/core/AnnotationTransformer.java b/tomee-patch-core/src/main/java/org/apache/tomee/patch/core/AnnotationTransformer.java
index 5269b93..c9ba8c4 100644
--- a/tomee-patch-core/src/main/java/org/apache/tomee/patch/core/AnnotationTransformer.java
+++ b/tomee-patch-core/src/main/java/org/apache/tomee/patch/core/AnnotationTransformer.java
@@ -34,4 +34,20 @@ public class AnnotationTransformer extends AnnotationVisitor {
         return new AnnotationTransformer(this.api, super.visitArray(name));
     }
 
+    @Override
+    public void visit(final String name, final Object value) {
+        if (!(value instanceof String)) {
+            super.visit(name, value);
+            return;
+        }
+
+        final String updated = new Replace((String) value)
+                .prefix("{javax.validation.", "{jakarta.validation.")
+                .prefix("javax.persistence.", "jakarta.persistence.")
+                .prefix("javax.xml.ws.", "jakarta.xml.ws.")
+                .get();
+
+        super.visit(name, updated);
+    }
+
 }
diff --git a/tomee-patch-core/src/main/java/org/apache/tomee/patch/core/AnnotationTransformer.java b/tomee-patch-core/src/main/java/org/apache/tomee/patch/core/Replace.java
similarity index 59%
copy from tomee-patch-core/src/main/java/org/apache/tomee/patch/core/AnnotationTransformer.java
copy to tomee-patch-core/src/main/java/org/apache/tomee/patch/core/Replace.java
index 5269b93..352190d 100644
--- a/tomee-patch-core/src/main/java/org/apache/tomee/patch/core/AnnotationTransformer.java
+++ b/tomee-patch-core/src/main/java/org/apache/tomee/patch/core/Replace.java
@@ -16,22 +16,21 @@
  */
 package org.apache.tomee.patch.core;
 
-import org.objectweb.asm.AnnotationVisitor;
+public class Replace {
+    private String text;
 
-public class AnnotationTransformer extends AnnotationVisitor {
-
-    public AnnotationTransformer(final int api, final AnnotationVisitor annotationVisitor) {
-        super(api, annotationVisitor);
+    public Replace(final String text) {
+        this.text = text;
     }
 
-    @Override
-    public AnnotationVisitor visitAnnotation(final String name, final String descriptor) {
-        return new AnnotationTransformer(this.api, super.visitAnnotation(name, descriptor));
+    public Replace prefix(final String from, final String to) {
+        if (text.startsWith(from)) {
+            text = text.replace(from, to);
+        }
+        return this;
     }
 
-    @Override
-    public AnnotationVisitor visitArray(final String name) {
-        return new AnnotationTransformer(this.api, super.visitArray(name));
+    public String get() {
+        return text;
     }
-
 }