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