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;
}