You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by bd...@apache.org on 2010/07/22 05:49:21 UTC

svn commit: r966495 - in /tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider: Axis2BaseBindingProvider.java Axis2ReferenceBindingProvider.java

Author: bdaniel
Date: Thu Jul 22 03:49:20 2010
New Revision: 966495

URL: http://svn.apache.org/viewvc?rev=966495&view=rev
Log:
Add SOAP version intent validation to the ws binding

Modified:
    tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/Axis2BaseBindingProvider.java
    tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/Axis2ReferenceBindingProvider.java

Modified: tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/Axis2BaseBindingProvider.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/Axis2BaseBindingProvider.java?rev=966495&r1=966494&r2=966495&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/Axis2BaseBindingProvider.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/Axis2BaseBindingProvider.java Thu Jul 22 03:49:20 2010
@@ -33,6 +33,7 @@ public class Axis2BaseBindingProvider {
         
     // derived policy configuration
     protected boolean isSOAP12Required = false;
+    protected boolean isSOAP11Required = false;
     protected boolean isRampartRequired = false;
     protected boolean isMTOMRequired = false;
     protected boolean isJMSRequired = false;    

Modified: tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/Axis2ReferenceBindingProvider.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/Axis2ReferenceBindingProvider.java?rev=966495&r1=966494&r2=966495&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/Axis2ReferenceBindingProvider.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/Axis2ReferenceBindingProvider.java Thu Jul 22 03:49:20 2010
@@ -29,8 +29,10 @@ import javax.wsdl.BindingOperation;
 import javax.wsdl.Definition;
 import javax.wsdl.Port;
 import javax.wsdl.extensions.soap.SOAPAddress;
+import javax.wsdl.extensions.soap.SOAPBinding;
 import javax.wsdl.extensions.soap.SOAPOperation;
 import javax.wsdl.extensions.soap12.SOAP12Address;
+import javax.wsdl.extensions.soap12.SOAP12Binding;
 import javax.xml.namespace.QName;
 import javax.xml.stream.FactoryConfigurationError;
 import javax.xml.stream.XMLInputFactory;
@@ -40,9 +42,7 @@ import javax.xml.transform.dom.DOMSource
 
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.impl.builder.StAXOMBuilder;
-import org.apache.axiom.soap.SOAPBody;
 import org.apache.axiom.soap.SOAPFactory;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.addressing.EndpointReferenceHelper;
@@ -108,6 +108,7 @@ public class Axis2ReferenceBindingProvid
             contract.getInterface().resetDataBinding(OMElement.class.getName());
         }
         
+        isSOAP11Required = PolicyHelper.isIntentRequired(wsBinding, Constants.SOAP11_INTENT);
         isSOAP12Required = PolicyHelper.isIntentRequired(wsBinding, Constants.SOAP12_INTENT);
         
         isMTOMRequired = PolicyHelper.isIntentRequired(wsBinding, Axis2BindingProviderFactory.MTOM_INTENT);
@@ -141,6 +142,28 @@ public class Axis2ReferenceBindingProvid
         if (wsBinding.isDocLiteralUnwrapped()){
             //throw new ServiceRuntimeException("doc/literal/unwrapped WSDL style not supported for endpoint reference " + endpointReference);
         } 
+        
+        // Validate that the WSDL is not using SOAP v1.2 if requires="SOAP.v1_1" has been specified
+        if ( isSOAP11Required ) {
+        	Definition def = wsBinding.getGeneratedWSDLDocument();
+        	Binding binding = def.getBinding(wsBinding.getBindingName());
+        	for ( Object ext : binding.getExtensibilityElements() ) {
+        		if ( ext instanceof SOAP12Binding )
+        			throw new ServiceRuntimeException("WSDL document is using SOAP v1.2 but SOAP v1.1 " +
+        					"is required by the specified policy intents");
+        	}
+        }
+        
+        // Validate that the WSDL is not using SOAP v1.1 if requires="SOAP.v1_2" has been specified
+        if ( isSOAP12Required ) {
+        	Definition def = wsBinding.getGeneratedWSDLDocument();
+        	Binding binding = def.getBinding(wsBinding.getBindingName());
+        	for ( Object ext : binding.getExtensibilityElements() ) {
+        		if ( ext instanceof SOAPBinding )
+        			throw new ServiceRuntimeException("WSDL document is using SOAP v1.1 but SOAP v1.2 " +
+        					"is required by the specified policy intents");
+        	}
+        }
     }
     
     public void start() {