You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by na...@apache.org on 2008/12/01 02:50:29 UTC
svn commit: r721944 - in /tuscany/branches/sca-java-1.x/modules:
binding-ws-xml/src/main/java/org/apache/tuscany/sca/binding/ws/xml/
binding-ws-xml/src/main/resources/
host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/
interface-wsdl-xml...
Author: nash
Date: Sun Nov 30 17:50:28 2008
New Revision: 721944
URL: http://svn.apache.org/viewvc?rev=721944&view=rev
Log:
Fix TUSCANY-2698
Modified:
tuscany/branches/sca-java-1.x/modules/binding-ws-xml/src/main/java/org/apache/tuscany/sca/binding/ws/xml/WebServiceBindingProcessor.java
tuscany/branches/sca-java-1.x/modules/binding-ws-xml/src/main/resources/binding-wsxml-validation-messages.properties
tuscany/branches/sca-java-1.x/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/SCADomain.java
tuscany/branches/sca-java-1.x/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLInterfaceProcessor.java
tuscany/branches/sca-java-1.x/modules/interface-wsdl-xml/src/main/resources/interface-wsdlxml-validation-messages.properties
tuscany/branches/sca-java-1.x/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java
tuscany/branches/sca-java-1.x/modules/xsd-xml/src/main/java/org/apache/tuscany/sca/xsd/xml/XSDModelResolver.java
Modified: tuscany/branches/sca-java-1.x/modules/binding-ws-xml/src/main/java/org/apache/tuscany/sca/binding/ws/xml/WebServiceBindingProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/binding-ws-xml/src/main/java/org/apache/tuscany/sca/binding/ws/xml/WebServiceBindingProcessor.java?rev=721944&r1=721943&r2=721944&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/binding-ws-xml/src/main/java/org/apache/tuscany/sca/binding/ws/xml/WebServiceBindingProcessor.java (original)
+++ tuscany/branches/sca-java-1.x/modules/binding-ws-xml/src/main/java/org/apache/tuscany/sca/binding/ws/xml/WebServiceBindingProcessor.java Sun Nov 30 17:50:28 2008
@@ -46,6 +46,7 @@
import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
import org.apache.tuscany.sca.contribution.service.ContributionReadException;
import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
+import org.apache.tuscany.sca.contribution.service.ContributionRuntimeException;
import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
import org.apache.tuscany.sca.core.UtilityExtensionPoint;
@@ -97,9 +98,9 @@
/**
* Report a warning.
*
- * @param problems
- * @param message
+ * @param problem
* @param model
+ * @param message data
*/
private void warning(String message, Object model, Object... messageParameters) {
if (monitor != null) {
@@ -109,11 +110,11 @@
}
/**
- * Report a error.
+ * Report an error.
*
- * @param problems
- * @param message
+ * @param problem
* @param model
+ * @param message data
*/
private void error(String message, Object model, Object... messageParameters) {
if (monitor != null) {
@@ -122,6 +123,20 @@
}
}
+ /**
+ * Report an exception.
+ *
+ * @param problem
+ * @param model
+ * @param exception
+ */
+ private void error(String message, Object model, Exception ex) {
+ if (monitor != null) {
+ Problem problem = new ProblemImpl(this.getClass().getName(), "binding-wsxml-validation-messages", Severity.ERROR, model, message, ex);
+ monitor.problem(problem);
+ }
+ }
+
public WebServiceBinding read(XMLStreamReader reader) throws ContributionReadException, XMLStreamException {
// Read a <binding.ws>
@@ -322,7 +337,14 @@
WSDLDefinition wsdlDefinition = wsdlFactory.createWSDLDefinition();
wsdlDefinition.setUnresolved(true);
wsdlDefinition.setNamespace(model.getNamespace());
- WSDLDefinition resolved = resolver.resolveModel(WSDLDefinition.class, wsdlDefinition);
+ WSDLDefinition resolved = null;
+ try {
+ resolved = resolver.resolveModel(WSDLDefinition.class, wsdlDefinition);
+ } catch (ContributionRuntimeException e) {
+ ContributionResolveException ce = new ContributionResolveException(e.getCause());
+ error("ContributionResolveException", wsdlDefinition, ce);
+ throw ce;
+ }
if (!resolved.isUnresolved()) {
wsdlDefinition.setDefinition(resolved.getDefinition());
Modified: tuscany/branches/sca-java-1.x/modules/binding-ws-xml/src/main/resources/binding-wsxml-validation-messages.properties
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/binding-ws-xml/src/main/resources/binding-wsxml-validation-messages.properties?rev=721944&r1=721943&r2=721944&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/binding-ws-xml/src/main/resources/binding-wsxml-validation-messages.properties (original)
+++ tuscany/branches/sca-java-1.x/modules/binding-ws-xml/src/main/resources/binding-wsxml-validation-messages.properties Sun Nov 30 17:50:28 2008
@@ -24,5 +24,4 @@
WsdlBindingDoesNotMatch = The #wsdl.binding({0}) does not match with the WSDL Definitions
WsdlServiceDoesNotMatch = The #wsdl.service({0}) does not match with the WSDL Definitions
WsdlPortTypeDoesNotMatch = The #wsdl.port({0}) does not match with the WSDL Definitions
-
-
+ContributionResolveException = Error in contribution: {0}
Modified: tuscany/branches/sca-java-1.x/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/SCADomain.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/SCADomain.java?rev=721944&r1=721943&r2=721944&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/SCADomain.java (original)
+++ tuscany/branches/sca-java-1.x/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/SCADomain.java Sun Nov 30 17:50:28 2008
@@ -214,6 +214,8 @@
return domain;
+ } catch (ServiceRuntimeException e) {
+ throw e;
} catch (Exception e) {
throw new ServiceRuntimeException(e);
}
Modified: tuscany/branches/sca-java-1.x/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLInterfaceProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLInterfaceProcessor.java?rev=721944&r1=721943&r2=721944&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLInterfaceProcessor.java (original)
+++ tuscany/branches/sca-java-1.x/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLInterfaceProcessor.java Sun Nov 30 17:50:28 2008
@@ -34,6 +34,7 @@
import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
import org.apache.tuscany.sca.contribution.service.ContributionReadException;
import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
+import org.apache.tuscany.sca.contribution.service.ContributionRuntimeException;
import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
import org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition;
@@ -62,9 +63,9 @@
/**
* Report a warning.
*
- * @param problems
- * @param message
+ * @param problem
* @param model
+ * @param message data
*/
private void warning(String message, Object model, Object... messageParameters) {
if (monitor != null) {
@@ -74,11 +75,11 @@
}
/**
- * Report a error.
+ * Report an error.
*
- * @param problems
- * @param message
+ * @param problem
* @param model
+ * @param message data
*/
private void error(String message, Object model, Object... messageParameters) {
if (monitor != null) {
@@ -88,11 +89,11 @@
}
/**
- * Report a exception.
+ * Report an exception.
*
- * @param problems
- * @param message
+ * @param problem
* @param model
+ * @param exception
*/
private void error(String message, Object model, Exception ex) {
if (monitor != null) {
@@ -217,9 +218,12 @@
wsdlInterface = wsdlFactory.createWSDLInterface(portType.getElement(), wsdlDefinition, resolver);
wsdlInterface.setWsdlDefinition(wsdlDefinition);
resolver.addModel(wsdlInterface);
+ } catch (ContributionRuntimeException e) {
+ ContributionResolveException ce = new ContributionResolveException(e.getCause());
+ error("ContributionResolveException", wsdlDefinition, ce);
} catch (InvalidInterfaceException e) {
ContributionResolveException ce = new ContributionResolveException(e);
- error("ContributionResolveException", wsdlFactory, ce);
+ error("ContributionResolveException", wsdlDefinition, ce);
//throw ce;
}
}
Modified: tuscany/branches/sca-java-1.x/modules/interface-wsdl-xml/src/main/resources/interface-wsdlxml-validation-messages.properties
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/interface-wsdl-xml/src/main/resources/interface-wsdlxml-validation-messages.properties?rev=721944&r1=721943&r2=721944&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/interface-wsdl-xml/src/main/resources/interface-wsdlxml-validation-messages.properties (original)
+++ tuscany/branches/sca-java-1.x/modules/interface-wsdl-xml/src/main/resources/interface-wsdlxml-validation-messages.properties Sun Nov 30 17:50:28 2008
@@ -19,6 +19,6 @@
#
#
ContributionReadException = ContributionReadException occured due to :
-ContributionResolveException = ContributionResolveException occured due to :
+ContributionResolveException = Error in contribution: {0}
InvalidWSDLInterfaceAttr = Invalid WSDL interface attribute: {0}
-WsdlInterfaceDoesNotMatch = The #wsdl.interface({0}) specified does not match with WSDL Definitions
\ No newline at end of file
+WsdlInterfaceDoesNotMatch = The #wsdl.interface({0}) specified does not match with WSDL Definitions
Modified: tuscany/branches/sca-java-1.x/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java?rev=721944&r1=721943&r2=721944&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java (original)
+++ tuscany/branches/sca-java-1.x/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java Sun Nov 30 17:50:28 2008
@@ -165,6 +165,8 @@
ConfiguredNodeImplementation config = findNodeConfiguration(compositeURI, classLoader);
configureNode(config);
+ } catch (ServiceRuntimeException e) {
+ throw e;
} catch (Throwable e) {
throw new ServiceRuntimeException(e);
}
Modified: tuscany/branches/sca-java-1.x/modules/xsd-xml/src/main/java/org/apache/tuscany/sca/xsd/xml/XSDModelResolver.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/xsd-xml/src/main/java/org/apache/tuscany/sca/xsd/xml/XSDModelResolver.java?rev=721944&r1=721943&r2=721944&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/xsd-xml/src/main/java/org/apache/tuscany/sca/xsd/xml/XSDModelResolver.java (original)
+++ tuscany/branches/sca-java-1.x/modules/xsd-xml/src/main/java/org/apache/tuscany/sca/xsd/xml/XSDModelResolver.java Sun Nov 30 17:50:28 2008
@@ -156,7 +156,17 @@
if (definition.getLocation() != null) {
uri = definition.getLocation().toString();
}
- XmlSchema schema = schemaCollection.read(definition.getDocument(), uri, null);
+ XmlSchema schema = null;
+ try {
+ schema = schemaCollection.read(definition.getDocument(), uri, null);
+ } catch (RuntimeException e) {
+ // find original cause of the problem
+ Throwable cause = e;
+ while (cause.getCause() != null) {
+ cause = cause.getCause();
+ }
+ throw new ContributionRuntimeException(cause);
+ }
definition.setSchemaCollection(schemaCollection);
definition.setSchema(schema);
definition.setUnresolved(false);
@@ -168,17 +178,35 @@
// Read an XSD document
InputSource xsd = XMLDocumentHelper.getInputSource(definition.getLocation().toURL());
for (XmlSchema d : schemaCollection.getXmlSchemas()) {
- if (d.getTargetNamespace().equals(definition.getNamespace())) {
+ if (isSameNamespace(d.getTargetNamespace(), definition.getNamespace())) {
if (d.getSourceURI().equals(definition.getLocation().toString()))
return;
}
}
- XmlSchema schema = schemaCollection.read(xsd, null);
+ XmlSchema schema = null;
+ try {
+ schema = schemaCollection.read(xsd, null);
+ } catch (RuntimeException e) {
+ // find original cause of the problem
+ Throwable cause = e;
+ while (cause.getCause() != null) {
+ cause = cause.getCause();
+ }
+ throw new ContributionRuntimeException(cause);
+ }
definition.setSchemaCollection(schemaCollection);
definition.setSchema(schema);
}
}
+ private boolean isSameNamespace(String ns1, String ns2) {
+ if (ns1 == null) {
+ return ns2 == null;
+ } else {
+ return ns1.equals(ns2);
+ }
+ }
+
/**
* Create a facade XmlSchema which includes all the definitions
*
@@ -249,9 +277,7 @@
this.contribution = contribution;
}
- public org.xml.sax.InputSource resolveEntity(java.lang.String targetNamespace,
- java.lang.String schemaLocation,
- java.lang.String baseUri) {
+ public InputSource resolveEntity(String targetNamespace, String schemaLocation, String baseUri) {
try {
if (schemaLocation == null) {
return null;
@@ -266,12 +292,19 @@
break;
}
}
+ if (url == null) {
+ // URI not found in the contribution; return a default InputSource
+ // so that the XmlSchema code will produce a useful diagnostic
+ return new InputSource(schemaLocation);
+ }
} else {
url = new URL(new URL(baseUri), schemaLocation);
}
return XMLDocumentHelper.getInputSource(url);
} catch (IOException e) {
- return null;
+ // Invalid URI; return a default InputSource so that the
+ // XmlSchema code will produce a useful diagnostic
+ return new InputSource(schemaLocation);
}
}
}