You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by re...@apache.org on 2022/07/28 10:16:12 UTC

[uima-uimaj] branch refactoring/228-Move-the-UimaDecompiler-class created (now 09e7d9e4e)

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

rec pushed a change to branch refactoring/228-Move-the-UimaDecompiler-class
in repository https://gitbox.apache.org/repos/asf/uima-uimaj.git


      at 09e7d9e4e #228 - Move the UimaDecompiler class

This branch includes the following new commits:

     new 09e7d9e4e #228 - Move the UimaDecompiler class

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[uima-uimaj] 01/01: #228 - Move the UimaDecompiler class

Posted by re...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rec pushed a commit to branch refactoring/228-Move-the-UimaDecompiler-class
in repository https://gitbox.apache.org/repos/asf/uima-uimaj.git

commit 09e7d9e4e2d4bf6cf3fdc15b55fa7f8d3b83939c
Author: Richard Eckart de Castilho <ri...@averbis.com>
AuthorDate: Thu Jul 28 12:15:55 2022 +0200

    #228 - Move the UimaDecompiler class
    
    - Move the decompiler class
    - Remove dependencies of uimaj-core that were only required by the decompiler
    - Add these dependencies to uimaj-v3migration-jcas
---
 uimaj-core/pom.xml                                 |  14 ---
 uimaj-v3migration-jcas/pom.xml                     |  21 ++--
 .../apache/uima/migratev3/jcas/MigrateJCas.java    | 110 ++++++++++++---------
 .../uima/migratev3/jcas}/UimaDecompiler.java       |   2 +-
 4 files changed, 74 insertions(+), 73 deletions(-)

diff --git a/uimaj-core/pom.xml b/uimaj-core/pom.xml
index 6d2652205..8bac476c4 100644
--- a/uimaj-core/pom.xml
+++ b/uimaj-core/pom.xml
@@ -184,20 +184,6 @@
     </dependency>
     -->
     
-    <!-- needed for UimaDecompiler class-->
-    <dependency>  <!-- Apache v2 license  2016 checked -->
-      <groupId>org.bitbucket.mstrobel</groupId>
-      <artifactId>procyon-compilertools</artifactId>
-      <version>0.5.32</version>
-    </dependency>
-    
-    <!-- Apache v2 license  2016 checked. Also transitive include from above, 
-         listed here so that binary assembly for distribution includes the jar -->
-    <dependency>
-      <groupId>org.bitbucket.mstrobel</groupId>
-      <artifactId>procyon-core</artifactId>
-      <version>0.5.32</version>
-    </dependency>
     
     <!-- for reading / transforming / generating JCas cover classes -->
 <!--     <dependency>
diff --git a/uimaj-v3migration-jcas/pom.xml b/uimaj-v3migration-jcas/pom.xml
index 3e81c1c3f..4ccdd4cad 100644
--- a/uimaj-v3migration-jcas/pom.xml
+++ b/uimaj-v3migration-jcas/pom.xml
@@ -53,25 +53,20 @@
       <version>3.2.2</version>  <!-- latest as of May 2017 -->
     </dependency>
     
-<!--     <dependency>     is included from uimaj-core, not needed for this project
+    <!-- needed for UimaDecompiler class-->
+    <dependency>  <!-- Apache v2 license  2016 checked -->
       <groupId>org.bitbucket.mstrobel</groupId>
       <artifactId>procyon-compilertools</artifactId>
       <version>0.5.32</version>
     </dependency>
- -->    
-    <!-- for reading / transforming / generating JCas cover classes -->
-<!--     <dependency>
-      <groupId>org.ow2.asm</groupId>
-      <artifactId>asm</artifactId>
-      <version>5.0.4</version>
-    </dependency>
- 
+    
+    <!-- Apache v2 license  2016 checked. Also transitive include from above, 
+         listed here so that binary assembly for distribution includes the jar -->
     <dependency>
-      <groupId>org.ow2.asm</groupId>
-      <artifactId>asm-tree</artifactId>
-      <version>5.0.4</version>
+      <groupId>org.bitbucket.mstrobel</groupId>
+      <artifactId>procyon-core</artifactId>
+      <version>0.5.32</version>
     </dependency>
-    -->
   </dependencies>
 
   <build>
diff --git a/uimaj-v3migration-jcas/src/main/java/org/apache/uima/migratev3/jcas/MigrateJCas.java b/uimaj-v3migration-jcas/src/main/java/org/apache/uima/migratev3/jcas/MigrateJCas.java
index 99d5ae45a..c460b3f51 100644
--- a/uimaj-v3migration-jcas/src/main/java/org/apache/uima/migratev3/jcas/MigrateJCas.java
+++ b/uimaj-v3migration-jcas/src/main/java/org/apache/uima/migratev3/jcas/MigrateJCas.java
@@ -65,7 +65,6 @@ import javax.tools.ToolProvider;
 import org.apache.uima.UIMARuntimeException;
 import org.apache.uima.cas.impl.TypeImpl;
 import org.apache.uima.cas.impl.TypeSystemImpl;
-import org.apache.uima.cas.impl.UimaDecompiler;
 import org.apache.uima.internal.util.CommandLineParser;
 import org.apache.uima.internal.util.Misc;
 import org.apache.uima.internal.util.UIMAClassLoader;
@@ -354,9 +353,9 @@ public class MigrateJCas extends VoidVisitorAdapter<Object> {
       this.parent = parent;
       if (parent != null) {
         parent.subContainers.add(this);
-        this.pearClasspath = parent.pearClasspath; // default, when expanding Jars.
+        pearClasspath = parent.pearClasspath; // default, when expanding Jars.
       }
-      this.rootOrig = root;
+      rootOrig = root;
       String s = root.toString().toLowerCase();
       isJar = s.endsWith(".jar");
       isPear = s.endsWith(".pear");
@@ -392,7 +391,7 @@ public class MigrateJCas extends VoidVisitorAdapter<Object> {
                   false);
           String newClasspath = ip.buildComponentClassPath();
           String parentClasspath = parent.pearClasspath;
-          this.pearClasspath = (null == parentClasspath || 0 == parentClasspath.length())
+          pearClasspath = (null == parentClasspath || 0 == parentClasspath.length())
                   ? newClasspath
                   : newClasspath + File.pathSeparator + parentClasspath;
         }
@@ -458,15 +457,19 @@ public class MigrateJCas extends VoidVisitorAdapter<Object> {
      */
     @Override
     public boolean equals(Object obj) {
-      if (this == obj)
-        return true;
-      if (obj == null)
-        return false;
-      if (getClass() != obj.getClass())
-        return false;
+      if (this == obj) {
+		return true;
+	}
+      if (obj == null) {
+		return false;
+	}
+      if (getClass() != obj.getClass()) {
+		return false;
+	}
       Container other = (Container) obj;
-      if (id != other.id)
-        return false;
+      if (id != other.id) {
+		return false;
+	}
       return true;
     }
 
@@ -681,7 +684,7 @@ public class MigrateJCas extends VoidVisitorAdapter<Object> {
 
     CommonConverted(String origSource, byte[] v2ByteCode, Path path, Container container,
             String fqcn_slash) {
-      this.v2Source = origSource;
+      v2Source = origSource;
       this.v2ByteCode = v2ByteCode;
       containersAndV2Paths.add(new ContainerAndPath(path, container));
       this.fqcn_slash = fqcn_slash;
@@ -707,7 +710,7 @@ public class MigrateJCas extends VoidVisitorAdapter<Object> {
       if (id < 0) {
         Integer nextId = nextCcId.computeIfAbsent(fqcn_slash, s -> INTEGER0);
         nextCcId.put(fqcn_slash, nextId + 1);
-        this.id = nextId;
+        id = nextId;
       }
       return id;
     }
@@ -914,8 +917,9 @@ public class MigrateJCas extends VoidVisitorAdapter<Object> {
     try {
       // copy the pear or jar so we don't change the original
       Path lastPartOfPath = container.rootOrig.getFileName();
-      if (null == lastPartOfPath)
-        throw new RuntimeException("Internal Error");
+      if (null == lastPartOfPath) {
+		throw new RuntimeException("Internal Error");
+	}
       Path pearOrJarCopy = Paths.get(outputDirectory, container.isJar ? "jars" : "pears",
               Integer.toString(container.id), lastPartOfPath.toString());
 
@@ -1028,7 +1032,9 @@ public class MigrateJCas extends VoidVisitorAdapter<Object> {
     boolean isEmpty = true;
     for (CommonConverted cc : container.convertedItems) {
       if (cc.v3SourcePath == null)
-        continue; // skip items that failed migration
+	 {
+		continue; // skip items that failed migration
+	}
       isEmpty = false;
       // relativePathInContainer = the whole path with the first part (up to the end of the
       // container root) stripped off
@@ -1723,14 +1729,17 @@ public class MigrateJCas extends VoidVisitorAdapter<Object> {
               && Character.isUpperCase(name.charAt(3)) && !name.equals("getTypeIndexID")) {
         List<Parameter> ps = n.getParameters();
         if (isGetter) {
-          if (ps.size() > 1)
-            break;
+          if (ps.size() > 1) {
+			break;
+		}
         } else { // is setter
-          if (ps.size() > 2 || ps.size() == 0)
-            break;
+          if (ps.size() > 2 || ps.size() == 0) {
+			break;
+		}
           if (ps.size() == 2) {
-            if (!getParmTypeName(ps, 0).equals("int"))
-              break;
+            if (!getParmTypeName(ps, 0).equals("int")) {
+				break;
+			}
             isArraySetter = true;
           }
         }
@@ -1738,8 +1747,9 @@ public class MigrateJCas extends VoidVisitorAdapter<Object> {
         // get the range-part-name and convert to v3 range ("Ref" changes to "Feature")
         String bodyString = n.getBody().get().toString(printWithoutComments);
         int i = bodyString.indexOf("jcasType.ll_cas.ll_");
-        if (i < 0)
-          break;
+        if (i < 0) {
+			break;
+		}
         String s = bodyString.substring(i + "jcasType.ll_cas.ll_get".length()); // also for
                                                                                 // ...ll_set - same
                                                                                 // length!
@@ -1907,8 +1917,9 @@ public class MigrateJCas extends VoidVisitorAdapter<Object> {
     NodeList<Expression> args;
 
     do {
-      if (get_set_method == null)
-        break;
+      if (get_set_method == null) {
+		break;
+	}
 
       /** remove checkArraybounds statement **/
       if (n.getNameAsString().equals("checkArrayBounds")
@@ -1925,8 +1936,9 @@ public class MigrateJCas extends VoidVisitorAdapter<Object> {
       if (n.getNameAsString()
               .startsWith("ll_" + (useGetter ? "get" : "set") + rangeNameV2Part + "Value")) {
         args = n.getArguments();
-        if (args.size() != (useGetter ? 2 : 3))
-          break;
+        if (args.size() != (useGetter ? 2 : 3)) {
+			break;
+		}
         String suffix = useGetter ? "Nc" : rangeNamePart.equals("Feature") ? "NcWj" : "Nfc";
         String methodName = "_" + (useGetter ? "get" : "set") + rangeNamePart + "Value" + suffix;
         args.remove(0); // remove the old addr arg
@@ -1942,10 +1954,12 @@ public class MigrateJCas extends VoidVisitorAdapter<Object> {
 
         String s = nname.substring(z.length());
         s = s.substring(0, s.length() - "Value".length()); // s = "ShortArray", etc.
-        if (s.equals("RefArray"))
-          s = "FSArray";
-        if (s.equals("IntArray"))
-          s = "IntegerArray";
+        if (s.equals("RefArray")) {
+			s = "FSArray";
+		}
+        if (s.equals("IntArray")) {
+			s = "IntegerArray";
+		}
         EnclosedExpr ee = new EnclosedExpr(
                 new CastExpr(new ClassOrInterfaceType(s), n.getArguments().get(0)));
 
@@ -2200,8 +2214,9 @@ public class MigrateJCas extends VoidVisitorAdapter<Object> {
 
       reportPathWorkaround(parent.toString(), p2.toString());
       Path lastPartOfPath = p.getFileName();
-      if (null == lastPartOfPath)
-        throw new RuntimeException();
+      if (null == lastPartOfPath) {
+		throw new RuntimeException();
+	}
       return Paths.get(p2.toString(), lastPartOfPath.toString());
     }
     return p;
@@ -2240,8 +2255,9 @@ public class MigrateJCas extends VoidVisitorAdapter<Object> {
       return true;
     }
     System.out.println("\n" + title);
-    for (int i = 0; i < title.length(); i++)
-      System.out.print('=');
+    for (int i = 0; i < title.length(); i++) {
+		System.out.print('=');
+	}
     System.out.println("");
 
     try (BufferedWriter bw = Files.newBufferedWriter(makePath(outDirLog + fileName),
@@ -2758,8 +2774,9 @@ public class MigrateJCas extends VoidVisitorAdapter<Object> {
       } else if (parent instanceof ObjectCreationExpr) {
         List<Expression> args = ((ObjectCreationExpr) parent).getArguments();
         int i = args.indexOf(n);
-        if (i < 0)
-          throw new RuntimeException();
+        if (i < 0) {
+			throw new RuntimeException();
+		}
         args.set(i, v);
       } else {
         System.out.println(parent.getClass().getName());
@@ -2815,10 +2832,12 @@ public class MigrateJCas extends VoidVisitorAdapter<Object> {
           for (VariableDeclarator vd : vds) {
             if (vd.getType().equals(intType)) {
               String n = vd.getNameAsString();
-              if (n.equals("type"))
-                hasType = true;
-              if (n.equals("typeIndexID"))
-                hasTypeId = true;
+              if (n.equals("type")) {
+				hasType = true;
+			}
+              if (n.equals("typeIndexID")) {
+				hasTypeId = true;
+			}
               if (hasTypeId && hasType) {
                 return true;
               }
@@ -2854,8 +2873,9 @@ public class MigrateJCas extends VoidVisitorAdapter<Object> {
     for (BodyDeclaration<?> bd : members) {
       if (bd instanceof ConstructorDeclaration) {
         List<Parameter> ps = ((ConstructorDeclaration) bd).getParameters();
-        if (ps.size() == 0)
-          has0ArgConstructor = true;
+        if (ps.size() == 0) {
+			has0ArgConstructor = true;
+		}
         if (ps.size() == 1 && getParmTypeName(ps, 0).equals("JCas")) {
           has1ArgJCasConstructor = true;
         }
diff --git a/uimaj-core/src/main/java/org/apache/uima/cas/impl/UimaDecompiler.java b/uimaj-v3migration-jcas/src/main/java/org/apache/uima/migratev3/jcas/UimaDecompiler.java
similarity index 99%
rename from uimaj-core/src/main/java/org/apache/uima/cas/impl/UimaDecompiler.java
rename to uimaj-v3migration-jcas/src/main/java/org/apache/uima/migratev3/jcas/UimaDecompiler.java
index e422616cf..2ea2aeb75 100644
--- a/uimaj-core/src/main/java/org/apache/uima/cas/impl/UimaDecompiler.java
+++ b/uimaj-v3migration-jcas/src/main/java/org/apache/uima/migratev3/jcas/UimaDecompiler.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.uima.cas.impl;
+package org.apache.uima.migratev3.jcas;
 
 import java.io.BufferedWriter;
 import java.io.ByteArrayOutputStream;