You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by pk...@apache.org on 2015/05/17 18:13:33 UTC

svn commit: r1679879 - in /uima/ruta/trunk: ruta-core/src/main/java/org/apache/uima/ruta/descriptor/RutaDescriptorBuilder.java ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/RutaGenerateDescriptorMojo.java

Author: pkluegl
Date: Sun May 17 16:13:33 2015
New Revision: 1679879

URL: http://svn.apache.org/r1679879
Log:
UIMA-4400
- build if descriptor is missing

Modified:
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/descriptor/RutaDescriptorBuilder.java
    uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/RutaGenerateDescriptorMojo.java

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/descriptor/RutaDescriptorBuilder.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/descriptor/RutaDescriptorBuilder.java?rev=1679879&r1=1679878&r2=1679879&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/descriptor/RutaDescriptorBuilder.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/descriptor/RutaDescriptorBuilder.java Sun May 17 16:13:33 2015
@@ -198,8 +198,8 @@ public class RutaDescriptorBuilder {
         url = checkImportExistence(eachName, options.getTypeSystemSuffix() + ".xml",
                 options.getClassLoader());
         if (url == null) {
-          throw new FileNotFoundException("Build process can't find " + eachName + " in "
-                  + desc.getScriptName());
+          throw new FileNotFoundException("Build process can't find " + eachName
+                  + options.getTypeSystemSuffix() + ".xml" + " in " + desc.getScriptName());
         }
       }
       TypeSystemDescription each = getTypeSystemDescriptor(url, options, rm);

Modified: uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/RutaGenerateDescriptorMojo.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/RutaGenerateDescriptorMojo.java?rev=1679879&r1=1679878&r2=1679879&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/RutaGenerateDescriptorMojo.java (original)
+++ uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/RutaGenerateDescriptorMojo.java Sun May 17 16:13:33 2015
@@ -19,7 +19,6 @@
 package org.apache.uima.ruta.maven;
 
 import java.io.File;
-import java.io.FileOutputStream;
 import java.io.FileReader;
 import java.io.IOException;
 import java.io.OutputStream;
@@ -63,7 +62,6 @@ import org.apache.uima.ruta.extensions.I
 import org.apache.uima.util.InvalidXMLException;
 import org.apache.uima.util.XMLizable;
 import org.codehaus.plexus.util.FileUtils;
-import org.codehaus.plexus.util.Scanner;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
 import org.codehaus.plexus.util.xml.Xpp3DomBuilder;
 import org.codehaus.plexus.util.xml.Xpp3DomWriter;
@@ -233,11 +231,12 @@ public class RutaGenerateDescriptorMojo
 
     String[] files = FileUtils.getFilesFromExtension(project.getBasedir().getAbsolutePath(),
             new String[] { "ruta" });
-    
+
     List<File> filesToBuild = new ArrayList<File>();
     for (String each : files) {
       File file = new File(each);
-      if(buildContext.hasDelta(file)) {
+      boolean descriptorMissing = isDescriptorMissing(file);
+      if (descriptorMissing || buildContext.hasDelta(file)) {
         filesToBuild.add(file);
       }
     }
@@ -300,6 +299,26 @@ public class RutaGenerateDescriptorMojo
 
   }
 
+  private boolean isDescriptorMissing(File file) {
+    String scriptName = file.getName().substring(0, file.getName().length() - 5);
+
+    String aeName = scriptName + analysisEngineSuffix + ".xml";
+    String[] aeFiles = FileUtils.getFilesFromExtension(
+            analysisEngineOutputDirectory.getAbsolutePath(), new String[] { aeName });
+    if (aeFiles == null || aeFiles.length == 0) {
+      return true;
+    }
+
+    String tsName = scriptName + typeSystemOutputDirectory + ".xml";
+    String[] tsFiles = FileUtils.getFilesFromExtension(typeSystemOutputDirectory.getAbsolutePath(),
+            new String[] { tsName });
+    if (tsFiles == null || tsFiles.length == 0) {
+      return true;
+    }
+
+    return false;
+  }
+
   private List<String> getExtensionsFromClasspath(ClassLoader classloader) {
     List<String> result = new ArrayList<String>();
     ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(
@@ -345,6 +364,7 @@ public class RutaGenerateDescriptorMojo
     OutputStream os = null;
     try {
       File out = new File(aFilename);
+      out.getParentFile().mkdirs();
       os = buildContext.newFileOutputStream(out);
       out.getParentFile().mkdirs();
       getLog().debug("Writing descriptor to: " + out);