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 2009/06/22 17:17:46 UTC
svn commit: r787269 - in /cxf/trunk:
rt/databinding/xmlbeans/src/main/java/org/apache/cxf/xmlbeans/tools/
tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/customization/
Author: dkulp
Date: Mon Jun 22 15:17:42 2009
New Revision: 787269
URL: http://svn.apache.org/viewvc?rev=787269&view=rev
Log:
Update xmlbeans tooling to support passing xsdconfig files in as well as
provide better error reporting
Modified:
cxf/trunk/rt/databinding/xmlbeans/src/main/java/org/apache/cxf/xmlbeans/tools/XMLBeansToolingDataBinding.java
cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/customization/CustomizationParser.java
Modified: cxf/trunk/rt/databinding/xmlbeans/src/main/java/org/apache/cxf/xmlbeans/tools/XMLBeansToolingDataBinding.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/databinding/xmlbeans/src/main/java/org/apache/cxf/xmlbeans/tools/XMLBeansToolingDataBinding.java?rev=787269&r1=787268&r2=787269&view=diff
==============================================================================
--- cxf/trunk/rt/databinding/xmlbeans/src/main/java/org/apache/cxf/xmlbeans/tools/XMLBeansToolingDataBinding.java (original)
+++ cxf/trunk/rt/databinding/xmlbeans/src/main/java/org/apache/cxf/xmlbeans/tools/XMLBeansToolingDataBinding.java Mon Jun 22 15:17:42 2009
@@ -21,6 +21,7 @@
import java.io.File;
import java.io.IOException;
+import java.io.InputStream;
import java.io.Writer;
import java.net.URI;
import java.net.URISyntaxException;
@@ -28,14 +29,20 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
+import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.xml.namespace.QName;
+import org.w3c.dom.Document;
+
import org.xml.sax.EntityResolver;
+import org.xml.sax.InputSource;
+import org.apache.cxf.helpers.XMLUtils;
+import org.apache.cxf.staxutils.StaxUtils;
import org.apache.cxf.tools.common.ToolConstants;
import org.apache.cxf.tools.common.ToolContext;
import org.apache.cxf.tools.common.ToolException;
@@ -47,6 +54,7 @@
import org.apache.xmlbeans.SchemaTypeSystem;
import org.apache.xmlbeans.SimpleValue;
import org.apache.xmlbeans.XmlBeans;
+import org.apache.xmlbeans.XmlError;
import org.apache.xmlbeans.XmlErrorCodes;
import org.apache.xmlbeans.XmlException;
import org.apache.xmlbeans.XmlObject;
@@ -78,11 +86,12 @@
SchemaTypeSystem typeSystem;
Map<String, String> sourcesToCopyMap = new HashMap<String, String>();
- XmlErrorWatcher errorListener = new XmlErrorWatcher(null);
+ List<XmlError> errors = new LinkedList<XmlError>();
+ XmlErrorWatcher errorListener = new XmlErrorWatcher(errors);
PathResourceLoader cpResourceLoader = new PathResourceLoader(CodeGenUtil.systemClasspath());
-
+ StscState state;
+
public void initialize(ToolContext context) throws ToolException {
- // TODO Auto-generated method stub
String wsdl = (String)context.get(ToolConstants.CFG_WSDLLOCATION);
String catalog = (String)context.get(ToolConstants.CFG_CATALOG);
Object o = context.get(ToolConstants.CFG_BINDING);
@@ -94,6 +103,10 @@
}
// build the in-memory type system
+ state = StscState.start();
+ // construct the state (have to initialize early in case of errors)
+ state.setErrorListener(errorListener);
+
EntityResolver cmdLineEntRes = ResolverUtil.resolverForCatalog(catalog);
typeSystem = loadTypeSystem(wsdl,
bindingFiles,
@@ -101,7 +114,7 @@
null,
null,
cmdLineEntRes);
-
+ StscState.end();
}
public DefaultValueWriter createDefaultValueWriter(QName qn, boolean element) {
@@ -202,8 +215,24 @@
*/
}
- if (!result && verbose) {
- System.out.println("BUILD FAILED");
+ if (!result) {
+ if (verbose) {
+ System.out.println("BUILD FAILED");
+ }
+ StringBuilder sb = new StringBuilder("Error generating XMLBeans types\n");
+ for (XmlError err : errors) {
+ if (err.getSeverity() != XmlError.SEVERITY_INFO) {
+ sb.append(err.toString());
+ if (err.getLine() != -1) {
+ sb.append(": ").append(err.getSourceName());
+ sb.append('[').append(Integer.toString(err.getLine()))
+ .append(',').append(Integer.toString(err.getColumn()))
+ .append(']');
+ }
+ sb.append('\n');
+ }
+ }
+ throw new ToolException(sb.toString());
}
if (cpResourceLoader != null) {
@@ -220,9 +249,6 @@
File schemasDir,
EntityResolver entResolver) {
- // construct the state (have to initialize early in case of errors)
- StscState state = StscState.start();
- state.setErrorListener(errorListener);
SchemaTypeLoader loader = XmlBeans.typeLoaderForClassLoader(SchemaDocument.class.getClassLoader());
@@ -236,6 +262,9 @@
.singletonMap("http://schemas.xmlsoap.org/wsdl/",
"http://www.apache.org/internal/xmlbeans/wsdlsubst"));
options.setEntityResolver(entResolver);
+ options.setGenerateJavaVersion(XmlOptions.GENERATE_JAVA_15);
+
+
XmlObject urldoc = loader.parse(url, null, options);
@@ -282,7 +311,16 @@
options.setEntityResolver(entResolver);
options.setLoadSubstituteNamespaces(MAP_COMPATIBILITY_CONFIG_URIS);
- XmlObject configdoc = loader.parse(configFiles[i], null, options);
+ URI uri = new URI(configFiles[i]);
+ XmlObject configdoc = null;
+ if ("file".equals(uri.getRawSchemeSpecificPart())) {
+ configdoc = loader.parse(new File(uri), null, options);
+ } else {
+ InputSource source = new InputSource(configFiles[i]);
+ Document doc = XMLUtils.parse(source);
+ configdoc = loader.parse(doc, null, options);
+ }
+
if (!(configdoc instanceof ConfigDocument)) {
StscState.addError(errorListener, XmlErrorCodes.INVALID_DOCUMENT_TYPE, new Object[] {
configFiles[i], "xsd config"
Modified: cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/customization/CustomizationParser.java
URL: http://svn.apache.org/viewvc/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/customization/CustomizationParser.java?rev=787269&r1=787268&r2=787269&view=diff
==============================================================================
--- cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/customization/CustomizationParser.java (original)
+++ cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/customization/CustomizationParser.java Mon Jun 22 15:17:42 2009
@@ -505,9 +505,6 @@
} else {
jaxbBindings.add(new InputSource(bindingFile));
}
- } else {
- Message msg = new Message("UNKNOWN_BINDING_FILE", LOG, bindingFile, reader.getName());
- throw new ToolException(msg);
}
}