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