You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2012/02/09 11:21:41 UTC
svn commit: r1242262 - in /httpcomponents/httpcore/trunk:
httpcore-contrib/src/main/java/org/apache/http/contrib/logging/
httpcore-nio/src/main/java/org/apache/http/impl/nio/
httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/
httpcore-nio/src...
Author: olegk
Date: Thu Feb 9 10:21:40 2012
New Revision: 1242262
URL: http://svn.apache.org/viewvc?rev=1242262&view=rev
Log:
Less convoluted header logging implementation
Modified:
httpcomponents/httpcore/trunk/httpcore-contrib/src/main/java/org/apache/http/contrib/logging/LoggingNHttpClientConnection.java
httpcomponents/httpcore/trunk/httpcore-contrib/src/main/java/org/apache/http/contrib/logging/LoggingNHttpClientHandler.java
httpcomponents/httpcore/trunk/httpcore-contrib/src/main/java/org/apache/http/contrib/logging/LoggingNHttpServerConnection.java
httpcomponents/httpcore/trunk/httpcore-contrib/src/main/java/org/apache/http/contrib/logging/LoggingNHttpServiceHandler.java
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/DefaultNHttpClientConnection.java
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/DefaultNHttpServerConnection.java
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/IOReactorConfig.java
httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/LoggingNHttpClientConnection.java
httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/LoggingNHttpServerConnection.java
Modified: httpcomponents/httpcore/trunk/httpcore-contrib/src/main/java/org/apache/http/contrib/logging/LoggingNHttpClientConnection.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-contrib/src/main/java/org/apache/http/contrib/logging/LoggingNHttpClientConnection.java?rev=1242262&r1=1242261&r2=1242262&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-contrib/src/main/java/org/apache/http/contrib/logging/LoggingNHttpClientConnection.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-contrib/src/main/java/org/apache/http/contrib/logging/LoggingNHttpClientConnection.java Thu Feb 9 10:21:40 2012
@@ -28,7 +28,6 @@
package org.apache.http.contrib.logging;
import java.io.IOException;
-import java.nio.channels.ReadableByteChannel;
import java.util.concurrent.atomic.AtomicLong;
import org.apache.commons.logging.Log;
@@ -40,11 +39,7 @@ import org.apache.http.HttpResponse;
import org.apache.http.HttpResponseFactory;
import org.apache.http.impl.nio.DefaultNHttpClientConnection;
import org.apache.http.nio.NHttpClientEventHandler;
-import org.apache.http.nio.NHttpMessageParser;
-import org.apache.http.nio.NHttpMessageWriter;
import org.apache.http.nio.reactor.IOSession;
-import org.apache.http.nio.reactor.SessionInputBuffer;
-import org.apache.http.nio.reactor.SessionOutputBuffer;
import org.apache.http.nio.util.ByteBufferAllocator;
import org.apache.http.params.HttpParams;
@@ -115,20 +110,25 @@ public class LoggingNHttpClientConnectio
}
@Override
- protected NHttpMessageWriter<HttpRequest> createRequestWriter(
- final SessionOutputBuffer buffer,
- final HttpParams params) {
- return new LoggingNHttpMessageWriter(
- super.createRequestWriter(buffer, params));
+ protected void onResponseReceived(final HttpResponse response) {
+ if (response != null && this.headerlog.isDebugEnabled()) {
+ this.headerlog.debug(this.id + " << " + response.getStatusLine().toString());
+ Header[] headers = response.getAllHeaders();
+ for (int i = 0; i < headers.length; i++) {
+ this.headerlog.debug(this.id + " << " + headers[i].toString());
+ }
+ }
}
@Override
- protected NHttpMessageParser<HttpResponse> createResponseParser(
- final SessionInputBuffer buffer,
- final HttpResponseFactory responseFactory,
- final HttpParams params) {
- return new LoggingNHttpMessageParser(
- super.createResponseParser(buffer, responseFactory, params));
+ protected void onRequestSubmitted(final HttpRequest request) {
+ if (request != null && this.headerlog.isDebugEnabled()) {
+ this.headerlog.debug(id + " >> " + request.getRequestLine().toString());
+ Header[] headers = request.getAllHeaders();
+ for (int i = 0; i < headers.length; i++) {
+ this.headerlog.debug(this.id + " >> " + headers[i].toString());
+ }
+ }
}
@Override
@@ -136,61 +136,4 @@ public class LoggingNHttpClientConnectio
return this.id;
}
- class LoggingNHttpMessageWriter implements NHttpMessageWriter<HttpRequest> {
-
- private final NHttpMessageWriter<HttpRequest> writer;
-
- public LoggingNHttpMessageWriter(final NHttpMessageWriter<HttpRequest> writer) {
- super();
- this.writer = writer;
- }
-
- public void reset() {
- this.writer.reset();
- }
-
- public void write(final HttpRequest message) throws IOException, HttpException {
- if (message != null && headerlog.isDebugEnabled()) {
- headerlog.debug(id + " >> " + message.getRequestLine().toString());
- Header[] headers = message.getAllHeaders();
- for (int i = 0; i < headers.length; i++) {
- headerlog.debug(id + " >> " + headers[i].toString());
- }
- }
- this.writer.write(message);
- }
-
- }
-
- class LoggingNHttpMessageParser implements NHttpMessageParser<HttpResponse> {
-
- private final NHttpMessageParser<HttpResponse> parser;
-
- public LoggingNHttpMessageParser(final NHttpMessageParser<HttpResponse> parser) {
- super();
- this.parser = parser;
- }
-
- public void reset() {
- this.parser.reset();
- }
-
- public int fillBuffer(final ReadableByteChannel channel) throws IOException {
- return this.parser.fillBuffer(channel);
- }
-
- public HttpResponse parse() throws IOException, HttpException {
- HttpResponse message = this.parser.parse();
- if (message != null && headerlog.isDebugEnabled()) {
- headerlog.debug(id + " << " + message.getStatusLine().toString());
- Header[] headers = message.getAllHeaders();
- for (int i = 0; i < headers.length; i++) {
- headerlog.debug(id + " << " + headers[i].toString());
- }
- }
- return message;
- }
-
- }
-
}
Modified: httpcomponents/httpcore/trunk/httpcore-contrib/src/main/java/org/apache/http/contrib/logging/LoggingNHttpClientHandler.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-contrib/src/main/java/org/apache/http/contrib/logging/LoggingNHttpClientHandler.java?rev=1242262&r1=1242261&r2=1242262&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-contrib/src/main/java/org/apache/http/contrib/logging/LoggingNHttpClientHandler.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-contrib/src/main/java/org/apache/http/contrib/logging/LoggingNHttpClientHandler.java Thu Feb 9 10:21:40 2012
@@ -120,6 +120,14 @@ public class LoggingNHttpClientHandler i
}
}
+ public void endOfInput(
+ final NHttpClientConnection conn) throws IOException {
+ if (this.log.isDebugEnabled()) {
+ this.log.debug(conn + ": end of input");
+ }
+ this.handler.endOfInput(conn);
+ }
+
public void timeout(
final NHttpClientConnection conn) throws IOException, HttpException {
if (this.log.isDebugEnabled()) {
Modified: httpcomponents/httpcore/trunk/httpcore-contrib/src/main/java/org/apache/http/contrib/logging/LoggingNHttpServerConnection.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-contrib/src/main/java/org/apache/http/contrib/logging/LoggingNHttpServerConnection.java?rev=1242262&r1=1242261&r2=1242262&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-contrib/src/main/java/org/apache/http/contrib/logging/LoggingNHttpServerConnection.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-contrib/src/main/java/org/apache/http/contrib/logging/LoggingNHttpServerConnection.java Thu Feb 9 10:21:40 2012
@@ -28,7 +28,6 @@
package org.apache.http.contrib.logging;
import java.io.IOException;
-import java.nio.channels.ReadableByteChannel;
import java.util.concurrent.atomic.AtomicLong;
import org.apache.commons.logging.Log;
@@ -39,12 +38,8 @@ import org.apache.http.HttpRequest;
import org.apache.http.HttpRequestFactory;
import org.apache.http.HttpResponse;
import org.apache.http.impl.nio.DefaultNHttpServerConnection;
-import org.apache.http.nio.NHttpMessageParser;
-import org.apache.http.nio.NHttpMessageWriter;
import org.apache.http.nio.NHttpServerEventHandler;
import org.apache.http.nio.reactor.IOSession;
-import org.apache.http.nio.reactor.SessionInputBuffer;
-import org.apache.http.nio.reactor.SessionOutputBuffer;
import org.apache.http.nio.util.ByteBufferAllocator;
import org.apache.http.params.HttpParams;
@@ -115,20 +110,25 @@ public class LoggingNHttpServerConnectio
}
@Override
- protected NHttpMessageWriter<HttpResponse> createResponseWriter(
- final SessionOutputBuffer buffer,
- final HttpParams params) {
- return new LoggingNHttpMessageWriter(
- super.createResponseWriter(buffer, params));
+ protected void onRequestReceived(final HttpRequest request) {
+ if (request != null && this.headerlog.isDebugEnabled()) {
+ this.headerlog.debug(this.id + " >> " + request.getRequestLine().toString());
+ Header[] headers = request.getAllHeaders();
+ for (int i = 0; i < headers.length; i++) {
+ this.headerlog.debug(this.id + " >> " + headers[i].toString());
+ }
+ }
}
@Override
- protected NHttpMessageParser<HttpRequest> createRequestParser(
- final SessionInputBuffer buffer,
- final HttpRequestFactory requestFactory,
- final HttpParams params) {
- return new LoggingNHttpMessageParser(
- super.createRequestParser(buffer, requestFactory, params));
+ protected void onResponseSubmitted(final HttpResponse response) {
+ if (response != null && this.headerlog.isDebugEnabled()) {
+ this.headerlog.debug(this.id + " << " + response.getStatusLine().toString());
+ Header[] headers = response.getAllHeaders();
+ for (int i = 0; i < headers.length; i++) {
+ this.headerlog.debug(this.id + " << " + headers[i].toString());
+ }
+ }
}
@Override
@@ -136,61 +136,4 @@ public class LoggingNHttpServerConnectio
return this.id;
}
- class LoggingNHttpMessageWriter implements NHttpMessageWriter<HttpResponse> {
-
- private final NHttpMessageWriter<HttpResponse> writer;
-
- public LoggingNHttpMessageWriter(final NHttpMessageWriter<HttpResponse> writer) {
- super();
- this.writer = writer;
- }
-
- public void reset() {
- this.writer.reset();
- }
-
- public void write(final HttpResponse message) throws IOException, HttpException {
- if (message != null && headerlog.isDebugEnabled()) {
- headerlog.debug(id + " << " + message.getStatusLine().toString());
- Header[] headers = message.getAllHeaders();
- for (int i = 0; i < headers.length; i++) {
- headerlog.debug(id + " << " + headers[i].toString());
- }
- }
- this.writer.write(message);
- }
-
- }
-
- class LoggingNHttpMessageParser implements NHttpMessageParser<HttpRequest> {
-
- private final NHttpMessageParser<HttpRequest> parser;
-
- public LoggingNHttpMessageParser(final NHttpMessageParser<HttpRequest> parser) {
- super();
- this.parser = parser;
- }
-
- public void reset() {
- this.parser.reset();
- }
-
- public int fillBuffer(final ReadableByteChannel channel) throws IOException {
- return this.parser.fillBuffer(channel);
- }
-
- public HttpRequest parse() throws IOException, HttpException {
- HttpRequest message = this.parser.parse();
- if (message != null && headerlog.isDebugEnabled()) {
- headerlog.debug(id + " >> " + message.getRequestLine().toString());
- Header[] headers = message.getAllHeaders();
- for (int i = 0; i < headers.length; i++) {
- headerlog.debug(id + " >> " + headers[i].toString());
- }
- }
- return message;
- }
-
- }
-
}
Modified: httpcomponents/httpcore/trunk/httpcore-contrib/src/main/java/org/apache/http/contrib/logging/LoggingNHttpServiceHandler.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-contrib/src/main/java/org/apache/http/contrib/logging/LoggingNHttpServiceHandler.java?rev=1242262&r1=1242261&r2=1242262&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-contrib/src/main/java/org/apache/http/contrib/logging/LoggingNHttpServiceHandler.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-contrib/src/main/java/org/apache/http/contrib/logging/LoggingNHttpServiceHandler.java Thu Feb 9 10:21:40 2012
@@ -118,6 +118,14 @@ public class LoggingNHttpServiceHandler
this.log.debug(conn + ": Content decoder " + decoder);
}
}
+
+ public void endOfInput(
+ final NHttpServerConnection conn) throws IOException {
+ if (this.log.isDebugEnabled()) {
+ this.log.debug(conn + ": end of input");
+ }
+ this.handler.endOfInput(conn);
+ }
public void timeout(
final NHttpServerConnection conn) throws IOException {
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/DefaultNHttpClientConnection.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/DefaultNHttpClientConnection.java?rev=1242262&r1=1242261&r2=1242262&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/DefaultNHttpClientConnection.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/DefaultNHttpClientConnection.java Thu Feb 9 10:21:40 2012
@@ -131,6 +131,18 @@ public class DefaultNHttpClientConnectio
return new DefaultHttpRequestWriter(buffer, null, params);
}
+ /**
+ * @since 4.2
+ */
+ protected void onResponseReceived(final HttpResponse response) {
+ }
+
+ /**
+ * @since 4.2
+ */
+ protected void onRequestSubmitted(final HttpRequest request) {
+ }
+
public void resetInput() {
this.response = null;
this.contentDecoder = null;
@@ -164,6 +176,7 @@ public class DefaultNHttpClientConnectio
this.response.setEntity(entity);
this.connMetrics.incrementResponseCount();
}
+ onResponseReceived(this.response);
handler.responseReceived(this);
if (this.contentDecoder == null) {
resetInput();
@@ -242,6 +255,7 @@ public class DefaultNHttpClientConnectio
if (this.request != null) {
throw new HttpException("Request already submitted");
}
+ onRequestSubmitted(request);
this.requestWriter.write(request);
this.hasBufferedOutput = this.outbuf.hasData();
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/DefaultNHttpServerConnection.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/DefaultNHttpServerConnection.java?rev=1242262&r1=1242261&r2=1242262&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/DefaultNHttpServerConnection.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/DefaultNHttpServerConnection.java Thu Feb 9 10:21:40 2012
@@ -129,6 +129,18 @@ public class DefaultNHttpServerConnectio
return new DefaultHttpResponseWriter(buffer, null, params);
}
+ /**
+ * @since 4.2
+ */
+ protected void onRequestReceived(final HttpRequest request) {
+ }
+
+ /**
+ * @since 4.2
+ */
+ protected void onResponseSubmitted(final HttpResponse response) {
+ }
+
public void resetInput() {
this.request = null;
this.contentDecoder = null;
@@ -163,6 +175,7 @@ public class DefaultNHttpServerConnectio
((HttpEntityEnclosingRequest)this.request).setEntity(entity);
}
this.connMetrics.incrementRequestCount();
+ onRequestReceived(this.request);
handler.requestReceived(this);
if (this.contentDecoder == null) {
// No request entity is expected
@@ -243,6 +256,7 @@ public class DefaultNHttpServerConnectio
if (this.response != null) {
throw new HttpException("Response already submitted");
}
+ onResponseSubmitted(response);
this.responseWriter.write(response);
this.hasBufferedOutput = this.outbuf.hasData();
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/IOReactorConfig.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/IOReactorConfig.java?rev=1242262&r1=1242261&r2=1242262&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/IOReactorConfig.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/IOReactorConfig.java Thu Feb 9 10:21:40 2012
@@ -40,6 +40,8 @@ import org.apache.http.annotation.NotThr
@NotThreadSafe
public final class IOReactorConfig implements Cloneable {
+ private static final int AVAIL_PROCS = Runtime.getRuntime().availableProcessors();
+
private long selectInterval;
private long shutdownGracePeriod;
private boolean interestOpQueued;
@@ -56,7 +58,7 @@ public final class IOReactorConfig imple
this.selectInterval = 1000;
this.shutdownGracePeriod = 500;
this.interestOpQueued = false;
- this.ioThreadCount = 2;
+ this.ioThreadCount = AVAIL_PROCS;
this.soTimeout = 0;
this.soReuseAddress = false;
this.soLinger = -1;
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/LoggingNHttpClientConnection.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/LoggingNHttpClientConnection.java?rev=1242262&r1=1242261&r2=1242262&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/LoggingNHttpClientConnection.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/LoggingNHttpClientConnection.java Thu Feb 9 10:21:40 2012
@@ -28,23 +28,13 @@
package org.apache.http;
import java.io.IOException;
-import java.nio.channels.ReadableByteChannel;
import java.util.concurrent.atomic.AtomicLong;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.http.Header;
-import org.apache.http.HttpException;
-import org.apache.http.HttpRequest;
-import org.apache.http.HttpResponse;
-import org.apache.http.HttpResponseFactory;
import org.apache.http.impl.nio.DefaultNHttpClientConnection;
import org.apache.http.nio.NHttpClientEventHandler;
-import org.apache.http.nio.NHttpMessageParser;
-import org.apache.http.nio.NHttpMessageWriter;
import org.apache.http.nio.reactor.IOSession;
-import org.apache.http.nio.reactor.SessionInputBuffer;
-import org.apache.http.nio.reactor.SessionOutputBuffer;
import org.apache.http.nio.util.ByteBufferAllocator;
import org.apache.http.params.HttpParams;
@@ -115,20 +105,25 @@ public class LoggingNHttpClientConnectio
}
@Override
- protected NHttpMessageWriter<HttpRequest> createRequestWriter(
- final SessionOutputBuffer buffer,
- final HttpParams params) {
- return new LoggingNHttpMessageWriter(
- super.createRequestWriter(buffer, params));
+ protected void onResponseReceived(final HttpResponse response) {
+ if (response != null && this.headerlog.isDebugEnabled()) {
+ this.headerlog.debug(this.id + " << " + response.getStatusLine().toString());
+ Header[] headers = response.getAllHeaders();
+ for (int i = 0; i < headers.length; i++) {
+ this.headerlog.debug(this.id + " << " + headers[i].toString());
+ }
+ }
}
@Override
- protected NHttpMessageParser<HttpResponse> createResponseParser(
- final SessionInputBuffer buffer,
- final HttpResponseFactory responseFactory,
- final HttpParams params) {
- return new LoggingNHttpMessageParser(
- super.createResponseParser(buffer, responseFactory, params));
+ protected void onRequestSubmitted(final HttpRequest request) {
+ if (request != null && this.headerlog.isDebugEnabled()) {
+ this.headerlog.debug(id + " >> " + request.getRequestLine().toString());
+ Header[] headers = request.getAllHeaders();
+ for (int i = 0; i < headers.length; i++) {
+ this.headerlog.debug(this.id + " >> " + headers[i].toString());
+ }
+ }
}
@Override
@@ -136,61 +131,4 @@ public class LoggingNHttpClientConnectio
return this.id;
}
- class LoggingNHttpMessageWriter implements NHttpMessageWriter<HttpRequest> {
-
- private final NHttpMessageWriter<HttpRequest> writer;
-
- public LoggingNHttpMessageWriter(final NHttpMessageWriter<HttpRequest> writer) {
- super();
- this.writer = writer;
- }
-
- public void reset() {
- this.writer.reset();
- }
-
- public void write(final HttpRequest message) throws IOException, HttpException {
- if (message != null && headerlog.isDebugEnabled()) {
- headerlog.debug(id + " >> " + message.getRequestLine().toString());
- Header[] headers = message.getAllHeaders();
- for (int i = 0; i < headers.length; i++) {
- headerlog.debug(id + " >> " + headers[i].toString());
- }
- }
- this.writer.write(message);
- }
-
- }
-
- class LoggingNHttpMessageParser implements NHttpMessageParser<HttpResponse> {
-
- private final NHttpMessageParser<HttpResponse> parser;
-
- public LoggingNHttpMessageParser(final NHttpMessageParser<HttpResponse> parser) {
- super();
- this.parser = parser;
- }
-
- public void reset() {
- this.parser.reset();
- }
-
- public int fillBuffer(final ReadableByteChannel channel) throws IOException {
- return this.parser.fillBuffer(channel);
- }
-
- public HttpResponse parse() throws IOException, HttpException {
- HttpResponse message = this.parser.parse();
- if (message != null && headerlog.isDebugEnabled()) {
- headerlog.debug(id + " << " + message.getStatusLine().toString());
- Header[] headers = message.getAllHeaders();
- for (int i = 0; i < headers.length; i++) {
- headerlog.debug(id + " << " + headers[i].toString());
- }
- }
- return message;
- }
-
- }
-
}
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/LoggingNHttpServerConnection.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/LoggingNHttpServerConnection.java?rev=1242262&r1=1242261&r2=1242262&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/LoggingNHttpServerConnection.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/LoggingNHttpServerConnection.java Thu Feb 9 10:21:40 2012
@@ -28,23 +28,13 @@
package org.apache.http;
import java.io.IOException;
-import java.nio.channels.ReadableByteChannel;
import java.util.concurrent.atomic.AtomicLong;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.http.Header;
-import org.apache.http.HttpException;
-import org.apache.http.HttpRequest;
-import org.apache.http.HttpRequestFactory;
-import org.apache.http.HttpResponse;
import org.apache.http.impl.nio.DefaultNHttpServerConnection;
-import org.apache.http.nio.NHttpMessageParser;
-import org.apache.http.nio.NHttpMessageWriter;
import org.apache.http.nio.NHttpServerEventHandler;
import org.apache.http.nio.reactor.IOSession;
-import org.apache.http.nio.reactor.SessionInputBuffer;
-import org.apache.http.nio.reactor.SessionOutputBuffer;
import org.apache.http.nio.util.ByteBufferAllocator;
import org.apache.http.params.HttpParams;
@@ -115,20 +105,25 @@ public class LoggingNHttpServerConnectio
}
@Override
- protected NHttpMessageWriter<HttpResponse> createResponseWriter(
- final SessionOutputBuffer buffer,
- final HttpParams params) {
- return new LoggingNHttpMessageWriter(
- super.createResponseWriter(buffer, params));
+ protected void onRequestReceived(final HttpRequest request) {
+ if (request != null && this.headerlog.isDebugEnabled()) {
+ this.headerlog.debug(this.id + " >> " + request.getRequestLine().toString());
+ Header[] headers = request.getAllHeaders();
+ for (int i = 0; i < headers.length; i++) {
+ this.headerlog.debug(this.id + " >> " + headers[i].toString());
+ }
+ }
}
@Override
- protected NHttpMessageParser<HttpRequest> createRequestParser(
- final SessionInputBuffer buffer,
- final HttpRequestFactory requestFactory,
- final HttpParams params) {
- return new LoggingNHttpMessageParser(
- super.createRequestParser(buffer, requestFactory, params));
+ protected void onResponseSubmitted(final HttpResponse response) {
+ if (response != null && this.headerlog.isDebugEnabled()) {
+ this.headerlog.debug(this.id + " << " + response.getStatusLine().toString());
+ Header[] headers = response.getAllHeaders();
+ for (int i = 0; i < headers.length; i++) {
+ this.headerlog.debug(this.id + " << " + headers[i].toString());
+ }
+ }
}
@Override
@@ -136,61 +131,4 @@ public class LoggingNHttpServerConnectio
return this.id;
}
- class LoggingNHttpMessageWriter implements NHttpMessageWriter<HttpResponse> {
-
- private final NHttpMessageWriter<HttpResponse> writer;
-
- public LoggingNHttpMessageWriter(final NHttpMessageWriter<HttpResponse> writer) {
- super();
- this.writer = writer;
- }
-
- public void reset() {
- this.writer.reset();
- }
-
- public void write(final HttpResponse message) throws IOException, HttpException {
- if (message != null && headerlog.isDebugEnabled()) {
- headerlog.debug(id + " << " + message.getStatusLine().toString());
- Header[] headers = message.getAllHeaders();
- for (int i = 0; i < headers.length; i++) {
- headerlog.debug(id + " << " + headers[i].toString());
- }
- }
- this.writer.write(message);
- }
-
- }
-
- class LoggingNHttpMessageParser implements NHttpMessageParser<HttpRequest> {
-
- private final NHttpMessageParser<HttpRequest> parser;
-
- public LoggingNHttpMessageParser(final NHttpMessageParser<HttpRequest> parser) {
- super();
- this.parser = parser;
- }
-
- public void reset() {
- this.parser.reset();
- }
-
- public int fillBuffer(final ReadableByteChannel channel) throws IOException {
- return this.parser.fillBuffer(channel);
- }
-
- public HttpRequest parse() throws IOException, HttpException {
- HttpRequest message = this.parser.parse();
- if (message != null && headerlog.isDebugEnabled()) {
- headerlog.debug(id + " >> " + message.getRequestLine().toString());
- Header[] headers = message.getAllHeaders();
- for (int i = 0; i < headers.length; i++) {
- headerlog.debug(id + " >> " + headers[i].toString());
- }
- }
- return message;
- }
-
- }
-
}