Merge branch 'master-v2' into bugfix/UIMA-6242-uimaFIT-Maven-plugin-should-fail-on-error-by-default
* master-v2:
[UIMA-6240] Failure to resolve type system imports when generating descriptors
diff --git a/uimafit-maven-plugin/src/main/java/org/apache/uima/fit/maven/GenerateDescriptorsMojo.java b/uimafit-maven-plugin/src/main/java/org/apache/uima/fit/maven/GenerateDescriptorsMojo.java
index c616d84..2e85b4b 100644
--- a/uimafit-maven-plugin/src/main/java/org/apache/uima/fit/maven/GenerateDescriptorsMojo.java
+++ b/uimafit-maven-plugin/src/main/java/org/apache/uima/fit/maven/GenerateDescriptorsMojo.java
@@ -80,6 +80,12 @@
@Parameter(defaultValue = "${project.build.sourceEncoding}", required = true)
private String encoding;
+ /**
+ * Fail on error.
+ */
+ @Parameter(defaultValue = "true", required = true)
+ private boolean failOnError;
+
enum TypeSystemSerialization {
NONE, EMBEDDED
}
@@ -162,13 +168,13 @@
componentsManifest.append("classpath*:").append(clazzPath + ".xml").append('\n');
}
} catch (SAXException e) {
- getLog().warn("Cannot serialize descriptor for [" + clazzName + "]", e);
+ handleError("Cannot serialize descriptor for [" + clazzName + "]", e);
} catch (IOException e) {
- getLog().warn("Cannot write descriptor for [" + clazzName + "]", e);
+ handleError("Cannot write descriptor for [" + clazzName + "]", e);
} catch (ClassNotFoundException e) {
- getLog().warn("Cannot analyze class [" + clazzName + "]", e);
+ handleError("Cannot analyze class [" + clazzName + "]", e);
} catch (ResourceInitializationException e) {
- getLog().warn("Cannot generate descriptor for [" + clazzName + "]", e);
+ handleError("Cannot generate descriptor for [" + clazzName + "]", e);
} finally {
Thread.currentThread().setContextClassLoader(classLoader);
}
@@ -185,12 +191,20 @@
try {
FileUtils.fileWrite(path.getPath(), encoding, componentsManifest.toString());
} catch (IOException e) {
- throw new MojoExecutionException("Cannot write components manifest to [" + path + "]"
+ handleError("Cannot write components manifest to [" + path + "]"
+ ExceptionUtils.getRootCauseMessage(e), e);
}
}
}
+ private void handleError(String message, Exception e) throws MojoExecutionException {
+ if (failOnError) {
+ throw new MojoExecutionException(message, e);
+ }
+
+ getLog().error(message, e);
+ }
+
private void embedTypeSystems(ProcessingResourceMetaData metadata)
throws ResourceInitializationException {
TypeSystemDescriptionFactory.forceTypeDescriptorsScan();