You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by ru...@apache.org on 2009/06/14 18:13:42 UTC

svn commit: r784581 - in /synapse/trunk/java/modules: core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/Axis2HttpRequest.java

Author: ruwan
Date: Sun Jun 14 16:13:42 2009
New Revision: 784581

URL: http://svn.apache.org/viewvc?rev=784581&view=rev
Log:
Completing the REST fixes, now all related to HTTP GET works just fine

Modified:
    synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java
    synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/Axis2HttpRequest.java

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=784581&r1=784580&r2=784581&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 Sun Jun 14 16:13:42 2009
@@ -137,7 +137,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);
@@ -213,6 +213,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 &&
@@ -370,6 +379,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: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/Axis2HttpRequest.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/Axis2HttpRequest.java?rev=784581&r1=784580&r2=784581&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/Axis2HttpRequest.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/Axis2HttpRequest.java Sun Jun 14 16:13:42 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;
@@ -180,6 +182,19 @@
                 HTTP.CONTENT_TYPE,
                 messageFormatter.getContentType(msgContext, format, msgContext.getSoapAction()));
 
+        } 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(