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/04/23 18:58:29 UTC
svn commit: r1675680 - in
/uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven:
RutaGenerateDescriptorMojo.java RutaGenerateMTWLMojo.java
RutaGenerateTWLMojo.java Utils.java
Author: pkluegl
Date: Thu Apr 23 16:58:28 2015
New Revision: 1675680
URL: http://svn.apache.org/r1675680
Log:
UIMA-3650
- only build modified files
Modified:
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/RutaGenerateMTWLMojo.java
uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/RutaGenerateTWLMojo.java
uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/Utils.java
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=1675680&r1=1675679&r2=1675680&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 Thu Apr 23 16:58:28 2015
@@ -63,6 +63,7 @@ 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;
@@ -230,17 +231,29 @@ public class RutaGenerateDescriptorMojo
List<String> extensions = getExtensionsFromClasspath(classloader);
options.setLanguageExtensions(extensions);
- String[] files = FileUtils.getFilesFromExtension(project.getBuild().getOutputDirectory(),
+ 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)) {
+ filesToBuild.add(file);
+ }
+ }
+
+ if (filesToBuild.isEmpty()) {
+ getLog().debug("UIMA Ruta Building: Skipped, since no changes were detected.");
+ return;
+ }
if (maxBuildRetries == -1) {
- maxBuildRetries = files.length * 3;
+ maxBuildRetries = filesToBuild.size() * 3;
}
Queue<RutaDescriptorInformation> toBuild = new LinkedList<RutaDescriptorInformation>();
- for (String fileString : files) {
- File file = new File(fileString);
+ for (File file : filesToBuild) {
try {
RutaDescriptorInformation descriptorInformation = factory.parseDescriptorInformation(file,
options);
@@ -332,10 +345,11 @@ public class RutaGenerateDescriptorMojo
OutputStream os = null;
try {
File out = new File(aFilename);
+ os = buildContext.newFileOutputStream(out);
out.getParentFile().mkdirs();
getLog().debug("Writing descriptor to: " + out);
- os = new FileOutputStream(out);
desc.toXML(os);
+ buildContext.refresh(out);
} finally {
IOUtils.closeQuietly(os);
}
@@ -457,8 +471,8 @@ public class RutaGenerateDescriptorMojo
"org.eclipse.dltk.launching.INTERPRETER_CONTAINER")) {
foundInterpreter = true;
}
- if(StringUtils.equals(buildpathentry.getAttribute("kind"), "var")&& StringUtils.equals(buildpathentry.getAttribute("path"),
- RUTA_BUILD_VARS)) {
+ if (StringUtils.equals(buildpathentry.getAttribute("kind"), "var")
+ && StringUtils.equals(buildpathentry.getAttribute("path"), RUTA_BUILD_VARS)) {
buildpathNode.removeChild(i);
}
}
@@ -474,9 +488,9 @@ public class RutaGenerateDescriptorMojo
addBuildPathEntry(buildpathNode, type, path);
}
}
-
+
addRutabuildVars(buildpathNode);
-
+
// if (!foundInterpreter) {
// Xpp3Dom buildpathentry = new Xpp3Dom("buildpathentry");
// buildpathentry.setAttribute("kind", "con");
@@ -514,8 +528,7 @@ public class RutaGenerateDescriptorMojo
buildpathNode.addChild(buildpathentry);
addRutabuildVars(buildpathNode);
-
-
+
StringWriter sw = new StringWriter();
Xpp3DomWriter.write(sw, buildpathNode);
String string = sw.toString();
@@ -546,8 +559,7 @@ public class RutaGenerateDescriptorMojo
aeAttribute.setAttribute("value", analysisEngineSuffix);
attributes.addChild(aeAttribute);
buildpathNode.addChild(varEntry);
-
-
+
}
private void addBuildPathEntry(Xpp3Dom buildpathNode, String type, String path) {
Modified: uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/RutaGenerateMTWLMojo.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/RutaGenerateMTWLMojo.java?rev=1675680&r1=1675679&r2=1675680&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/RutaGenerateMTWLMojo.java (original)
+++ uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/RutaGenerateMTWLMojo.java Thu Apr 23 16:58:28 2015
@@ -79,7 +79,7 @@ public class RutaGenerateMTWLMojo extend
}
List<File> files = null;
try {
- files = Utils.getFiles(inputFiles);
+ files = Utils.getFilesIfModified(inputFiles, buildContext);
} catch (IOException e) {
getLog().warn("Error accessing input files.", e);
}
@@ -94,6 +94,7 @@ public class RutaGenerateMTWLMojo extend
if (trie != null) {
try {
trie.createMTWLFile(outputFile.getAbsolutePath(), compress, encoding);
+ buildContext.refresh(outputFile);
} catch (IOException e) {
getLog().warn("Error writing MTWL file.", e);
}
Modified: uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/RutaGenerateTWLMojo.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/RutaGenerateTWLMojo.java?rev=1675680&r1=1675679&r2=1675680&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/RutaGenerateTWLMojo.java (original)
+++ uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/RutaGenerateTWLMojo.java Thu Apr 23 16:58:28 2015
@@ -79,7 +79,7 @@ public class RutaGenerateTWLMojo extends
List<File> files = null;
try {
- files = Utils.getFiles(inputFiles);
+ files = Utils.getModifiedFiles(inputFiles, buildContext);
} catch (IOException e) {
getLog().warn("Error accessing input files.", e);
}
@@ -96,6 +96,7 @@ public class RutaGenerateTWLMojo extends
File outputFile = new File(outputDirectory, outputName);
try {
list.createTWLFile(outputFile.getAbsolutePath(), compress, "UTF-8");
+ buildContext.refresh(outputFile);
} catch (IOException e) {
getLog().warn("Error writing twl file.", e);
}
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=1675680&r1=1675679&r2=1675680&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 Thu Apr 23 16:58:28 2015
@@ -21,19 +21,56 @@ package org.apache.uima.ruta.maven;
import java.io.File;
import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import org.apache.maven.model.FileSet;
import org.codehaus.plexus.util.FileUtils;
+import org.sonatype.plexus.build.incremental.BuildContext;
public class Utils {
- @SuppressWarnings("unchecked")
- public static List<File> getFiles(FileSet fileSet) throws IOException {
+ public static List<File> getModifiedFiles(FileSet fileSet, BuildContext buildContext) throws IOException {
+ List<File> result = new ArrayList<File>();
+
+ File directory = new File(fileSet.getDirectory());
+ 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;
+ if (buildContext.hasDelta(file)) {
+ result.add(file);
+ }
+ }
+ }
+ return result;
+ }
+
+ public static List<File> getFilesIfModified(FileSet fileSet, BuildContext buildContext) throws IOException {
+ List<File> result = new ArrayList<File>();
+
File directory = new File(fileSet.getDirectory());
String includes = toString(fileSet.getIncludes());
String excludes = toString(fileSet.getExcludes());
- return (List<File>) FileUtils.getFiles(directory, includes, excludes);
+
+ boolean modified = false;
+ for (Object each : FileUtils.getFiles(directory, includes, excludes)) {
+ if (each instanceof File) {
+ File file = (File) each;
+ result.add(file);
+ if (buildContext.hasDelta(file)) {
+ modified = true;
+ }
+ }
+ }
+ if(modified) {
+ return result;
+ } else {
+ return Collections.emptyList();
+ }
}
private static String toString(List<String> strings) {