Author: slaws
Date: Mon Jun 21 08:53:11 2010
New Revision: 956500

URL: http://svn.apache.org/viewvc?rev=956500&view=rev
Log:
BWS_2001 - add a check that the reference binding.ws has an absolute URI

Modified:
    
tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java
    
tuscany/sca-java-2.x/trunk/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/xml/WebServiceBindingProcessor.java
    
tuscany/sca-java-2.x/trunk/modules/binding-ws/src/main/resources/binding-wsxml-validation-messages.properties

Modified: 
tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java?rev=956500&r1=956499&r2=956500&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java
 Mon Jun 21 08:53:11 2010
@@ -267,6 +267,11 @@ public class CompositeProcessor extends 
                                 policyProcessor.readPolicies(contract, reader);
                             }
 
+                            // set the parent model so that binding processing 
can 
+                            // detect it they're being read as part of a 
reference 
+                            // or a service
+                            context.setParentModel(contract);
+                            
                         } else if (REFERENCE_QNAME.equals(name)) {
                             if (component != null) {
                                 // Read a <component><reference>
@@ -332,6 +337,11 @@ public class CompositeProcessor extends 
                                 policyProcessor.readPolicies(contract, reader);
                             }
 
+                            // set the parent model so that binding processing 
can 
+                            // detect it they're being read as part of a 
reference 
+                            // or a service
+                            context.setParentModel(contract);
+                            
                         } else if (PROPERTY_QNAME.equals(name)) {
                             if (component != null) {
 

Modified: 
tuscany/sca-java-2.x/trunk/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/xml/WebServiceBindingProcessor.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/xml/WebServiceBindingProcessor.java?rev=956500&r1=956499&r2=956500&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/xml/WebServiceBindingProcessor.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/xml/WebServiceBindingProcessor.java
 Mon Jun 21 08:53:11 2010
@@ -22,6 +22,8 @@ package org.apache.tuscany.sca.binding.w
 import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
 import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
 
+import java.net.URI;
+import java.net.URISyntaxException;
 import java.util.Map;
 
 import javax.wsdl.Binding;
@@ -33,6 +35,7 @@ import javax.xml.stream.XMLStreamExcepti
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
 
+import org.apache.tuscany.sca.assembly.Reference;
 import org.apache.tuscany.sca.assembly.xml.PolicySubjectProcessor;
 import org.apache.tuscany.sca.binding.ws.WebServiceBinding;
 import org.apache.tuscany.sca.binding.ws.WebServiceBindingFactory;
@@ -131,6 +134,18 @@ public class WebServiceBindingProcessor 
         String uri = getURIString(reader, URI);
         if (uri != null) {
             wsBinding.setURI(uri);
+            
+            if (context.getParentModel() instanceof Reference){
+                try {
+                    URI tmpURI = new URI(uri);
+                    
+                    if (!tmpURI.isAbsolute()){
+                        error(monitor, "URINotAbsolute", reader, uri);
+                    }
+                } catch (URISyntaxException ex){
+                    error(monitor, "InvalidURISyntax", reader, 
ex.getMessage());
+                }
+            }
         }
 
         // Read a qname in the form:

Modified: 
tuscany/sca-java-2.x/trunk/modules/binding-ws/src/main/resources/binding-wsxml-validation-messages.properties
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-ws/src/main/resources/binding-wsxml-validation-messages.properties?rev=956500&r1=956499&r2=956500&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/binding-ws/src/main/resources/binding-wsxml-validation-messages.properties
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/binding-ws/src/main/resources/binding-wsxml-validation-messages.properties
 Mon Jun 21 08:53:11 2010
@@ -25,6 +25,8 @@ WsdlBindingDoesNotMatch = The #wsdl.bind
 WsdlServiceDoesNotMatch = The #wsdl.service({0}) does not match with the WSDL 
Definitions
 WsdlPortTypeDoesNotMatch = The #wsdl.port({0}) does not match with the WSDL 
Definitions
 WsdliLocationMissingWsdlElement = binding.ws has a @wsdli:wsdlLocation 
attribute but no @wsdlElement attribute
+URINotAbsolute = [BWS20001] The URI value for binding.ws on an SCA reference 
must be absolute. Non-absolute value found {0}
+InvalidURISyntax =  The URI value {0} found on binding.ws has invalid syntax
 
 
 


Reply via email to