You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by as...@apache.org on 2008/07/14 06:17:46 UTC

svn commit: r676474 - in /synapse/trunk/java: modules/transports/src/main/java/org/apache/synapse/transport/nhttp/ src/site/xdoc/

Author: asankha
Date: Sun Jul 13 21:17:45 2008
New Revision: 676474

URL: http://svn.apache.org/viewvc?rev=676474&view=rev
Log:
fix SYNAPSE-397

Support a new property POST_TO_PATH

Also, remove the propagation of the "Host" header incorrectly

Modified:
    synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/Axis2HttpRequest.java
    synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/NhttpConstants.java
    synapse/trunk/java/src/site/xdoc/Synapse_Configuration_Language.xml

Modified: synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/Axis2HttpRequest.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/Axis2HttpRequest.java?rev=676474&r1=676473&r2=676474&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/Axis2HttpRequest.java (original)
+++ synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/Axis2HttpRequest.java Sun Jul 13 21:17:45 2008
@@ -46,6 +46,7 @@
 import java.nio.channels.ClosedChannelException;
 import java.util.Iterator;
 import java.util.Map;
+import java.net.URL;
 
 /**
  * Represents an outgoing Axis2 HTTP/s request. It holds the EPR of the destination, the
@@ -128,9 +129,14 @@
                     msgContext, epr.getAddress()), HttpVersion.HTTP_1_0);
                 
             } else {
-                
-                httpRequest = new BasicHttpEntityEnclosingRequest(
-                    "POST", epr.getAddress(), HttpVersion.HTTP_1_0);
+
+                if (msgContext.isPropertyTrue(NhttpConstants.POST_TO_PATH)) {
+                    httpRequest = new BasicHttpEntityEnclosingRequest(
+                        "POST", new URL(epr.getAddress()).getPath(), HttpVersion.HTTP_1_0);
+                } else {
+                   httpRequest = new BasicHttpEntityEnclosingRequest(
+                        "POST", epr.getAddress(), HttpVersion.HTTP_1_0);
+                }
                 
                 ByteArrayOutputStream baos = new ByteArrayOutputStream();
                 messageFormatter.writeTo(msgContext, format, baos, true);
@@ -148,7 +154,12 @@
                     "GET", RESTUtil.getURI(msgContext, epr.getAddress()));
 
             } else {
-                httpRequest = new BasicHttpEntityEnclosingRequest("POST", epr.getAddress());
+                if (msgContext.isPropertyTrue(NhttpConstants.POST_TO_PATH)) {
+                    httpRequest = new BasicHttpEntityEnclosingRequest(
+                        "POST", new URL(epr.getAddress()).getPath());
+                } else {
+                    httpRequest = new BasicHttpEntityEnclosingRequest("POST", epr.getAddress());    
+                }
                 ((BasicHttpEntityEnclosingRequest) httpRequest).setEntity(new BasicHttpEntity());
             }
         }
@@ -162,7 +173,9 @@
                 Object header = iter.next();
                 Object value = headers.get(header);
                 if (header instanceof String && value != null && value instanceof String) {
-                    httpRequest.setHeader((String) header, (String) value);
+                    if (!HTTPConstants.HEADER_HOST.equalsIgnoreCase((String) header)) {
+                        httpRequest.setHeader((String) header, (String) value);
+                    }
                 }
             }
         }

Modified: synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/NhttpConstants.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/NhttpConstants.java?rev=676474&r1=676473&r2=676474&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/NhttpConstants.java (original)
+++ synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/NhttpConstants.java Sun Jul 13 21:17:45 2008
@@ -24,6 +24,7 @@
     public static final String HTTP_SC = "HTTP_SC";
     public static final String SENDING_FAULT = "sending_fault";
     public static final String FORCE_HTTP_1_0 = "FORCE_HTTP_1.0";
+    public static final String POST_TO_PATH = "POST_TO_PATH";
     public static final String IGNORE_SC_ACCEPTED = "IGNORE_SC_ACCEPTED";
     public static final String FORCE_SC_ACCEPTED = "FORCE_SC_ACCEPTED";
 

Modified: synapse/trunk/java/src/site/xdoc/Synapse_Configuration_Language.xml
URL: http://svn.apache.org/viewvc/synapse/trunk/java/src/site/xdoc/Synapse_Configuration_Language.xml?rev=676474&r1=676473&r2=676474&view=diff
==============================================================================
--- synapse/trunk/java/src/site/xdoc/Synapse_Configuration_Language.xml (original)
+++ synapse/trunk/java/src/site/xdoc/Synapse_Configuration_Language.xml Sun Jul 13 21:17:45 2008
@@ -1318,6 +1318,10 @@
         FORCE_HTTP_1.0 - forces outgoing http/s messages to use HTTP 1.0
         (instead of the default 1.1)
       </li>
+      <li>
+        POST_TO_PATH - forces outgoing http/s messages to use the PATH segment in a POST
+        (instead of the default full URL)
+      </li>
     </ul>
     <h5>
       The synapse:get-property() XPath extension function