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


Reply via email to