Author: ruwan
Date: Sun Jun 14 08:57:43 2009
New Revision: 38876
URL: http://wso2.org/svn/browse/wso2?view=rev&revision=38876

Log:
Completly fixing the REST support for ESB


Modified:
   
branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java
   
branches/synapse/1.3-wso2v1/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/Axis2HttpRequest.java

Modified: 
branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java
URL: 
http://wso2.org/svn/browse/wso2/branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java?rev=38876&r1=38875&r2=38876&view=diff
==============================================================================
--- 
branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java
    (original)
+++ 
branches/synapse/1.3-wso2v1/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java
    Sun Jun 14 08:57:43 2009
@@ -141,7 +141,7 @@
                 axisOutMsgCtx.setProperty(Constants.Configuration.HTTP_METHOD,
                     Constants.Configuration.HTTP_METHOD_GET);
                 
axisOutMsgCtx.setProperty(org.apache.axis2.Constants.Configuration.MESSAGE_TYPE,
-                        
org.apache.axis2.transport.http.HTTPConstants.MEDIA_TYPE_APPLICATION_XML);
+                        
org.apache.axis2.transport.http.HTTPConstants.MEDIA_TYPE_X_WWW_FORM);
                 
             } else if 
(SynapseConstants.FORMAT_SOAP11.equals(endpoint.getFormat())) {
                 axisOutMsgCtx.setDoingREST(false);
@@ -217,6 +217,15 @@
             processHttpGetMethod(originalInMsgCtx, axisOutMsgCtx);
         }
 
+        if (axisOutMsgCtx.isDoingREST()) {
+            if (axisOutMsgCtx.getProperty(WSDL2Constants.ATTR_WHTTP_LOCATION) 
== null
+                    && axisOutMsgCtx.getEnvelope().getBody().getFirstElement() 
!= null) {
+                axisOutMsgCtx.setProperty(WSDL2Constants.ATTR_WHTTP_LOCATION,
+                        axisOutMsgCtx.getEnvelope().getBody().getFirstElement()
+                                .getQName().getLocalPart());
+            }
+        }
+
         if (wsAddressingEnabled) {
             
             if (wsAddressingVersion != null &&
@@ -385,6 +394,12 @@
             axisOutMsgCtx.setProperty(
                     org.apache.axis2.Constants.Configuration.MESSAGE_TYPE,
                     HTTPConstants.MEDIA_TYPE_X_WWW_FORM);
+            if (axisOutMsgCtx.getProperty(WSDL2Constants.ATTR_WHTTP_LOCATION) 
== null
+                    && axisOutMsgCtx.getEnvelope().getBody().getFirstElement() 
!= null) {
+                axisOutMsgCtx.setProperty(WSDL2Constants.ATTR_WHTTP_LOCATION,
+                        axisOutMsgCtx.getEnvelope().getBody().getFirstElement()
+                                .getQName().getLocalPart());
+            }
         }
     }
 

Modified: 
branches/synapse/1.3-wso2v1/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/Axis2HttpRequest.java
URL: 
http://wso2.org/svn/browse/wso2/branches/synapse/1.3-wso2v1/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/Axis2HttpRequest.java?rev=38876&r1=38875&r2=38876&view=diff
==============================================================================
--- 
branches/synapse/1.3-wso2v1/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/Axis2HttpRequest.java
    (original)
+++ 
branches/synapse/1.3-wso2v1/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/Axis2HttpRequest.java
    Sun Jun 14 08:57:43 2009
@@ -21,6 +21,8 @@
 import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
+import org.apache.axis2.description.WSDL2Constants;
+import org.apache.axis2.description.WSDL20DefaultValueHolder;
 import org.apache.axis2.addressing.EndpointReference;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.transport.MessageFormatter;
@@ -179,8 +181,21 @@
                 HTTP.CONTENT_TYPE,
                 messageFormatter.getContentType(msgContext, format, 
msgContext.getSoapAction()));
 
-        } else {
+        } else if ("GET".equals(httpMethod)) {
+
+            URL reqURI = messageFormatter.getTargetAddress(
+                    msgContext, format, new URL(epr.getAddress()));
+            String path = reqURI.getPath() + "?" + reqURI.getQuery();
+
+            httpRequest = new BasicHttpRequest(httpMethod, path,
+                    msgContext.isPropertyTrue(NhttpConstants.FORCE_HTTP_1_0) ?
+                            HttpVersion.HTTP_1_0 : HttpVersion.HTTP_1_1);
+
+            httpRequest.setHeader(HTTP.CONTENT_TYPE, 
messageFormatter.getContentType(
+                    msgContext, format, msgContext.getSoapAction()));
             
+        } else {
+
             httpRequest = new BasicHttpRequest(
                 httpMethod,
                 msgContext.isPropertyTrue(NhttpConstants.POST_TO_PATH) ?

_______________________________________________
Esb-java-dev mailing list
[email protected]
https://wso2.org/cgi-bin/mailman/listinfo/esb-java-dev

Reply via email to