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 08:52:44 UTC
svn commit: r1512883 - in
/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport:
passthru/ utils/config/ utils/logging/
Author: hiranya
Date: Sun Aug 11 06:52:43 2013
New Revision: 1512883
URL: http://svn.apache.org/r1512883
Log:
Some java docs to the new logging package
Modified:
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/PassThroughHttpSender.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/LoggingClientEventHandler.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
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=1512883&r1=1512882&r2=1512883&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 06:52:43 2013
@@ -80,8 +80,10 @@ public class PassThroughHttpListener imp
/** The custom URI map for the services if there are any */
private Map<String, String> serviceNameToEPRMap = new HashMap<String, String>();
+
/** The service name map for the custom URI if there are any */
private Map<String, String> eprToServiceNameMap = new HashMap<String, String>();
+
/** the axis observer that gets notified of service life cycle events*/
private final AxisObserver axisObserver = new GenericAxisObserver();
@@ -137,10 +139,10 @@ public class PassThroughHttpListener imp
log.info("Starting pass-through " + namePrefix + " listener...");
try {
- String prefix = namePrefix + "-Listener I/O dispatcher";
+ String prefix = namePrefix + "-PT-Listener I/O Dispatcher";
ioReactor = new DefaultListeningIOReactor(
sourceConfiguration.getReactorConfig(),
- new NativeThreadFactory(new ThreadGroup(prefix + " thread group"), prefix));
+ new NativeThreadFactory(new ThreadGroup(prefix + " Thread Group"), prefix));
ioReactor.setExceptionHandler(new IOReactorExceptionHandler() {
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=1512883&r1=1512882&r2=1512883&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 06:52:43 2013
@@ -171,7 +171,7 @@ public class PassThroughHttpSender exten
targetConfiguration.setMetrics(metrics);
try {
- String prefix = namePrefix + "-Sender I/O dispatcher";
+ String prefix = namePrefix + "-PT-Sender I/O Dispatcher";
ioReactor = new DefaultConnectingIOReactor(
targetConfiguration.getReactorConfig(),
Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/config/HttpTransportConfiguration.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/config/HttpTransportConfiguration.java?rev=1512883&r1=1512882&r2=1512883&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/config/HttpTransportConfiguration.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/config/HttpTransportConfiguration.java Sun Aug 11 06:52:43 2013
@@ -28,20 +28,40 @@ import org.apache.synapse.commons.util.M
import java.nio.charset.CodingErrorAction;
import java.util.Properties;
+/**
+ * A base class for parsing transport configuration files and initializing basic
+ * HTTP Core configuration objects.
+ */
public abstract class HttpTransportConfiguration {
protected Log log = LogFactory.getLog(this.getClass());
private Properties props;
+ /**
+ * Create a new HttpTransportConfiguration instance.
+ *
+ * @param fileName Name of the file (without extensions) from where the transport
+ * configuration should be loaded.
+ */
public HttpTransportConfiguration(String fileName) {
try {
props = MiscellaneousUtil.loadProperties(fileName + ".properties");
} catch (Exception ignored) {}
}
+ /**
+ * Get the number of I/O dispatcher threads that should be used in each IOReactor.
+ *
+ * @return A positive integer
+ */
abstract protected int getThreadsPerReactor();
+ /**
+ * Get the IOReactor configuration
+ *
+ * @return A fully initialized IOReactorConfig instance
+ */
public IOReactorConfig getReactorConfig() {
IOReactorConfig.Builder builder = IOReactorConfig.custom()
.setIoThreadCount(getThreadsPerReactor())
@@ -66,6 +86,11 @@ public abstract class HttpTransportConfi
return builder.build();
}
+ /**
+ * Get the connection configuration
+ *
+ * @return A fully initialized ConnectionConfig instance
+ */
public ConnectionConfig getConnectionConfig() {
return ConnectionConfig.custom()
.setBufferSize(getIntProperty(HttpConfigConstants.SOCKET_BUFFER_SIZE, 8 * 1024))
Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingClientEventHandler.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingClientEventHandler.java?rev=1512883&r1=1512882&r2=1512883&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingClientEventHandler.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingClientEventHandler.java Sun Aug 11 06:52:43 2013
@@ -30,16 +30,30 @@ import org.apache.http.nio.NHttpClientEv
import java.io.IOException;
+/**
+ * A decorator (wrapper) for NHttpClientEventHandler instances. This decorator
+ * logs additional debug information regarding each of the events triggered on the
+ * actual NHttpClientEventHandler instance. Most events are logged 'before' they are
+ * dispatched to the wrapped NHttpClientEventHandler, but this implementation does
+ * not modify the event arguments by any means. In that sense this decorator is
+ * read-only and safe. This implementation does not log the exception event. It is
+ * expected that the actual NHttpClientEventHandler will take the necessary steps to
+ * log exceptions.
+ */
public class LoggingClientEventHandler implements NHttpClientEventHandler {
private final Log log;
private final NHttpClientEventHandler handler;
+ /**
+ * Create a new instance of the decorator.
+ *
+ * @param handler The instance of NHttpClientEventHandler to be decorated (wrapped)
+ */
public LoggingClientEventHandler(final NHttpClientEventHandler handler) {
- super();
if (handler == null) {
- throw new IllegalArgumentException("HTTP client handler may not be null");
+ throw new IllegalArgumentException("HTTP client handler must not be null");
}
this.handler = handler;
this.log = LogFactory.getLog(handler.getClass());
@@ -73,14 +87,14 @@ public class LoggingClientEventHandler i
public void requestReady(final NHttpClientConnection conn) throws IOException, HttpException {
if (this.log.isDebugEnabled()) {
- this.log.debug("HTTP connection " + conn + ": InRequest ready" + getRequestMessageID(conn));
+ this.log.debug("HTTP connection " + conn + ": InRequest ready");
}
this.handler.requestReady(conn);
}
public void outputReady(final NHttpClientConnection conn, final ContentEncoder encoder) throws IOException, HttpException {
if (this.log.isDebugEnabled()) {
- this.log.debug("HTTP connection " + conn + ": Output ready" + getRequestMessageID(conn));
+ this.log.debug("HTTP connection " + conn + ": Output ready");
}
this.handler.outputReady(conn, encoder);
if (this.log.isDebugEnabled()) {
@@ -91,15 +105,14 @@ public class LoggingClientEventHandler i
public void responseReceived(final NHttpClientConnection conn) throws IOException, HttpException {
HttpResponse response = conn.getHttpResponse();
if (this.log.isDebugEnabled()) {
- this.log.debug("HTTP connection " + conn + " : "
- + response.getStatusLine() + getRequestMessageID(conn));
+ this.log.debug("HTTP connection " + conn + " : " + response.getStatusLine());
}
this.handler.responseReceived(conn);
}
public void inputReady(final NHttpClientConnection conn, final ContentDecoder decoder) throws IOException, HttpException {
if (this.log.isDebugEnabled()) {
- this.log.debug("HTTP connection " + conn + ": Input ready" + getRequestMessageID(conn));
+ this.log.debug("HTTP connection " + conn + ": Input ready");
}
this.handler.inputReady(conn, decoder);
if (this.log.isDebugEnabled()) {
@@ -109,17 +122,8 @@ public class LoggingClientEventHandler i
public void timeout(final NHttpClientConnection conn) throws IOException, HttpException {
if (this.log.isDebugEnabled()) {
- this.log.debug("HTTP connection " + conn + ": Timeout" + getRequestMessageID(conn));
+ this.log.debug("HTTP connection " + conn + ": Timeout");
}
this.handler.timeout(conn);
}
-
- private static String getRequestMessageID(final NHttpClientConnection conn) {
- /*Axis2HttpRequest axis2Request = (Axis2HttpRequest)
- conn.getContext().getAttribute(ClientHandler.AXIS2_HTTP_REQUEST);
- if (axis2Request != null) {
- return " [InRequest Message ID : " + axis2Request.getMsgContext().getMessageID() + "]";
- }*/
- return "";
- }
}
Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingIOSession.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingIOSession.java?rev=1512883&r1=1512882&r2=1512883&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingIOSession.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingIOSession.java Sun Aug 11 06:52:43 2013
@@ -31,6 +31,14 @@ import java.nio.channels.ByteChannel;
import java.nio.channels.SelectionKey;
import java.util.concurrent.atomic.AtomicLong;
+/**
+ * A decorator (wrapper) for IOSession instances. This decorator logs additional
+ * debug information regarding each of the events triggered on the actual IOSession
+ * instance. Most events are logged 'before' they are dispatched to the wrapped
+ * IOSession, but this implementation does not modify the event arguments by any means.
+ * In that sense this decorator is read-only and safe. This implementation also facilitates
+ * intercepting and logging HTTP messages at wire-level.
+ */
public class LoggingIOSession implements IOSession {
private static AtomicLong COUNT = new AtomicLong(0);
@@ -41,14 +49,22 @@ public class LoggingIOSession implements
private final ByteChannel channel;
private final String id;
+ /**
+ * Create a new instance of the decorator.
+ *
+ * @param sessionLog Log instance used to log IOSession events.
+ * @param wireLog Log instance used to log wire-level HTTP messages.
+ * @param session IOSession to be decorated.
+ * @param id An identifier (name) that will be attached to the IOSession for the logging
+ * purposes.
+ */
public LoggingIOSession(
final Log sessionLog,
final Log wireLog,
final IOSession session,
final String id) {
- super();
if (session == null) {
- throw new IllegalArgumentException("I/O session may not be null");
+ throw new IllegalArgumentException("I/O session must not be null");
}
this.session = session;
this.channel = new LoggingByteChannel();
Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingNHttpClientConnection.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingNHttpClientConnection.java?rev=1512883&r1=1512882&r2=1512883&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingNHttpClientConnection.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingNHttpClientConnection.java Sun Aug 11 06:52:43 2013
@@ -36,6 +36,11 @@ import java.io.IOException;
import java.nio.charset.CharsetDecoder;
import java.nio.charset.CharsetEncoder;
+/**
+ * An extension of the DefaultNHttpClientConnection class, that provides some
+ * additional logging features. This implementation enhances the default connection
+ * class by logging all the major events that occur on the connection instance.
+ */
public class LoggingNHttpClientConnection extends DefaultNHttpClientConnection {
private final Log log;
Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingNHttpClientConnectionFactory.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingNHttpClientConnectionFactory.java?rev=1512883&r1=1512882&r2=1512883&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingNHttpClientConnectionFactory.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingNHttpClientConnectionFactory.java Sun Aug 11 06:52:43 2013
@@ -40,6 +40,13 @@ import org.apache.http.nio.util.HeapByte
import java.io.IOException;
+/**
+ * A connection factory implementation for DefaultNHttpClientConnection instances.
+ * Based on the current logging configuration, this factory decides whether to create
+ * regular DefaultNHttpClientConnection objects or to create LoggingNHttpClientConnection
+ * objects. Also, depending on the logging configuration, this factory may choose to
+ * wrap IOSession instances in LoggingIOSession objects.
+ */
public class LoggingNHttpClientConnectionFactory implements NHttpConnectionFactory<DefaultNHttpClientConnection> {
private static final Log targetConnLog = LogFactory.getLog(
Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingNHttpSSLClientConnectionFactory.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingNHttpSSLClientConnectionFactory.java?rev=1512883&r1=1512882&r2=1512883&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingNHttpSSLClientConnectionFactory.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingNHttpSSLClientConnectionFactory.java Sun Aug 11 06:52:43 2013
@@ -30,6 +30,12 @@ import javax.net.ssl.SSLContext;
import java.net.InetSocketAddress;
import java.util.Map;
+/**
+ * The SSL-enabled version of the LoggingNHttpClientConnectionFactory. Identical in behavior
+ * to the parent class, but wraps IOSession instances with SSLIOSession instances. This
+ * implementation also supports using different SSLContext instances for different target
+ * I/O sessions.
+ */
public class LoggingNHttpSSLClientConnectionFactory extends LoggingNHttpClientConnectionFactory {
private SSLContext sslContext;
Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingNHttpSSLServerConnectionFactory.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingNHttpSSLServerConnectionFactory.java?rev=1512883&r1=1512882&r2=1512883&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingNHttpSSLServerConnectionFactory.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingNHttpSSLServerConnectionFactory.java Sun Aug 11 06:52:43 2013
@@ -28,6 +28,10 @@ import org.apache.http.nio.reactor.ssl.S
import javax.net.ssl.SSLContext;
+/**
+ * The SSL-enabled version of the LoggingNHttpServerConnectionFactory. Identical in behavior
+ * to the parent class, but wraps IOSession instances with SSLIOSession instances.
+ */
public class LoggingNHttpSSLServerConnectionFactory extends LoggingNHttpServerConnectionFactory {
private SSLContext sslContext;
Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingNHttpServerConnection.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingNHttpServerConnection.java?rev=1512883&r1=1512882&r2=1512883&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingNHttpServerConnection.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingNHttpServerConnection.java Sun Aug 11 06:52:43 2013
@@ -36,6 +36,11 @@ import java.io.IOException;
import java.nio.charset.CharsetDecoder;
import java.nio.charset.CharsetEncoder;
+/**
+ * An extension of the DefaultNHttpServerConnection class, that provides some
+ * additional logging features. This implementation enhances the default connection
+ * class by logging all the major events that occur on the connection instance.
+ */
public class LoggingNHttpServerConnection extends DefaultNHttpServerConnection {
private final Log log;
Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingNHttpServerConnectionFactory.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingNHttpServerConnectionFactory.java?rev=1512883&r1=1512882&r2=1512883&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingNHttpServerConnectionFactory.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingNHttpServerConnectionFactory.java Sun Aug 11 06:52:43 2013
@@ -40,6 +40,13 @@ import org.apache.http.nio.util.HeapByte
import java.io.IOException;
+/**
+ * A connection factory implementation for DefaultNHttpServerConnection instances.
+ * Based on the current logging configuration, this factory decides whether to create
+ * regular DefaultNHttpServerConnection objects or to create LoggingNHttpServerConnection
+ * objects. Also, depending on the logging configuration, this factory may choose to
+ * wrap IOSession instances in LoggingIOSession objects.
+ */
public class LoggingNHttpServerConnectionFactory implements NHttpConnectionFactory<DefaultNHttpServerConnection> {
private static final Log sourceConnLog = LogFactory.getLog(
Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingServerEventHandler.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingServerEventHandler.java?rev=1512883&r1=1512882&r2=1512883&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingServerEventHandler.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingServerEventHandler.java Sun Aug 11 06:52:43 2013
@@ -30,16 +30,31 @@ import org.apache.http.nio.NHttpServerEv
import java.io.IOException;
+/**
+ * A decorator (wrapper) for NHttpServerEventHandler instances. This decorator
+ * logs additional debug information regarding each of the events triggered on the
+ * actual NHttpServerEventHandler instance. Most events are logged 'before' they are
+ * dispatched to the wrapped NHttpServerEventHandler, but this implementation does
+ * not modify the event arguments by any means. In that sense this decorator is
+ * read-only and safe. This implementation does not log the exception event. It is
+ * expected that the actual NHttpServerEventHandler will take the necessary steps to
+ * log exceptions.
+ */
public class LoggingServerEventHandler implements NHttpServerEventHandler {
private final Log log;
private final NHttpServerEventHandler handler;
+ /**
+ * Create a new instance of the decorator.
+ *
+ * @param handler The instance of NHttpServerEventHandler to be decorated (wrapped)
+ */
public LoggingServerEventHandler(final NHttpServerEventHandler handler) {
super();
if (handler == null) {
- throw new IllegalArgumentException("HTTP service handler may not be null");
+ throw new IllegalArgumentException("HTTP service handler must not be null");
}
this.handler = handler;
this.log = LogFactory.getLog(handler.getClass());
Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingUtils.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingUtils.java?rev=1512883&r1=1512882&r2=1512883&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingUtils.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/LoggingUtils.java Sun Aug 11 06:52:43 2013
@@ -33,28 +33,32 @@ import java.util.Map;
public class LoggingUtils {
- private static NHttpClientEventHandler decorate(NHttpClientEventHandler handler) {
- Log log = LogFactory.getLog(handler.getClass());
- if (log.isDebugEnabled()) {
- handler = new LoggingClientEventHandler(handler);
- }
- return handler;
- }
-
- private static NHttpServerEventHandler decorate(NHttpServerEventHandler handler) {
- Log log = LogFactory.getLog(handler.getClass());
- if (log.isDebugEnabled()) {
- handler = new LoggingServerEventHandler(handler);
- }
- return handler;
- }
-
+ /**
+ * Create a new DefaultHttpServerIODispatch instance using the provided parameters.
+ * This method may decorate (wrap) the original arguments with logging-enabled wrappers,
+ * depending on the current logging configuration.
+ *
+ * @param handler An NHttpServerEventHandler instance
+ * @param config A ConnectionConfig instance
+ * @return A DefaultHttpServerIODispatch instance
+ */
public static DefaultHttpServerIODispatch getServerIODispatch(final NHttpServerEventHandler handler,
final ConnectionConfig config) {
return new DefaultHttpServerIODispatch(decorate(handler),
new LoggingNHttpServerConnectionFactory(config));
}
+ /**
+ * Create a new DefaultHttpServerIODispatch instance using the provided parameters.
+ * This method may decorate (wrap) the original arguments with logging-enabled wrappers,
+ * depending on the current logging configuration.
+ *
+ * @param handler An NHttpServerEventHandler instance
+ * @param config A ConnectionConfig instance
+ * @param sslContext An SSLContext instance to initialize SSL support
+ * @param sslSetupHandler An SSLSetupHandler instance
+ * @return A DefaultHttpServerIODispatch instance
+ */
public static DefaultHttpServerIODispatch getServerIODispatch(final NHttpServerEventHandler handler,
final ConnectionConfig config,
final SSLContext sslContext,
@@ -63,12 +67,33 @@ public class LoggingUtils {
new LoggingNHttpSSLServerConnectionFactory(config, sslContext, sslSetupHandler));
}
+ /**
+ * Create a new DefaultHttpClientIODispatch instance using the provided parameters.
+ * This method may decorate (wrap) the original arguments with logging-enabled wrappers,
+ * depending on the current logging configuration.
+ *
+ * @param handler An NHttpClientEventHandler instance
+ * @param config A ConnectionConfig instance
+ * @return A DefaultHttpClientIODispatch instance
+ */
public static DefaultHttpClientIODispatch getClientIODispatch(final NHttpClientEventHandler handler,
final ConnectionConfig config) {
return new DefaultHttpClientIODispatch(decorate(handler),
new LoggingNHttpClientConnectionFactory(config));
}
+ /**
+ * Create a new DefaultHttpClientIODispatch instance using the provided parameters.
+ * This method may decorate (wrap) the original arguments with logging-enabled wrappers,
+ * depending on the current logging configuration.
+ *
+ * @param handler An NHttpServerEventHandler instance
+ * @param config A ConnectionConfig instance
+ * @param sslContext An SSLContext instance to initialize SSL support
+ * @param sslSetupHandler An SSLSetupHandler instance
+ * @param customContexts A Map of endpoints and SSLContext instances
+ * @return A DefaultHttpClientIODispatch instance
+ */
public static DefaultHttpClientIODispatch getClientIODispatch(final NHttpClientEventHandler handler,
final ConnectionConfig config,
final SSLContext sslContext,
@@ -77,4 +102,20 @@ public class LoggingUtils {
return new DefaultHttpClientIODispatch(decorate(handler),
new LoggingNHttpSSLClientConnectionFactory(config, sslContext, sslSetupHandler, customContexts));
}
+
+ private static NHttpClientEventHandler decorate(NHttpClientEventHandler handler) {
+ Log log = LogFactory.getLog(handler.getClass());
+ if (log.isDebugEnabled()) {
+ handler = new LoggingClientEventHandler(handler);
+ }
+ return handler;
+ }
+
+ private static NHttpServerEventHandler decorate(NHttpServerEventHandler handler) {
+ Log log = LogFactory.getLog(handler.getClass());
+ if (log.isDebugEnabled()) {
+ handler = new LoggingServerEventHandler(handler);
+ }
+ return handler;
+ }
}
Modified: synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/Wire.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/Wire.java?rev=1512883&r1=1512882&r2=1512883&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/Wire.java (original)
+++ synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/utils/logging/Wire.java Sun Aug 11 06:52:43 2013
@@ -23,40 +23,42 @@ import org.apache.commons.logging.Log;
import java.nio.ByteBuffer;
+/**
+ * A utility for logging wire-level information of HTTP connections.
+ */
public class Wire {
private final Log log;
public Wire(final Log log) {
- super();
this.log = log;
}
private void wire(final String header, final byte[] b, int pos, int off) {
- StringBuilder buffer = new StringBuilder();
+ StringBuilder builder = new StringBuilder();
for (int i = 0; i < off; i++) {
int ch = b[pos + i];
if (ch == 13) {
- buffer.append("[\\r]");
+ builder.append("[\\r]");
} else if (ch == 10) {
- buffer.append("[\\n]\"");
- buffer.insert(0, "\"");
- buffer.insert(0, header);
- this.log.debug(buffer.toString());
- buffer.setLength(0);
+ builder.append("[\\n]\"");
+ builder.insert(0, "\"");
+ builder.insert(0, header);
+ this.log.debug(builder.toString());
+ builder.setLength(0);
} else if ((ch < 32) || (ch > 127)) {
- buffer.append("[0x");
- buffer.append(Integer.toHexString(ch));
- buffer.append("]");
+ builder.append("[0x");
+ builder.append(Integer.toHexString(ch));
+ builder.append("]");
} else {
- buffer.append((char) ch);
+ builder.append((char) ch);
}
}
- if (buffer.length() > 0) {
- buffer.append('\"');
- buffer.insert(0, '\"');
- buffer.insert(0, header);
- this.log.debug(buffer.toString());
+ if (builder.length() > 0) {
+ builder.append('\"');
+ builder.insert(0, '\"');
+ builder.insert(0, header);
+ this.log.debug(builder.toString());
}
}