Return-Path: X-Original-To: apmail-hc-commits-archive@www.apache.org Delivered-To: apmail-hc-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 7097C8919 for ; Mon, 5 Sep 2011 14:35:15 +0000 (UTC) Received: (qmail 10439 invoked by uid 500); 5 Sep 2011 14:35:15 -0000 Delivered-To: apmail-hc-commits-archive@hc.apache.org Received: (qmail 10404 invoked by uid 500); 5 Sep 2011 14:35:15 -0000 Mailing-List: contact commits-help@hc.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "HttpComponents Project" Delivered-To: mailing list commits@hc.apache.org Received: (qmail 10397 invoked by uid 99); 5 Sep 2011 14:35:15 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 05 Sep 2011 14:35:15 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 05 Sep 2011 14:35:05 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id DC6BF23889EB for ; Mon, 5 Sep 2011 14:34:42 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: 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... Date: Mon, 05 Sep 2011 14:34:40 -0000 To: commits@hc.apache.org From: olegk@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20110905143442.DC6BF23889EB@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org 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 *
  • {@link org.apache.http.params.CoreProtocolPNames#WAIT_FOR_CONTINUE}
  • * * - * @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> 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 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; * * * @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 connRequests = new LinkedList(); + Queue> queue = new LinkedList>(); 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 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 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 connRequests = new LinkedList(); - 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 + * . + * + */ + +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);