Author: indika
Date: Sat Nov  7 13:39:39 2009
New Revision: 833677

URL: http://svn.apache.org/viewvc?rev=833677&view=rev
Log:
appling supun's patch for SYNAPSE-578 ... thanks for contributing 


Modified:
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/utils/WSDL11EndpointBuilder.java
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/utils/WSDL11EndpointBuilder.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/utils/WSDL11EndpointBuilder.java?rev=833677&r1=833676&r2=833677&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/utils/WSDL11EndpointBuilder.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/utils/WSDL11EndpointBuilder.java
 Sat Nov  7 13:39:39 2009
@@ -31,12 +31,11 @@
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 
-import javax.wsdl.Definition;
-import javax.wsdl.Port;
-import javax.wsdl.Service;
-import javax.wsdl.WSDLException;
+import javax.wsdl.*;
 import javax.wsdl.extensions.soap.SOAPAddress;
 import javax.wsdl.extensions.soap12.SOAP12Address;
+import javax.wsdl.extensions.http.HTTPAddress;
+import javax.wsdl.extensions.http.HTTPBinding;
 import javax.wsdl.factory.WSDLFactory;
 import javax.wsdl.xml.WSDLLocator;
 import javax.wsdl.xml.WSDLReader;
@@ -136,6 +135,28 @@
                         serviceURL = address.getLocationURI();
                         format = SynapseConstants.FORMAT_SOAP12;
                         break;
+                    } else if (obj instanceof HTTPAddress) {
+                        HTTPAddress address = (HTTPAddress) obj;
+                        serviceURL = address.getLocationURI();
+                        format = SynapseConstants.FORMAT_REST;
+                        Binding binding = port.getBinding();
+                        if (binding == null) {
+                            continue;
+                        }
+                        for (Object portElement : 
binding.getExtensibilityElements()) {
+                            if (portElement instanceof HTTPBinding) {
+                                HTTPBinding httpBinding = (HTTPBinding) 
portElement;
+                                String verb = httpBinding.getVerb();
+                                if (verb == null || "".equals(verb)) {
+                                    continue;
+                                }
+                                if ("POST".equals(verb.toUpperCase())) {
+                                    format = SynapseConstants.FORMAT_REST;
+                                } else if ("GET".equals(verb.toUpperCase())) {
+                                    format = SynapseConstants.FORMAT_GET;
+                                }
+                            }
+                        }
                     }
                 }
             }
@@ -148,6 +169,10 @@
                 endpointDefinition.setForceSOAP11(true);
             } else if (SynapseConstants.FORMAT_SOAP12.equals(format)) {
                 endpointDefinition.setForceSOAP12(true);
+            } else if (SynapseConstants.FORMAT_REST.equals(format)){
+                endpointDefinition.setForceREST(true);
+            } else if (SynapseConstants.FORMAT_GET.equals(format)){
+                endpointDefinition.setForceGET(true);
             } else {
                 handleException("format value '" + format + "' not yet 
implemented");
             }

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java?rev=833677&r1=833676&r2=833677&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java
 Sat Nov  7 13:39:39 2009
@@ -170,6 +170,7 @@
                 }                
 
             } else if 
(SynapseConstants.FORMAT_REST.equals(endpoint.getFormat())) {
+                
axisOutMsgCtx.removeProperty(org.apache.axis2.Constants.Configuration.MESSAGE_TYPE);
                 axisOutMsgCtx.setDoingREST(true);
             } else {
                 processHttpGetMethod(originalInMsgCtx, axisOutMsgCtx);


Reply via email to