You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by hi...@apache.org on 2013/08/11 05:22:46 UTC
svn commit: r1512866 [1/3] - in /synapse/trunk/java: ./
modules/integration/src/test/resources/
modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/
modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nht...
Author: hiranya
Date: Sun Aug 11 03:22:44 2013
New Revision: 1512866
URL: http://svn.apache.org/r1512866
Log:
1. Upgrading to HTTP Core 4.3 (Migrated both NHTTP and PTT transports out of deprecated APIs)
2. Unified the logging mechanism used by NHTTP and PTT transports
3. Improved the HTTP transport logging mechanism, to make the configuration more fine grained
4. Unified the configuration mechanism used by NHTTP and PTT transports
Added:
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/config/
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/config/HttpConfigConstants.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/config/HttpTransportConfiguration.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingClientEventHandler.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingConstants.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingIOSession.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingNHttpClientConnection.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingNHttpClientConnectionFactory.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingNHttpSSLClientConnectionFactory.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingNHttpSSLServerConnectionFactory.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingNHttpServerConnection.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingNHttpServerConnectionFactory.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingServerEventHandler.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingUtils.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/Wire.java
synapse/trunk/java/modules/transports/core/nhttp/src/test/java/org/apache/synapse/transport/utils/config/
synapse/trunk/java/modules/transports/core/nhttp/src/test/java/org/apache/synapse/transport/utils/config/HttpTransportConfigurationTest.java
Removed:
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/LoggingIOSession.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/LoggingNHttpClientConnection.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/LoggingNHttpClientHandler.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/LoggingNHttpServerConnection.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/LoggingNHttpServiceHandler.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/LoggingUtils.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/PlainClientIOEventDispatch.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/PlainServerIOEventDispatch.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/SSLClientIOEventDispatch.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/SSLServerIOEventDispatch.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/SSLSourceIOEventDispatch.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/SSLTargetIOEventDispatch.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/SourceIOEventDispatch.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/TargetIOEventDispatch.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/logging/
Modified:
synapse/trunk/java/modules/integration/src/test/resources/passthru-http.properties
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/HttpCoreNIOListener.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/HttpCoreNIOSSLListener.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/HttpCoreNIOSSLSender.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/HttpCoreNIOSender.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ListenerContext.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/NHttpConfiguration.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ServerHandler.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/debug/NhttpConnectionDebugConfig.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/util/RESTUtil.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/HttpGetRequestProcessor.java
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/PassThroughHttpSSLListener.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/PassThroughHttpSSLSender.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/PassThroughHttpSender.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/SourceHandler.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/SourceResponse.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/TargetHandler.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/TargetRequest.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/api/PassThroughNHttpGetProcessor.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/config/BaseConfiguration.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/config/PassThroughConfiguration.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/config/SourceConfiguration.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/config/TargetConfiguration.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/connections/SourceConnections.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/util/BufferFactory.java
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/util/RelayUtils.java
synapse/trunk/java/modules/transports/core/nhttp/src/test/resources/nhttp.properties
synapse/trunk/java/pom.xml
synapse/trunk/java/repository/conf/nhttp.properties
Modified: synapse/trunk/java/modules/integration/src/test/resources/passthru-http.properties
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/integration/src/test/resources/passthru-http.properties?rev=1512866&r1=1512865&r2=1512866&view=diff
==============================================================================
--- synapse/trunk/java/modules/integration/src/test/resources/passthru-http.properties (original)
+++ synapse/trunk/java/modules/integration/src/test/resources/passthru-http.properties Sun Aug 11 03:22:44 2013
@@ -1,6 +1,6 @@
http.socket.timeout=60000
http.connection.timeout=0
-http.socket.buffer-size=8096
+http.socket.buffer-size=8192
http.tcp.nodelay=true
http.nio.interest-ops-queueing=false
Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java?rev=1512866&r1=1512865&r2=1512866&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java Sun Aug 11 03:22:44 2013
@@ -16,6 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
+
package org.apache.synapse.transport.nhttp;
import org.apache.axiom.om.OMAbstractFactory;
@@ -49,8 +50,6 @@ import org.apache.http.nio.util.ContentI
import org.apache.http.nio.util.SharedInputBuffer;
import org.apache.http.nio.util.SharedOutputBuffer;
import org.apache.http.nio.entity.ContentInputStream;
-import org.apache.http.params.DefaultedHttpParams;
-import org.apache.http.params.HttpParams;
import org.apache.http.protocol.*;
import org.apache.synapse.transport.nhttp.debug.ClientConnectionDebug;
import org.apache.synapse.transport.nhttp.util.NhttpMetricsCollector;
@@ -76,8 +75,6 @@ public class ClientHandler implements NH
private static final Log log = LogFactory.getLog(ClientHandler.class);
- /** the HTTP protocol parameters to adhere to for outgoing messages */
- private final HttpParams params;
/** the HttpProcessor for response messages received */
private final HttpProcessor httpProcessor;
/** the connection re-use strategy */
@@ -122,15 +119,12 @@ public class ClientHandler implements NH
* context and Http protocol parameters given
*
* @param cfgCtx the Axis2 configuration context
- * @param params the Http protocol parameters to adhere to
* @param metrics statistics collection metrics
*/
- public ClientHandler(final ConfigurationContext cfgCtx, final HttpParams params,
- final NhttpMetricsCollector metrics) {
+ public ClientHandler(final ConfigurationContext cfgCtx, final NhttpMetricsCollector metrics) {
super();
this.cfgCtx = cfgCtx;
- this.params = params;
this.httpProcessor = getHttpProcessor();
this.connStrategy = new DefaultConnectionReuseStrategy();
this.metrics = metrics;
@@ -228,7 +222,7 @@ public class ClientHandler implements NH
HttpContext context = conn.getContext();
ContentOutputBuffer outputBuffer
- = new SharedOutputBuffer(cfg.getBufferSize(), conn, allocator);
+ = new SharedOutputBuffer(cfg.getBufferSize(), allocator);
axis2Req.setOutputBuffer(outputBuffer);
context.setAttribute(REQUEST_SOURCE_BUFFER, outputBuffer);
@@ -238,7 +232,6 @@ public class ClientHandler implements NH
context.setAttribute(OUTGOING_MESSAGE_CONTEXT, axis2Req.getMsgContext());
HttpRequest request = axis2Req.getRequest();
- request.setParams(new DefaultedHttpParams(request.getParams(), this.params));
this.httpProcessor.process(request, context);
if (axis2Req.getTimeout() > 0) {
conn.setSocketTimeout(axis2Req.getTimeout());
@@ -521,10 +514,10 @@ public class ClientHandler implements NH
public void inputReady(final NHttpClientConnection conn, final ContentDecoder decoder) {
HttpContext context = conn.getContext();
HttpResponse response = conn.getHttpResponse();
- ContentInputBuffer inBuf = (ContentInputBuffer) context.getAttribute(RESPONSE_SINK_BUFFER);
+ SharedInputBuffer inBuf = (SharedInputBuffer) context.getAttribute(RESPONSE_SINK_BUFFER);
try {
- int bytesRead = inBuf.consumeContent(decoder);
+ int bytesRead = inBuf.consumeContent(decoder, conn);
if (metrics != null && bytesRead > 0) {
if (metrics.getLevel() == MetricsCollector.LEVEL_FULL) {
metrics.incrementBytesReceived(getMessageContext(conn), bytesRead);
@@ -598,12 +591,12 @@ public class ClientHandler implements NH
public void outputReady(final NHttpClientConnection conn, final ContentEncoder encoder) {
HttpContext context = conn.getContext();
- ContentOutputBuffer outBuf
- = (ContentOutputBuffer) context.getAttribute(REQUEST_SOURCE_BUFFER);
+ SharedOutputBuffer outBuf
+ = (SharedOutputBuffer) context.getAttribute(REQUEST_SOURCE_BUFFER);
if (outBuf == null) return;
try {
- int bytesWritten = outBuf.produceContent(encoder);
+ int bytesWritten = outBuf.produceContent(encoder, conn);
if (metrics != null) {
if (bytesWritten > 0) {
if (metrics.getLevel() == MetricsCollector.LEVEL_FULL) {
@@ -711,7 +704,7 @@ public class ClientHandler implements NH
// sometimes, some http clients sends an "\r\n" as the content body with a
// HTTP 202 OK.. we will just get it into this temp buffer and ignore it..
- ContentInputBuffer inputBuffer = new SharedInputBuffer(8, conn, allocator);
+ ContentInputBuffer inputBuffer = new SharedInputBuffer(8, allocator);
context.setAttribute(RESPONSE_SINK_BUFFER, inputBuffer);
// create a dummy message with an empty SOAP envelope and a property
@@ -954,8 +947,7 @@ public class ClientHandler implements NH
}
if (expectEntityBody) {
- inputBuffer
- = new SharedInputBuffer(cfg.getBufferSize(), conn, allocator);
+ inputBuffer = new SharedInputBuffer(cfg.getBufferSize(), allocator);
context.setAttribute(RESPONSE_SINK_BUFFER, inputBuffer);
BasicHttpEntity entity = new BasicHttpEntity();
@@ -1116,13 +1108,11 @@ public class ClientHandler implements NH
* @return the HttpProcessor that processes requests
*/
private HttpProcessor getHttpProcessor() {
- BasicHttpProcessor httpProcessor = new BasicHttpProcessor();
- httpProcessor.addInterceptor(new RequestContent());
- httpProcessor.addInterceptor(new RequestTargetHost());
- httpProcessor.addInterceptor(new RequestConnControl());
- httpProcessor.addInterceptor(new RequestUserAgent());
- httpProcessor.addInterceptor(new RequestExpectContinue());
- return httpProcessor;
+ return new ImmutableHttpProcessor(new RequestContent(),
+ new RequestTargetHost(),
+ new RequestConnControl(),
+ new RequestUserAgent(),
+ new RequestExpectContinue(false));
}
public int getActiveCount() {
Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/HttpCoreNIOListener.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/HttpCoreNIOListener.java?rev=1512866&r1=1512865&r2=1512866&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/HttpCoreNIOListener.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/HttpCoreNIOListener.java Sun Aug 11 03:22:44 2013
@@ -35,14 +35,15 @@ import org.apache.axis2.transport.base.t
import org.apache.axis2.util.JavaUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.http.config.ConnectionConfig;
import org.apache.http.impl.nio.reactor.DefaultListeningIOReactor;
import org.apache.http.nio.NHttpServerEventHandler;
import org.apache.http.nio.reactor.IOEventDispatch;
import org.apache.http.nio.reactor.IOReactorExceptionHandler;
import org.apache.http.nio.reactor.ListenerEndpoint;
import org.apache.http.nio.reactor.ssl.SSLSetupHandler;
-import org.apache.http.params.HttpParams;
import org.apache.synapse.transport.nhttp.util.NhttpMetricsCollector;
+import org.apache.synapse.transport.utils.logging.LoggingUtils;
import javax.net.ssl.SSLContext;
import java.io.IOException;
@@ -89,8 +90,8 @@ public class HttpCoreNIOListener impleme
protected IOEventDispatch getEventDispatch(
NHttpServerEventHandler handler, SSLContext sslContext,
- SSLSetupHandler setupHandler, HttpParams params) {
- return new PlainServerIOEventDispatch(handler, params);
+ SSLSetupHandler setupHandler, ConnectionConfig config) {
+ return LoggingUtils.getServerIODispatch(handler, config);
}
/**
@@ -197,7 +198,6 @@ public class HttpCoreNIOListener impleme
}
// configure the IO reactor on the specified port
- HttpParams params = listenerContext.getParams();
try {
String prefix = (sslContext == null ? "http" : "https") + "-Listener I/O dispatcher";
ioReactor = new DefaultListeningIOReactor(
@@ -229,7 +229,7 @@ public class HttpCoreNIOListener impleme
handler = new ServerHandler(listenerContext);
final IOEventDispatch ioEventDispatch = getEventDispatch(handler,
- sslContext, sslSetupHandler, params);
+ sslContext, sslSetupHandler, listenerContext.getConnectionConfig());
state = BaseConstants.STARTED;
listenerContext.getHttpGetRequestProcessor().init(cfgCtx, handler);
@@ -354,7 +354,7 @@ public class HttpCoreNIOListener impleme
}
/**
- * Returns the number of requestes queued in the thread pool
+ * Returns the number of requests queued in the thread pool
* @return queue size
*/
public int getQueueSize() {
@@ -383,34 +383,6 @@ public class HttpCoreNIOListener impleme
/**
- * Return the EPR for the given service (implements deprecated method temporarily)
- */
- public EndpointReference getEPRForService(String serviceName, String ip) throws AxisFault {
-
- String trailer = "";
- //Strip out the operation name
- if (serviceName.indexOf('/') != -1) {
- trailer += serviceName.substring(serviceName.indexOf("/"));
- serviceName = serviceName.substring(0, serviceName.indexOf('/'));
- }
- // strip out the endpoint name if present
- if (serviceName.indexOf('.') != -1) {
- trailer += serviceName.substring(serviceName.indexOf("."));
- serviceName = serviceName.substring(0, serviceName.indexOf('.'));
- }
-
- if (serviceNameToEPRMap.containsKey(serviceName)) {
- return new EndpointReference(
- customEPRPrefix + serviceNameToEPRMap.get(serviceName) + trailer);
- } else {
- if (serviceEPRPrefix == null) {
- return null;
- }
- return new EndpointReference(serviceEPRPrefix + serviceName + trailer);
- }
- }
-
- /**
* Return the EPRs for the given service over this transport
* @param serviceName name of the service
* @param ip IP address
Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/HttpCoreNIOSSLListener.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/HttpCoreNIOSSLListener.java?rev=1512866&r1=1512865&r2=1512866&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/HttpCoreNIOSSLListener.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/HttpCoreNIOSSLListener.java Sun Aug 11 03:22:44 2013
@@ -41,11 +41,12 @@ import org.apache.axis2.description.Para
import org.apache.axis2.description.TransportInDescription;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.http.config.ConnectionConfig;
import org.apache.http.nio.NHttpServerEventHandler;
import org.apache.http.nio.reactor.IOEventDispatch;
import org.apache.http.nio.reactor.IOSession;
import org.apache.http.nio.reactor.ssl.SSLSetupHandler;
-import org.apache.http.params.HttpParams;
+import org.apache.synapse.transport.utils.logging.LoggingUtils;
public class HttpCoreNIOSSLListener extends HttpCoreNIOListener {
@@ -53,14 +54,10 @@ public class HttpCoreNIOSSLListener exte
protected IOEventDispatch getEventDispatch(
NHttpServerEventHandler handler, SSLContext sslContext,
- SSLSetupHandler sslIOSessionHandler, HttpParams params) {
- return new SSLServerIOEventDispatch(handler, sslContext, sslIOSessionHandler, params);
+ SSLSetupHandler sslSetupHandler, ConnectionConfig config) {
+ return LoggingUtils.getServerIODispatch(handler, config, sslContext, sslSetupHandler);
}
- /**
- * Return the EPR prefix for services made available over this transport
- * @return
- */
protected String getServiceEPRPrefix(ConfigurationContext cfgCtx, String host, int port) {
return "https://" + host + (port == 443 ? "" : ":" + port) +
(!cfgCtx.getServiceContextPath().startsWith("/") ? "/" : "") +
Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/HttpCoreNIOSSLSender.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/HttpCoreNIOSSLSender.java?rev=1512866&r1=1512865&r2=1512866&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/HttpCoreNIOSSLSender.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/HttpCoreNIOSSLSender.java Sun Aug 11 03:22:44 2013
@@ -21,16 +21,17 @@ package org.apache.synapse.transport.nht
import org.apache.commons.logging.LogFactory;
import org.apache.commons.logging.Log;
+import org.apache.http.config.ConnectionConfig;
import org.apache.http.nio.NHttpClientEventHandler;
import org.apache.http.nio.reactor.IOEventDispatch;
import org.apache.http.nio.reactor.IOSession;
import org.apache.http.nio.reactor.ssl.SSLSetupHandler;
-import org.apache.http.params.HttpParams;
import org.apache.axis2.AxisFault;
import org.apache.axis2.description.Parameter;
import org.apache.axis2.description.TransportOutDescription;
import org.apache.axis2.transport.base.ParamUtils;
import org.apache.axiom.om.OMElement;
+import org.apache.synapse.transport.utils.logging.LoggingUtils;
import org.apache.synapse.transport.utils.sslcert.CertificateVerificationConfig;
import org.apache.synapse.transport.utils.sslcert.CertificateVerificationException;
import org.apache.synapse.transport.utils.sslcert.adaptor.SynapseAdaptorForOcspCrl;
@@ -54,11 +55,10 @@ public class HttpCoreNIOSSLSender extend
private static final SynapseAdaptorForOcspCrl ocspCrl = new SynapseAdaptorForOcspCrl();
protected IOEventDispatch getEventDispatch(NHttpClientEventHandler handler, SSLContext sslContext,
- SSLSetupHandler sslIOSessionHandler, HttpParams params,
+ SSLSetupHandler sslSetupHandler, ConnectionConfig config,
TransportOutDescription transportOut) throws AxisFault {
-
- return new SSLClientIOEventDispatch(handler, sslContext,
- getCustomSSLContexts(transportOut), sslIOSessionHandler, params);
+ return LoggingUtils.getClientIODispatch(handler, config, sslContext,
+ sslSetupHandler, getCustomSSLContexts(transportOut));
}
/**
Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/HttpCoreNIOSender.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/HttpCoreNIOSender.java?rev=1512866&r1=1512865&r2=1512866&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/HttpCoreNIOSender.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/HttpCoreNIOSender.java Sun Aug 11 03:22:44 2013
@@ -41,21 +41,17 @@ import org.apache.axis2.transport.base.T
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.http.*;
+import org.apache.http.config.ConnectionConfig;
import org.apache.http.entity.BasicHttpEntity;
import org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor;
import org.apache.http.impl.nio.reactor.IOReactorConfig;
import org.apache.http.nio.NHttpClientConnection;
import org.apache.http.nio.NHttpClientEventHandler;
-import org.apache.http.nio.params.NIOReactorPNames;
import org.apache.http.nio.reactor.IOEventDispatch;
import org.apache.http.nio.reactor.IOReactorExceptionHandler;
import org.apache.http.nio.reactor.SessionRequest;
import org.apache.http.nio.reactor.SessionRequestCallback;
import org.apache.http.nio.reactor.ssl.SSLSetupHandler;
-import org.apache.http.params.BasicHttpParams;
-import org.apache.http.params.HttpConnectionParams;
-import org.apache.http.params.HttpParams;
-import org.apache.http.params.HttpProtocolParams;
import org.apache.http.protocol.HTTP;
import org.apache.axis2.transport.base.threads.NativeThreadFactory;
import org.apache.synapse.transport.nhttp.debug.ClientConnectionDebug;
@@ -63,6 +59,7 @@ import org.apache.synapse.transport.nhtt
import org.apache.synapse.transport.nhttp.util.MessageFormatterDecoratorFactory;
import org.apache.synapse.transport.nhttp.util.NhttpUtil;
import org.apache.synapse.transport.nhttp.util.NhttpMetricsCollector;
+import org.apache.synapse.transport.utils.logging.LoggingUtils;
import javax.net.ssl.SSLContext;
import java.io.IOException;
@@ -158,7 +155,6 @@ public class HttpCoreNIOSender extends A
preserveUserAgentHeader = NHttpConfiguration.getInstance().isPreserveUserAgentHeader();
preserveServerHeader = NHttpConfiguration.getInstance().isPreserveServerHeader();
- HttpParams params = getClientParameters();
try {
String prefix = (sslContext == null ? "http" : "https") + "-Sender I/O dispatcher";
ioReactor = new DefaultConnectingIOReactor(
@@ -182,9 +178,9 @@ public class HttpCoreNIOSender extends A
}
metrics = new NhttpMetricsCollector(false, transportOut.getName());
- handler = new ClientHandler(cfgCtx, params, metrics);
+ handler = new ClientHandler(cfgCtx, metrics);
final IOEventDispatch ioEventDispatch = getEventDispatch(
- handler, sslContext, sslSetupHandler, params, transportOut);
+ handler, sslContext, sslSetupHandler, getConnectionConfig(), transportOut);
// start the Sender in a new seperate thread
Thread t = new Thread(new Runnable() {
@@ -216,16 +212,15 @@ public class HttpCoreNIOSender extends A
* @param handler The NHTTP client handler instance
* @param sslContext SSL context used by the sender or null
* @param sslIOSessionHandler SSL session handler or null
- * @param params HTTP parameters
+ * @param config ConnectionConfig object
* @param trpOut Transport out description
* @return an IOEventDispatch instance
* @throws AxisFault on error
*/
protected IOEventDispatch getEventDispatch(NHttpClientEventHandler handler, SSLContext sslContext,
- SSLSetupHandler sslIOSessionHandler, HttpParams params,
+ SSLSetupHandler sslIOSessionHandler, ConnectionConfig config,
TransportOutDescription trpOut) throws AxisFault {
-
- return new PlainClientIOEventDispatch(handler, params);
+ return LoggingUtils.getClientIODispatch(handler, config);
}
/**
@@ -253,47 +248,14 @@ public class HttpCoreNIOSender extends A
* get HTTP protocol parameters to which the sender must adhere to
* @return the applicable HTTP protocol parameters
*/
- private HttpParams getClientParameters() {
+ private ConnectionConfig getConnectionConfig() {
NHttpConfiguration cfg = NHttpConfiguration.getInstance();
- HttpParams params = new BasicHttpParams();
- params
- .setIntParameter(HttpConnectionParams.SO_TIMEOUT,
- cfg.getProperty(NhttpConstants.SO_TIMEOUT_SENDER, 60000))
- .setIntParameter(HttpConnectionParams.CONNECTION_TIMEOUT,
- cfg.getProperty(HttpConnectionParams.CONNECTION_TIMEOUT, 10000))
- .setIntParameter(HttpConnectionParams.SOCKET_BUFFER_SIZE,
- cfg.getProperty(HttpConnectionParams.SOCKET_BUFFER_SIZE, 8 * 1024))
- .setBooleanParameter(HttpConnectionParams.STALE_CONNECTION_CHECK,
- cfg.getProperty(HttpConnectionParams.STALE_CONNECTION_CHECK, 0) == 1)
- .setBooleanParameter(HttpConnectionParams.TCP_NODELAY,
- cfg.getProperty(HttpConnectionParams.TCP_NODELAY, 1) == 1)
- .setParameter(HttpProtocolParams.USER_AGENT, "Synapse-HttpComponents-NIO")
- .setParameter(
- HttpProtocolParams.HTTP_MALFORMED_INPUT_ACTION,
- cfg.getMalformedInputActionValue())
- .setParameter(
- HttpProtocolParams.HTTP_UNMAPPABLE_INPUT_ACTION,
- cfg.getUnMappableInputActionValue());
-
- if (cfg.getBooleanValue(NIOReactorPNames.INTEREST_OPS_QUEUEING, false)) {
- params.setBooleanParameter(NIOReactorPNames.INTEREST_OPS_QUEUEING, true);
- }
- return params;
+ return cfg.getConnectionConfig();
}
private IOReactorConfig getReactorConfig() {
- IOReactorConfig config = new IOReactorConfig();
NHttpConfiguration cfg = NHttpConfiguration.getInstance();
- config.setIoThreadCount(cfg.getClientIOWorkers());
- config.setSoTimeout(cfg.getProperty(NhttpConstants.SO_TIMEOUT_SENDER, 60000));
- config.setConnectTimeout(cfg.getProperty(HttpConnectionParams.CONNECTION_TIMEOUT, 10000));
- config.setSndBufSize(cfg.getProperty(HttpConnectionParams.SOCKET_BUFFER_SIZE, 8 * 1024));
- config.setRcvBufSize(cfg.getProperty(HttpConnectionParams.SOCKET_BUFFER_SIZE, 8 * 1024));
- config.setTcpNoDelay(cfg.getProperty(HttpConnectionParams.TCP_NODELAY, 1) == 1);
- if (cfg.getBooleanValue(NIOReactorPNames.INTEREST_OPS_QUEUEING, false)) {
- config.setInterestOpQueued(true);
- }
- return config;
+ return cfg.getReactorConfig();
}
/**
Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ListenerContext.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ListenerContext.java?rev=1512866&r1=1512865&r2=1512866&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ListenerContext.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ListenerContext.java Sun Aug 11 03:22:44 2013
@@ -31,12 +31,8 @@ import org.apache.axis2.transport.base.e
import org.apache.axis2.transport.base.endpoint.config.URLEndpointsConfigurationFactory;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.http.config.ConnectionConfig;
import org.apache.http.impl.nio.reactor.IOReactorConfig;
-import org.apache.http.nio.params.NIOReactorPNames;
-import org.apache.http.params.BasicHttpParams;
-import org.apache.http.params.HttpConnectionParams;
-import org.apache.http.params.HttpParams;
-import org.apache.http.params.HttpProtocolParams;
import org.apache.synapse.commons.evaluators.EvaluatorConstants;
import org.apache.synapse.commons.evaluators.EvaluatorException;
import org.apache.synapse.commons.evaluators.Parser;
@@ -83,8 +79,6 @@ public class ListenerContext {
/** The bind addresses as (address, port) pairs */
private String bindAddress = null;
- private HttpParams params = null;
-
/** Endpoints configuration for specific HTTP Urls */
private URLEndpointsConfiguration endpoints = null;
@@ -155,9 +149,6 @@ public class ListenerContext {
httpGetRequestProcessor = new DefaultHttpGetProcessor();
}
- params = getListenerParameters();
-
-
param = transportIn.getParameter(NhttpConstants.ENDPOINTS_CONFIGURATION);
if (param != null && param.getValue() != null) {
endpoints = new URLEndpointsConfigurationFactory().create(param.getValue().toString());
@@ -171,7 +162,7 @@ public class ListenerContext {
* @throws org.apache.axis2.AxisFault if an error occurs
*/
private void createPriorityConfiguration(String fileName) throws AxisFault {
- OMElement definitions = null;
+ OMElement definitions;
try {
FileInputStream fis = new FileInputStream(fileName);
definitions = new StAXOMBuilder(fis).getDocumentElement();
@@ -179,8 +170,10 @@ public class ListenerContext {
definitions.build();
} catch (FileNotFoundException e) {
handleException("Priority configuration file cannot be found : " + fileName, e);
+ return;
} catch (XMLStreamException e) {
handleException("Error parsing priority configuration xml file " + fileName, e);
+ return;
}
OMElement executorElem = definitions.getFirstChildWithName(
@@ -243,51 +236,14 @@ public class ListenerContext {
return null;
}
- /**
- * get HTTP protocol parameters to which the listener must adhere to
- * @return the applicable HTTP protocol parameters
- */
- private HttpParams getListenerParameters() {
- HttpParams params = new BasicHttpParams();
+ public ConnectionConfig getConnectionConfig() {
NHttpConfiguration cfg = NHttpConfiguration.getInstance();
- params
- .setIntParameter(HttpConnectionParams.SO_TIMEOUT,
- cfg.getProperty(NhttpConstants.SO_TIMEOUT_RECEIVER, 60000))
- .setIntParameter(HttpConnectionParams.SOCKET_BUFFER_SIZE,
- cfg.getProperty(HttpConnectionParams.SOCKET_BUFFER_SIZE, 8 * 1024))
- .setBooleanParameter(HttpConnectionParams.STALE_CONNECTION_CHECK,
- cfg.getProperty(HttpConnectionParams.STALE_CONNECTION_CHECK, 0) == 1)
- .setBooleanParameter(HttpConnectionParams.TCP_NODELAY,
- cfg.getProperty(HttpConnectionParams.TCP_NODELAY, 1) == 1)
- .setParameter(HttpProtocolParams.ORIGIN_SERVER, "Synapse-HttpComponents-NIO")
- .setParameter(
- HttpProtocolParams.HTTP_MALFORMED_INPUT_ACTION,
- cfg.getMalformedInputActionValue())
- .setParameter(
- HttpProtocolParams.HTTP_UNMAPPABLE_INPUT_ACTION,
- cfg.getUnMappableInputActionValue());
-
- if (cfg.getBooleanValue(NIOReactorPNames.INTEREST_OPS_QUEUEING, false)) {
- params.setBooleanParameter(NIOReactorPNames.INTEREST_OPS_QUEUEING, true);
- }
- return params;
+ return cfg.getConnectionConfig();
}
public IOReactorConfig getReactorConfig() {
- IOReactorConfig config = new IOReactorConfig();
NHttpConfiguration cfg = NHttpConfiguration.getInstance();
- config.setIoThreadCount(cfg.getServerIOWorkers());
- config.setSoTimeout(cfg.getProperty(NhttpConstants.SO_TIMEOUT_RECEIVER, 60000));
- config.setSndBufSize(cfg.getProperty(HttpConnectionParams.SOCKET_BUFFER_SIZE, 8 * 1024));
- config.setRcvBufSize(cfg.getProperty(HttpConnectionParams.SOCKET_BUFFER_SIZE, 8 * 1024));
- config.setTcpNoDelay(cfg.getProperty(HttpConnectionParams.TCP_NODELAY, 1) == 1);
- if (cfg.getBooleanValue(NIOReactorPNames.INTEREST_OPS_QUEUEING, false)) {
- config.setInterestOpQueued(true);
- }
- if (cfg.getBooleanValue(HttpConnectionParams.SO_REUSEADDR, false)) {
- config.setSoReuseAddress(true);
- }
- return config;
+ return cfg.getReactorConfig();
}
public ConfigurationContext getCfgCtx() {
@@ -334,10 +290,6 @@ public class ListenerContext {
return bindAddress;
}
- public HttpParams getParams() {
- return params;
- }
-
public URLEndpointsConfiguration getEndpoints() {
return endpoints;
}
Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/NHttpConfiguration.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/NHttpConfiguration.java?rev=1512866&r1=1512865&r2=1512866&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/NHttpConfiguration.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/NHttpConfiguration.java Sun Aug 11 03:22:44 2013
@@ -19,20 +19,15 @@
package org.apache.synapse.transport.nhttp;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.http.params.HttpProtocolParams;
-import org.apache.synapse.commons.util.MiscellaneousUtil;
+import org.apache.synapse.transport.utils.config.HttpTransportConfiguration;
-import java.nio.charset.CodingErrorAction;
import java.util.ArrayList;
import java.util.List;
-import java.util.Properties;
/**
* Store and manage properties that tune the nhttp transport
*/
-public final class NHttpConfiguration {
+public final class NHttpConfiguration extends HttpTransportConfiguration {
// defaults
private static final int WORKERS_CORE_THREADS = 20;
@@ -47,23 +42,21 @@ public final class NHttpConfiguration {
private static final String S_T_MAX = "snd_t_max";
private static final String S_T_ALIVE = "snd_alive_sec";
private static final String S_T_QLEN = "snd_qlen";
- private static final String S_IO_WORKERS = "snd_io_threads";
// client sender
private static final String C_T_CORE = "lst_t_core";
private static final String C_T_MAX = "lst_t_max";
private static final String C_T_ALIVE = "lst_alive_sec";
private static final String C_T_QLEN = "lst_qlen";
- private static final String C_IO_WORKERS = "lst_io_threads";
+
+ private static final String IO_WORKERS = "io_threads_per_reactor";
// general
private static final String G_BUFFER_SIZE = "nhttp_buffer_size";
private static final String G_DISABLED_HTTP_METHODS = "nhttp_disabled_methods";
- private static final Log log = LogFactory.getLog(NHttpConfiguration.class);
private static NHttpConfiguration _instance = new NHttpConfiguration();
- private Properties props;
- List<String> methods;
+ private List<String> methods;
/** Comma separated list of blocked uris*/
public static final String BLOCK_SERVICE_LIST = "http.block_service_list";
@@ -71,9 +64,12 @@ public final class NHttpConfiguration {
public static final String BLOCK_SERVICE_LIST_DEFAULT = "false";
private NHttpConfiguration() {
- try {
- props = MiscellaneousUtil.loadProperties("nhttp.properties");
- } catch (Exception ignore) {}
+ super("nhttp");
+ }
+
+ @Override
+ protected int getThreadsPerReactor() {
+ return getIntProperty(IO_WORKERS, IO_WORKER_COUNT);
}
public static NHttpConfiguration getInstance() {
@@ -81,136 +77,65 @@ public final class NHttpConfiguration {
}
public int getServerCoreThreads() {
- return getProperty(S_T_CORE, WORKERS_CORE_THREADS);
+ return getIntProperty(S_T_CORE, WORKERS_CORE_THREADS);
}
public int getServerMaxThreads() {
- return getProperty(S_T_MAX, WORKERS_MAX_THREADS);
+ return getIntProperty(S_T_MAX, WORKERS_MAX_THREADS);
}
public int getServerKeepalive() {
- return getProperty(S_T_ALIVE, WORKER_KEEP_ALIVE);
+ return getIntProperty(S_T_ALIVE, WORKER_KEEP_ALIVE);
}
public int getServerQueueLen() {
- return getProperty(S_T_QLEN, BLOCKING_QUEUE_LENGTH);
+ return getIntProperty(S_T_QLEN, BLOCKING_QUEUE_LENGTH);
}
- public int getServerIOWorkers() {
- return getProperty(S_IO_WORKERS, IO_WORKER_COUNT);
- }
-
-
public int getClientCoreThreads() {
- return getProperty(C_T_CORE, WORKERS_CORE_THREADS);
+ return getIntProperty(C_T_CORE, WORKERS_CORE_THREADS);
}
public int getClientMaxThreads() {
- return getProperty(C_T_MAX, WORKERS_MAX_THREADS);
+ return getIntProperty(C_T_MAX, WORKERS_MAX_THREADS);
}
public int getClientKeepalive() {
- return getProperty(C_T_ALIVE, WORKER_KEEP_ALIVE);
+ return getIntProperty(C_T_ALIVE, WORKER_KEEP_ALIVE);
}
public int getClientQueueLen() {
- return getProperty(C_T_QLEN, BLOCKING_QUEUE_LENGTH);
- }
-
- public int getClientIOWorkers() {
- return getProperty(C_IO_WORKERS, IO_WORKER_COUNT);
+ return getIntProperty(C_T_QLEN, BLOCKING_QUEUE_LENGTH);
}
public int getBufferSize() {
- return getProperty(G_BUFFER_SIZE, BUFFER_SIZE);
+ return getIntProperty(G_BUFFER_SIZE, BUFFER_SIZE);
}
public boolean isKeepAliveDisabled() {
- return getProperty(NhttpConstants.DISABLE_KEEPALIVE, 0) == 1;
+ return getIntProperty(NhttpConstants.DISABLE_KEEPALIVE, 0) == 1;
}
public boolean isPreserveUserAgentHeader() {
- return getBooleanValue(NhttpConstants.USER_AGENT_HEADER_PRESERVE, false);
+ return getBooleanProperty(NhttpConstants.USER_AGENT_HEADER_PRESERVE, false);
}
public boolean isPreserveServerHeader() {
- return getBooleanValue(NhttpConstants.SERVER_HEADER_PRESERVE, true);
+ return getBooleanProperty(NhttpConstants.SERVER_HEADER_PRESERVE, true);
}
public boolean isCountConnections() {
- return getBooleanValue(NhttpConstants.COUNT_CONNECTIONS, false);
+ return getBooleanProperty(NhttpConstants.COUNT_CONNECTIONS, false);
}
public String isServiceListBlocked() {
- return getStringValue(BLOCK_SERVICE_LIST, BLOCK_SERVICE_LIST_DEFAULT);
- }
-
- /**
- * Get properties that tune nhttp transport. Preference to system properties
- * @param name name of the system/config property
- * @param def default value to return if the property is not set
- * @return the value of the property to be used
- */
- public int getProperty(String name, int def) {
- String val = System.getProperty(name);
- if (val == null) {
- val = props.getProperty(name);
- }
-
- if (val != null && Integer.valueOf(val) > 0) {
- if (log.isDebugEnabled()) {
- log.debug("Using nhttp tuning parameter : " + name + " = " + val);
- }
- return Integer.valueOf(val);
- }
- return def;
- }
-
- /**
- * Get properties that tune nhttp transport. Preference to system properties
- * @param name name of the system/config property
- * @param def default value to return if the property is not set
- * @return the value of the property to be used
- */
- public boolean getBooleanValue(String name, boolean def) {
- String val = System.getProperty(name);
- if (val == null) {
- val = props.getProperty(name);
- }
-
- if (val != null && Boolean.parseBoolean(val)) {
- if (log.isDebugEnabled()) {
- log.debug("Using nhttp tuning parameter : " + name);
- }
- return true;
- } else if (val != null && !Boolean.parseBoolean(val)) {
- if (log.isDebugEnabled()) {
- log.debug("Using nhttp tuning parameter : " + name);
- }
- return false;
- }
- return def;
- }
-
- /**
- * Get properties that tune nhttp transport. Preference to system properties
- * @param name name of the system/config property
- * @param def default value to return if the property is not set
- * @return the value of the property to be used
- */
- public String getStringValue(String name, String def) {
- String val = System.getProperty(name);
- if (val == null) {
- val = props.getProperty(name);
- }
-
- return val == null ? def : val;
+ return getStringProperty(BLOCK_SERVICE_LIST, BLOCK_SERVICE_LIST_DEFAULT);
}
public boolean isHttpMethodDisabled(String method) {
if (methods == null) {
methods = new ArrayList<String>();
- String methodsString = getStringValue(G_DISABLED_HTTP_METHODS, "");
+ String methodsString = getStringProperty(G_DISABLED_HTTP_METHODS, "");
for (String methodStr : methodsString.split(",")) {
methods.add(methodStr.trim().toUpperCase());
}
@@ -218,25 +143,4 @@ public final class NHttpConfiguration {
return methods.contains(method);
}
- public CodingErrorAction getMalformedInputActionValue() {
- String val = getStringValue(HttpProtocolParams.HTTP_MALFORMED_INPUT_ACTION, "report");
- return getCodingErrorAction(val);
- }
-
- public CodingErrorAction getUnMappableInputActionValue() {
- String val = getStringValue(HttpProtocolParams.HTTP_UNMAPPABLE_INPUT_ACTION, "report");
- return getCodingErrorAction(val);
- }
-
- private CodingErrorAction getCodingErrorAction(String action) {
- if ("report".equals(action)) {
- return CodingErrorAction.REPORT;
- } else if ("ignore".equals(action)) {
- return CodingErrorAction.IGNORE;
- } else if ("replace".equals(action)) {
- return CodingErrorAction.REPLACE;
- } else {
- return CodingErrorAction.REPORT;
- }
- }
}
Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ServerHandler.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ServerHandler.java?rev=1512866&r1=1512865&r2=1512866&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ServerHandler.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ServerHandler.java Sun Aug 11 03:22:44 2013
@@ -30,7 +30,6 @@ import org.apache.http.entity.ByteArrayE
import org.apache.http.impl.DefaultConnectionReuseStrategy;
import org.apache.http.impl.DefaultHttpResponseFactory;
import org.apache.http.nio.*;
-import org.apache.http.nio.util.ByteBufferAllocator;
import org.apache.http.nio.util.HeapByteBufferAllocator;
import org.apache.http.nio.util.ContentOutputBuffer;
import org.apache.http.nio.util.ContentInputBuffer;
@@ -38,7 +37,6 @@ import org.apache.http.nio.util.SharedIn
import org.apache.http.nio.util.SharedOutputBuffer;
import org.apache.http.nio.entity.ContentInputStream;
import org.apache.http.nio.entity.ContentOutputStream;
-import org.apache.http.params.HttpParams;
import org.apache.http.protocol.*;
import org.apache.http.util.EncodingUtils;
import org.apache.commons.logging.Log;
@@ -68,23 +66,17 @@ public class ServerHandler implements NH
private static final Log log = LogFactory.getLog(ServerHandler.class);
- /** the HTTP protocol parameters to adhere to */
- private final HttpParams params;
/** the factory to create HTTP responses */
private final HttpResponseFactory responseFactory;
/** the HTTP response processor */
private final HttpProcessor httpProcessor;
/** the strategy to re-use connections */
private final ConnectionReuseStrategy connStrategy;
- /** the buffer allocator */
- private final ByteBufferAllocator allocator;
/** the Axis2 configuration context */
ConfigurationContext cfgCtx = null;
/** the nhttp configuration */
private NHttpConfiguration cfg = null;
- /** is this https? */
- private boolean isHttps = false;
/** the thread pool to process requests */
private WorkerPool workerPool = null;
@@ -95,22 +87,17 @@ public class ServerHandler implements NH
private volatile List<NHttpServerConnection> activeConnections = null;
/**
- * This parset is used by the priority executor to parse a given HTTP message and
+ * This parser is used by the priority executor to parse a given HTTP message and
* determine the priority of the message
*/
private Parser parser = null;
- /** WSDL processor for Get requests*/
- private HttpGetRequestProcessor httpGetRequestProcessor = null;
-
/**
- * An executor capable of exucuting the Server Worker according the priority assigned
+ * An executor capable of executing the Server Worker according the priority assigned
* to a particular message
*/
private PriorityExecutor executor = null;
- private boolean restDispatching = true;
-
private LatencyView latencyView = null;
private LatencyView s2sLatencyView = null;
private ThreadingView threadingView = null;
@@ -126,18 +113,14 @@ public class ServerHandler implements NH
super();
this.listenerContext = listenerContext;
this.cfgCtx = listenerContext.getCfgCtx();
- this.params = listenerContext.getParams();
- this.isHttps = listenerContext.isSsl();
this.metrics = listenerContext.getMetrics();
this.responseFactory = new DefaultHttpResponseFactory();
this.httpProcessor = getHttpProcessor();
this.connStrategy = new DefaultConnectionReuseStrategy();
- this.allocator = new HeapByteBufferAllocator();
this.activeConnections = new ArrayList<NHttpServerConnection>();
this.latencyView = new LatencyView("NHTTPLatencyView", listenerContext.getTransportIn().getName());
this.s2sLatencyView = new LatencyView("NHTTPS2SLatencyView", listenerContext.getTransportIn().getName());
this.threadingView = new ThreadingView("HttpServerWorker", true, 50);
- this.restDispatching = listenerContext.isRestDispatching();
this.cfg = NHttpConfiguration.getInstance();
if (listenerContext.getExecutor() == null) {
@@ -151,8 +134,6 @@ public class ServerHandler implements NH
this.executor = listenerContext.getExecutor();
this.parser = listenerContext.getParser();
}
-
- this.httpGetRequestProcessor = listenerContext.getHttpGetRequestProcessor();
}
/**
@@ -179,7 +160,7 @@ public class ServerHandler implements NH
conn.getContext().setAttribute(NhttpConstants.REQUEST_READ, Boolean.FALSE);
ContentInputBuffer inputBuffer
- = new SharedInputBuffer(cfg.getBufferSize(), conn, allocator);
+ = new SharedInputBuffer(cfg.getBufferSize(), HeapByteBufferAllocator.INSTANCE);
context.setAttribute(REQUEST_SINK_BUFFER, inputBuffer);
is = new ContentInputStream(inputBuffer);
} else {
@@ -188,7 +169,7 @@ public class ServerHandler implements NH
}
ContentOutputBuffer outputBuffer
- = new SharedOutputBuffer(cfg.getBufferSize(), conn, allocator);
+ = new SharedOutputBuffer(cfg.getBufferSize(), HeapByteBufferAllocator.INSTANCE);
context.setAttribute(RESPONSE_SOURCE_BUFFER, outputBuffer);
OutputStream os = new ContentOutputStream(outputBuffer);
@@ -196,7 +177,6 @@ public class ServerHandler implements NH
ProtocolVersion httpVersion = request.getRequestLine().getProtocolVersion();
HttpResponse response = responseFactory.newHttpResponse(
httpVersion, HttpStatus.SC_OK, context);
- response.setParams(this.params);
// create a basic HttpEntity using the source channel of the response pipe
BasicHttpEntity entity = new BasicHttpEntity();
@@ -243,11 +223,11 @@ public class ServerHandler implements NH
public void inputReady(final NHttpServerConnection conn, final ContentDecoder decoder) {
HttpContext context = conn.getContext();
- ContentInputBuffer inBuf
- = (ContentInputBuffer) context.getAttribute(REQUEST_SINK_BUFFER);
+ SharedInputBuffer inBuf
+ = (SharedInputBuffer) context.getAttribute(REQUEST_SINK_BUFFER);
try {
- int bytesRead = inBuf.consumeContent(decoder);
+ int bytesRead = inBuf.consumeContent(decoder, conn);
if (metrics != null && bytesRead > 0) {
metrics.incrementBytesReceived(bytesRead);
}
@@ -278,17 +258,17 @@ public class ServerHandler implements NH
HttpContext context = conn.getContext();
HttpResponse response = conn.getHttpResponse();
- ContentOutputBuffer outBuf = (ContentOutputBuffer) context.getAttribute(
+ SharedOutputBuffer outBuf = (SharedOutputBuffer) context.getAttribute(
RESPONSE_SOURCE_BUFFER);
if (outBuf == null) {
- // fix for SYNAPSE 584. This is a temporaly fix becuase of HTTPCORE-208
+ // fix for SYNAPSE 584. This is a temporarily fix because of HTTPCORE-208
shutdownConnection(conn);
return;
}
try {
- int bytesWritten = outBuf.produceContent(encoder);
+ int bytesWritten = outBuf.produceContent(encoder, conn);
if (metrics != null && bytesWritten > 0) {
metrics.incrementBytesSent(bytesWritten);
}
@@ -490,6 +470,9 @@ public class ServerHandler implements NH
* @param e the exception encountered
*/
public void exception(final NHttpServerConnection conn, final HttpException e) {
+ if (log.isDebugEnabled()) {
+ log.debug("HTTP protocol error encountered in ServerHandler", e);
+ }
if (metrics != null) {
metrics.incrementFaultsReceiving();
}
@@ -522,7 +505,7 @@ public class ServerHandler implements NH
} else if (e instanceof IOException) {
exception(conn, (IOException) e);
} else {
- log.error("Unexpected I/O error: " + e.getClass().getName(), e);
+ log.error("Unexpected error: " + e.getClass().getName(), e);
if (metrics != null) {
metrics.incrementFaultsReceiving();
}
@@ -609,12 +592,11 @@ public class ServerHandler implements NH
* @return the HttpProcessor that processes HttpResponses of this server
*/
private HttpProcessor getHttpProcessor() {
- BasicHttpProcessor httpProcessor = new BasicHttpProcessor();
- httpProcessor.addInterceptor(new ResponseDate());
- httpProcessor.addInterceptor(new ResponseServer());
- httpProcessor.addInterceptor(new ResponseContent());
- httpProcessor.addInterceptor(new ResponseConnControl());
- return httpProcessor;
+ return new ImmutableHttpProcessor(
+ new ResponseDate(),
+ new ResponseServer("Synapse-HttpComponents-NIO"),
+ new ResponseContent(),
+ new ResponseConnControl());
}
public int getActiveCount() {
Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/debug/NhttpConnectionDebugConfig.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/debug/NhttpConnectionDebugConfig.java?rev=1512866&r1=1512865&r2=1512866&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/debug/NhttpConnectionDebugConfig.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/debug/NhttpConnectionDebugConfig.java Sun Aug 11 03:22:44 2013
@@ -53,13 +53,13 @@ public class NhttpConnectionDebugConfig
private NhttpConnectionDebugConfig() {
- this.keyValueSeparator = NHttpConfiguration.getInstance().getStringValue(
+ this.keyValueSeparator = NHttpConfiguration.getInstance().getStringProperty(
KEY_VALUE_SEPARATOR_PROPERTY, DEFAULT_KEY_VALUE_SEPARATOR);
- this.fieldSeparator = NHttpConfiguration.getInstance().getStringValue(
+ this.fieldSeparator = NHttpConfiguration.getInstance().getStringProperty(
FIELD_SEPARATOR_PROPERTY, DEFAULT_FIELD_SEPARATOR);
- this.statementSeparator = NHttpConfiguration.getInstance().getStringValue(
+ this.statementSeparator = NHttpConfiguration.getInstance().getStringProperty(
STATEMENT_SEPARATOR_PROPERTY, DEFAULT_STATEMENT_SEPARATOR);
- String headerSet = NHttpConfiguration.getInstance().getStringValue(
+ String headerSet = NHttpConfiguration.getInstance().getStringProperty(
HEADER_INFO_PROPERTY, HEADER_INFO_ALL);
if (HEADER_INFO_NONE.equals(headerSet)) {
this.noHeaders = true;
Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/util/RESTUtil.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/util/RESTUtil.java?rev=1512866&r1=1512865&r2=1512866&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/util/RESTUtil.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/util/RESTUtil.java Sun Aug 11 03:22:44 2013
@@ -285,7 +285,7 @@ public class RESTUtil {
RequestURIBasedDispatcher requestDispatcher = new RequestURIBasedDispatcher();
AxisService axisService = requestDispatcher.findService(msgContext);
if (axisService == null) {
- String defaultSvcName = NHttpConfiguration.getInstance().getStringValue(
+ String defaultSvcName = NHttpConfiguration.getInstance().getStringProperty(
"nhttp.default.service", "__SynapseService");
axisService = msgContext.getConfigurationContext()
.getAxisConfiguration().getService(defaultSvcName);
Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/HttpGetRequestProcessor.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/HttpGetRequestProcessor.java?rev=1512866&r1=1512865&r2=1512866&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/HttpGetRequestProcessor.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/HttpGetRequestProcessor.java Sun Aug 11 03:22:44 2013
@@ -16,6 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
+
package org.apache.synapse.transport.passthru;
import org.apache.axis2.AxisFault;
@@ -25,8 +26,6 @@ import org.apache.http.HttpRequest;
import org.apache.http.HttpResponse;
import org.apache.http.nio.NHttpServerConnection;
-import java.io.OutputStream;
-
/**
* This PassThrough transport level interface is used for plugging in different implementations
* for special processing of some HTTP GET requests.
@@ -54,14 +53,12 @@ public interface HttpGetRequestProcessor
* @param response The HttpResponse
* @param msgContext The MessageContext
* @param conn The NHttpServerConnection
- * @param os The OutputStream
* @param isRestDispatching Rest dispatching
*/
void process(HttpRequest request,
HttpResponse response,
MessageContext msgContext,
NHttpServerConnection conn,
- OutputStream os,
boolean isRestDispatching);
}
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=1512866&r1=1512865&r2=1512866&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 Sun Aug 11 03:22:44 2013
@@ -21,9 +21,6 @@ package org.apache.synapse.transport.pas
public class PassThroughConstants {
- public static final int DEFAULT_IO_THREAD_COUNT = Runtime.getRuntime().availableProcessors();
- public static final int DEFAULT_MAX_CONN_PER_HOST_PORT = Integer.MAX_VALUE;
-
public static final String REQUEST_MESSAGE_CONTEXT = "REQUEST_MESSAGE_CONTEXT";
public static final String CONNECTION_POOL = "CONNECTION_POOL";
@@ -84,6 +81,8 @@ public class PassThroughConstants {
protected static final String PASS_THROUGH_TARGET_CONNECTION = "pass-through.Target-Connection";
protected static final String PASS_THROUGH_TARGET_RESPONSE = "pass-through.Target-Response";
+ public static final String PASS_THROUGH_RESPONSE_SOURCE_BUFFER = "synapse.response-source-buffer";
+
public static final String PASS_THROUGH_PIPE = "pass-through.pipe";
// used to define the default content type as a parameter in the axis2.xml
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=1512866&r1=1512865&r2=1512866&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 Sun Aug 11 03:22:44 2013
@@ -37,6 +37,7 @@ import org.apache.axis2.transport.base.t
import org.apache.axis2.util.JavaUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.http.config.ConnectionConfig;
import org.apache.http.impl.nio.reactor.DefaultListeningIOReactor;
import org.apache.http.nio.NHttpServerEventHandler;
import org.apache.http.nio.reactor.IOEventDispatch;
@@ -44,11 +45,11 @@ import org.apache.http.nio.reactor.IORea
import org.apache.http.nio.reactor.IOReactorExceptionHandler;
import org.apache.http.nio.reactor.ListenerEndpoint;
import org.apache.http.nio.reactor.ssl.SSLSetupHandler;
-import org.apache.http.params.HttpParams;
import org.apache.synapse.commons.jmx.MBeanRegistrar;
import org.apache.synapse.transport.passthru.config.SourceConfiguration;
import org.apache.synapse.transport.passthru.jmx.PassThroughTransportMetricsCollector;
import org.apache.synapse.transport.passthru.jmx.TransportView;
+import org.apache.synapse.transport.utils.logging.LoggingUtils;
import javax.net.ssl.SSLContext;
import java.io.IOException;
@@ -111,12 +112,10 @@ public class PassThroughHttpListener imp
// is this a SSL listener?
sslContext = getSSLContext(transportInDescription);
sslSetupHandler = getSSLSetupHandler(transportInDescription);
-
namePrefix = (sslContext == null) ? "HTTP" : "HTTPS";
- sourceConfiguration = new SourceConfiguration(cfgCtx, transportInDescription, workerPool);
- sourceConfiguration.setSsl(sslContext != null);
- sourceConfiguration.build();
+ sourceConfiguration = new SourceConfiguration(cfgCtx, transportInDescription,
+ workerPool, sslContext != null);
// register to receive updates on services for lifetime management
cfgCtx.getAxisConfiguration().addObservers(axisObserver);
@@ -164,7 +163,7 @@ public class PassThroughHttpListener imp
SourceHandler handler = new SourceHandler(sourceConfiguration);
final IOEventDispatch ioEventDispatch = getEventDispatch(handler, sslContext,
- sslSetupHandler, sourceConfiguration.getHttpParameters());
+ sslSetupHandler, sourceConfiguration.getConnectionConfig());
ListenerEndpoint endpoint = ioReactor.listen(new InetSocketAddress(
sourceConfiguration.getPort()));
@@ -320,9 +319,8 @@ public class PassThroughHttpListener imp
public void init(AxisConfiguration axisConfig) {}
public void serviceUpdate(AxisEvent event, AxisService service) {
- if (!ignoreService(service)
- && BaseUtils.isUsingTransport(service,
- sourceConfiguration.getInDescription().getName())) {
+ if (!ignoreService(service) && BaseUtils.isUsingTransport(
+ service, sourceConfiguration.getTransportName())) {
switch (event.getEventType()) {
case AxisEvent.SERVICE_DEPLOY :
addToServiceURIMap(service);
@@ -375,8 +373,8 @@ public class PassThroughHttpListener imp
protected IOEventDispatch getEventDispatch(
NHttpServerEventHandler handler, SSLContext sslContext,
- SSLSetupHandler sslSetupHandler, HttpParams params) {
- return new SourceIOEventDispatch(handler, params);
+ SSLSetupHandler sslSetupHandler, ConnectionConfig config) {
+ return LoggingUtils.getServerIODispatch(handler, config);
}
/**
Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/PassThroughHttpSSLListener.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/PassThroughHttpSSLListener.java?rev=1512866&r1=1512865&r2=1512866&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/PassThroughHttpSSLListener.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/PassThroughHttpSSLListener.java Sun Aug 11 03:22:44 2013
@@ -23,11 +23,12 @@ import org.apache.axiom.om.OMElement;
import org.apache.axis2.AxisFault;
import org.apache.axis2.description.Parameter;
import org.apache.axis2.description.TransportInDescription;
+import org.apache.http.config.ConnectionConfig;
import org.apache.http.nio.NHttpServerEventHandler;
import org.apache.http.nio.reactor.IOEventDispatch;
import org.apache.http.nio.reactor.IOSession;
import org.apache.http.nio.reactor.ssl.SSLSetupHandler;
-import org.apache.http.params.HttpParams;
+import org.apache.synapse.transport.utils.logging.LoggingUtils;
import javax.net.ssl.*;
import javax.xml.namespace.QName;
@@ -40,8 +41,8 @@ public class PassThroughHttpSSLListener
@Override
protected IOEventDispatch getEventDispatch(NHttpServerEventHandler handler, SSLContext sslContext,
- SSLSetupHandler sslSetupHandler, HttpParams params) {
- return new SSLSourceIOEventDispatch(handler, sslContext, sslSetupHandler, params);
+ SSLSetupHandler sslSetupHandler, ConnectionConfig config) {
+ return LoggingUtils.getServerIODispatch(handler, config, sslContext, sslSetupHandler);
}
/**
Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/PassThroughHttpSSLSender.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/PassThroughHttpSSLSender.java?rev=1512866&r1=1512865&r2=1512866&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/PassThroughHttpSSLSender.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/PassThroughHttpSSLSender.java Sun Aug 11 03:22:44 2013
@@ -24,11 +24,12 @@ import org.apache.axis2.AxisFault;
import org.apache.axis2.description.Parameter;
import org.apache.axis2.description.TransportOutDescription;
import org.apache.axis2.transport.base.ParamUtils;
+import org.apache.http.config.ConnectionConfig;
import org.apache.http.nio.NHttpClientEventHandler;
import org.apache.http.nio.reactor.IOEventDispatch;
import org.apache.http.nio.reactor.IOSession;
import org.apache.http.nio.reactor.ssl.SSLSetupHandler;
-import org.apache.http.params.HttpParams;
+import org.apache.synapse.transport.utils.logging.LoggingUtils;
import org.apache.synapse.transport.utils.sslcert.CertificateVerificationConfig;
import org.apache.synapse.transport.utils.sslcert.CertificateVerificationException;
import org.apache.synapse.transport.utils.sslcert.adaptor.SynapseAdaptorForOcspCrl;
@@ -53,12 +54,12 @@ public class PassThroughHttpSSLSender ex
protected IOEventDispatch getEventDispatch(NHttpClientEventHandler handler,
SSLContext sslContext,
- SSLSetupHandler sslIOSessionHandler,
- HttpParams params,
+ SSLSetupHandler sslSetupHandler,
+ ConnectionConfig config,
TransportOutDescription transportOut) throws AxisFault {
- return new SSLTargetIOEventDispatch(handler, sslContext, getCustomSSLContexts(transportOut),
- sslIOSessionHandler, params);
+ return LoggingUtils.getClientIODispatch(handler, config, sslContext, sslSetupHandler,
+ getCustomSSLContexts(transportOut));
}
/**
Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/PassThroughHttpSender.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/PassThroughHttpSender.java?rev=1512866&r1=1512865&r2=1512866&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/PassThroughHttpSender.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/PassThroughHttpSender.java Sun Aug 11 03:22:44 2013
@@ -42,6 +42,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.http.HttpException;
import org.apache.http.HttpStatus;
+import org.apache.http.config.ConnectionConfig;
import org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor;
import org.apache.http.nio.NHttpClientEventHandler;
import org.apache.http.nio.NHttpServerConnection;
@@ -49,7 +50,6 @@ import org.apache.http.nio.reactor.IOEve
import org.apache.http.nio.reactor.IOReactorException;
import org.apache.http.nio.reactor.IOReactorExceptionHandler;
import org.apache.http.nio.reactor.ssl.SSLSetupHandler;
-import org.apache.http.params.HttpParams;
import org.apache.synapse.commons.jmx.MBeanRegistrar;
import org.apache.synapse.transport.nhttp.NhttpConstants;
import org.apache.synapse.transport.nhttp.util.MessageFormatterDecoratorFactory;
@@ -61,6 +61,7 @@ import org.apache.synapse.transport.pass
import org.apache.synapse.transport.passthru.jmx.TransportView;
import org.apache.synapse.transport.passthru.util.PassThroughTransportUtils;
import org.apache.synapse.transport.passthru.util.SourceResponseFactory;
+import org.apache.synapse.transport.utils.logging.LoggingUtils;
import javax.net.ssl.SSLContext;
import java.io.ByteArrayOutputStream;
@@ -159,7 +160,6 @@ public class PassThroughHttpSender exten
targetConfiguration = new TargetConfiguration(configurationContext,
transportOutDescription, workerPool);
- targetConfiguration.build();
configurationContext.setProperty(PassThroughConstants.PASS_THROUGH_TRANSPORT_WORKER_POOL,
targetConfiguration.getWorkerPool());
@@ -211,7 +211,7 @@ public class PassThroughHttpSender exten
TargetHandler handler = new TargetHandler(deliveryAgent, targetConfiguration);
final IOEventDispatch ioEventDispatch =
getEventDispatch(handler, sslContext, sslSetupHandler,
- targetConfiguration.getHttpParameters(), transportOutDescription);
+ targetConfiguration.getConnectionConfig(), transportOutDescription);
// start the sender in a separate thread
Thread t = new Thread(new Runnable() {
@@ -429,7 +429,7 @@ public class PassThroughHttpSender exten
* @param handler The passthru target handler instance
* @param sslContext SSL context used by the sender or null
* @param sslIOSessionHandler SSL session handler or null
- * @param params HTTP parameters
+ * @param config ConnectionConfig instance
* @param trpOut Transport out description
* @return an IOEventDispatch instance
* @throws AxisFault on error
@@ -437,10 +437,10 @@ public class PassThroughHttpSender exten
protected IOEventDispatch getEventDispatch(NHttpClientEventHandler handler,
SSLContext sslContext,
SSLSetupHandler sslIOSessionHandler,
- HttpParams params,
+ ConnectionConfig config,
TransportOutDescription trpOut) throws AxisFault {
- return new TargetIOEventDispatch(handler, params);
+ return LoggingUtils.getClientIODispatch(handler, config);
}
/**
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=1512866&r1=1512865&r2=1512866&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 Sun Aug 11 03:22:44 2013
@@ -19,7 +19,6 @@
package org.apache.synapse.transport.passthru;
-import java.io.OutputStream;
import java.net.InetAddress;
import java.util.Comparator;
import java.util.Map;
@@ -60,10 +59,10 @@ import org.apache.http.nio.NHttpServerCo
import org.apache.http.nio.reactor.ssl.SSLIOSession;
import org.apache.http.protocol.HTTP;
import org.apache.synapse.transport.nhttp.HttpCoreRequestResponseTransport;
-import org.apache.synapse.transport.nhttp.NHttpConfiguration;
import org.apache.synapse.transport.nhttp.NhttpConstants;
import org.apache.synapse.transport.nhttp.util.NhttpUtil;
import org.apache.synapse.transport.nhttp.util.RESTUtil;
+import org.apache.synapse.transport.passthru.config.PassThroughConfiguration;
import org.apache.synapse.transport.passthru.config.SourceConfiguration;
import org.apache.synapse.transport.passthru.util.SourceResponseFactory;
@@ -89,18 +88,14 @@ public class ServerWorker implements Run
private HttpGetRequestProcessor httpGetRequestProcessor = null;
private boolean isHttps = false;
-
-
- private OutputStream os; //only used for WSDL requests..
public ServerWorker(final SourceRequest request,
- final SourceConfiguration sourceConfiguration, final OutputStream os) {
+ final SourceConfiguration sourceConfiguration) {
this.request = request;
this.sourceConfiguration = sourceConfiguration;
this.isHttps = sourceConfiguration.isSsl();
this.msgContext = createMessageContext(request);
this.httpGetRequestProcessor = sourceConfiguration.getHttpGetRequestProcessor();
- this.os = os;
// set these properties to be accessed by the engine
msgContext.setProperty(
@@ -180,7 +175,7 @@ public class ServerWorker implements Run
response.setEntity(entity);
httpGetRequestProcessor.process(request.getRequest(), response, msgContext,
- request.getConnection(), os, true);
+ request.getConnection(), true);
}
//need special case to handle REST
@@ -258,7 +253,7 @@ public class ServerWorker implements Run
// Dispatcher Service.
if (axisService == null) {
- String defaultSvcName = NHttpConfiguration.getInstance().getStringValue(
+ String defaultSvcName = PassThroughConfiguration.getInstance().getStringProperty(
"nhttp.default.service", "__SynapseService");
axisService = msgContext.getConfigurationContext().getAxisConfiguration()
.getService(defaultSvcName);