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 2015/04/13 20:31:21 UTC
svn commit: r1673256 - in /httpcomponents/httpcore/trunk:
httpcore-ab/src/main/java/org/apache/http/benchmark/
httpcore-nio/src/examples/org/apache/http/examples/nio/
httpcore-nio/src/main/java/org/apache/http/nio/protocol/
httpcore-nio/src/test/java/o...
Author: olegk
Date: Mon Apr 13 18:31:20 2015
New Revision: 1673256
URL: http://svn.apache.org/r1673256
Log:
HTTPCORE-397: keep-alive strategy to take HTTP request as a parameter
Removed:
httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/NoConnectionReuseStrategy.java
httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/impl/TestNoConnectionReuseStrategy.java
Modified:
httpcomponents/httpcore/trunk/httpcore-ab/src/main/java/org/apache/http/benchmark/BenchmarkWorker.java
httpcomponents/httpcore/trunk/httpcore-nio/src/examples/org/apache/http/examples/nio/NHttpReverseProxy.java
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/BasicAsyncClientExchangeHandler.java
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncService.java
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/PipeliningClientExchangeHandler.java
httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestBasicAsyncClientExchangeHandler.java
httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestHttpAsyncService.java
httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalHttpGet.java
httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalHttpPost.java
httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalPoolingHttpGet.java
httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalReverseProxy.java
httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/ConnectionReuseStrategy.java
httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/DefaultConnectionReuseStrategy.java
httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/protocol/HttpService.java
httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/impl/TestDefaultConnectionReuseStrategy.java
httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/integration/TestSyncHttp.java
httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/protocol/TestHttpService.java
httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/testserver/HttpClient.java
Modified: httpcomponents/httpcore/trunk/httpcore-ab/src/main/java/org/apache/http/benchmark/BenchmarkWorker.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-ab/src/main/java/org/apache/http/benchmark/BenchmarkWorker.java?rev=1673256&r1=1673255&r2=1673256&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-ab/src/main/java/org/apache/http/benchmark/BenchmarkWorker.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-ab/src/main/java/org/apache/http/benchmark/BenchmarkWorker.java Mon Apr 13 18:31:20 2015
@@ -193,7 +193,7 @@ class BenchmarkWorker implements Runnabl
System.out.println();
}
- if (!config.isKeepAlive() || !this.connstrategy.keepAlive(response, this.context)) {
+ if (!config.isKeepAlive() || !this.connstrategy.keepAlive(request, response, this.context)) {
conn.close();
} else {
stats.incKeepAliveCount();
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/examples/org/apache/http/examples/nio/NHttpReverseProxy.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/examples/org/apache/http/examples/nio/NHttpReverseProxy.java?rev=1673256&r1=1673255&r2=1673256&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/examples/org/apache/http/examples/nio/NHttpReverseProxy.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/examples/org/apache/http/examples/nio/NHttpReverseProxy.java Mon Apr 13 18:31:20 2015
@@ -786,10 +786,10 @@ public class NHttpReverseProxy {
static class ProxyIncomingConnectionReuseStrategy extends DefaultConnectionReuseStrategy {
@Override
- public boolean keepAlive(final HttpResponse response, final HttpContext context) {
+ public boolean keepAlive(final HttpRequest request, final HttpResponse response, final HttpContext context) {
NHttpConnection conn = (NHttpConnection) context.getAttribute(
HttpCoreContext.HTTP_CONNECTION);
- boolean keepAlive = super.keepAlive(response, context);
+ boolean keepAlive = super.keepAlive(request, response, context);
if (keepAlive) {
System.out.println("[client->proxy] connection kept alive " + conn);
}
@@ -801,10 +801,10 @@ public class NHttpReverseProxy {
static class ProxyOutgoingConnectionReuseStrategy extends DefaultConnectionReuseStrategy {
@Override
- public boolean keepAlive(final HttpResponse response, final HttpContext context) {
+ public boolean keepAlive(final HttpRequest request, final HttpResponse response, final HttpContext context) {
NHttpConnection conn = (NHttpConnection) context.getAttribute(
HttpCoreContext.HTTP_CONNECTION);
- boolean keepAlive = super.keepAlive(response, context);
+ boolean keepAlive = super.keepAlive(request, response, context);
if (keepAlive) {
System.out.println("[proxy->origin] connection kept alive " + conn);
}
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/BasicAsyncClientExchangeHandler.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/BasicAsyncClientExchangeHandler.java?rev=1673256&r1=1673255&r2=1673256&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/BasicAsyncClientExchangeHandler.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/BasicAsyncClientExchangeHandler.java Mon Apr 13 18:31:20 2015
@@ -173,7 +173,7 @@ public class BasicAsyncClientExchangeHan
this.localContext.setAttribute(HttpCoreContext.HTTP_RESPONSE, response);
this.httppocessor.process(response, this.localContext);
this.responseConsumer.responseReceived(response);
- this.keepAlive.set(this.connReuseStrategy.keepAlive(response, this.localContext));
+ this.keepAlive.set(this.connReuseStrategy.keepAlive(null, response, this.localContext));
}
@Override
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncService.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncService.java?rev=1673256&r1=1673255&r2=1673256&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncService.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/HttpAsyncService.java Mon Apr 13 18:31:20 2015
@@ -678,6 +678,7 @@ public class HttpAsyncService implements
final NHttpServerConnection conn,
final State state) throws IOException, HttpException {
final HttpContext context = outgoing.getContext();
+ final HttpRequest request = outgoing.getRequest();
final HttpResponse response = outgoing.getResponse();
final HttpAsyncResponseProducer responseProducer = outgoing.getProducer();
try {
@@ -688,7 +689,7 @@ public class HttpAsyncService implements
} finally {
responseProducer.close();
}
- if (!this.connStrategy.keepAlive(response, context)) {
+ if (!this.connStrategy.keepAlive(request, response, context)) {
conn.close();
} else {
// Ready to process new request
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/PipeliningClientExchangeHandler.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/PipeliningClientExchangeHandler.java?rev=1673256&r1=1673255&r2=1673256&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/PipeliningClientExchangeHandler.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/protocol/PipeliningClientExchangeHandler.java Mon Apr 13 18:31:20 2015
@@ -220,7 +220,7 @@ public class PipeliningClientExchangeHan
this.httppocessor.process(response, this.localContext);
responseConsumer.responseReceived(response);
- this.keepAlive.set(this.connReuseStrategy.keepAlive(response, this.localContext));
+ this.keepAlive.set(this.connReuseStrategy.keepAlive(request, response, this.localContext));
}
@Override
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestBasicAsyncClientExchangeHandler.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestBasicAsyncClientExchangeHandler.java?rev=1673256&r1=1673255&r2=1673256&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestBasicAsyncClientExchangeHandler.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestBasicAsyncClientExchangeHandler.java Mon Apr 13 18:31:20 2015
@@ -330,9 +330,10 @@ public class TestBasicAsyncClientExchang
final Object obj = new Object();
Mockito.when(this.responseConsumer.getResult()).thenReturn(obj);
+ final BasicHttpRequest request = new BasicHttpRequest("GET", "/");
final BasicHttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
- Mockito.when(reuseStrategy.keepAlive(response, this.context)).thenReturn(Boolean.FALSE);
+ Mockito.when(reuseStrategy.keepAlive(request, response, this.context)).thenReturn(Boolean.FALSE);
this.exchangeHandler.responseReceived(response);
this.exchangeHandler.responseCompleted();
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestHttpAsyncService.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestHttpAsyncService.java?rev=1673256&r1=1673255&r2=1673256&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestHttpAsyncService.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/test/java/org/apache/http/nio/protocol/TestHttpAsyncService.java Mon Apr 13 18:31:20 2015
@@ -835,7 +835,7 @@ public class TestHttpAsyncService {
this.connContext.setAttribute(HttpAsyncService.HTTP_EXCHANGE_STATE, state);
Mockito.when(this.responseProducer.generateResponse()).thenReturn(response);
- Mockito.when(this.reuseStrategy.keepAlive(response, exchangeContext)).thenReturn(Boolean.TRUE);
+ Mockito.when(this.reuseStrategy.keepAlive(request, response, exchangeContext)).thenReturn(Boolean.TRUE);
this.protocolHandler.responseReady(this.conn);
@@ -875,7 +875,7 @@ public class TestHttpAsyncService {
this.connContext.setAttribute(HttpAsyncService.HTTP_EXCHANGE_STATE, state);
Mockito.when(this.responseProducer.generateResponse()).thenReturn(response);
- Mockito.when(this.reuseStrategy.keepAlive(response, exchangeContext)).thenReturn(Boolean.TRUE);
+ Mockito.when(this.reuseStrategy.keepAlive(request, response, exchangeContext)).thenReturn(Boolean.TRUE);
this.protocolHandler.responseReady(this.conn);
@@ -904,7 +904,7 @@ public class TestHttpAsyncService {
this.connContext.setAttribute(HttpAsyncService.HTTP_EXCHANGE_STATE, state);
Mockito.when(this.responseProducer.generateResponse()).thenReturn(response);
- Mockito.when(this.reuseStrategy.keepAlive(response, exchangeContext)).thenReturn(Boolean.FALSE);
+ Mockito.when(this.reuseStrategy.keepAlive(request, response, exchangeContext)).thenReturn(Boolean.FALSE);
this.protocolHandler.responseReady(this.conn);
@@ -965,7 +965,7 @@ public class TestHttpAsyncService {
response.setEntity(new NStringEntity("stuff"));
Mockito.when(this.responseProducer.generateResponse()).thenReturn(response);
- Mockito.when(this.reuseStrategy.keepAlive(response, exchangeContext)).thenReturn(Boolean.TRUE);
+ Mockito.when(this.reuseStrategy.keepAlive(request, response, exchangeContext)).thenReturn(Boolean.TRUE);
this.protocolHandler.responseReady(this.conn);
@@ -997,7 +997,7 @@ public class TestHttpAsyncService {
response.setEntity(new NStringEntity("stuff"));
Mockito.when(this.responseProducer.generateResponse()).thenReturn(response);
- Mockito.when(this.reuseStrategy.keepAlive(response, exchangeContext)).thenReturn(Boolean.TRUE);
+ Mockito.when(this.reuseStrategy.keepAlive(request, response, exchangeContext)).thenReturn(Boolean.TRUE);
this.protocolHandler.responseReady(this.conn);
@@ -1293,7 +1293,7 @@ public class TestHttpAsyncService {
state.setOutgoing(outgoing);
this.connContext.setAttribute(HttpAsyncService.HTTP_EXCHANGE_STATE, state);
Mockito.when(this.encoder.isCompleted()).thenReturn(true);
- Mockito.when(this.reuseStrategy.keepAlive(response, exchangeContext)).thenReturn(Boolean.TRUE);
+ Mockito.when(this.reuseStrategy.keepAlive(request, response, exchangeContext)).thenReturn(Boolean.TRUE);
this.protocolHandler.outputReady(conn, this.encoder);
@@ -1319,7 +1319,7 @@ public class TestHttpAsyncService {
state.setOutgoing(outgoing);
this.connContext.setAttribute(HttpAsyncService.HTTP_EXCHANGE_STATE, state);
Mockito.when(this.encoder.isCompleted()).thenReturn(true);
- Mockito.when(this.reuseStrategy.keepAlive(response, exchangeContext)).thenReturn(Boolean.FALSE);
+ Mockito.when(this.reuseStrategy.keepAlive(request, response, exchangeContext)).thenReturn(Boolean.FALSE);
this.protocolHandler.outputReady(conn, this.encoder);
Modified: httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalHttpGet.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalHttpGet.java?rev=1673256&r1=1673255&r2=1673256&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalHttpGet.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalHttpGet.java Mon Apr 13 18:31:20 2015
@@ -90,7 +90,7 @@ public class ElementalHttpGet {
System.out.println("<< Response: " + response.getStatusLine());
System.out.println(EntityUtils.toString(response.getEntity()));
System.out.println("==============");
- if (!connStrategy.keepAlive(response, coreContext)) {
+ if (!connStrategy.keepAlive(request, response, coreContext)) {
conn.close();
} else {
System.out.println("Connection kept alive...");
Modified: httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalHttpPost.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalHttpPost.java?rev=1673256&r1=1673255&r2=1673256&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalHttpPost.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalHttpPost.java Mon Apr 13 18:31:20 2015
@@ -109,7 +109,7 @@ public class ElementalHttpPost {
System.out.println("<< Response: " + response.getStatusLine());
System.out.println(EntityUtils.toString(response.getEntity()));
System.out.println("==============");
- if (!connStrategy.keepAlive(response, coreContext)) {
+ if (!connStrategy.keepAlive(request, response, coreContext)) {
conn.close();
} else {
System.out.println("Connection kept alive...");
Modified: httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalPoolingHttpGet.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalPoolingHttpGet.java?rev=1673256&r1=1673255&r2=1673256&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalPoolingHttpGet.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalPoolingHttpGet.java Mon Apr 13 18:31:20 2015
@@ -109,7 +109,7 @@ public class ElementalPoolingHttpGet {
System.out.println("<< Response: " + response.getStatusLine());
System.out.println(EntityUtils.toString(response.getEntity()));
- reusable = connStrategy.keepAlive(response, coreContext);
+ reusable = connStrategy.keepAlive(request, response, coreContext);
} catch (IOException | HttpException ex) {
throw ex;
} finally {
Modified: httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalReverseProxy.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalReverseProxy.java?rev=1673256&r1=1673255&r2=1673256&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalReverseProxy.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/examples/org/apache/http/examples/ElementalReverseProxy.java Mon Apr 13 18:31:20 2015
@@ -152,7 +152,7 @@ public class ElementalReverseProxy {
System.out.println("<< Response: " + response.getStatusLine());
- final boolean keepalive = this.connStrategy.keepAlive(response, context);
+ final boolean keepalive = this.connStrategy.keepAlive(request, response, context);
context.setAttribute(HTTP_CONN_KEEPALIVE, new Boolean(keepalive));
}
Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/ConnectionReuseStrategy.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/ConnectionReuseStrategy.java?rev=1673256&r1=1673255&r2=1673256&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/ConnectionReuseStrategy.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/ConnectionReuseStrategy.java Mon Apr 13 18:31:20 2015
@@ -59,14 +59,16 @@ public interface ConnectionReuseStrategy
* connection reuse strategy.
* </p>
*
+ * @param request
+ * The last request transmitted over that connection.
* @param response
- * The last response received over that connection.
+ * The last response transmitted over that connection.
* @param context the context in which the connection is being
* used.
*
* @return {@code true} if the connection is allowed to be reused, or
* {@code false} if it MUST NOT be reused
*/
- boolean keepAlive(HttpResponse response, HttpContext context);
+ boolean keepAlive(HttpRequest request, HttpResponse response, HttpContext context);
}
Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/DefaultConnectionReuseStrategy.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/DefaultConnectionReuseStrategy.java?rev=1673256&r1=1673255&r2=1673256&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/DefaultConnectionReuseStrategy.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/DefaultConnectionReuseStrategy.java Mon Apr 13 18:31:20 2015
@@ -33,6 +33,7 @@ import org.apache.http.ConnectionReuseSt
import org.apache.http.Header;
import org.apache.http.HeaderElements;
import org.apache.http.HttpHeaders;
+import org.apache.http.HttpRequest;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.HttpVersion;
@@ -69,14 +70,9 @@ public class DefaultConnectionReuseStrat
super();
}
- @Override
- public int hashCode() {
- return super.hashCode();
- }
-
// see interface ConnectionReuseStrategy
@Override
- public boolean keepAlive(final HttpResponse response,
+ public boolean keepAlive(final HttpRequest request, final HttpResponse response,
final HttpContext context) {
Args.notNull(response, "HTTP response");
Args.notNull(context, "HTTP context");
Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/protocol/HttpService.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/protocol/HttpService.java?rev=1673256&r1=1673255&r2=1673256&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/protocol/HttpService.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/protocol/HttpService.java Mon Apr 13 18:31:20 2015
@@ -218,7 +218,7 @@ public class HttpService {
}
conn.flush();
- if (!this.connStrategy.keepAlive(response, context)) {
+ if (!this.connStrategy.keepAlive(request, response, context)) {
conn.close();
}
}
Modified: httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/impl/TestDefaultConnectionReuseStrategy.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/impl/TestDefaultConnectionReuseStrategy.java?rev=1673256&r1=1673255&r2=1673256&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/impl/TestDefaultConnectionReuseStrategy.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/impl/TestDefaultConnectionReuseStrategy.java Mon Apr 13 18:31:20 2015
@@ -54,39 +54,39 @@ public class TestDefaultConnectionReuseS
@Test(expected=IllegalArgumentException.class)
public void testIllegalResponseArg() throws Exception {
- reuseStrategy.keepAlive(null, this.context);
+ reuseStrategy.keepAlive(null, null, this.context);
}
@Test(expected=IllegalArgumentException.class)
public void testIllegalContextArg() throws Exception {
final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
- reuseStrategy.keepAlive(response, null);
+ reuseStrategy.keepAlive(null, response, null);
}
@Test
public void testNoContentLengthResponseHttp1_0() throws Exception {
final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_0, 200, "OK");
- Assert.assertFalse(reuseStrategy.keepAlive(response, context));
+ Assert.assertFalse(reuseStrategy.keepAlive(null, response, context));
}
@Test
public void testNoContentLengthResponseHttp1_1() throws Exception {
final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
- Assert.assertFalse(reuseStrategy.keepAlive(response, context));
+ Assert.assertFalse(reuseStrategy.keepAlive(null, response, context));
}
@Test
public void testChunkedContent() throws Exception {
final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
response.addHeader("Transfer-Encoding", "chunked");
- Assert.assertTrue(reuseStrategy.keepAlive(response, context));
+ Assert.assertTrue(reuseStrategy.keepAlive(null, response, context));
}
@Test
public void testIgnoreInvalidKeepAlive() throws Exception {
final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_0, 200, "OK");
response.addHeader("Connection", "keep-alive");
- Assert.assertFalse(reuseStrategy.keepAlive(response, context));
+ Assert.assertFalse(reuseStrategy.keepAlive(null, response, context));
}
@Test
@@ -95,7 +95,7 @@ public class TestDefaultConnectionReuseS
final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
response.addHeader("Transfer-Encoding", "chunked");
response.addHeader("Connection", "close");
- Assert.assertFalse(reuseStrategy.keepAlive(response, context));
+ Assert.assertFalse(reuseStrategy.keepAlive(null, response, context));
}
@Test
@@ -105,28 +105,28 @@ public class TestDefaultConnectionReuseS
response.addHeader("Content-Length", "10");
response.addHeader("Connection", "keep-alive");
- Assert.assertTrue(reuseStrategy.keepAlive(response, context));
+ Assert.assertTrue(reuseStrategy.keepAlive(null, response, context));
}
@Test
public void testHTTP10Default() throws Exception {
final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_0, 200, "OK");
response.addHeader("Content-Length", "10");
- Assert.assertFalse(reuseStrategy.keepAlive(response, context));
+ Assert.assertFalse(reuseStrategy.keepAlive(null, response, context));
}
@Test
public void testHTTP11Default() throws Exception {
final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
response.addHeader("Content-Length", "10");
- Assert.assertTrue(reuseStrategy.keepAlive(response, context));
+ Assert.assertTrue(reuseStrategy.keepAlive(null, response, context));
}
@Test
public void testFutureHTTP() throws Exception {
final HttpResponse response = new BasicHttpResponse(new HttpVersion(3, 45), 200, "OK");
response.addHeader("Content-Length", "10");
- Assert.assertTrue(reuseStrategy.keepAlive(response, context));
+ Assert.assertTrue(reuseStrategy.keepAlive(null, response, context));
}
@Test
@@ -135,7 +135,7 @@ public class TestDefaultConnectionReuseS
final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_0, 200, "OK");
response.addHeader("Content-Length", "10");
response.addHeader("Connection", "keep--alive");
- Assert.assertFalse(reuseStrategy.keepAlive(response, context));
+ Assert.assertFalse(reuseStrategy.keepAlive(null, response, context));
}
@Test
@@ -144,7 +144,7 @@ public class TestDefaultConnectionReuseS
final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_0, 200, "OK");
response.addHeader("Content-Length", "10");
response.addHeader("Connection", null);
- Assert.assertFalse(reuseStrategy.keepAlive(response, context));
+ Assert.assertFalse(reuseStrategy.keepAlive(null, response, context));
}
@Test
@@ -153,7 +153,7 @@ public class TestDefaultConnectionReuseS
final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
response.addHeader("Transfer-Encoding", "chunked");
response.addHeader("Connection", "yadda, cLOSe, dumdy");
- Assert.assertFalse(reuseStrategy.keepAlive(response, context));
+ Assert.assertFalse(reuseStrategy.keepAlive(null, response, context));
}
@Test
@@ -162,7 +162,7 @@ public class TestDefaultConnectionReuseS
final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
response.addHeader("Transfer-Encoding", "chunked");
response.addHeader("Connection", "yadda, kEEP-alive, dumdy");
- Assert.assertTrue(reuseStrategy.keepAlive(response, context));
+ Assert.assertTrue(reuseStrategy.keepAlive(null, response, context));
}
@Test
@@ -171,7 +171,7 @@ public class TestDefaultConnectionReuseS
final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
response.addHeader("Transfer-Encoding", "chunked");
response.addHeader("Connection", "yadda, keep-alive, close, dumdy");
- Assert.assertFalse(reuseStrategy.keepAlive(response, context));
+ Assert.assertFalse(reuseStrategy.keepAlive(null, response, context));
}
@Test
@@ -182,7 +182,7 @@ public class TestDefaultConnectionReuseS
response.addHeader("Connection", "yadda, close, dumdy");
response.addHeader("Proxy-Connection", "keep-alive");
// Connection takes precedence over Proxy-Connection
- Assert.assertFalse(reuseStrategy.keepAlive(response, context));
+ Assert.assertFalse(reuseStrategy.keepAlive(null, response, context));
}
@Test
@@ -195,7 +195,7 @@ public class TestDefaultConnectionReuseS
// Connection takes precedence over Proxy-Connection,
// even if it doesn't contain a recognized token.
// Default for HTTP/1.1 is to keep alive.
- Assert.assertTrue(reuseStrategy.keepAlive(response, context));
+ Assert.assertTrue(reuseStrategy.keepAlive(null, response, context));
}
@Test
@@ -207,7 +207,7 @@ public class TestDefaultConnectionReuseS
response.addHeader("Proxy-Connection", "close");
// Connection takes precedence over Proxy-Connection,
// even if it is empty. Default for HTTP/1.1 is to keep alive.
- Assert.assertTrue(reuseStrategy.keepAlive(response, context));
+ Assert.assertTrue(reuseStrategy.keepAlive(null, response, context));
}
@Test
@@ -216,7 +216,7 @@ public class TestDefaultConnectionReuseS
final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
response.addHeader("Content-Length", "10");
response.addHeader("Content-Length", "11");
- Assert.assertFalse(reuseStrategy.keepAlive(response, context));
+ Assert.assertFalse(reuseStrategy.keepAlive(null, response, context));
}
@Test
@@ -224,7 +224,7 @@ public class TestDefaultConnectionReuseS
// Use HTTP 1.1
final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
response.addHeader("Content-Length", "crap");
- Assert.assertFalse(reuseStrategy.keepAlive(response, context));
+ Assert.assertFalse(reuseStrategy.keepAlive(null, response, context));
}
@Test
@@ -232,7 +232,7 @@ public class TestDefaultConnectionReuseS
// Use HTTP 1.1
final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
response.addHeader("Content-Length", "-10");
- Assert.assertFalse(reuseStrategy.keepAlive(response, context));
+ Assert.assertFalse(reuseStrategy.keepAlive(null, response, context));
}
@Test
@@ -240,7 +240,7 @@ public class TestDefaultConnectionReuseS
// Use HTTP 1.1
final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1,
HttpStatus.SC_NO_CONTENT, "No Content");
- Assert.assertTrue(reuseStrategy.keepAlive(response, context));
+ Assert.assertTrue(reuseStrategy.keepAlive(null, response, context));
}
@Test
@@ -248,7 +248,7 @@ public class TestDefaultConnectionReuseS
// Use HTTP 1.0
final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_0,
HttpStatus.SC_NO_CONTENT, "No Content");
- Assert.assertFalse(reuseStrategy.keepAlive(response, context));
+ Assert.assertFalse(reuseStrategy.keepAlive(null, response, context));
}
}
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=1673256&r1=1673255&r2=1673256&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 Mon Apr 13 18:31:20 2015
@@ -155,7 +155,7 @@ public class TestSyncHttp {
for (int i = 0; i < expected.length; i++) {
Assert.assertEquals(expected[i], received[i]);
}
- if (!this.client.keepAlive(response)) {
+ if (!this.client.keepAlive(get, response)) {
conn.close();
}
}
@@ -236,7 +236,7 @@ public class TestSyncHttp {
for (int i = 0; i < expected.length; i++) {
Assert.assertEquals(expected[i], received[i]);
}
- if (!this.client.keepAlive(response)) {
+ if (!this.client.keepAlive(post, response)) {
conn.close();
}
}
@@ -316,7 +316,7 @@ public class TestSyncHttp {
for (int i = 0; i < expected.length; i++) {
Assert.assertEquals(expected[i], received[i]);
}
- if (!this.client.keepAlive(response)) {
+ if (!this.client.keepAlive(post, response)) {
conn.close();
}
}
@@ -397,7 +397,7 @@ public class TestSyncHttp {
for (int i = 0; i < expected.length; i++) {
Assert.assertEquals(expected[i], received[i]);
}
- if (!this.client.keepAlive(response)) {
+ if (!this.client.keepAlive(post, response)) {
conn.close();
}
}
@@ -479,7 +479,7 @@ public class TestSyncHttp {
for (int i = 0; i < expected.length; i++) {
Assert.assertEquals(expected[i], received[i]);
}
- if (!this.client.keepAlive(response)) {
+ if (!this.client.keepAlive(post, response)) {
conn.close();
}
}
@@ -572,7 +572,7 @@ public class TestSyncHttp {
Assert.assertEquals(HttpStatus.SC_OK, response.getStatusLine().getStatusCode());
}
- if (!this.client.keepAlive(response)) {
+ if (!this.client.keepAlive(post, response)) {
conn.close();
}
}
@@ -734,7 +734,7 @@ public class TestSyncHttp {
count++;
}
Assert.assertEquals(n, count);
- if (!this.client.keepAlive(response)) {
+ if (!this.client.keepAlive(post, response)) {
conn.close();
}
}
@@ -926,7 +926,7 @@ public class TestSyncHttp {
final BasicHttpRequest get = new BasicHttpRequest("GET", "/?" + r);
final HttpResponse response = this.client.execute(get, host, conn);
Assert.assertNull(response.getEntity());
- if (!this.client.keepAlive(response)) {
+ if (!this.client.keepAlive(get, response)) {
conn.close();
Assert.fail("Connection expected to be re-usable");
}
Modified: httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/protocol/TestHttpService.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/protocol/TestHttpService.java?rev=1673256&r1=1673255&r2=1673256&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/protocol/TestHttpService.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/protocol/TestHttpService.java Mon Apr 13 18:31:20 2015
@@ -85,7 +85,7 @@ public class TestHttpService {
Mockito.when(conn.receiveRequestHeader()).thenReturn(request);
final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
Mockito.when(responseFactory.newHttpResponse(HttpVersion.HTTP_1_1, 200, context)).thenReturn(response);
- Mockito.when(connReuseStrategy.keepAlive(response, context)).thenReturn(Boolean.FALSE);
+ Mockito.when(connReuseStrategy.keepAlive(request, response, context)).thenReturn(Boolean.FALSE);
httpservice.handleRequest(conn, context);
@@ -121,7 +121,7 @@ public class TestHttpService {
Mockito.when(conn.receiveRequestHeader()).thenReturn(request);
final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_0, 200, "OK");
Mockito.when(responseFactory.newHttpResponse(HttpVersion.HTTP_1_1, 200, context)).thenReturn(response);
- Mockito.when(connReuseStrategy.keepAlive(response, context)).thenReturn(Boolean.FALSE);
+ Mockito.when(connReuseStrategy.keepAlive(request, response, context)).thenReturn(Boolean.FALSE);
httpservice.handleRequest(conn, context);
@@ -146,7 +146,7 @@ public class TestHttpService {
Mockito.when(conn.receiveRequestHeader()).thenReturn(request);
final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
Mockito.when(responseFactory.newHttpResponse(HttpVersion.HTTP_1_1, 200, context)).thenReturn(response);
- Mockito.when(connReuseStrategy.keepAlive(response, context)).thenReturn(Boolean.FALSE);
+ Mockito.when(connReuseStrategy.keepAlive(request, response, context)).thenReturn(Boolean.FALSE);
httpservice.handleRequest(conn, context);
@@ -175,7 +175,7 @@ public class TestHttpService {
Mockito.when(conn.receiveRequestHeader()).thenReturn(request);
final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
Mockito.when(responseFactory.newHttpResponse(HttpVersion.HTTP_1_1, 200, context)).thenReturn(response);
- Mockito.when(connReuseStrategy.keepAlive(response, context)).thenReturn(Boolean.FALSE);
+ Mockito.when(connReuseStrategy.keepAlive(request, response, context)).thenReturn(Boolean.FALSE);
httpservice.handleRequest(conn, context);
@@ -220,7 +220,7 @@ public class TestHttpService {
Mockito.when(responseFactory.newHttpResponse(HttpVersion.HTTP_1_1, 100, context)).thenReturn(resp100);
final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
Mockito.when(responseFactory.newHttpResponse(HttpVersion.HTTP_1_1, 200, context)).thenReturn(response);
- Mockito.when(connReuseStrategy.keepAlive(response, context)).thenReturn(Boolean.FALSE);
+ Mockito.when(connReuseStrategy.keepAlive(request, response, context)).thenReturn(Boolean.FALSE);
httpservice.handleRequest(conn, context);
@@ -277,7 +277,7 @@ public class TestHttpService {
Mockito.when(conn.receiveRequestHeader()).thenReturn(request);
final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, 100, "Continue");
Mockito.when(responseFactory.newHttpResponse(HttpVersion.HTTP_1_1, 100, context)).thenReturn(response);
- Mockito.when(connReuseStrategy.keepAlive(response, context)).thenReturn(Boolean.FALSE);
+ Mockito.when(connReuseStrategy.keepAlive(request, response, context)).thenReturn(Boolean.FALSE);
httpservice.handleRequest(conn, context);
@@ -324,7 +324,7 @@ public class TestHttpService {
final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_0, 500, "Oppsie");
Mockito.when(responseFactory.newHttpResponse(HttpVersion.HTTP_1_0, 500, context)).thenReturn(response);
Mockito.doThrow(new HttpException("Oopsie")).when(expectationVerifier).verify(request, resp100, context);
- Mockito.when(connReuseStrategy.keepAlive(response, context)).thenReturn(Boolean.FALSE);
+ Mockito.when(connReuseStrategy.keepAlive(request, response, context)).thenReturn(Boolean.FALSE);
httpservice.handleRequest(conn, context);
@@ -368,7 +368,7 @@ public class TestHttpService {
Mockito.when(handlerResolver.lookup(request, context)).thenReturn(requestHandler);
Mockito.doThrow(new MethodNotSupportedException("whatever")).when(
requestHandler).handle(request, response, context);
- Mockito.when(connReuseStrategy.keepAlive(error, context)).thenReturn(Boolean.FALSE);
+ Mockito.when(connReuseStrategy.keepAlive(request, error, context)).thenReturn(Boolean.FALSE);
httpservice.handleRequest(conn, context);
@@ -411,7 +411,7 @@ public class TestHttpService {
Mockito.when(handlerResolver.lookup(request, context)).thenReturn(requestHandler);
Mockito.doThrow(new UnsupportedHttpVersionException()).when(
requestHandler).handle(request, response, context);
- Mockito.when(connReuseStrategy.keepAlive(error, context)).thenReturn(Boolean.FALSE);
+ Mockito.when(connReuseStrategy.keepAlive(request, error, context)).thenReturn(Boolean.FALSE);
httpservice.handleRequest(conn, context);
@@ -454,7 +454,7 @@ public class TestHttpService {
Mockito.when(handlerResolver.lookup(request, context)).thenReturn(requestHandler);
Mockito.doThrow(new ProtocolException("oh, this world is wrong")).when(
requestHandler).handle(request, response, context);
- Mockito.when(connReuseStrategy.keepAlive(error, context)).thenReturn(Boolean.FALSE);
+ Mockito.when(connReuseStrategy.keepAlive(request, error, context)).thenReturn(Boolean.FALSE);
httpservice.handleRequest(conn, context);
@@ -492,7 +492,7 @@ public class TestHttpService {
final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
Mockito.when(responseFactory.newHttpResponse(HttpVersion.HTTP_1_1, 200, context)).thenReturn(response);
Mockito.when(handlerResolver.lookup(request, context)).thenReturn(requestHandler);
- Mockito.when(connReuseStrategy.keepAlive(response, context)).thenReturn(Boolean.TRUE);
+ Mockito.when(connReuseStrategy.keepAlive(request, response, context)).thenReturn(Boolean.TRUE);
httpservice.handleRequest(conn, context);
@@ -531,7 +531,7 @@ public class TestHttpService {
final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_NO_CONTENT, "No Content");
Mockito.when(responseFactory.newHttpResponse(HttpVersion.HTTP_1_1, 200, context)).thenReturn(response);
Mockito.when(handlerResolver.lookup(request, context)).thenReturn(requestHandler);
- Mockito.when(connReuseStrategy.keepAlive(response, context)).thenReturn(Boolean.TRUE);
+ Mockito.when(connReuseStrategy.keepAlive(request, response, context)).thenReturn(Boolean.TRUE);
httpservice.handleRequest(conn, context);
@@ -568,7 +568,7 @@ public class TestHttpService {
final HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, 200, "OK");
Mockito.when(responseFactory.newHttpResponse(HttpVersion.HTTP_1_1, 200, context)).thenReturn(response);
Mockito.when(handlerResolver.lookup(request, context)).thenReturn(requestHandler);
- Mockito.when(connReuseStrategy.keepAlive(response, context)).thenReturn(Boolean.TRUE);
+ Mockito.when(connReuseStrategy.keepAlive(request, response, context)).thenReturn(Boolean.TRUE);
httpservice.handleRequest(conn, context);
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=1673256&r1=1673255&r2=1673256&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 Mon Apr 13 18:31:20 2015
@@ -113,8 +113,8 @@ public class HttpClient {
return response;
}
- public boolean keepAlive(final HttpResponse response) {
- return this.connStrategy.keepAlive(response, this.context);
+ public boolean keepAlive(final HttpRequest request, final HttpResponse response) {
+ return this.connStrategy.keepAlive(request, response, this.context);
}
}