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);
             }
         }
     }


Reply via email to