Author: hiranya
Date: Mon Aug 12 01:21:12 2013
New Revision: 1513024

URL: http://svn.apache.org/r1513024
Log:
Supporting bind-address parameter in the pass through transport

Modified:
    
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/PassThroughConstants.java
    
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/PassThroughHttpListener.java
    
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/ServerWorker.java
    
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/config/SourceConfiguration.java

Modified: 
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/PassThroughConstants.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/PassThroughConstants.java?rev=1513024&r1=1513023&r2=1513024&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/PassThroughConstants.java
 (original)
+++ 
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/PassThroughConstants.java
 Mon Aug 12 01:21:12 2013
@@ -42,6 +42,7 @@ public class PassThroughConstants {
     public static final String SERVICE_URI_LOCATION = "ServiceURI";
 
     public static final String WSDL_EPR_PREFIX = "WSDLEPRPrefix";
+    public static final String BIND_ADDRESS = "bind-address" ;
 
     public static final String EPR_TO_SERVICE_NAME_MAP = "service.epr.map";
     public static final String NON_BLOCKING_TRANSPORT = "NonBlockingTransport";

Modified: 
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/PassThroughHttpListener.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/PassThroughHttpListener.java?rev=1513024&r1=1513023&r2=1513024&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/PassThroughHttpListener.java
 (original)
+++ 
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/PassThroughHttpListener.java
 Mon Aug 12 01:21:12 2013
@@ -53,7 +53,9 @@ import org.apache.synapse.transport.util
 
 import javax.net.ssl.SSLContext;
 import java.io.IOException;
+import java.net.InetAddress;
 import java.net.InetSocketAddress;
+import java.net.UnknownHostException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Map;
@@ -167,8 +169,20 @@ public class PassThroughHttpListener imp
         final IOEventDispatch ioEventDispatch = getEventDispatch(handler, 
sslContext,
                 sslSetupHandler, sourceConfiguration.getConnectionConfig());
 
-        ListenerEndpoint endpoint = ioReactor.listen(new InetSocketAddress(
-                sourceConfiguration.getPort()));
+        ListenerEndpoint endpoint;
+        if (sourceConfiguration.getBindAddress() != null) {
+            try {
+                endpoint = ioReactor.listen(new InetSocketAddress(
+                        
InetAddress.getByName(sourceConfiguration.getBindAddress()),
+                        sourceConfiguration.getPort()));
+            } catch (UnknownHostException e) {
+                handleException("Failed to resolve the bind address: " +
+                        sourceConfiguration.getBindAddress(), e);
+                return;
+            }
+        } else {
+            endpoint = ioReactor.listen(new 
InetSocketAddress(sourceConfiguration.getPort()));
+        }
         HttpGetRequestProcessor getProcessor = 
sourceConfiguration.getHttpGetRequestProcessor();
         if (getProcessor != null){
            getProcessor.init(sourceConfiguration.getConfigurationContext(), 
handler);

Modified: 
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/ServerWorker.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/ServerWorker.java?rev=1513024&r1=1513023&r2=1513024&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/ServerWorker.java
 (original)
+++ 
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/ServerWorker.java
 Mon Aug 12 01:21:12 2013
@@ -162,7 +162,7 @@ public class ServerWorker implements Run
         msgContext.setTo(new EndpointReference(uri));
         msgContext.setProperty(PassThroughConstants.REST_URL_POSTFIX, uri);
 
-               if ("GET".equals(method) || "DELETE".equals(method)) {
+               if (("GET".equals(method) || "DELETE".equals(method)) && 
httpGetRequestProcessor != null) {
                        HttpResponse response = 
sourceConfiguration.getResponseFactory().newHttpResponse(
                                request.getVersion(), HttpStatus.SC_OK,
                                request.getConnection().getContext());

Modified: 
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/config/SourceConfiguration.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/config/SourceConfiguration.java?rev=1513024&r1=1513023&r2=1513024&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/config/SourceConfiguration.java
 (original)
+++ 
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/config/SourceConfiguration.java
 Mon Aug 12 01:21:12 2013
@@ -52,6 +52,8 @@ public class SourceConfiguration extends
     /** port of the listener */
     private int port = 8280;
 
+    private String bindAddress = null;
+
     /** Object to manage the source connections */
     private SourceConnections sourceConnections = null;
 
@@ -82,6 +84,11 @@ public class SourceConfiguration extends
         this.sourceConnections = new SourceConnections();
         this.port = ParamUtils.getRequiredParamInt(parameters, "port");
 
+        Parameter bindAddressParameter = 
parameters.getParameter(PassThroughConstants.BIND_ADDRESS);
+        if (bindAddressParameter != null) {
+            this.bindAddress = ((String) 
bindAddressParameter.getValue()).trim();
+        }
+
         Parameter hostParameter = 
parameters.getParameter(TransportListener.HOST_ADDRESS);
         if (hostParameter != null) {
             host = ((String) hostParameter.getValue()).trim();
@@ -130,6 +137,10 @@ public class SourceConfiguration extends
         return port;
     }
 
+    public String getBindAddress() {
+        return bindAddress;
+    }
+
     public SourceConnections getSourceConnections() {
         return sourceConnections;
     }


Reply via email to