You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@synapse.apache.org by as...@apache.org on 2007/03/05 06:51:43 UTC

svn commit: r514554 - in /webservices/synapse/branches/0.92-SNAPSHOT/modules/nhttp/src/org/apache/axis2/transport/nhttp: Axis2HttpRequest.java ServerHandler.java ServerWorker.java

Author: asankha
Date: Sun Mar  4 21:51:42 2007
New Revision: 514554

URL: http://svn.apache.org/viewvc?view=rev&rev=514554
Log:
update NIO transport to write back custom http headers set on the Axis2 message context and to make the remote party IP address available to the Axis2 MC for incoming requests

Modified:
    webservices/synapse/branches/0.92-SNAPSHOT/modules/nhttp/src/org/apache/axis2/transport/nhttp/Axis2HttpRequest.java
    webservices/synapse/branches/0.92-SNAPSHOT/modules/nhttp/src/org/apache/axis2/transport/nhttp/ServerHandler.java
    webservices/synapse/branches/0.92-SNAPSHOT/modules/nhttp/src/org/apache/axis2/transport/nhttp/ServerWorker.java

Modified: webservices/synapse/branches/0.92-SNAPSHOT/modules/nhttp/src/org/apache/axis2/transport/nhttp/Axis2HttpRequest.java
URL: http://svn.apache.org/viewvc/webservices/synapse/branches/0.92-SNAPSHOT/modules/nhttp/src/org/apache/axis2/transport/nhttp/Axis2HttpRequest.java?view=diff&rev=514554&r1=514553&r2=514554
==============================================================================
--- webservices/synapse/branches/0.92-SNAPSHOT/modules/nhttp/src/org/apache/axis2/transport/nhttp/Axis2HttpRequest.java (original)
+++ webservices/synapse/branches/0.92-SNAPSHOT/modules/nhttp/src/org/apache/axis2/transport/nhttp/Axis2HttpRequest.java Sun Mar  4 21:51:42 2007
@@ -33,6 +33,8 @@
 import java.io.OutputStream;
 import java.nio.channels.Pipe;
 import java.nio.channels.Channels;
+import java.util.Map;
+import java.util.Iterator;
 
 /**
  * Represents an outgoing Axis2 HTTP/s request. It holds the EPR of the destination, the
@@ -82,6 +84,21 @@
     public HttpRequest getRequest() {
         HttpPost httpRequest = new HttpPost(epr.getAddress());
         httpRequest.setEntity(new BasicHttpEntity());
+
+        // set any transport headers
+        Object o = msgContext.getProperty(MessageContext.TRANSPORT_HEADERS);
+        if (o != null && o instanceof Map) {
+            Map headers = (Map) o;
+            Iterator iter = headers.keySet().iterator();
+            while (iter.hasNext()) {
+                Object header = iter.next();
+                Object value = headers.get(header);
+                if (header instanceof String && value != null && value instanceof String) {
+                    httpRequest.setHeader((String) header, (String) value);
+                }
+            }
+        }
+
         return httpRequest;
     }
 

Modified: webservices/synapse/branches/0.92-SNAPSHOT/modules/nhttp/src/org/apache/axis2/transport/nhttp/ServerHandler.java
URL: http://svn.apache.org/viewvc/webservices/synapse/branches/0.92-SNAPSHOT/modules/nhttp/src/org/apache/axis2/transport/nhttp/ServerHandler.java?view=diff&rev=514554&r1=514553&r2=514554
==============================================================================
--- webservices/synapse/branches/0.92-SNAPSHOT/modules/nhttp/src/org/apache/axis2/transport/nhttp/ServerHandler.java (original)
+++ webservices/synapse/branches/0.92-SNAPSHOT/modules/nhttp/src/org/apache/axis2/transport/nhttp/ServerHandler.java Sun Mar  4 21:51:42 2007
@@ -162,6 +162,10 @@
         }
     }
 
+    public void responseReady(NHttpServerConnection conn) {
+        // New API method - should not require
+    }
+
     /**
      * Process ready output by writing into the channel
      * @param conn the connection being processed

Modified: webservices/synapse/branches/0.92-SNAPSHOT/modules/nhttp/src/org/apache/axis2/transport/nhttp/ServerWorker.java
URL: http://svn.apache.org/viewvc/webservices/synapse/branches/0.92-SNAPSHOT/modules/nhttp/src/org/apache/axis2/transport/nhttp/ServerWorker.java?view=diff&rev=514554&r1=514553&r2=514554
==============================================================================
--- webservices/synapse/branches/0.92-SNAPSHOT/modules/nhttp/src/org/apache/axis2/transport/nhttp/ServerWorker.java (original)
+++ webservices/synapse/branches/0.92-SNAPSHOT/modules/nhttp/src/org/apache/axis2/transport/nhttp/ServerWorker.java Sun Mar  4 21:51:42 2007
@@ -127,6 +127,11 @@
             headers.put(headerArr[i].getName(), headerArr[i].getValue());
         }
         msgContext.setProperty(MessageContext.TRANSPORT_HEADERS, headers);
+        // find the remote party IP address and set it to the message context
+        if (conn instanceof HttpInetConnection) {
+            HttpInetConnection inetConn = (HttpInetConnection) conn;
+            msgContext.setProperty(MessageContext.REMOTE_ADDR, inetConn.getRemoteAddress());
+        }
 
         try {
             msgContext.setTransportOut(cfgCtx.getAxisConfiguration()



---------------------------------------------------------------------
To unsubscribe, e-mail: synapse-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: synapse-dev-help@ws.apache.org