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/06/17 18:13:13 UTC

svn commit: r1686064 - in /uima/ruta/trunk: ruta-docbook/src/docbook/tools.ruta.howtos.xml ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/RutaGenerateDescriptorMojo.java ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/Utils.java

Author: pkluegl
Date: Wed Jun 17 16:13:13 2015
New Revision: 1686064

URL: http://svn.apache.org/r1686064
Log:
UIMA-4446
- added scriptFiles to mojo
- default input of built is output dir now (target/classes)
- added mention in documentation

Modified:
    uima/ruta/trunk/ruta-docbook/src/docbook/tools.ruta.howtos.xml
    uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/RutaGenerateDescriptorMojo.java
    uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/Utils.java

Modified: uima/ruta/trunk/ruta-docbook/src/docbook/tools.ruta.howtos.xml
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-docbook/src/docbook/tools.ruta.howtos.xml?rev=1686064&r1=1686063&r2=1686064&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-docbook/src/docbook/tools.ruta.howtos.xml (original)
+++ uima/ruta/trunk/ruta-docbook/src/docbook/tools.ruta.howtos.xml Wed Jun 17 16:13:13 2015
@@ -256,6 +256,24 @@ The|DT rabbit|NN made|VBD up|RP this|DT
  <!-- This is a exemplary configuration, which explicitly specifies the 
   default configuration values if not mentioned otherwise. -->
 
+ <!--
+ The following parameter is optional and should only be specified
+ if the structure (e.g., classpath/resources) of the project requires it.
+ 
+ A FileSet specifying the UIMA Ruta script files that should be built. 
+ 
+ If this parameter is not specified, then all UIMA Ruta script files 
+ in the output directory (e.g., target/classes) of the project will be built. 
+ 
+ default value: none
+ <scriptFiles>
+   <directory>${basedir}/some/folder</directory>
+   <includes>
+     <include>*.ruta</include>
+   </includes>
+ </scriptFiles>
+ -->
+
  <!-- The directory where the generated type system descriptors will 
   be written stored. -->
  <!-- default value: ${project.build.directory}/generated-sources/

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=1686064&r1=1686063&r2=1686064&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 Wed Jun 17 16:13:13 2015
@@ -40,6 +40,7 @@ import org.apache.commons.lang3.StringUt
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.DependencyResolutionRequiredException;
+import org.apache.maven.model.FileSet;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
@@ -91,6 +92,12 @@ public class RutaGenerateDescriptorMojo
   private BuildContext buildContext;
 
   /**
+   * The source files for the multi tree word list.
+   */
+  @Parameter(required = false)
+  private FileSet scriptFiles;
+
+  /**
    * The directory where the generated type system descriptors will be written.
    */
   @Parameter(defaultValue = DEFAULT_TARGET_DIR, required = true)
@@ -227,22 +234,39 @@ public class RutaGenerateDescriptorMojo
     List<String> extensions = getExtensionsFromClasspath(classloader);
     options.setLanguageExtensions(extensions);
 
-    String[] files = FileUtils.getFilesFromExtension(project.getBasedir().getAbsolutePath(),
-            new String[] { "ruta" });
-
+    String[] files = null;
+    if (scriptFiles != null) {
+      try {
+        files = Utils.getFilePathArray(scriptFiles, buildContext);
+      } catch (Exception e) {
+        getLog().warn("Error accessing script files.", e);
+      }
+    } else {
+      files = FileUtils.getFilesFromExtension(project.getBuild().getOutputDirectory(),
+              new String[] { "ruta" });
+    }
+    
+    if (addRutaNature) {
+      addRutaNature();
+      addRutaBuildPath();
+    }
+    
+    if (files == null) {
+      getLog().debug("UIMA Ruta Building: Skipped, since no script files were selected.");
+      return;
+    }
+    
     List<File> filesToBuild = new ArrayList<File>();
     for (String each : files) {
       File file = new File(each);
       boolean descriptorMissing = isDescriptorMissing(file);
-      if (descriptorMissing || buildContext.hasDelta(file)) {
+      boolean hasDelta = buildContext.hasDelta(file);
+      if (descriptorMissing || hasDelta) {
         filesToBuild.add(file);
       }
     }
 
-    if (addRutaNature) {
-      addRutaNature();
-      addRutaBuildPath();
-    }
+    
 
     if (filesToBuild.isEmpty()) {
       getLog().debug("UIMA Ruta Building: Skipped, since no changes were detected.");
@@ -277,7 +301,9 @@ public class RutaGenerateDescriptorMojo
         getLog().warn("Failed to parse UIMA Ruta script: " + scriptName, re);
       } catch (IOException ioe) {
         toBuild.add(descriptorInformation);
-        getLog().warn("Tried to build " + scriptName + ", but failed (dependency probably not yet build): " + ioe.getMessage());
+        getLog().warn(
+                "Tried to build " + scriptName
+                        + ", but failed (dependency probably not yet build): " + ioe.getMessage());
         count++;
       } catch (SAXException saxe) {
         getLog().warn("Failed to write descriptor: " + scriptName, saxe);
@@ -305,7 +331,7 @@ public class RutaGenerateDescriptorMojo
     try {
       aeFiles = FileUtils.getFiles(analysisEngineOutputDirectory, aeName, null);
     } catch (IOException e) {
-     return true;
+      return true;
     }
     if (aeFiles == null || aeFiles.size() == 0) {
       return true;
@@ -318,7 +344,7 @@ public class RutaGenerateDescriptorMojo
     } catch (IOException e) {
       return true;
     }
-    
+
     if (tsFiles == null || tsFiles.size() == 0) {
       return true;
     }

Modified: uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/Utils.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/Utils.java?rev=1686064&r1=1686063&r2=1686064&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/Utils.java (original)
+++ uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/Utils.java Wed Jun 17 16:13:13 2015
@@ -49,6 +49,32 @@ public class Utils {
     return result;
   }
   
+  public static String[] getFilePathArray(FileSet fileSet, BuildContext buildContext) throws IOException {
+    List<File> files = new ArrayList<File>();
+
+    File directory = new File(fileSet.getDirectory());
+    if(!directory.exists()) {
+      return new String[0];
+    }
+    String includes = toString(fileSet.getIncludes());
+    String excludes = toString(fileSet.getExcludes());
+
+    for (Object each : FileUtils.getFiles(directory, includes, excludes)) {
+      if (each instanceof File) {
+        File file = (File) each;
+          files.add(file);
+      }
+    }
+    String[] result = new String[files.size()];
+    for (int i = 0; i < files.size(); i++) {
+      File each = files.get(i);
+      result[i] = each.getAbsolutePath();
+      
+    }
+    
+    return result;
+  }
+  
   public static List<File> getFilesIfModified(FileSet fileSet, BuildContext buildContext) throws IOException {
     List<File> result = new ArrayList<File>();