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 2011/09/05 16:34:40 UTC
svn commit: r1165298 [1/2] - in
/httpcomponents/httpcore/trunk/httpcore-nio/src:
main/java/org/apache/http/nio/entity/ main/java/org/apache/http/nio/protocol/
test/java/org/apache/http/impl/nio/reactor/
test/java/org/apache/http/nio/protocol/ test/java...
Author: olegk
Date: Mon Sep 5 14:34:39 2011
New Revision: 1165298
URL: http://svn.apache.org/viewvc?rev=1165298&view=rev
Log:
Deprecated old protocol handlers
Added:
httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/SimpleRequestHandler.java (with props)
Modified:
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/entity/NByteArrayEntity.java
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/entity/NStringEntity.java
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/AsyncNHttpClientHandler.java
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/AsyncNHttpServiceHandler.java
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/BasicAsyncRequestProducer.java
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/BasicAsyncResponseProducer.java
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpClientHandler.java
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpServiceHandler.java
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/EventListener.java
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncClientProtocolHandler.java
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncRequestExecutor.java
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncRequestHandlerRegistry.java
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpRequestExecutionHandler.java
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/NHttpHandlerBase.java
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/NHttpRequestExecutionHandler.java
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/NHttpRequestHandler.java
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/NHttpRequestHandlerRegistry.java
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/NHttpRequestHandlerResolver.java
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/NHttpResponseTrigger.java
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/SimpleNHttpRequestHandler.java
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/ThrottlingHttpClientHandler.java
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/ThrottlingHttpServiceHandler.java
httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/impl/nio/reactor/TestBaseIOReactorSSL.java
httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/impl/nio/reactor/TestDefaultIOReactors.java
httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/impl/nio/reactor/TestDefaultIOReactorsSSL.java
httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/impl/nio/reactor/TestDefaultListeningIOReactor.java
httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/Job.java
httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/RequestExecutionHandler.java
httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/RequestHandler.java
httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/RequestHandlerResolver.java
httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestAsyncNHttpHandlers.java
httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestBufferingNHttpHandlers.java
httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestHttpAsyncHandlers.java
httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestNIOSSLHttp.java
httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestTruncatedChunks.java
httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/testserver/HttpServerNio.java
httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/testserver/SimpleEventListener.java
httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/testserver/SimpleHttpRequestHandlerResolver.java
httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/testserver/SimpleNHttpRequestHandlerResolver.java
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/entity/NByteArrayEntity.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/entity/NByteArrayEntity.java?rev=1165298&r1=1165297&r2=1165298&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/entity/NByteArrayEntity.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/entity/NByteArrayEntity.java Mon Sep 5 14:34:39 2011
@@ -38,13 +38,11 @@ import org.apache.http.entity.AbstractHt
import org.apache.http.entity.ContentType;
import org.apache.http.nio.ContentEncoder;
import org.apache.http.nio.IOControl;
-import org.apache.http.nio.protocol.AsyncNHttpServiceHandler;
/**
* A simple self contained, repeatable non-blocking entity that retrieves
* its content from a byte array.
*
- * @see AsyncNHttpServiceHandler
* @since 4.0
*/
@NotThreadSafe
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/entity/NStringEntity.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/entity/NStringEntity.java?rev=1165298&r1=1165297&r2=1165298&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/entity/NStringEntity.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/entity/NStringEntity.java Mon Sep 5 14:34:39 2011
@@ -39,14 +39,12 @@ import org.apache.http.entity.AbstractHt
import org.apache.http.entity.ContentType;
import org.apache.http.nio.ContentEncoder;
import org.apache.http.nio.IOControl;
-import org.apache.http.nio.protocol.AsyncNHttpServiceHandler;
import org.apache.http.protocol.HTTP;
/**
* A simple, self contained, repeatable non-blocking entity that retrieves
* its content from a {@link String} object.
*
- * @see AsyncNHttpServiceHandler
* @since 4.0
*
*/
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/AsyncNHttpClientHandler.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/AsyncNHttpClientHandler.java?rev=1165298&r1=1165297&r2=1165298&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/AsyncNHttpClientHandler.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/AsyncNHttpClientHandler.java Mon Sep 5 14:34:39 2011
@@ -85,11 +85,11 @@ import org.apache.http.protocol.HttpProc
* <li>{@link org.apache.http.params.CoreProtocolPNames#WAIT_FOR_CONTINUE}</li>
* </ul>
*
- * @see ConsumingNHttpEntity
- * @see ProducingNHttpEntity
- *
* @since 4.0
+ *
+ * @deprecated use {@link HttpAsyncClientProtocolHandler} and {@link HttpAsyncRequestExecutor}
*/
+@Deprecated
@Immutable // provided injected dependencies are immutable
public class AsyncNHttpClientHandler extends NHttpHandlerBase
implements NHttpClientHandler {
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/AsyncNHttpServiceHandler.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/AsyncNHttpServiceHandler.java?rev=1165298&r1=1165297&r2=1165298&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/AsyncNHttpServiceHandler.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/AsyncNHttpServiceHandler.java Mon Sep 5 14:34:39 2011
@@ -93,11 +93,11 @@ import org.apache.http.util.EncodingUtil
* instance of {@link NHttpResponseTrigger} passed as a parameter to submit
* a response as at a later point of time once the response becomes available.
*
- * @see ConsumingNHttpEntity
- * @see ProducingNHttpEntity
- *
* @since 4.0
+ *
+ * @deprecated use {@link HttpAsyncServiceHandler}
*/
+@Deprecated
@Immutable // provided injected dependencies are immutable
public class AsyncNHttpServiceHandler extends NHttpHandlerBase
implements NHttpServiceHandler {
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/BasicAsyncRequestProducer.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/BasicAsyncRequestProducer.java?rev=1165298&r1=1165297&r2=1165298&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/BasicAsyncRequestProducer.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/BasicAsyncRequestProducer.java Mon Sep 5 14:34:39 2011
@@ -32,10 +32,15 @@ import org.apache.http.HttpEntity;
import org.apache.http.HttpEntityEnclosingRequest;
import org.apache.http.HttpHost;
import org.apache.http.HttpRequest;
+import org.apache.http.annotation.ThreadSafe;
import org.apache.http.nio.ContentEncoder;
import org.apache.http.nio.IOControl;
import org.apache.http.nio.entity.ProducingNHttpEntity;
+/**
+ * @since 4.2
+ */
+@ThreadSafe
public class BasicAsyncRequestProducer implements HttpAsyncRequestProducer {
private final HttpHost target;
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/BasicAsyncResponseProducer.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/BasicAsyncResponseProducer.java?rev=1165298&r1=1165297&r2=1165298&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/BasicAsyncResponseProducer.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/BasicAsyncResponseProducer.java Mon Sep 5 14:34:39 2011
@@ -31,10 +31,15 @@ import java.io.IOException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
+import org.apache.http.annotation.ThreadSafe;
import org.apache.http.nio.ContentEncoder;
import org.apache.http.nio.IOControl;
import org.apache.http.nio.entity.ProducingNHttpEntity;
+/**
+ * @since 4.2
+ */
+@ThreadSafe
public class BasicAsyncResponseProducer implements HttpAsyncResponseProducer {
private final HttpResponse response;
@@ -47,10 +52,14 @@ public class BasicAsyncResponseProducer
}
this.response = response;
HttpEntity entity = response.getEntity();
- if (entity instanceof ProducingNHttpEntity) {
- this.producer = (ProducingNHttpEntity) entity;
+ if (entity != null) {
+ if (entity instanceof ProducingNHttpEntity) {
+ this.producer = (ProducingNHttpEntity) entity;
+ } else {
+ this.producer = new NHttpEntityWrapper(entity);
+ }
} else {
- this.producer = new NHttpEntityWrapper(entity);
+ this.producer = null;
}
}
@@ -60,14 +69,18 @@ public class BasicAsyncResponseProducer
public synchronized void produceContent(
final ContentEncoder encoder, final IOControl ioctrl) throws IOException {
- this.producer.produceContent(encoder, ioctrl);
- if (encoder.isCompleted()) {
- this.producer.finish();
+ if (this.producer != null) {
+ this.producer.produceContent(encoder, ioctrl);
+ if (encoder.isCompleted()) {
+ this.producer.finish();
+ }
}
}
public synchronized void close() throws IOException {
- this.producer.finish();
+ if (this.producer != null) {
+ this.producer.finish();
+ }
}
}
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpClientHandler.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpClientHandler.java?rev=1165298&r1=1165297&r2=1165298&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpClientHandler.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpClientHandler.java Mon Sep 5 14:34:39 2011
@@ -65,9 +65,11 @@ import org.apache.http.protocol.HttpProc
* IMPORTANT: This protocol handler should be used only when dealing with HTTP
* messages that are known to be limited in length.
*
- *
* @since 4.0
+ *
+ * @deprecated use {@link HttpAsyncClientProtocolHandler} and {@link HttpAsyncRequestExecutor}
*/
+@Deprecated
@Immutable // provided injected dependencies are immutable
public class BufferingHttpClientHandler implements NHttpClientHandler {
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpServiceHandler.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpServiceHandler.java?rev=1165298&r1=1165297&r2=1165298&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpServiceHandler.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpServiceHandler.java Mon Sep 5 14:34:39 2011
@@ -70,9 +70,11 @@ import org.apache.http.protocol.HttpRequ
* IMPORTANT: This protocol handler should be used only when dealing with HTTP
* messages that are known to be limited in length.
*
- *
* @since 4.0
+ *
+ * @deprecated use {@link HttpAsyncServiceHandler}
*/
+@Deprecated
@Immutable // provided injected dependencies are immutable
public class BufferingHttpServiceHandler implements NHttpServiceHandler {
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/EventListener.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/EventListener.java?rev=1165298&r1=1165297&r2=1165298&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/EventListener.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/EventListener.java Mon Sep 5 14:34:39 2011
@@ -37,7 +37,10 @@ import org.apache.http.nio.NHttpConnecti
* and events that may need to be logged using a logging toolkit.
*
* @since 4.0
+ *
+ * @deprecated do not use
*/
+@Deprecated
public interface EventListener {
/**
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncClientProtocolHandler.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncClientProtocolHandler.java?rev=1165298&r1=1165297&r2=1165298&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncClientProtocolHandler.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncClientProtocolHandler.java Mon Sep 5 14:34:39 2011
@@ -37,6 +37,7 @@ import org.apache.http.HttpException;
import org.apache.http.HttpRequest;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
+import org.apache.http.annotation.Immutable;
import org.apache.http.nio.ContentDecoder;
import org.apache.http.nio.ContentEncoder;
import org.apache.http.nio.NHttpClientConnection;
@@ -48,6 +49,7 @@ import org.apache.http.protocol.HttpCont
/**
* @since 4.2
*/
+@Immutable
public class HttpAsyncClientProtocolHandler implements NHttpClientHandler {
public static final String HTTP_HANDLER = "http.nio.exchange-handler";
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncRequestExecutor.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncRequestExecutor.java?rev=1165298&r1=1165297&r2=1165298&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncRequestExecutor.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncRequestExecutor.java Mon Sep 5 14:34:39 2011
@@ -31,6 +31,7 @@ import java.util.concurrent.Future;
import org.apache.http.ConnectionReuseStrategy;
import org.apache.http.HttpHost;
+import org.apache.http.annotation.Immutable;
import org.apache.http.concurrent.BasicFuture;
import org.apache.http.concurrent.FutureCallback;
import org.apache.http.nio.NHttpClientConnection;
@@ -41,6 +42,10 @@ import org.apache.http.protocol.BasicHtt
import org.apache.http.protocol.HttpContext;
import org.apache.http.protocol.HttpProcessor;
+/**
+ * @since 4.2
+ */
+@Immutable
public class HttpAsyncRequestExecutor {
private final HttpProcessor httppocessor;
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncRequestHandlerRegistry.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncRequestHandlerRegistry.java?rev=1165298&r1=1165297&r2=1165298&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncRequestHandlerRegistry.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncRequestHandlerRegistry.java Mon Sep 5 14:34:39 2011
@@ -29,6 +29,7 @@ package org.apache.http.nio.protocol;
import java.util.Map;
+import org.apache.http.annotation.ThreadSafe;
import org.apache.http.protocol.UriPatternMatcher;
/**
@@ -47,6 +48,7 @@ import org.apache.http.protocol.UriPatte
*
* @since 4.2
*/
+@ThreadSafe
public class HttpAsyncRequestHandlerRegistry implements HttpAsyncRequestHandlerResolver {
private final UriPatternMatcher<HttpAsyncRequestHandler<?>> matcher;
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpRequestExecutionHandler.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpRequestExecutionHandler.java?rev=1165298&r1=1165297&r2=1165298&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpRequestExecutionHandler.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpRequestExecutionHandler.java Mon Sep 5 14:34:39 2011
@@ -39,9 +39,11 @@ import org.apache.http.protocol.HttpCont
* to trigger the submission of a new HTTP request and the processing of an
* HTTP response.
*
- *
* @since 4.0
+ *
+ * @deprecated use {@link HttpAsyncClientProtocolHandler} and {@link HttpAsyncRequestExecutor}
*/
+@Deprecated
public interface HttpRequestExecutionHandler {
/**
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/NHttpHandlerBase.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/NHttpHandlerBase.java?rev=1165298&r1=1165297&r2=1165298&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/NHttpHandlerBase.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/NHttpHandlerBase.java Mon Sep 5 14:34:39 2011
@@ -41,7 +41,10 @@ import org.apache.http.protocol.HttpProc
/**
* @since 4.0
+ *
+ * @deprecated do not use
*/
+@Deprecated
@Immutable // provided injected dependencies are immutable
public abstract class NHttpHandlerBase {
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/NHttpRequestExecutionHandler.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/NHttpRequestExecutionHandler.java?rev=1165298&r1=1165297&r2=1165298&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/NHttpRequestExecutionHandler.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/NHttpRequestExecutionHandler.java Mon Sep 5 14:34:39 2011
@@ -45,9 +45,11 @@ import org.apache.http.protocol.HttpCont
* {@link #handleResponse(HttpResponse, HttpContext)} is notified that the
* response is fully read.
*
- *
* @since 4.0
+ *
+ * @deprecated use {@link HttpAsyncClientProtocolHandler} and {@link HttpAsyncRequestExecutor}
*/
+@Deprecated
public interface NHttpRequestExecutionHandler {
/**
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/NHttpRequestHandler.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/NHttpRequestHandler.java?rev=1165298&r1=1165297&r2=1165298&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/NHttpRequestHandler.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/NHttpRequestHandler.java Mon Sep 5 14:34:39 2011
@@ -46,7 +46,10 @@ import org.apache.http.protocol.HttpCont
* the given request
*
* @since 4.0
+ *
+ * @deprecated use {@link HttpAsyncRequestHandler}
*/
+@Deprecated
public interface NHttpRequestHandler {
/**
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/NHttpRequestHandlerRegistry.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/NHttpRequestHandlerRegistry.java?rev=1165298&r1=1165297&r2=1165298&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/NHttpRequestHandlerRegistry.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/NHttpRequestHandlerRegistry.java Mon Sep 5 14:34:39 2011
@@ -47,7 +47,10 @@ import org.apache.http.protocol.UriPatte
* specified request URI.
*
* @since 4.0
+ *
+ * @deprecated use {@link HttpAsyncRequestHandlerRegistry}
*/
+@Deprecated
public class NHttpRequestHandlerRegistry implements NHttpRequestHandlerResolver {
private final UriPatternMatcher<NHttpRequestHandler> matcher;
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/NHttpRequestHandlerResolver.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/NHttpRequestHandlerResolver.java?rev=1165298&r1=1165297&r2=1165298&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/NHttpRequestHandlerResolver.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/NHttpRequestHandlerResolver.java Mon Sep 5 14:34:39 2011
@@ -34,7 +34,10 @@ package org.apache.http.nio.protocol;
* specified request URI.
*
* @since 4.0
+ *
+ * @deprecated use {@link HttpAsyncRequestHandlerResolver}
*/
+@Deprecated
public interface NHttpRequestHandlerResolver {
/**
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/NHttpResponseTrigger.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/NHttpResponseTrigger.java?rev=1165298&r1=1165297&r2=1165298&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/NHttpResponseTrigger.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/NHttpResponseTrigger.java Mon Sep 5 14:34:39 2011
@@ -44,7 +44,10 @@ import org.apache.http.HttpResponse;
* a later point of time once the response becomes available.
*
* @since 4.0
+ *
+ * @deprecated use {@link HttpAsyncResponseTrigger}
*/
+@Deprecated
public interface NHttpResponseTrigger {
/**
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/SimpleNHttpRequestHandler.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/SimpleNHttpRequestHandler.java?rev=1165298&r1=1165297&r2=1165298&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/SimpleNHttpRequestHandler.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/SimpleNHttpRequestHandler.java Mon Sep 5 14:34:39 2011
@@ -41,7 +41,10 @@ import org.apache.http.protocol.HttpCont
* implement {@link #handle(HttpRequest, HttpResponse, HttpContext)}.
*
* @since 4.0
+ *
+ * @deprecated use {@link BufferingAsyncRequestHandler}
*/
+@Deprecated
@Immutable
public abstract class SimpleNHttpRequestHandler implements NHttpRequestHandler {
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/ThrottlingHttpClientHandler.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/ThrottlingHttpClientHandler.java?rev=1165298&r1=1165297&r2=1165298&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/ThrottlingHttpClientHandler.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/ThrottlingHttpClientHandler.java Mon Sep 5 14:34:39 2011
@@ -94,7 +94,7 @@ import org.apache.http.protocol.HttpProc
*
* @since 4.0
*
- * @deprecated Use {@link AsyncNHttpClientHandler}
+ * @deprecated use {@link HttpAsyncClientProtocolHandler} and {@link HttpAsyncRequestExecutor}
*/
@Deprecated
@ThreadSafe // provided injected dependencies are immutable or thread safe
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/ThrottlingHttpServiceHandler.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/ThrottlingHttpServiceHandler.java?rev=1165298&r1=1165297&r2=1165298&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/ThrottlingHttpServiceHandler.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/ThrottlingHttpServiceHandler.java Mon Sep 5 14:34:39 2011
@@ -104,7 +104,8 @@ import org.apache.http.util.EntityUtils;
* </ul>
*
* @since 4.0
- * @deprecated Use {@link AsyncNHttpServiceHandler}
+ *
+ * @deprecated use {@link HttpAsyncServiceHandler}
*/
@Deprecated
@ThreadSafe // provided injected dependencies are immutable or thread safe
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/impl/nio/reactor/TestBaseIOReactorSSL.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/impl/nio/reactor/TestBaseIOReactorSSL.java?rev=1165298&r1=1165297&r2=1165298&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/impl/nio/reactor/TestBaseIOReactorSSL.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/impl/nio/reactor/TestBaseIOReactorSSL.java Mon Sep 5 14:34:39 2011
@@ -65,6 +65,7 @@ import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
+@Deprecated
public class TestBaseIOReactorSSL extends HttpCoreNIOTestBase {
@Before
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/impl/nio/reactor/TestDefaultIOReactors.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/impl/nio/reactor/TestDefaultIOReactors.java?rev=1165298&r1=1165297&r2=1165298&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/impl/nio/reactor/TestDefaultIOReactors.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/impl/nio/reactor/TestDefaultIOReactors.java Mon Sep 5 14:34:39 2011
@@ -33,49 +33,38 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Queue;
import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.Future;
import java.util.concurrent.atomic.AtomicInteger;
import org.apache.http.HttpCoreNIOTestBase;
import org.apache.http.HttpException;
+import org.apache.http.HttpHost;
import org.apache.http.HttpRequest;
-import org.apache.http.HttpRequestInterceptor;
import org.apache.http.HttpResponse;
-import org.apache.http.HttpResponseInterceptor;
import org.apache.http.LoggingClientConnectionFactory;
import org.apache.http.LoggingServerConnectionFactory;
import org.apache.http.OoopsieRuntimeException;
import org.apache.http.impl.DefaultConnectionReuseStrategy;
-import org.apache.http.impl.DefaultHttpResponseFactory;
+import org.apache.http.impl.nio.pool.BasicNIOPoolEntry;
import org.apache.http.message.BasicHttpRequest;
+import org.apache.http.nio.NHttpClientConnection;
import org.apache.http.nio.NHttpClientIOTarget;
-import org.apache.http.nio.NHttpConnection;
import org.apache.http.nio.NHttpConnectionFactory;
+import org.apache.http.nio.NHttpServerConnection;
import org.apache.http.nio.NHttpServerIOTarget;
-import org.apache.http.nio.protocol.BufferingHttpClientHandler;
-import org.apache.http.nio.protocol.BufferingHttpServiceHandler;
-import org.apache.http.nio.protocol.EventListener;
-import org.apache.http.nio.protocol.HttpRequestExecutionHandler;
+import org.apache.http.nio.protocol.BasicAsyncRequestProducer;
+import org.apache.http.nio.protocol.BasicAsyncResponseConsumer;
+import org.apache.http.nio.protocol.BufferingAsyncRequestHandler;
+import org.apache.http.nio.protocol.HttpAsyncClientProtocolHandler;
+import org.apache.http.nio.protocol.HttpAsyncRequestHandlerRegistry;
+import org.apache.http.nio.protocol.HttpAsyncServiceHandler;
import org.apache.http.nio.reactor.IOReactorException;
import org.apache.http.nio.reactor.IOReactorExceptionHandler;
import org.apache.http.nio.reactor.IOReactorStatus;
import org.apache.http.nio.reactor.ListenerEndpoint;
-import org.apache.http.nio.reactor.SessionRequest;
import org.apache.http.params.HttpParams;
import org.apache.http.protocol.HttpContext;
-import org.apache.http.protocol.HttpProcessor;
import org.apache.http.protocol.HttpRequestHandler;
-import org.apache.http.protocol.ImmutableHttpProcessor;
-import org.apache.http.protocol.RequestConnControl;
-import org.apache.http.protocol.RequestContent;
-import org.apache.http.protocol.RequestExpectContinue;
-import org.apache.http.protocol.RequestTargetHost;
-import org.apache.http.protocol.RequestUserAgent;
-import org.apache.http.protocol.ResponseConnControl;
-import org.apache.http.protocol.ResponseContent;
-import org.apache.http.protocol.ResponseDate;
-import org.apache.http.protocol.ResponseServer;
-import org.apache.http.testserver.SimpleEventListener;
-import org.apache.http.testserver.SimpleHttpRequestHandlerResolver;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
@@ -90,10 +79,12 @@ public class TestDefaultIOReactors exten
public void setUp() throws Exception {
initServer();
initClient();
+ initConnPool();
}
@After
public void tearDown() throws Exception {
+ shutDownConnPool();
shutDownClient();
shutDownServer();
}
@@ -112,152 +103,74 @@ public class TestDefaultIOReactors exten
@Test
public void testGracefulShutdown() throws Exception {
-
- // Open some connection and make sure
- // they get cleanly closed upon shutdown
-
final int connNo = 10;
- final CountDownLatch requestConns = new CountDownLatch(connNo);
final AtomicInteger closedServerConns = new AtomicInteger(0);
final AtomicInteger openServerConns = new AtomicInteger(0);
final AtomicInteger closedClientConns = new AtomicInteger(0);
final AtomicInteger openClientConns = new AtomicInteger(0);
- HttpRequestHandler requestHandler = new HttpRequestHandler() {
-
- public void handle(
- final HttpRequest request,
- final HttpResponse response,
- final HttpContext context) throws HttpException, IOException {
- }
-
- };
-
- HttpRequestExecutionHandler requestExecutionHandler = new HttpRequestExecutionHandler() {
-
- public void initalizeContext(final HttpContext context, final Object attachment) {
- }
-
- public void finalizeContext(final HttpContext context) {
- while (requestConns.getCount() > 0) {
- requestConns.countDown();
- }
- }
-
- public HttpRequest submitRequest(final HttpContext context) {
- Boolean b = ((Boolean) context.getAttribute("done"));
- if (b == null) {
- BasicHttpRequest get = new BasicHttpRequest("GET", "/");
- context.setAttribute("done", Boolean.TRUE);
- return get;
- } else {
- return null;
- }
- }
-
- public void handleResponse(final HttpResponse response, final HttpContext context) {
- requestConns.countDown();
- }
-
- };
+ this.connpool.setDefaultMaxPerRoute(connNo);
+ this.connpool.setMaxTotal(connNo);
- EventListener serverEventListener = new SimpleEventListener() {
+ HttpAsyncRequestHandlerRegistry registry = new HttpAsyncRequestHandlerRegistry();
+ HttpAsyncServiceHandler serviceHandler = new HttpAsyncServiceHandler(
+ registry,
+ this.serverHttpProc,
+ new DefaultConnectionReuseStrategy(),
+ this.serverParams) {
@Override
- public void connectionOpen(NHttpConnection conn) {
+ public void connected(final NHttpServerConnection conn) {
openServerConns.incrementAndGet();
- super.connectionOpen(conn);
+ super.connected(conn);
}
@Override
- public void connectionClosed(NHttpConnection conn) {
+ public void closed(final NHttpServerConnection conn) {
closedServerConns.incrementAndGet();
- super.connectionClosed(conn);
+ super.closed(conn);
}
};
-
- HttpProcessor serverHttpProc = new ImmutableHttpProcessor(new HttpResponseInterceptor[] {
- new ResponseDate(),
- new ResponseServer(),
- new ResponseContent(),
- new ResponseConnControl()
- });
-
- BufferingHttpServiceHandler serviceHandler = new BufferingHttpServiceHandler(
- serverHttpProc,
- new DefaultHttpResponseFactory(),
- new DefaultConnectionReuseStrategy(),
- this.serverParams);
-
- serviceHandler.setHandlerResolver(
- new SimpleHttpRequestHandlerResolver(requestHandler));
- serviceHandler.setEventListener(
- serverEventListener);
-
- EventListener clientEventListener = new SimpleEventListener() {
+ HttpAsyncClientProtocolHandler clientHandler = new HttpAsyncClientProtocolHandler() {
@Override
- public void connectionOpen(NHttpConnection conn) {
- openClientConns.incrementAndGet();
- super.connectionOpen(conn);
+ public void connected(final NHttpClientConnection conn, final Object attachment) {
+ openServerConns.incrementAndGet();
+ super.connected(conn, attachment);
}
@Override
- public void connectionClosed(NHttpConnection conn) {
- closedClientConns.incrementAndGet();
- super.connectionClosed(conn);
+ public void closed(final NHttpClientConnection conn) {
+ closedServerConns.incrementAndGet();
+ super.closed(conn);
}
};
-
- HttpProcessor clientHttpProc = new ImmutableHttpProcessor(new HttpRequestInterceptor[] {
- new RequestContent(),
- new RequestTargetHost(),
- new RequestConnControl(),
- new RequestUserAgent(),
- new RequestExpectContinue()});
-
- BufferingHttpClientHandler clientHandler = new BufferingHttpClientHandler(
- clientHttpProc,
- requestExecutionHandler,
- new DefaultConnectionReuseStrategy(),
- this.clientParams);
-
- clientHandler.setEventListener(
- clientEventListener);
-
this.server.start(serviceHandler);
this.client.start(clientHandler);
ListenerEndpoint endpoint = this.server.getListenerEndpoint();
endpoint.waitFor();
- InetSocketAddress serverAddress = (InetSocketAddress) endpoint.getAddress();
+ InetSocketAddress address = (InetSocketAddress) endpoint.getAddress();
+ HttpHost target = new HttpHost("localhost", address.getPort());
Assert.assertEquals("Test server status", IOReactorStatus.ACTIVE, this.server.getStatus());
- Queue<SessionRequest> connRequests = new LinkedList<SessionRequest>();
+ Queue<Future<BasicNIOPoolEntry>> queue = new LinkedList<Future<BasicNIOPoolEntry>>();
for (int i = 0; i < connNo; i++) {
- SessionRequest sessionRequest = this.client.openConnection(
- new InetSocketAddress("localhost", serverAddress.getPort()),
- null);
- connRequests.add(sessionRequest);
+ queue.add(this.connpool.lease(target, null));
}
- while (!connRequests.isEmpty()) {
- SessionRequest sessionRequest = connRequests.remove();
- sessionRequest.waitFor();
- if (sessionRequest.getException() != null) {
- throw sessionRequest.getException();
- }
- Assert.assertNotNull(sessionRequest.getSession());
+ while (!queue.isEmpty()) {
+ Future<BasicNIOPoolEntry> future = queue.remove();
+ BasicNIOPoolEntry poolEntry = future.get();
+ Assert.assertNotNull(poolEntry);
}
Assert.assertEquals("Test client status", IOReactorStatus.ACTIVE, this.client.getStatus());
- requestConns.await();
- Assert.assertEquals(0, requestConns.getCount());
-
+ this.connpool.shutdown(2000);
this.client.shutdown();
this.server.shutdown();
@@ -279,74 +192,29 @@ public class TestDefaultIOReactors exten
};
- HttpRequestExecutionHandler requestExecutionHandler = new HttpRequestExecutionHandler() {
-
- public void initalizeContext(final HttpContext context, final Object attachment) {
- }
-
- public void finalizeContext(final HttpContext context) {
- }
-
- public HttpRequest submitRequest(final HttpContext context) {
- Boolean b = ((Boolean) context.getAttribute("done"));
- if (b == null) {
- BasicHttpRequest get = new BasicHttpRequest("GET", "/");
- context.setAttribute("done", Boolean.TRUE);
- return get;
- } else {
- return null;
- }
- }
-
- public void handleResponse(final HttpResponse response, final HttpContext context) {
- }
-
- };
-
- HttpProcessor serverHttpProc = new ImmutableHttpProcessor(new HttpResponseInterceptor[] {
- new ResponseDate(),
- new ResponseServer(),
- new ResponseContent(),
- new ResponseConnControl()
- });
-
- BufferingHttpServiceHandler serviceHandler = new BufferingHttpServiceHandler(
- serverHttpProc,
- new DefaultHttpResponseFactory(),
+ HttpAsyncRequestHandlerRegistry registry = new HttpAsyncRequestHandlerRegistry();
+ registry.register("*", new BufferingAsyncRequestHandler(requestHandler));
+ HttpAsyncServiceHandler serviceHandler = new HttpAsyncServiceHandler(
+ registry,
+ this.serverHttpProc,
new DefaultConnectionReuseStrategy(),
this.serverParams);
-
- serviceHandler.setHandlerResolver(
- new SimpleHttpRequestHandlerResolver(requestHandler));
- serviceHandler.setEventListener(
- new SimpleEventListener());
-
- HttpProcessor clientHttpProc = new ImmutableHttpProcessor(new HttpRequestInterceptor[] {
- new RequestContent(),
- new RequestTargetHost(),
- new RequestConnControl(),
- new RequestUserAgent(),
- new RequestExpectContinue()});
-
- BufferingHttpClientHandler clientHandler = new BufferingHttpClientHandler(
- clientHttpProc,
- requestExecutionHandler,
- new DefaultConnectionReuseStrategy(),
- this.clientParams);
-
- clientHandler.setEventListener(
- new SimpleEventListener());
-
+ HttpAsyncClientProtocolHandler clientHandler = new HttpAsyncClientProtocolHandler();
this.server.start(serviceHandler);
this.client.start(clientHandler);
ListenerEndpoint endpoint = this.server.getListenerEndpoint();
endpoint.waitFor();
- InetSocketAddress serverAddress = (InetSocketAddress) endpoint.getAddress();
+ InetSocketAddress address = (InetSocketAddress) endpoint.getAddress();
+ HttpHost target = new HttpHost("localhost", address.getPort());
+
+ Assert.assertEquals("Test server status", IOReactorStatus.ACTIVE, this.server.getStatus());
- this.client.openConnection(
- new InetSocketAddress("localhost", serverAddress.getPort()),
- null);
+ BasicHttpRequest request = new BasicHttpRequest("GET", "/");
+ this.executor.execute(
+ new BasicAsyncRequestProducer(target, request),
+ new BasicAsyncResponseConsumer(),
+ this.connpool);
this.server.join(20000);
@@ -369,7 +237,6 @@ public class TestDefaultIOReactors exten
@Test
public void testUnhandledRuntimeException() throws Exception {
-
final CountDownLatch requestConns = new CountDownLatch(1);
HttpRequestHandler requestHandler = new HttpRequestHandler() {
@@ -383,30 +250,6 @@ public class TestDefaultIOReactors exten
};
- HttpRequestExecutionHandler requestExecutionHandler = new HttpRequestExecutionHandler() {
-
- public void initalizeContext(final HttpContext context, final Object attachment) {
- }
-
- public void finalizeContext(final HttpContext context) {
- }
-
- public HttpRequest submitRequest(final HttpContext context) {
- Boolean b = ((Boolean) context.getAttribute("done"));
- if (b == null) {
- BasicHttpRequest get = new BasicHttpRequest("GET", "/");
- context.setAttribute("done", Boolean.TRUE);
- return get;
- } else {
- return null;
- }
- }
-
- public void handleResponse(final HttpResponse response, final HttpContext context) {
- }
-
- };
-
IOReactorExceptionHandler exceptionHandler = new IOReactorExceptionHandler() {
public boolean handle(final IOException ex) {
@@ -420,51 +263,30 @@ public class TestDefaultIOReactors exten
};
- HttpProcessor serverHttpProc = new ImmutableHttpProcessor(new HttpResponseInterceptor[] {
- new ResponseDate(),
- new ResponseServer(),
- new ResponseContent(),
- new ResponseConnControl()
- });
-
- BufferingHttpServiceHandler serviceHandler = new BufferingHttpServiceHandler(
- serverHttpProc,
- new DefaultHttpResponseFactory(),
+ HttpAsyncRequestHandlerRegistry registry = new HttpAsyncRequestHandlerRegistry();
+ registry.register("*", new BufferingAsyncRequestHandler(requestHandler));
+ HttpAsyncServiceHandler serviceHandler = new HttpAsyncServiceHandler(
+ registry,
+ this.serverHttpProc,
new DefaultConnectionReuseStrategy(),
this.serverParams);
-
- serviceHandler.setHandlerResolver(
- new SimpleHttpRequestHandlerResolver(requestHandler));
- serviceHandler.setEventListener(
- new SimpleEventListener());
-
- HttpProcessor clientHttpProc = new ImmutableHttpProcessor(new HttpRequestInterceptor[] {
- new RequestContent(),
- new RequestTargetHost(),
- new RequestConnControl(),
- new RequestUserAgent(),
- new RequestExpectContinue()});
-
- BufferingHttpClientHandler clientHandler = new BufferingHttpClientHandler(
- clientHttpProc,
- requestExecutionHandler,
- new DefaultConnectionReuseStrategy(),
- this.clientParams);
-
+ HttpAsyncClientProtocolHandler clientHandler = new HttpAsyncClientProtocolHandler();
this.server.setExceptionHandler(exceptionHandler);
this.server.start(serviceHandler);
this.client.start(clientHandler);
ListenerEndpoint endpoint = this.server.getListenerEndpoint();
endpoint.waitFor();
- InetSocketAddress serverAddress = (InetSocketAddress) endpoint.getAddress();
+ InetSocketAddress address = (InetSocketAddress) endpoint.getAddress();
+ HttpHost target = new HttpHost("localhost", address.getPort());
- this.client.openConnection(
- new InetSocketAddress("localhost", serverAddress.getPort()),
- null);
+ Assert.assertEquals("Test server status", IOReactorStatus.ACTIVE, this.server.getStatus());
- requestConns.await();
- Assert.assertEquals(0, requestConns.getCount());
+ BasicHttpRequest request = new BasicHttpRequest("GET", "/");
+ this.executor.execute(
+ new BasicAsyncRequestProducer(target, request),
+ new BasicAsyncResponseConsumer(),
+ this.connpool);
this.server.join(20000);
@@ -487,7 +309,6 @@ public class TestDefaultIOReactors exten
@Test
public void testHandledRuntimeException() throws Exception {
-
final CountDownLatch requestConns = new CountDownLatch(1);
HttpRequestHandler requestHandler = new HttpRequestHandler() {
@@ -501,30 +322,6 @@ public class TestDefaultIOReactors exten
};
- HttpRequestExecutionHandler requestExecutionHandler = new HttpRequestExecutionHandler() {
-
- public void initalizeContext(final HttpContext context, final Object attachment) {
- }
-
- public void finalizeContext(final HttpContext context) {
- }
-
- public HttpRequest submitRequest(final HttpContext context) {
- Boolean b = ((Boolean) context.getAttribute("done"));
- if (b == null) {
- BasicHttpRequest get = new BasicHttpRequest("GET", "/");
- context.setAttribute("done", Boolean.TRUE);
- return get;
- } else {
- return null;
- }
- }
-
- public void handleResponse(final HttpResponse response, final HttpContext context) {
- }
-
- };
-
IOReactorExceptionHandler exceptionHandler = new IOReactorExceptionHandler() {
public boolean handle(final IOException ex) {
@@ -538,49 +335,30 @@ public class TestDefaultIOReactors exten
};
- HttpProcessor serverHttpProc = new ImmutableHttpProcessor(new HttpResponseInterceptor[] {
- new ResponseDate(),
- new ResponseServer(),
- new ResponseContent(),
- new ResponseConnControl()
- });
-
- BufferingHttpServiceHandler serviceHandler = new BufferingHttpServiceHandler(
- serverHttpProc,
- new DefaultHttpResponseFactory(),
+ HttpAsyncRequestHandlerRegistry registry = new HttpAsyncRequestHandlerRegistry();
+ registry.register("*", new BufferingAsyncRequestHandler(requestHandler));
+ HttpAsyncServiceHandler serviceHandler = new HttpAsyncServiceHandler(
+ registry,
+ this.serverHttpProc,
new DefaultConnectionReuseStrategy(),
this.serverParams);
-
- serviceHandler.setHandlerResolver(
- new SimpleHttpRequestHandlerResolver(requestHandler));
- serviceHandler.setEventListener(
- new SimpleEventListener());
-
- HttpProcessor clientHttpProc = new ImmutableHttpProcessor(new HttpRequestInterceptor[] {
- new RequestContent(),
- new RequestTargetHost(),
- new RequestConnControl(),
- new RequestUserAgent(),
- new RequestExpectContinue()});
-
- BufferingHttpClientHandler clientHandler = new BufferingHttpClientHandler(
- clientHttpProc,
- requestExecutionHandler,
- new DefaultConnectionReuseStrategy(),
- this.clientParams);
-
+ HttpAsyncClientProtocolHandler clientHandler = new HttpAsyncClientProtocolHandler();
this.server.setExceptionHandler(exceptionHandler);
-
this.server.start(serviceHandler);
this.client.start(clientHandler);
ListenerEndpoint endpoint = this.server.getListenerEndpoint();
endpoint.waitFor();
- InetSocketAddress serverAddress = (InetSocketAddress) endpoint.getAddress();
+ InetSocketAddress address = (InetSocketAddress) endpoint.getAddress();
+ HttpHost target = new HttpHost("localhost", address.getPort());
+
+ Assert.assertEquals("Test server status", IOReactorStatus.ACTIVE, this.server.getStatus());
- this.client.openConnection(
- new InetSocketAddress("localhost", serverAddress.getPort()),
- null);
+ BasicHttpRequest request = new BasicHttpRequest("GET", "/");
+ this.executor.execute(
+ new BasicAsyncRequestProducer(target, request),
+ new BasicAsyncResponseConsumer(),
+ this.connpool);
requestConns.await();
Assert.assertEquals(0, requestConns.getCount());
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/impl/nio/reactor/TestDefaultIOReactorsSSL.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/impl/nio/reactor/TestDefaultIOReactorsSSL.java?rev=1165298&r1=1165297&r2=1165298&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/impl/nio/reactor/TestDefaultIOReactorsSSL.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/impl/nio/reactor/TestDefaultIOReactorsSSL.java Mon Sep 5 14:34:39 2011
@@ -27,74 +27,19 @@
package org.apache.http.impl.nio.reactor;
-import java.io.IOException;
-import java.net.InetSocketAddress;
-import java.util.LinkedList;
-import java.util.Queue;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import org.apache.http.HttpCoreNIOTestBase;
-import org.apache.http.HttpException;
-import org.apache.http.HttpRequest;
-import org.apache.http.HttpRequestInterceptor;
-import org.apache.http.HttpResponse;
-import org.apache.http.HttpResponseInterceptor;
import org.apache.http.LoggingSSLClientConnectionFactory;
import org.apache.http.LoggingSSLServerConnectionFactory;
import org.apache.http.SSLTestContexts;
-import org.apache.http.impl.DefaultConnectionReuseStrategy;
-import org.apache.http.impl.DefaultHttpResponseFactory;
-import org.apache.http.message.BasicHttpRequest;
import org.apache.http.nio.NHttpClientIOTarget;
-import org.apache.http.nio.NHttpConnection;
import org.apache.http.nio.NHttpConnectionFactory;
import org.apache.http.nio.NHttpServerIOTarget;
-import org.apache.http.nio.protocol.BufferingHttpClientHandler;
-import org.apache.http.nio.protocol.BufferingHttpServiceHandler;
-import org.apache.http.nio.protocol.EventListener;
-import org.apache.http.nio.protocol.HttpRequestExecutionHandler;
-import org.apache.http.nio.reactor.IOReactorStatus;
-import org.apache.http.nio.reactor.ListenerEndpoint;
-import org.apache.http.nio.reactor.SessionRequest;
import org.apache.http.params.HttpParams;
-import org.apache.http.protocol.HttpContext;
-import org.apache.http.protocol.HttpProcessor;
-import org.apache.http.protocol.HttpRequestHandler;
-import org.apache.http.protocol.ImmutableHttpProcessor;
-import org.apache.http.protocol.RequestConnControl;
-import org.apache.http.protocol.RequestContent;
-import org.apache.http.protocol.RequestExpectContinue;
-import org.apache.http.protocol.RequestTargetHost;
-import org.apache.http.protocol.RequestUserAgent;
-import org.apache.http.protocol.ResponseConnControl;
-import org.apache.http.protocol.ResponseContent;
-import org.apache.http.protocol.ResponseDate;
-import org.apache.http.protocol.ResponseServer;
-import org.apache.http.testserver.SimpleEventListener;
-import org.apache.http.testserver.SimpleHttpRequestHandlerResolver;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
/**
* Basic functionality tests for SSL I/O reactors.
*
*/
-public class TestDefaultIOReactorsSSL extends HttpCoreNIOTestBase {
-
- @Before
- public void setUp() throws Exception {
- initServer();
- initClient();
- }
-
- @After
- public void tearDown() throws Exception {
- shutDownClient();
- shutDownServer();
- }
+public class TestDefaultIOReactorsSSL extends TestDefaultIOReactors {
@Override
protected NHttpConnectionFactory<NHttpServerIOTarget> createServerConnectionFactory(
@@ -108,159 +53,4 @@ public class TestDefaultIOReactorsSSL ex
return new LoggingSSLClientConnectionFactory(SSLTestContexts.createClientSSLContext(), params);
}
- @Test
- public void testGracefulShutdown() throws Exception {
-
- // Open some connection and make sure
- // they get cleanly closed upon shutdown
-
- final int connNo = 10;
- final CountDownLatch requestConns = new CountDownLatch(connNo);
- final AtomicInteger closedServerConns = new AtomicInteger(0);
- final AtomicInteger openServerConns = new AtomicInteger(0);
- final AtomicInteger closedClientConns = new AtomicInteger(0);
- final AtomicInteger openClientConns = new AtomicInteger(0);
-
- HttpRequestHandler requestHandler = new HttpRequestHandler() {
-
- public void handle(
- final HttpRequest request,
- final HttpResponse response,
- final HttpContext context) throws HttpException, IOException {
- }
-
- };
-
- HttpRequestExecutionHandler requestExecutionHandler = new HttpRequestExecutionHandler() {
-
- public void initalizeContext(final HttpContext context, final Object attachment) {
- }
-
- public void finalizeContext(final HttpContext context) {
- while (requestConns.getCount() > 0) {
- requestConns.countDown();
- }
- }
-
- public HttpRequest submitRequest(final HttpContext context) {
- Boolean b = ((Boolean) context.getAttribute("done"));
- if (b == null) {
- BasicHttpRequest get = new BasicHttpRequest("GET", "/");
- context.setAttribute("done", Boolean.TRUE);
- return get;
- } else {
- return null;
- }
- }
-
- public void handleResponse(final HttpResponse response, final HttpContext context) {
- requestConns.countDown();
- }
-
- };
-
- EventListener serverEventListener = new SimpleEventListener() {
-
- @Override
- public void connectionOpen(NHttpConnection conn) {
- openServerConns.incrementAndGet();
- super.connectionOpen(conn);
- }
-
- @Override
- public void connectionClosed(NHttpConnection conn) {
- closedServerConns.incrementAndGet();
- super.connectionClosed(conn);
- }
-
- };
-
- HttpProcessor serverHttpProc = new ImmutableHttpProcessor(new HttpResponseInterceptor[] {
- new ResponseDate(),
- new ResponseServer(),
- new ResponseContent(),
- new ResponseConnControl()
- });
-
- BufferingHttpServiceHandler serviceHandler = new BufferingHttpServiceHandler(
- serverHttpProc,
- new DefaultHttpResponseFactory(),
- new DefaultConnectionReuseStrategy(),
- this.serverParams);
-
- serviceHandler.setHandlerResolver(
- new SimpleHttpRequestHandlerResolver(requestHandler));
- serviceHandler.setEventListener(
- serverEventListener);
-
- EventListener clientEventListener = new SimpleEventListener() {
-
- @Override
- public void connectionOpen(NHttpConnection conn) {
- openClientConns.incrementAndGet();
- super.connectionOpen(conn);
- }
-
- @Override
- public void connectionClosed(NHttpConnection conn) {
- closedClientConns.incrementAndGet();
- super.connectionClosed(conn);
- }
-
- };
-
- HttpProcessor clientHttpProc = new ImmutableHttpProcessor(new HttpRequestInterceptor[] {
- new RequestContent(),
- new RequestTargetHost(),
- new RequestConnControl(),
- new RequestUserAgent(),
- new RequestExpectContinue()});
-
- BufferingHttpClientHandler clientHandler = new BufferingHttpClientHandler(
- clientHttpProc,
- requestExecutionHandler,
- new DefaultConnectionReuseStrategy(),
- this.serverParams);
-
- clientHandler.setEventListener(
- clientEventListener);
-
- this.server.start(serviceHandler);
- this.client.start(clientHandler);
-
- ListenerEndpoint endpoint = this.server.getListenerEndpoint();
- endpoint.waitFor();
- InetSocketAddress serverAddress = (InetSocketAddress) endpoint.getAddress();
-
- Assert.assertEquals("Test server status", IOReactorStatus.ACTIVE, this.server.getStatus());
-
- Queue<SessionRequest> connRequests = new LinkedList<SessionRequest>();
- for (int i = 0; i < connNo; i++) {
- SessionRequest sessionRequest = this.client.openConnection(
- new InetSocketAddress("localhost", serverAddress.getPort()),
- null);
- connRequests.add(sessionRequest);
- }
-
- while (!connRequests.isEmpty()) {
- SessionRequest sessionRequest = connRequests.remove();
- sessionRequest.waitFor();
- if (sessionRequest.getException() != null) {
- throw sessionRequest.getException();
- }
- Assert.assertNotNull(sessionRequest.getSession());
- }
-
- Assert.assertEquals("Test client status", IOReactorStatus.ACTIVE, this.client.getStatus());
-
- requestConns.await();
- Assert.assertEquals(0, requestConns.getCount());
-
- this.client.shutdown();
- this.server.shutdown();
-
- Assert.assertEquals(openClientConns.get(), closedClientConns.get());
- Assert.assertEquals(openServerConns.get(), closedServerConns.get());
- }
-
}
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/impl/nio/reactor/TestDefaultListeningIOReactor.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/impl/nio/reactor/TestDefaultListeningIOReactor.java?rev=1165298&r1=1165297&r2=1165298&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/impl/nio/reactor/TestDefaultListeningIOReactor.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/impl/nio/reactor/TestDefaultListeningIOReactor.java Mon Sep 5 14:34:39 2011
@@ -36,9 +36,9 @@ import java.util.concurrent.TimeUnit;
import org.apache.http.HttpResponseInterceptor;
import org.apache.http.impl.DefaultConnectionReuseStrategy;
-import org.apache.http.impl.DefaultHttpResponseFactory;
import org.apache.http.impl.nio.DefaultServerIODispatch;
-import org.apache.http.nio.protocol.BufferingHttpServiceHandler;
+import org.apache.http.nio.protocol.HttpAsyncRequestHandlerRegistry;
+import org.apache.http.nio.protocol.HttpAsyncServiceHandler;
import org.apache.http.nio.reactor.IOEventDispatch;
import org.apache.http.nio.reactor.IOReactorExceptionHandler;
import org.apache.http.nio.reactor.IOReactorStatus;
@@ -60,28 +60,25 @@ import org.junit.Test;
*/
public class TestDefaultListeningIOReactor {
- @Test
- public void testEndpointUpAndDown() throws Exception {
-
+ private static IOEventDispatch createIOEventDispatch() {
HttpParams params = new SyncBasicHttpParams();
-
HttpProcessor httpproc = new ImmutableHttpProcessor(new HttpResponseInterceptor[] {
new ResponseDate(),
new ResponseServer(),
new ResponseContent(),
new ResponseConnControl()
});
-
- final BufferingHttpServiceHandler serviceHandler = new BufferingHttpServiceHandler(
+ HttpAsyncServiceHandler serviceHandler = new HttpAsyncServiceHandler(
+ new HttpAsyncRequestHandlerRegistry(),
httpproc,
- new DefaultHttpResponseFactory(),
new DefaultConnectionReuseStrategy(),
params);
+ return new DefaultServerIODispatch(serviceHandler, params);
+ }
- final IOEventDispatch eventDispatch = new DefaultServerIODispatch(
- serviceHandler,
- params);
-
+ @Test
+ public void testEndpointUpAndDown() throws Exception {
+ final IOEventDispatch eventDispatch = createIOEventDispatch();
IOReactorConfig config = new IOReactorConfig();
config.setIoThreadCount(1);
final ListeningIOReactor ioreactor = new DefaultListeningIOReactor(config);
@@ -103,17 +100,18 @@ public class TestDefaultListeningIOReact
Assert.assertNotNull(endpoints);
Assert.assertEquals(0, endpoints.size());
- ListenerEndpoint port9998 = ioreactor.listen(new InetSocketAddress(9998));
- port9998.waitFor();
+ ListenerEndpoint endpoint1 = ioreactor.listen(new InetSocketAddress(0));
+ endpoint1.waitFor();
- ListenerEndpoint port9999 = ioreactor.listen(new InetSocketAddress(9999));
- port9999.waitFor();
+ ListenerEndpoint endpoint2 = ioreactor.listen(new InetSocketAddress(0));
+ endpoint2.waitFor();
+ int port = ((InetSocketAddress) endpoint2.getAddress()).getPort();
endpoints = ioreactor.getEndpoints();
Assert.assertNotNull(endpoints);
Assert.assertEquals(2, endpoints.size());
- port9998.close();
+ endpoint1.close();
endpoints = ioreactor.getEndpoints();
Assert.assertNotNull(endpoints);
@@ -121,7 +119,7 @@ public class TestDefaultListeningIOReact
ListenerEndpoint endpoint = endpoints.iterator().next();
- Assert.assertEquals(9999, ((InetSocketAddress) endpoint.getAddress()).getPort());
+ Assert.assertEquals(port, ((InetSocketAddress) endpoint.getAddress()).getPort());
ioreactor.shutdown(1000);
t.join(1000);
@@ -131,26 +129,7 @@ public class TestDefaultListeningIOReact
@Test
public void testEndpointAlreadyBoundFatal() throws Exception {
-
- HttpParams params = new SyncBasicHttpParams();
-
- HttpProcessor httpproc = new ImmutableHttpProcessor(new HttpResponseInterceptor[] {
- new ResponseDate(),
- new ResponseServer(),
- new ResponseContent(),
- new ResponseConnControl()
- });
-
- final BufferingHttpServiceHandler serviceHandler = new BufferingHttpServiceHandler(
- httpproc,
- new DefaultHttpResponseFactory(),
- new DefaultConnectionReuseStrategy(),
- params);
-
- final IOEventDispatch eventDispatch = new DefaultServerIODispatch(
- serviceHandler,
- params);
-
+ final IOEventDispatch eventDispatch = createIOEventDispatch();
IOReactorConfig config = new IOReactorConfig();
config.setIoThreadCount(1);
final ListeningIOReactor ioreactor = new DefaultListeningIOReactor(config);
@@ -172,10 +151,11 @@ public class TestDefaultListeningIOReact
t.start();
- ListenerEndpoint endpoint1 = ioreactor.listen(new InetSocketAddress(9999));
+ ListenerEndpoint endpoint1 = ioreactor.listen(new InetSocketAddress(0));
endpoint1.waitFor();
+ int port = ((InetSocketAddress) endpoint1.getAddress()).getPort();
- ListenerEndpoint endpoint2 = ioreactor.listen(new InetSocketAddress(9999));
+ ListenerEndpoint endpoint2 = ioreactor.listen(new InetSocketAddress(port));
endpoint2.waitFor();
Assert.assertNotNull(endpoint2.getException());
@@ -195,26 +175,7 @@ public class TestDefaultListeningIOReact
@Test
public void testEndpointAlreadyBoundNonFatal() throws Exception {
-
- HttpParams params = new SyncBasicHttpParams();
-
- HttpProcessor httpproc = new ImmutableHttpProcessor(new HttpResponseInterceptor[] {
- new ResponseDate(),
- new ResponseServer(),
- new ResponseContent(),
- new ResponseConnControl()
- });
-
- final BufferingHttpServiceHandler serviceHandler = new BufferingHttpServiceHandler(
- httpproc,
- new DefaultHttpResponseFactory(),
- new DefaultConnectionReuseStrategy(),
- params);
-
- final IOEventDispatch eventDispatch = new DefaultServerIODispatch(
- serviceHandler,
- params);
-
+ final IOEventDispatch eventDispatch = createIOEventDispatch();
IOReactorConfig config = new IOReactorConfig();
config.setIoThreadCount(1);
final DefaultListeningIOReactor ioreactor = new DefaultListeningIOReactor(config);
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/Job.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/Job.java?rev=1165298&r1=1165297&r2=1165298&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/Job.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/Job.java Mon Sep 5 14:34:39 2011
@@ -29,6 +29,7 @@ package org.apache.http.nio.protocol;
import java.util.Random;
+@Deprecated
public class Job {
private static final Random RND = new Random();
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/RequestExecutionHandler.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/RequestExecutionHandler.java?rev=1165298&r1=1165297&r2=1165298&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/RequestExecutionHandler.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/RequestExecutionHandler.java Mon Sep 5 14:34:39 2011
@@ -39,6 +39,7 @@ import org.apache.http.nio.util.HeapByte
import org.apache.http.protocol.HttpContext;
import org.apache.http.util.EntityUtils;
+@Deprecated
abstract class RequestExecutionHandler
implements NHttpRequestExecutionHandler, HttpRequestExecutionHandler {
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/RequestHandler.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/RequestHandler.java?rev=1165298&r1=1165297&r2=1165298&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/RequestHandler.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/RequestHandler.java Mon Sep 5 14:34:39 2011
@@ -44,6 +44,7 @@ import org.apache.http.protocol.HttpCont
import org.apache.http.protocol.HttpRequestHandler;
import org.apache.http.util.EntityUtils;
+@Deprecated
final class RequestHandler extends SimpleNHttpRequestHandler implements HttpRequestHandler {
private final boolean chunking;
Added: httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/SimpleRequestHandler.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/SimpleRequestHandler.java?rev=1165298&view=auto
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/SimpleRequestHandler.java (added)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/SimpleRequestHandler.java Mon Sep 5 14:34:39 2011
@@ -0,0 +1,91 @@
+/*
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation. For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ */
+
+package org.apache.http.nio.protocol;
+
+import java.io.IOException;
+
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpEntityEnclosingRequest;
+import org.apache.http.HttpException;
+import org.apache.http.HttpRequest;
+import org.apache.http.HttpResponse;
+import org.apache.http.HttpStatus;
+import org.apache.http.entity.ContentType;
+import org.apache.http.nio.entity.NStringEntity;
+import org.apache.http.protocol.HttpContext;
+import org.apache.http.protocol.HttpRequestHandler;
+import org.apache.http.util.EntityUtils;
+
+final class SimpleRequestHandler implements HttpRequestHandler {
+
+ private final boolean chunking;
+
+ SimpleRequestHandler() {
+ this(false);
+ }
+
+ SimpleRequestHandler(boolean chunking) {
+ super();
+ this.chunking = chunking;
+ }
+
+ public void handle(
+ final HttpRequest request,
+ final HttpResponse response,
+ final HttpContext context) throws HttpException, IOException {
+
+ String content = null;
+ if (request instanceof HttpEntityEnclosingRequest) {
+ HttpEntity entity = ((HttpEntityEnclosingRequest) request).getEntity();
+ if (entity != null) {
+ content = EntityUtils.toString(entity);
+ } else {
+ response.setStatusCode(HttpStatus.SC_BAD_REQUEST);
+ content = "Request entity not avaialble";
+ }
+ } else {
+ String s = request.getRequestLine().getUri();
+ int idx = s.indexOf('x');
+ if (idx == -1) {
+ throw new HttpException("Unexpected request-URI format");
+ }
+ String pattern = s.substring(0, idx);
+ int count = Integer.parseInt(s.substring(idx + 1, s.length()));
+
+ StringBuilder buffer = new StringBuilder();
+ for (int i = 0; i < count; i++) {
+ buffer.append(pattern);
+ }
+ content = buffer.toString();
+ }
+ NStringEntity entity = NStringEntity.create(content, ContentType.DEFAULT_TEXT);
+ entity.setChunked(this.chunking);
+ response.setEntity(entity);
+ }
+
+}
Propchange: httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/SimpleRequestHandler.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/SimpleRequestHandler.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/SimpleRequestHandler.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestAsyncNHttpHandlers.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestAsyncNHttpHandlers.java?rev=1165298&r1=1165297&r2=1165298&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestAsyncNHttpHandlers.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestAsyncNHttpHandlers.java Mon Sep 5 14:34:39 2011
@@ -84,6 +84,7 @@ import org.junit.Test;
/**
* HttpCore NIO integration tests for async handlers.
*/
+@Deprecated
public class TestAsyncNHttpHandlers extends HttpCoreNIOTestBase {
@Before
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestBufferingNHttpHandlers.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestBufferingNHttpHandlers.java?rev=1165298&r1=1165297&r2=1165298&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestBufferingNHttpHandlers.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestBufferingNHttpHandlers.java Mon Sep 5 14:34:39 2011
@@ -65,6 +65,7 @@ import org.junit.Test;
* HttpCore NIO integration tests using buffering versions of the
* protocol handlers.
*/
+@Deprecated
public class TestBufferingNHttpHandlers extends HttpCoreNIOTestBase {
@Before
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestHttpAsyncHandlers.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestHttpAsyncHandlers.java?rev=1165298&r1=1165297&r2=1165298&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestHttpAsyncHandlers.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestHttpAsyncHandlers.java Mon Sep 5 14:34:39 2011
@@ -88,8 +88,10 @@ public class TestHttpAsyncHandlers exten
}
private InetSocketAddress start() throws Exception {
+ HttpAsyncRequestHandlerRegistry registry = new HttpAsyncRequestHandlerRegistry();
+ registry.register("*", new BufferingAsyncRequestHandler(new SimpleRequestHandler()));
HttpAsyncServiceHandler serviceHandler = new HttpAsyncServiceHandler(
- new RequestHandlerResolver(new BufferingAsyncRequestHandler(new RequestHandler())),
+ registry,
this.serverHttpProc,
new DefaultConnectionReuseStrategy(),
this.serverParams);