You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by sc...@apache.org on 2016/11/13 17:07:55 UTC

svn commit: r1769522 - in /uima/uimaj/branches/experiment-v3-jcas/uimaj-v3migration-jcas/src/main/java/org/apache/uima: jcas/cas/TOP.java migratev3/jcas/MigrateJCas.java

Author: schor
Date: Sun Nov 13 17:07:55 2016
New Revision: 1769522

URL: http://svn.apache.org/viewvc?rev=1769522&view=rev
Log:
[UIMA-4518] have migration run the java compiler if available on the v3 classes; have pears copied and updated, give final report summary ok or not.

Modified:
    uima/uimaj/branches/experiment-v3-jcas/uimaj-v3migration-jcas/src/main/java/org/apache/uima/jcas/cas/TOP.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-v3migration-jcas/src/main/java/org/apache/uima/migratev3/jcas/MigrateJCas.java

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-v3migration-jcas/src/main/java/org/apache/uima/jcas/cas/TOP.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-v3migration-jcas/src/main/java/org/apache/uima/jcas/cas/TOP.java?rev=1769522&r1=1769521&r2=1769522&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-v3migration-jcas/src/main/java/org/apache/uima/jcas/cas/TOP.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-v3migration-jcas/src/main/java/org/apache/uima/jcas/cas/TOP.java Sun Nov 13 17:07:55 2016
@@ -82,7 +82,7 @@ public class TOP extends FeatureStructur
 
 	/**
 	 * This version is used by user code new XXX(jcas)
-	 * @param jcas
+	 * @param jcas -
 	 */
 	public TOP(JCas jcas) {
 	  super((JCasImpl) jcas);	  

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-v3migration-jcas/src/main/java/org/apache/uima/migratev3/jcas/MigrateJCas.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-v3migration-jcas/src/main/java/org/apache/uima/migratev3/jcas/MigrateJCas.java?rev=1769522&r1=1769521&r2=1769522&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-v3migration-jcas/src/main/java/org/apache/uima/migratev3/jcas/MigrateJCas.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-v3migration-jcas/src/main/java/org/apache/uima/migratev3/jcas/MigrateJCas.java Sun Nov 13 17:07:55 2016
@@ -65,7 +65,6 @@ import org.apache.uima.cas.impl.TypeSyst
 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.Pair;
 import org.apache.uima.internal.util.UIMAClassLoader;
 import org.apache.uima.pear.tools.PackageBrowser;
 import org.apache.uima.pear.tools.PackageInstaller;
@@ -139,13 +138,13 @@ import com.github.javaparser.ast.visitor
  *         x/y/z/javapath/.../Classname.java
  *         x/y/z/javapath/.../Classname.java
  *         ...
- *         1/                                   << for duplicates, each set is for identical dups, different sets for non-identical
- *           x/y/z/javapath/.../Classname.java  << for duplicates, each set is for identical dups, different sets for non-identical  
- *           x/y/z/javapath/.../Classname.java  << for duplicates, each set is for identical dups, different sets for non-identical
+ *         1/                                   &lt;&lt; for duplicates, each set is for identical dups, different sets for non-identical
+ *           x/y/z/javapath/.../Classname.java  &lt;&lt; for duplicates, each set is for identical dups, different sets for non-identical  
+ *           x/y/z/javapath/.../Classname.java  &lt;&lt; for duplicates, each set is for identical dups, different sets for non-identical
  *           ...                                    
- *         2/                                   << for duplicates, each set is for identical dups, different sets for non-identical  
- *           x/y/z/javapath/.../Classname.java  << for duplicates, each set is for identical dups, different sets for non-identical
- *           x/y/z/javapath/.../Classname.java  << for duplicates, each set is for identical dups, different sets for non-identical
+ *         2/                                   &lt;&lt; for duplicates, each set is for identical dups, different sets for non-identical  
+ *           x/y/z/javapath/.../Classname.java  &lt;&lt; for duplicates, each set is for identical dups, different sets for non-identical
+ *           x/y/z/javapath/.../Classname.java  &lt;&lt; for duplicates, each set is for identical dups, different sets for non-identical
  *           ...
  *         
  *     not-converted/
@@ -244,12 +243,7 @@ public class MigrateJCas extends VoidVis
   
   private Pear pear_current;
   private List<Pear> pears = new ArrayList<>();
-  
-  /**
-   * current PEAR install path in a temp dir
-   */
-  private Path pearInstallPath;
-  
+    
   /**
    * current Pear install path + 1 more dir in temp dir
    * used in candidate generation to relativize the path to just the part inside the pear
@@ -379,6 +373,8 @@ public class MigrateJCas extends VoidVis
   private String origSource;  // set by getSource()
   private String alreadyDone; // the slashifiedClassName
 
+  private boolean isOk;
+
 
 
 
@@ -415,19 +411,20 @@ public class MigrateJCas extends VoidVis
       });
     }
 
+    isOk = report();
+    
     postProcessing();
     
-    System.out.println("Migration finished");
-  }
-
-  private boolean isOk(boolean v) {
-    return v;
+    System.out.println("Migration finished " + 
+       (isOk 
+           ? "with no unusual conditions." 
+           : "with 1 or more unusual conditions that need manual checking."));
   }
   
   private void postProcessing() {
-    if (isOk(report()) && javaCompilerAvailable()) {
-      
+    if (javaCompilerAvailable()) {
       compileV3sources();
+    
       try {
         Path pearOutDir = Paths.get(outputDirectory, "pears");
         FileUtils.deleteRecursive(pearOutDir.toFile());
@@ -435,7 +432,7 @@ public class MigrateJCas extends VoidVis
       } catch (IOException e) {
         throw new RuntimeException(e);
       }
-      
+        
       System.out.format("replacing .class files in %,d PEARs%n", pears.size());
       for (Pear p : pears) {
         pearPostProcessing(p);
@@ -533,19 +530,25 @@ public class MigrateJCas extends VoidVis
   }
   
   /**
+   * The classpath used to compile is
+   *   - the classpath for this migration app except the target/classes for this project
+   *   - any passed in migrate classpath
    * @return the classpath to use in compiling the jcasgen'd sources
    */
   private String getAppClassPath() {
     URL[] urls = ((URLClassLoader)MigrateJCas.class.getClassLoader()).getURLs();
     StringBuilder cp = new StringBuilder();
     for (URL url : urls) {
-      cp.append(url.getFile().toString());
-      cp.append(File.pathSeparatorChar);
+      String p = url.getFile().toString();
+      if (!p.endsWith("uimaj-v3migration-jcas/target/classes/")) {
+        cp.append(url.getFile().toString());
+        cp.append(File.pathSeparatorChar);
+      }   
     }
     if (null != migrateClasspath) {
       cp.append(migrateClasspath);
     }
-    System.out.println("debug: classpath = " + cp.toString());
+//    System.out.println("debug: classpath = " + cp.toString());
     return cp.toString();
   }
   
@@ -612,21 +615,7 @@ public class MigrateJCas extends VoidVis
     
     return clp;
   }
-  
-  /***************
-   * set roots
-   * set isSource
-   ***************/
-  private void setRootsAndSource(CommandLineParser clp) {
-    if (clp.isInArgsList(CLASS_FILE_ROOTS)) {
-      classesRoots = getRoots(clp, CLASS_FILE_ROOTS);
-    }
     
-    if (clp.isInArgsList(SOURCE_FILE_ROOTS)) {
-      sourcesRoots = getRoots(clp, SOURCE_FILE_ROOTS);
-    }
-  }
-  
   private String[] getRoots(CommandLineParser clp, String kind) {
     return clp.getParamArgument(kind).split("\\" + File.pathSeparator);
   }
@@ -834,8 +823,8 @@ public class MigrateJCas extends VoidVis
    *   
    *   if class doesn't extend anything, not a JCas class.
    *   if class is enum, not a JCas class
-   * @param n
-   * @param ignore
+   * @param n -
+   * @param ignore -
    */
   @Override
   public void visit(ClassOrInterfaceDeclaration n, Object ignore) {
@@ -1566,7 +1555,7 @@ public class MigrateJCas extends VoidVis
           }
           pearResolveStart = Paths.get(pearInstallDir.getAbsolutePath(), children[0]);
           
-          pearInstallPath = start = pearInstallDir.toPath();
+          start = pearInstallDir.toPath();
         } else {
           localPearClasspath = pearClasspath;
           FileSystem jfs = FileSystems.newFileSystem(Paths.get(path.toUri()), null);