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 2011/10/27 22:21:23 UTC
svn commit: r1189993 - in /cxf/branches/2.4.x-fixes: ./
tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/
Author: dkulp
Date: Thu Oct 27 20:21:22 2011
New Revision: 1189993
URL: http://svn.apache.org/viewvc?rev=1189993&view=rev
Log:
Merged revisions 1189938 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r1189938 | dkulp | 2011-10-27 15:04:11 -0400 (Thu, 27 Oct 2011) | 1 line
[CXF-3887] Allow xjc to display multiple error messages
........
Modified:
cxf/branches/2.4.x-fixes/ (props changed)
cxf/branches/2.4.x-fixes/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBBindErrorListener.java
cxf/branches/2.4.x-fixes/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java
Propchange: cxf/branches/2.4.x-fixes/
('svn:mergeinfo' removed)
Propchange: cxf/branches/2.4.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: cxf/branches/2.4.x-fixes/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBBindErrorListener.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBBindErrorListener.java?rev=1189993&r1=1189992&r2=1189993&view=diff
==============================================================================
--- cxf/branches/2.4.x-fixes/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBBindErrorListener.java (original)
+++ cxf/branches/2.4.x-fixes/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBBindErrorListener.java Thu Oct 27 20:21:22 2011
@@ -18,6 +18,7 @@
*/
package org.apache.cxf.tools.wsdlto.databinding.jaxb;
+
import com.sun.tools.xjc.api.ErrorListener;
import org.apache.cxf.tools.common.ToolException;
@@ -25,21 +26,40 @@ import org.apache.cxf.tools.common.ToolE
public class JAXBBindErrorListener implements ErrorListener {
private boolean isVerbose;
private String prefix = "Thrown by JAXB: ";
-
+ private StringBuilder errors = new StringBuilder();
+ private Exception firstException;
+
public JAXBBindErrorListener(boolean verbose) {
isVerbose = verbose;
}
+ public boolean hasErrors() {
+ return errors.length() != 0;
+ }
+ public void throwError() {
+ throw new ToolException(prefix + "\n" + errors.toString(), firstException);
+ }
+
public void error(org.xml.sax.SAXParseException exception) {
+ if (errors.length() == 0) {
+ errors.append(prefix);
+ }
+ errors.append("\n");
if (exception.getLineNumber() > 0) {
- throw new ToolException(prefix + exception.getLocalizedMessage()
- + " at line " + exception.getLineNumber()
- + " column " + exception.getColumnNumber()
- + " of schema " + exception.getSystemId(), exception);
+ errors.append(exception.getLocalizedMessage() + "\n"
+ + " at line " + exception.getLineNumber()
+ + " column " + exception.getColumnNumber()
+ + " of schema " + exception.getSystemId()
+ + "\n");
+ } else {
+ errors.append(prefix + mapMessage(exception.getLocalizedMessage())
+ + "\n");
+ }
+ if (firstException == null) {
+ firstException = exception;
+ firstException.fillInStackTrace();
}
- throw new ToolException(prefix + mapMessage(exception.getLocalizedMessage()), exception);
-
}
public void fatalError(org.xml.sax.SAXParseException exception) {
@@ -56,7 +76,7 @@ public class JAXBBindErrorListener imple
public void warning(org.xml.sax.SAXParseException exception) {
if (this.isVerbose) {
- System.err.println("JAXB parsing schema warning " + exception.toString()
+ System.out.println("JAXB parsing schema warning " + exception.toString()
+ " in schema " + exception.getSystemId());
}
}
Modified: cxf/branches/2.4.x-fixes/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java?rev=1189993&r1=1189992&r2=1189993&view=diff
==============================================================================
--- cxf/branches/2.4.x-fixes/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java (original)
+++ cxf/branches/2.4.x-fixes/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java Thu Oct 27 20:21:22 2011
@@ -247,7 +247,8 @@ public class JAXBDataBinding implements
private ToolContext context;
private DefaultValueProvider defaultValues;
private boolean initialized;
-
+ private JAXBBindErrorListener listener;
+
static {
DEFAULT_TYPE_MAP.add("boolean");
DEFAULT_TYPE_MAP.add("int");
@@ -292,7 +293,7 @@ public class JAXBDataBinding implements
schemaCompiler.setClassNameAllocator(allocator);
- JAXBBindErrorListener listener = new JAXBBindErrorListener(context.isVerbose());
+ listener = new JAXBBindErrorListener(context.isVerbose());
schemaCompiler.setErrorListener(listener);
// Collection<SchemaInfo> schemas = serviceInfo.getSchemas();
List<InputSource> jaxbBindings = context.getJaxbBindingFile();
@@ -407,6 +408,10 @@ public class JAXBDataBinding implements
}
}
}
+
+ if (listener.hasErrors()) {
+ listener.throwError();
+ }
initialized = true;
}
@@ -728,6 +733,7 @@ public class JAXBDataBinding implements
for (String str : fileCodeWriter.getExcludeFileList()) {
context.getExcludeFileList().add(str);
}
+
}
return;
} catch (IOException e) {