You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2013/08/02 19:25:58 UTC
svn commit: r1509784 -
/cxf/xjc-utils/trunk/cxf-xjc-plugin/src/main/java/org/apache/cxf/maven_plugin/AbstractXSDToJavaMojo.java
Author: dkulp
Date: Fri Aug 2 17:25:58 2013
New Revision: 1509784
URL: http://svn.apache.org/r1509784
Log:
If there is a severe error, make sure we fail the build.
Modified:
cxf/xjc-utils/trunk/cxf-xjc-plugin/src/main/java/org/apache/cxf/maven_plugin/AbstractXSDToJavaMojo.java
Modified: cxf/xjc-utils/trunk/cxf-xjc-plugin/src/main/java/org/apache/cxf/maven_plugin/AbstractXSDToJavaMojo.java
URL: http://svn.apache.org/viewvc/cxf/xjc-utils/trunk/cxf-xjc-plugin/src/main/java/org/apache/cxf/maven_plugin/AbstractXSDToJavaMojo.java?rev=1509784&r1=1509783&r2=1509784&view=diff
==============================================================================
--- cxf/xjc-utils/trunk/cxf-xjc-plugin/src/main/java/org/apache/cxf/maven_plugin/AbstractXSDToJavaMojo.java (original)
+++ cxf/xjc-utils/trunk/cxf-xjc-plugin/src/main/java/org/apache/cxf/maven_plugin/AbstractXSDToJavaMojo.java Fri Aug 2 17:25:58 2013
@@ -135,10 +135,14 @@ public abstract class AbstractXSDToJavaM
class Listener extends XJCListener {
private final List<File> errorfiles;
-
+ private Exception firstError;
+
Listener(List<File> errorfiles) {
this.errorfiles = errorfiles;
}
+ public Exception getFirstError() {
+ return firstError;
+ }
public void error(SAXParseException exception) {
final String sysId = exception.getSystemId();
@@ -185,12 +189,16 @@ public abstract class AbstractXSDToJavaM
}
};
}
- }
+ }
return file;
}
public void fatalError(SAXParseException exception) {
error(exception);
+ if (firstError == null) {
+ firstError = exception;
+ firstError.fillInStackTrace();
+ }
}
public void warning(SAXParseException exception) {
@@ -322,11 +330,15 @@ public abstract class AbstractXSDToJavaM
removeMessages(xsdOptions[x].getXsd());
removeMessages(xsdOptions[x].getBindingFile());
- int i = com.sun.tools.xjc.Driver.run(args, new Listener(errorFiles));
+ Listener listener = new Listener(errorFiles);
+ int i = com.sun.tools.xjc.Driver.run(args, listener);
if (i == 0) {
doneFile.delete();
doneFile.createNewFile();
+ } else if (listener.getFirstError() != null) {
+ throw listener.getFirstError();
}
+ System.out.println("Result: " + i);
File dirs[] = xsdOptions[x].getDeleteDirs();
if (dirs != null) {
for (int idx = 0; idx < dirs.length; ++idx) {