You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2012/10/08 00:30:36 UTC
svn commit: r1395402 - in /httpcomponents/httpcore/trunk:
httpcore-nio/src/test/java/org/apache/http/impl/nio/reactor/
httpcore-nio/src/test/java/org/apache/http/nio/integration/
httpcore-nio/src/test/java/org/apache/http/testserver/ httpcore/src/test/...
Author: olegk
Date: Sun Oct 7 22:30:36 2012
New Revision: 1395402
URL: http://svn.apache.org/viewvc?rev=1395402&view=rev
Log:
Easier timeout configuration in integration tests
Modified:
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/nio/integration/TestHttpAsyncHandlers.java
httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/integration/TestHttpAsyncPrematureTermination.java
httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/integration/TestTruncatedChunks.java
httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/testserver/HttpClientNio.java
httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/testserver/HttpCoreNIOTestBase.java
httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/testserver/HttpServerNio.java
httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/integration/TestSyncHttp.java
httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/testserver/HttpClient.java
httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/testserver/HttpServer.java
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=1395402&r1=1395401&r2=1395402&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 Sun Oct 7 22:30:36 2012
@@ -78,12 +78,10 @@ public class TestDefaultIOReactors exten
public void setUp() throws Exception {
initServer();
initClient();
- initConnPool();
}
@After
public void tearDown() throws Exception {
- shutDownConnPool();
shutDownClient();
shutDownServer();
}
@@ -106,8 +104,8 @@ public class TestDefaultIOReactors exten
final AtomicInteger closedClientConns = new AtomicInteger(0);
final AtomicInteger closedServerConns = new AtomicInteger(0);
- this.connpool.setDefaultMaxPerRoute(connNo);
- this.connpool.setMaxTotal(connNo);
+ this.client.setMaxPerRoute(connNo);
+ this.client.setMaxTotal(connNo);
UriHttpAsyncRequestHandlerMapper registry = new UriHttpAsyncRequestHandlerMapper();
HttpAsyncService serviceHandler = new HttpAsyncService(this.serverHttpProc, registry) {
@@ -154,7 +152,7 @@ public class TestDefaultIOReactors exten
Queue<Future<BasicNIOPoolEntry>> queue = new LinkedList<Future<BasicNIOPoolEntry>>();
for (int i = 0; i < connNo; i++) {
- queue.add(this.connpool.lease(target, null));
+ queue.add(this.client.lease(target, null));
}
while (!queue.isEmpty()) {
@@ -168,7 +166,6 @@ public class TestDefaultIOReactors exten
openClientConns.await(15, TimeUnit.SECONDS);
openServerConns.await(15, TimeUnit.SECONDS);
- this.connpool.shutdown(2000);
this.client.shutdown();
this.server.shutdown();
@@ -220,7 +217,7 @@ public class TestDefaultIOReactors exten
this.executor.execute(
new BasicAsyncRequestProducer(target, request),
new BasicAsyncResponseConsumer(),
- this.connpool);
+ this.client.getConnPool());
this.server.join(20000);
@@ -300,7 +297,7 @@ public class TestDefaultIOReactors exten
this.executor.execute(
new BasicAsyncRequestProducer(target, request),
new BasicAsyncResponseConsumer(),
- this.connpool);
+ this.client.getConnPool());
this.server.join(20000);
@@ -380,7 +377,7 @@ public class TestDefaultIOReactors exten
this.executor.execute(
new BasicAsyncRequestProducer(target, request),
new BasicAsyncResponseConsumer(),
- this.connpool);
+ this.client.getConnPool());
requestConns.await();
Assert.assertEquals(0, requestConns.getCount());
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/integration/TestHttpAsyncHandlers.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/integration/TestHttpAsyncHandlers.java?rev=1395402&r1=1395401&r2=1395402&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/integration/TestHttpAsyncHandlers.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/integration/TestHttpAsyncHandlers.java Sun Oct 7 22:30:36 2012
@@ -95,12 +95,10 @@ public class TestHttpAsyncHandlers exten
public void setUp() throws Exception {
initServer();
initClient();
- initConnPool();
}
@After
public void tearDown() throws Exception {
- shutDownConnPool();
shutDownClient();
shutDownServer();
}
@@ -153,8 +151,8 @@ public class TestHttpAsyncHandlers exten
registry.register("*", new BasicAsyncRequestHandler(new SimpleRequestHandler()));
InetSocketAddress address = start(registry, null);
- this.connpool.setDefaultMaxPerRoute(3);
- this.connpool.setMaxTotal(3);
+ this.client.setMaxPerRoute(3);
+ this.client.setMaxTotal(3);
String pattern = RndTestPatternGenerator.generateText();
int count = RndTestPatternGenerator.generateCount(1000);
@@ -168,7 +166,7 @@ public class TestHttpAsyncHandlers exten
Future<HttpResponse> future = this.executor.execute(
new BasicAsyncRequestProducer(target, request),
new BasicAsyncResponseConsumer(),
- this.connpool);
+ this.client.getConnPool());
queue.add(future);
}
@@ -186,8 +184,8 @@ public class TestHttpAsyncHandlers exten
registry.register("*", new BasicAsyncRequestHandler(new SimpleRequestHandler()));
InetSocketAddress address = start(registry, null);
- this.connpool.setDefaultMaxPerRoute(3);
- this.connpool.setMaxTotal(3);
+ this.client.setMaxPerRoute(3);
+ this.client.setMaxTotal(3);
String pattern = RndTestPatternGenerator.generateText();
int count = RndTestPatternGenerator.generateCount(1000);
@@ -200,7 +198,7 @@ public class TestHttpAsyncHandlers exten
Future<HttpResponse> future = this.executor.execute(
new BasicAsyncRequestProducer(target, request),
new BasicAsyncResponseConsumer(),
- this.connpool);
+ this.client.getConnPool());
queue.add(future);
}
@@ -218,8 +216,8 @@ public class TestHttpAsyncHandlers exten
registry.register("*", new BasicAsyncRequestHandler(new SimpleRequestHandler()));
InetSocketAddress address = start(registry, null);
- this.connpool.setDefaultMaxPerRoute(3);
- this.connpool.setMaxTotal(3);
+ this.client.setMaxPerRoute(3);
+ this.client.setMaxTotal(3);
String pattern = RndTestPatternGenerator.generateText();
int count = RndTestPatternGenerator.generateCount(1000);
@@ -236,7 +234,7 @@ public class TestHttpAsyncHandlers exten
Future<HttpResponse> future = this.executor.execute(
new BasicAsyncRequestProducer(target, request),
new BasicAsyncResponseConsumer(),
- this.connpool);
+ this.client.getConnPool());
queue.add(future);
}
@@ -254,8 +252,8 @@ public class TestHttpAsyncHandlers exten
registry.register("*", new BasicAsyncRequestHandler(new SimpleRequestHandler()));
InetSocketAddress address = start(registry, null);
- this.connpool.setDefaultMaxPerRoute(3);
- this.connpool.setMaxTotal(3);
+ this.client.setMaxPerRoute(3);
+ this.client.setMaxTotal(3);
String pattern = RndTestPatternGenerator.generateText();
int count = RndTestPatternGenerator.generateCount(1000);
@@ -273,7 +271,7 @@ public class TestHttpAsyncHandlers exten
Future<HttpResponse> future = this.executor.execute(
new BasicAsyncRequestProducer(target, request),
new BasicAsyncResponseConsumer(),
- this.connpool);
+ this.client.getConnPool());
queue.add(future);
}
@@ -291,8 +289,8 @@ public class TestHttpAsyncHandlers exten
registry.register("*", new BasicAsyncRequestHandler(new SimpleRequestHandler()));
InetSocketAddress address = start(registry, null);
- this.connpool.setDefaultMaxPerRoute(3);
- this.connpool.setMaxTotal(3);
+ this.client.setMaxPerRoute(3);
+ this.client.setMaxTotal(3);
String pattern = RndTestPatternGenerator.generateText();
int count = RndTestPatternGenerator.generateCount(1000);
@@ -309,7 +307,7 @@ public class TestHttpAsyncHandlers exten
Future<HttpResponse> future = this.executor.execute(
new BasicAsyncRequestProducer(target, request),
new BasicAsyncResponseConsumer(),
- this.connpool);
+ this.client.getConnPool());
queue.add(future);
}
@@ -327,8 +325,8 @@ public class TestHttpAsyncHandlers exten
registry.register("*", new BasicAsyncRequestHandler(new SimpleRequestHandler()));
InetSocketAddress address = start(registry, null);
- this.connpool.setDefaultMaxPerRoute(3);
- this.connpool.setMaxTotal(3);
+ this.client.setMaxPerRoute(3);
+ this.client.setMaxTotal(3);
String pattern = RndTestPatternGenerator.generateText();
int count = RndTestPatternGenerator.generateCount(1000);
@@ -343,7 +341,7 @@ public class TestHttpAsyncHandlers exten
Future<HttpResponse> future = this.executor.execute(
new BasicAsyncRequestProducer(target, request),
new BasicAsyncResponseConsumer(),
- this.connpool);
+ this.client.getConnPool());
queue.add(future);
}
@@ -370,8 +368,8 @@ public class TestHttpAsyncHandlers exten
InetSocketAddress address = start(registry, null);
- this.connpool.setDefaultMaxPerRoute(3);
- this.connpool.setMaxTotal(3);
+ this.client.setMaxPerRoute(3);
+ this.client.setMaxTotal(3);
String pattern = RndTestPatternGenerator.generateText();
int count = RndTestPatternGenerator.generateCount(1000);
@@ -385,7 +383,7 @@ public class TestHttpAsyncHandlers exten
Future<HttpResponse> future = this.executor.execute(
new BasicAsyncRequestProducer(target, request),
new BasicAsyncResponseConsumer(),
- this.connpool);
+ this.client.getConnPool());
HttpResponse response = future.get();
Assert.assertNotNull(response);
@@ -416,8 +414,8 @@ public class TestHttpAsyncHandlers exten
InetSocketAddress address = start(registry, null);
- this.connpool.setDefaultMaxPerRoute(3);
- this.connpool.setMaxTotal(3);
+ this.client.setMaxPerRoute(3);
+ this.client.setMaxTotal(3);
String pattern = RndTestPatternGenerator.generateText();
int count = RndTestPatternGenerator.generateCount(1000);
@@ -431,7 +429,7 @@ public class TestHttpAsyncHandlers exten
Future<HttpResponse> future = this.executor.execute(
new BasicAsyncRequestProducer(target, request),
new BasicAsyncResponseConsumer(),
- this.connpool);
+ this.client.getConnPool());
HttpResponse response = future.get();
Assert.assertNotNull(response);
@@ -444,8 +442,8 @@ public class TestHttpAsyncHandlers exten
registry.register("*", new BasicAsyncRequestHandler(new SimpleRequestHandler()));
InetSocketAddress address = start(registry, null);
- this.connpool.setDefaultMaxPerRoute(3);
- this.connpool.setMaxTotal(3);
+ this.client.setMaxPerRoute(3);
+ this.client.setMaxTotal(3);
String pattern = RndTestPatternGenerator.generateText();
int count = RndTestPatternGenerator.generateCount(1000);
@@ -466,7 +464,7 @@ public class TestHttpAsyncHandlers exten
Future<HttpResponse> future = this.executor.execute(
new BasicAsyncRequestProducer(target, request),
new BasicAsyncResponseConsumer(),
- this.connpool,
+ this.client.getConnPool(),
context);
queue.add(future);
}
@@ -530,7 +528,7 @@ public class TestHttpAsyncHandlers exten
Future<HttpResponse> future = this.executor.execute(
new BasicAsyncRequestProducer(target, requests[i]),
new BasicAsyncResponseConsumer(),
- this.connpool,
+ this.client.getConnPool(),
context);
queue.add(future);
}
@@ -597,8 +595,8 @@ public class TestHttpAsyncHandlers exten
registry.register("*", new DelayedRequestHandler());
InetSocketAddress address = start(registry, null);
- this.connpool.setDefaultMaxPerRoute(3);
- this.connpool.setMaxTotal(3);
+ this.client.setMaxPerRoute(3);
+ this.client.setMaxTotal(3);
String pattern = RndTestPatternGenerator.generateText();
int count = RndTestPatternGenerator.generateCount(1000);
@@ -611,7 +609,7 @@ public class TestHttpAsyncHandlers exten
Future<HttpResponse> future = this.executor.execute(
new BasicAsyncRequestProducer(target, request),
new BasicAsyncResponseConsumer(),
- this.connpool);
+ this.client.getConnPool());
queue.add(future);
}
@@ -682,7 +680,7 @@ public class TestHttpAsyncHandlers exten
Future<HttpResponse> future = this.executor.execute(
new BasicAsyncRequestProducer(target, requests[i]),
new BasicAsyncResponseConsumer(),
- this.connpool,
+ this.client.getConnPool(),
context);
queue.add(future);
}
@@ -728,8 +726,8 @@ public class TestHttpAsyncHandlers exten
registry.register("*", new FailingRequestHandler());
InetSocketAddress address = start(registry, null);
- this.connpool.setDefaultMaxPerRoute(3);
- this.connpool.setMaxTotal(3);
+ this.client.setMaxPerRoute(3);
+ this.client.setMaxTotal(3);
String pattern = RndTestPatternGenerator.generateText();
int count = RndTestPatternGenerator.generateCount(1000);
@@ -742,7 +740,7 @@ public class TestHttpAsyncHandlers exten
Future<HttpResponse> future = this.executor.execute(
new BasicAsyncRequestProducer(target, request),
new BasicAsyncResponseConsumer(),
- this.connpool);
+ this.client.getConnPool());
queue.add(future);
}
@@ -759,8 +757,8 @@ public class TestHttpAsyncHandlers exten
UriHttpAsyncRequestHandlerMapper registry = new UriHttpAsyncRequestHandlerMapper();
InetSocketAddress address = start(registry, null);
- this.connpool.setDefaultMaxPerRoute(3);
- this.connpool.setMaxTotal(3);
+ this.client.setMaxPerRoute(3);
+ this.client.setMaxTotal(3);
String pattern = RndTestPatternGenerator.generateText();
int count = RndTestPatternGenerator.generateCount(1000);
@@ -773,7 +771,7 @@ public class TestHttpAsyncHandlers exten
Future<HttpResponse> future = this.executor.execute(
new BasicAsyncRequestProducer(target, request),
new BasicAsyncResponseConsumer(),
- this.connpool);
+ this.client.getConnPool());
queue.add(future);
}
@@ -800,8 +798,8 @@ public class TestHttpAsyncHandlers exten
}));
InetSocketAddress address = start(registry, null);
- this.connpool.setDefaultMaxPerRoute(3);
- this.connpool.setMaxTotal(3);
+ this.client.setMaxPerRoute(3);
+ this.client.setMaxTotal(3);
HttpHost target = new HttpHost("localhost", address.getPort());
@@ -811,7 +809,7 @@ public class TestHttpAsyncHandlers exten
Future<HttpResponse> future = this.executor.execute(
new BasicAsyncRequestProducer(target, request),
new BasicAsyncResponseConsumer(),
- this.connpool);
+ this.client.getConnPool());
queue.add(future);
}
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/integration/TestHttpAsyncPrematureTermination.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/integration/TestHttpAsyncPrematureTermination.java?rev=1395402&r1=1395401&r2=1395402&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/integration/TestHttpAsyncPrematureTermination.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/integration/TestHttpAsyncPrematureTermination.java Sun Oct 7 22:30:36 2012
@@ -78,7 +78,6 @@ public class TestHttpAsyncPrematureTermi
public void setUp() throws Exception {
initServer();
initClient();
- initConnPool();
}
@After
@@ -167,7 +166,7 @@ public class TestHttpAsyncPrematureTermi
this.executor.execute(
new BasicAsyncRequestProducer(target, request),
new BasicAsyncResponseConsumer(),
- this.connpool, context, callback);
+ this.client.getConnPool(), context, callback);
Assert.assertTrue(latch.await(5, TimeUnit.SECONDS));
}
@@ -222,7 +221,7 @@ public class TestHttpAsyncPrematureTermi
this.executor.execute(
new BasicAsyncRequestProducer(target, request),
new BasicAsyncResponseConsumer(),
- this.connpool, context, callback);
+ this.client.getConnPool(), context, callback);
Assert.assertTrue(latch.await(5, TimeUnit.SECONDS));
}
@@ -283,7 +282,7 @@ public class TestHttpAsyncPrematureTermi
this.executor.execute(
new BasicAsyncRequestProducer(target, request),
new BasicAsyncResponseConsumer(),
- this.connpool, context, callback);
+ this.client.getConnPool(), context, callback);
Assert.assertTrue(latch.await(5, TimeUnit.SECONDS));
}
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/integration/TestTruncatedChunks.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/integration/TestTruncatedChunks.java?rev=1395402&r1=1395401&r2=1395402&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/integration/TestTruncatedChunks.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/integration/TestTruncatedChunks.java Sun Oct 7 22:30:36 2012
@@ -87,12 +87,10 @@ public class TestTruncatedChunks extends
public void setUp() throws Exception {
initServer();
initClient();
- initConnPool();
}
@After
public void tearDown() throws Exception {
- shutDownConnPool();
shutDownClient();
shutDownServer();
}
@@ -200,7 +198,7 @@ public class TestTruncatedChunks extends
Future<HttpResponse> future = this.executor.execute(
new BasicAsyncRequestProducer(target, request),
new BasicAsyncResponseConsumer(),
- this.connpool);
+ this.client.getConnPool());
try {
future.get();
Assert.fail("ExecutionException should have been thrown");
@@ -281,7 +279,7 @@ public class TestTruncatedChunks extends
Future<HttpResponse> future = this.executor.execute(
new BasicAsyncRequestProducer(target, request),
new LenientAsyncResponseConsumer(),
- this.connpool);
+ this.client.getConnPool());
HttpResponse response = future.get();
Assert.assertNotNull(response);
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/testserver/HttpClientNio.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/testserver/HttpClientNio.java?rev=1395402&r1=1395401&r2=1395402&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/testserver/HttpClientNio.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/testserver/HttpClientNio.java Sun Oct 7 22:30:36 2012
@@ -30,9 +30,16 @@ package org.apache.http.testserver;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.util.List;
+import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
+import org.apache.http.HttpHost;
+import org.apache.http.concurrent.FutureCallback;
import org.apache.http.impl.nio.DefaultHttpClientIODispatch;
import org.apache.http.impl.nio.DefaultNHttpClientConnection;
+import org.apache.http.impl.nio.pool.BasicNIOConnFactory;
+import org.apache.http.impl.nio.pool.BasicNIOConnPool;
+import org.apache.http.impl.nio.pool.BasicNIOPoolEntry;
import org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor;
import org.apache.http.impl.nio.reactor.ExceptionEvent;
import org.apache.http.nio.NHttpClientHandler;
@@ -42,6 +49,7 @@ import org.apache.http.nio.reactor.Conne
import org.apache.http.nio.reactor.IOEventDispatch;
import org.apache.http.nio.reactor.IOReactorExceptionHandler;
import org.apache.http.nio.reactor.IOReactorStatus;
+import org.apache.http.nio.reactor.IOSession;
import org.apache.http.nio.reactor.SessionRequest;
@SuppressWarnings("deprecation")
@@ -49,14 +57,47 @@ public class HttpClientNio {
private final DefaultConnectingIOReactor ioReactor;
private final NHttpConnectionFactory<DefaultNHttpClientConnection> connFactory;
+ private final BasicNIOConnPool connpool;
private volatile IOReactorThread thread;
+ private volatile int timeout;
public HttpClientNio(
final NHttpConnectionFactory<DefaultNHttpClientConnection> connFactory) throws IOException {
super();
this.ioReactor = new DefaultConnectingIOReactor();
this.connFactory = connFactory;
+ this.connpool = new BasicNIOConnPool(this.ioReactor, new BasicNIOConnFactory(connFactory));
+ }
+
+ public int getTimeout() {
+ return this.timeout;
+ }
+
+ public void setTimeout(int timeout) {
+ this.timeout = timeout;
+ }
+
+ public void setMaxTotal(int max) {
+ this.connpool.setMaxTotal(max);
+ }
+
+ public void setMaxPerRoute(int max) {
+ this.connpool.setDefaultMaxPerRoute(max);
+ }
+
+ public Future<BasicNIOPoolEntry> lease(
+ final HttpHost host,
+ final FutureCallback<BasicNIOPoolEntry> callback) {
+ return this.connpool.lease(host, null, this.timeout, TimeUnit.MILLISECONDS, callback);
+ }
+
+ public void release(final BasicNIOPoolEntry poolEntry, boolean reusable) {
+ this.connpool.release(poolEntry, reusable);
+ }
+
+ public BasicNIOConnPool getConnPool() {
+ return this.connpool;
}
public void setExceptionHandler(final IOReactorExceptionHandler exceptionHandler) {
@@ -64,12 +105,23 @@ public class HttpClientNio {
}
private void execute(final NHttpClientEventHandler clientHandler) throws IOException {
- IOEventDispatch ioEventDispatch = new DefaultHttpClientIODispatch(clientHandler, this.connFactory);
+ IOEventDispatch ioEventDispatch = new DefaultHttpClientIODispatch(clientHandler, this.connFactory) {
+
+ @Override
+ protected DefaultNHttpClientConnection createConnection(IOSession session) {
+ DefaultNHttpClientConnection conn = super.createConnection(session);
+ conn.setSocketTimeout(timeout);
+ return conn;
+ }
+
+ };
this.ioReactor.execute(ioEventDispatch);
}
public SessionRequest openConnection(final InetSocketAddress address, final Object attachment) {
- return this.ioReactor.connect(address, null, attachment, null);
+ SessionRequest sessionRequest = this.ioReactor.connect(address, null, attachment, null);
+ sessionRequest.setConnectTimeout(this.timeout);
+ return sessionRequest;
}
public void start(final NHttpClientEventHandler clientHandler) {
@@ -109,7 +161,7 @@ public class HttpClientNio {
}
public void shutdown() throws IOException {
- this.ioReactor.shutdown();
+ this.connpool.shutdown(2000);
try {
join(500);
} catch (InterruptedException ignore) {
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/testserver/HttpCoreNIOTestBase.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/testserver/HttpCoreNIOTestBase.java?rev=1395402&r1=1395401&r2=1395402&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/testserver/HttpCoreNIOTestBase.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/testserver/HttpCoreNIOTestBase.java Sun Oct 7 22:30:36 2012
@@ -31,8 +31,6 @@ import org.apache.http.HttpRequestInterc
import org.apache.http.HttpResponseInterceptor;
import org.apache.http.impl.nio.DefaultNHttpClientConnection;
import org.apache.http.impl.nio.DefaultNHttpServerConnection;
-import org.apache.http.impl.nio.pool.BasicNIOConnFactory;
-import org.apache.http.impl.nio.pool.BasicNIOConnPool;
import org.apache.http.nio.NHttpConnectionFactory;
import org.apache.http.nio.protocol.HttpAsyncRequester;
import org.apache.http.protocol.HttpProcessor;
@@ -58,7 +56,6 @@ public abstract class HttpCoreNIOTestBas
protected HttpClientNio client;
protected HttpProcessor serverHttpProc;
protected HttpProcessor clientHttpProc;
- protected BasicNIOConnPool connpool;
protected HttpAsyncRequester executor;
protected abstract NHttpConnectionFactory<DefaultNHttpServerConnection>
@@ -76,6 +73,7 @@ public abstract class HttpCoreNIOTestBas
new ResponseContent(),
new ResponseConnControl()
});
+ this.server.setTimeout(5000);
}
public void initClient() throws Exception {
@@ -87,24 +85,11 @@ public abstract class HttpCoreNIOTestBas
new RequestConnControl(),
new RequestUserAgent("TEST-CLIENT/1.1"),
new RequestExpectContinue()});
- }
-
- public void initConnPool() throws Exception {
- this.connpool = new BasicNIOConnPool(
- this.client.getIoReactor(),
- new BasicNIOConnFactory(createClientConnectionFactory()));
+ this.client.setTimeout(5000);
this.executor = new HttpAsyncRequester(this.clientHttpProc);
}
@After
- public void shutDownConnPool() throws Exception {
- if (this.connpool != null) {
- this.connpool.shutdown(2000);
- this.connpool = null;
- }
- }
-
- @After
public void shutDownClient() throws Exception {
if (this.client != null) {
this.client.shutdown();
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/testserver/HttpServerNio.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/testserver/HttpServerNio.java?rev=1395402&r1=1395401&r2=1395402&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/testserver/HttpServerNio.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/testserver/HttpServerNio.java Sun Oct 7 22:30:36 2012
@@ -41,6 +41,7 @@ import org.apache.http.nio.NHttpServiceH
import org.apache.http.nio.reactor.IOEventDispatch;
import org.apache.http.nio.reactor.IOReactorExceptionHandler;
import org.apache.http.nio.reactor.IOReactorStatus;
+import org.apache.http.nio.reactor.IOSession;
import org.apache.http.nio.reactor.ListenerEndpoint;
import org.apache.http.nio.reactor.ListeningIOReactor;
@@ -51,7 +52,8 @@ public class HttpServerNio {
private final NHttpConnectionFactory<DefaultNHttpServerConnection> connFactory;
private volatile IOReactorThread thread;
- private ListenerEndpoint endpoint;
+ private volatile ListenerEndpoint endpoint;
+ private volatile int timeout;
public HttpServerNio(
final NHttpConnectionFactory<DefaultNHttpServerConnection> connFactory) throws IOException {
@@ -60,12 +62,29 @@ public class HttpServerNio {
this.connFactory = connFactory;
}
+ public int getTimeout() {
+ return this.timeout;
+ }
+
+ public void setTimeout(int timeout) {
+ this.timeout = timeout;
+ }
+
public void setExceptionHandler(final IOReactorExceptionHandler exceptionHandler) {
this.ioReactor.setExceptionHandler(exceptionHandler);
}
private void execute(final NHttpServerEventHandler serviceHandler) throws IOException {
- IOEventDispatch ioEventDispatch = new DefaultHttpServerIODispatch(serviceHandler, this.connFactory);
+ IOEventDispatch ioEventDispatch = new DefaultHttpServerIODispatch(serviceHandler, this.connFactory) {
+
+ @Override
+ protected DefaultNHttpServerConnection createConnection(IOSession session) {
+ DefaultNHttpServerConnection conn = super.createConnection(session);
+ conn.setSocketTimeout(timeout);
+ return conn;
+ }
+
+ };
this.ioReactor.execute(ioEventDispatch);
}
Modified: httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/integration/TestSyncHttp.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/integration/TestSyncHttp.java?rev=1395402&r1=1395401&r2=1395402&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/integration/TestSyncHttp.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/integration/TestSyncHttp.java Sun Oct 7 22:30:36 2012
@@ -33,7 +33,6 @@ import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
-import java.net.Socket;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
@@ -84,11 +83,13 @@ public class TestSyncHttp {
@Before
public void initServer() throws Exception {
this.server = new HttpServer();
+ this.server.setTimeout(5000);
}
@Before
public void initClient() throws Exception {
this.client = new HttpClient();
+ this.client.setTimeout(5000);
}
@After
@@ -145,8 +146,7 @@ public class TestSyncHttp {
try {
for (int r = 0; r < reqNo; r++) {
if (!conn.isOpen()) {
- Socket socket = new Socket(host.getHostName(), host.getPort());
- conn.bind(socket);
+ client.connect(host, conn);
}
BasicHttpRequest get = new BasicHttpRequest("GET", "/?" + r);
@@ -225,8 +225,7 @@ public class TestSyncHttp {
try {
for (int r = 0; r < reqNo; r++) {
if (!conn.isOpen()) {
- Socket socket = new Socket(host.getHostName(), host.getPort());
- conn.bind(socket);
+ client.connect(host, conn);
}
BasicHttpEntityEnclosingRequest post = new BasicHttpEntityEnclosingRequest("POST", "/");
@@ -308,8 +307,7 @@ public class TestSyncHttp {
try {
for (int r = 0; r < reqNo; r++) {
if (!conn.isOpen()) {
- Socket socket = new Socket(host.getHostName(), host.getPort());
- conn.bind(socket);
+ client.connect(host, conn);
}
BasicHttpEntityEnclosingRequest post = new BasicHttpEntityEnclosingRequest("POST", "/");
@@ -390,8 +388,7 @@ public class TestSyncHttp {
try {
for (int r = 0; r < reqNo; r++) {
if (!conn.isOpen()) {
- Socket socket = new Socket(host.getHostName(), host.getPort());
- conn.bind(socket);
+ client.connect(host, conn);
}
// Set protocol level to HTTP/1.0
@@ -479,8 +476,7 @@ public class TestSyncHttp {
try {
for (int r = 0; r < reqNo; r++) {
if (!conn.isOpen()) {
- Socket socket = new Socket(host.getHostName(), host.getPort());
- conn.bind(socket);
+ client.connect(host, conn);
}
BasicHttpEntityEnclosingRequest post = new BasicHttpEntityEnclosingRequest("POST", "/");
@@ -573,8 +569,7 @@ public class TestSyncHttp {
try {
for (int r = 0; r < reqNo; r++) {
if (!conn.isOpen()) {
- Socket socket = new Socket(host.getHostName(), host.getPort());
- conn.bind(socket);
+ client.connect(host, conn);
}
BasicHttpEntityEnclosingRequest post = new BasicHttpEntityEnclosingRequest("POST", "/");
@@ -733,8 +728,7 @@ public class TestSyncHttp {
String pattern = patterns[i];
for (int n = 1000; n < 1020; n++) {
if (!conn.isOpen()) {
- Socket socket = new Socket(host.getHostName(), host.getPort());
- conn.bind(socket);
+ client.connect(host, conn);
}
BasicHttpEntityEnclosingRequest post = new BasicHttpEntityEnclosingRequest(
@@ -802,8 +796,7 @@ public class TestSyncHttp {
try {
if (!conn.isOpen()) {
- Socket socket = new Socket(host.getHostName(), host.getPort());
- conn.bind(socket);
+ client.connect(host, conn);
}
BasicHttpEntityEnclosingRequest post = new BasicHttpEntityEnclosingRequest("POST", "/");
@@ -848,8 +841,7 @@ public class TestSyncHttp {
try {
if (!conn.isOpen()) {
- Socket socket = new Socket(host.getHostName(), host.getPort());
- conn.bind(socket);
+ client.connect(host, conn);
}
BasicHttpEntityEnclosingRequest post = new BasicHttpEntityEnclosingRequest("POST", "/");
@@ -901,8 +893,7 @@ public class TestSyncHttp {
try {
if (!conn.isOpen()) {
- Socket socket = new Socket(host.getHostName(), host.getPort());
- conn.bind(socket);
+ client.connect(host, conn);
}
BasicHttpEntityEnclosingRequest post = new BasicHttpEntityEnclosingRequest("POST", "/");
@@ -957,8 +948,7 @@ public class TestSyncHttp {
try {
for (int r = 0; r < reqNo; r++) {
if (!conn.isOpen()) {
- Socket socket = new Socket(host.getHostName(), host.getPort());
- conn.bind(socket);
+ client.connect(host, conn);
}
BasicHttpRequest get = new BasicHttpRequest("GET", "/?" + r);
Modified: httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/testserver/HttpClient.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/testserver/HttpClient.java?rev=1395402&r1=1395401&r2=1395402&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/testserver/HttpClient.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/testserver/HttpClient.java Sun Oct 7 22:30:36 2012
@@ -28,6 +28,8 @@
package org.apache.http.testserver;
import java.io.IOException;
+import java.net.InetSocketAddress;
+import java.net.Socket;
import org.apache.http.ConnectionReuseStrategy;
import org.apache.http.HttpClientConnection;
@@ -95,6 +97,13 @@ public class HttpClient {
return conn;
}
+ public void connect(final HttpHost host, final DefaultBHttpClientConnection conn) throws IOException {
+ Socket socket = new Socket();
+ socket.connect(new InetSocketAddress(host.getHostName(), host.getPort()), this.timeout);
+ conn.bind(socket);
+ conn.setSocketTimeout(this.timeout);
+ }
+
public HttpResponse execute(
final HttpRequest request,
final HttpHost targetHost,
Modified: httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/testserver/HttpServer.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/testserver/HttpServer.java?rev=1395402&r1=1395401&r2=1395402&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/testserver/HttpServer.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/testserver/HttpServer.java Sun Oct 7 22:30:36 2012
@@ -62,10 +62,8 @@ public class HttpServer {
private final UriHttpRequestHandlerMapper reqistry;
private final ServerSocket serversocket;
- private HttpExpectationVerifier expectationVerifier;
-
- private Thread listener;
-
+ private volatile HttpExpectationVerifier expectationVerifier;
+ private volatile Thread listener;
private volatile boolean shutdown;
private volatile int timeout;