[prev in list] [next in list] [prev in thread] [next in thread]
List: httpcomponents-commits
Subject: httpcomponents-client git commit: Added MessageCopier and implementations for HttpRequest and Classi
From: olegk () apache ! org
Date: 2017-09-30 21:01:17
Message-ID: 964ad07c6ab1472e989cd04b96ef271a () git ! apache ! org
[Download RAW message or body]
Repository: httpcomponents-client
Updated Branches:
refs/heads/master e8972624a -> 9ac5808bd
Added MessageCopier and implementations for HttpRequest and ClassicHttpRequest \
messages; removed message copy methods from ExecSupport
Project: http://git-wip-us.apache.org/repos/asf/httpcomponents-client/repo
Commit: http://git-wip-us.apache.org/repos/asf/httpcomponents-client/commit/9ac5808b
Tree: http://git-wip-us.apache.org/repos/asf/httpcomponents-client/tree/9ac5808b
Diff: http://git-wip-us.apache.org/repos/asf/httpcomponents-client/diff/9ac5808b
Branch: refs/heads/master
Commit: 9ac5808bdbb045fedbbe99b3ca7366e50ab26b31
Parents: e897262
Author: Oleg Kalnichevski <olegk@apache.org>
Authored: Sat Sep 30 23:00:45 2017 +0200
Committer: Oleg Kalnichevski <olegk@apache.org>
Committed: Sat Sep 30 23:00:45 2017 +0200
----------------------------------------------------------------------
.../impl/cache/ConditionalRequestBuilder.java | 8 +--
.../impl/cache/RequestProtocolCompliance.java | 6 +-
.../http/impl/cache/AbstractProtocolTest.java | 5 +-
.../TestAsynchronousValidationRequest.java | 2 +-
.../impl/cache/TestAsynchronousValidator.java | 6 +-
.../http/impl/cache/TestCachingExec.java | 2 +-
.../http/impl/cache/TestCachingExecChain.java | 39 ++++++-----
.../cache/TestConditionalRequestBuilder.java | 20 ++----
...ExponentialBackingOffSchedulingStrategy.java | 2 +-
.../impl/cache/TestHttpCacheJiraNumber1147.java | 2 +-
.../http/impl/cache/TestProtocolDeviations.java | 5 +-
.../cache/TestRequestProtocolCompliance.java | 20 +++---
.../cache/TestResponseProtocolCompliance.java | 10 +--
.../hc/client5/http/classic/ExecChain.java | 4 +-
.../hc/client5/http/impl/ExecSupport.java | 73 --------------------
.../hc/client5/http/impl/MessageCopier.java | 41 +++++++++++
.../hc/client5/http/impl/RequestCopier.java | 53 ++++++++++++++
.../client5/http/impl/async/AsyncRetryExec.java | 4 +-
.../impl/async/InternalHttpAsyncClient.java | 3 +-
.../http/impl/classic/ClassicRequestCopier.java | 55 +++++++++++++++
.../http/impl/classic/InternalHttpClient.java | 5 +-
.../client5/http/impl/classic/RedirectExec.java | 1 +
.../hc/client5/http/impl/classic/RetryExec.java | 3 +-
.../classic/ServiceUnavailableRetryExec.java | 3 +-
.../http/impl/classic/TestConnectExec.java | 18 ++---
.../classic/TestContentCompressionExec.java | 2 +-
.../http/impl/classic/TestMainClientExec.java | 18 ++---
.../http/impl/classic/TestProtocolExec.java | 16 ++---
.../http/impl/classic/TestRedirectExec.java | 12 ++--
.../http/impl/classic/TestRetryExec.java | 13 ++--
.../TestServiceUnavailableRetryExec.java | 6 +-
31 files changed, 267 insertions(+), 190 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/9ac5808b/httpclient5 \
-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ConditionalRequestBuilder.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ConditionalRequestBuilder.java \
b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ConditionalRequestBuilder.java
index 73324ba..d298c93 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ConditionalRequestBuilder.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ConditionalRequestBuilder.java
@@ -31,7 +31,7 @@ import java.util.Map;
import org.apache.hc.client5.http.cache.HeaderConstants;
import org.apache.hc.client5.http.cache.HttpCacheEntry;
-import org.apache.hc.client5.http.impl.ExecSupport;
+import org.apache.hc.client5.http.impl.classic.ClassicRequestCopier;
import org.apache.hc.core5.annotation.Contract;
import org.apache.hc.core5.annotation.ThreadingBehavior;
import org.apache.hc.core5.http.ClassicHttpRequest;
@@ -59,7 +59,7 @@ class ConditionalRequestBuilder {
*/
public ClassicHttpRequest buildConditionalRequest(final ClassicHttpRequest \
request, final HttpCacheEntry cacheEntry) throws ProtocolException {
- final ClassicHttpRequest newRequest = ExecSupport.copy(request);
+ final ClassicHttpRequest newRequest = \
ClassicRequestCopier.INSTANCE.copy(request); \
newRequest.setHeaders(request.getAllHeaders());
final Header eTag = cacheEntry.getFirstHeader(HeaderConstants.ETAG);
if (eTag != null) {
@@ -99,7 +99,7 @@ class ConditionalRequestBuilder {
*/
public ClassicHttpRequest buildConditionalRequestFromVariants(final \
ClassicHttpRequest request,
final Map<String, \
Variant> variants) {
- final ClassicHttpRequest newRequest = ExecSupport.copy(request);
+ final ClassicHttpRequest newRequest = \
ClassicRequestCopier.INSTANCE.copy(request); \
newRequest.setHeaders(request.getAllHeaders());
// we do not support partial content so all etags are used
@@ -128,7 +128,7 @@ class ConditionalRequestBuilder {
* @return an unconditional validation request
*/
public ClassicHttpRequest buildUnconditionalRequest(final ClassicHttpRequest \
request) {
- final ClassicHttpRequest newRequest = ExecSupport.copy(request);
+ final ClassicHttpRequest newRequest = \
ClassicRequestCopier.INSTANCE.copy(request);
newRequest.addHeader(HeaderConstants.CACHE_CONTROL,HeaderConstants.CACHE_CONTROL_NO_CACHE);
newRequest.addHeader(HeaderConstants.PRAGMA,HeaderConstants.CACHE_CONTROL_NO_CACHE);
newRequest.removeHeaders(HeaderConstants.IF_RANGE);
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/9ac5808b/httpclient5 \
-cache/src/main/java/org/apache/hc/client5/http/impl/cache/RequestProtocolCompliance.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/RequestProtocolCompliance.java \
b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/RequestProtocolCompliance.java
index 92757e0..c21b80d 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/RequestProtocolCompliance.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/RequestProtocolCompliance.java
@@ -257,6 +257,9 @@ class RequestProtocolCompliance {
protected boolean requestMinorVersionIsTooHighMajorVersionsMatch(final \
HttpRequest request) { final ProtocolVersion requestProtocol = request.getVersion();
+ if (requestProtocol == null) {
+ return false;
+ }
if (requestProtocol.getMajor() != HttpVersion.HTTP_1_1.getMajor()) {
return false;
}
@@ -269,7 +272,8 @@ class RequestProtocolCompliance {
}
protected boolean requestVersionIsTooLow(final HttpRequest request) {
- return request.getVersion().compareToVersion(HttpVersion.HTTP_1_1) < 0;
+ final ProtocolVersion requestProtocol = request.getVersion();
+ return requestProtocol != null && \
requestProtocol.compareToVersion(HttpVersion.HTTP_1_1) < 0; }
/**
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/9ac5808b/httpclient5 \
-cache/src/test/java/org/apache/hc/client5/http/impl/cache/AbstractProtocolTest.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/AbstractProtocolTest.java \
b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/AbstractProtocolTest.java
index 7a5be9d..395c9a3 100644
--- a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/AbstractProtocolTest.java
+++ b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/AbstractProtocolTest.java
@@ -33,7 +33,7 @@ import org.apache.hc.client5.http.HttpRoute;
import org.apache.hc.client5.http.classic.ExecChain;
import org.apache.hc.client5.http.classic.ExecChainHandler;
import org.apache.hc.client5.http.classic.ExecRuntime;
-import org.apache.hc.client5.http.impl.ExecSupport;
+import org.apache.hc.client5.http.impl.classic.ClassicRequestCopier;
import org.apache.hc.client5.http.protocol.HttpClientContext;
import org.apache.hc.core5.http.ClassicHttpRequest;
import org.apache.hc.core5.http.ClassicHttpResponse;
@@ -107,7 +107,8 @@ public abstract class AbstractProtocolTest {
}
public ClassicHttpResponse execute(final ClassicHttpRequest request) throws \
IOException, HttpException {
- return impl.execute(ExecSupport.copy(request), new ExecChain.Scope(route, \
request, mockEndpoint, context), mockExecChain); + return \
impl.execute(ClassicRequestCopier.INSTANCE.copy(request), new ExecChain.Scope( + \
"test", route, request, mockEndpoint, context), mockExecChain); }
protected ExecChainHandler createCachingExecChain(final HttpCache cache, final \
CacheConfig config) {
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/9ac5808b/httpclient5 \
-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestAsynchronousValidationRequest.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestAsynchronousValidationRequest.java \
b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestAsynchronousValidationRequest.java
index 8f585d7..227f240 100644
--- a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestAsynchronousValidationRequest.java
+++ b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestAsynchronousValidationRequest.java
@@ -75,7 +75,7 @@ public class TestAsynchronousValidationRequest {
execChain = mock(ExecChain.class);
mockCacheEntry = mock(HttpCacheEntry.class);
mockResponse = mock(ClassicHttpResponse.class);
- scope = new ExecChain.Scope(route, request, mockEndpoint, context);
+ scope = new ExecChain.Scope("test", route, request, mockEndpoint, context);
}
@Test
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/9ac5808b/httpclient5 \
-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestAsynchronousValidator.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestAsynchronousValidator.java \
b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestAsynchronousValidator.java
index 9e53c4b..06c42ac 100644
--- a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestAsynchronousValidator.java
+++ b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestAsynchronousValidator.java
@@ -82,7 +82,7 @@ public class TestAsynchronousValidator {
mockEndpoint = mock(ExecRuntime.class);
mockCacheEntry = mock(HttpCacheEntry.class);
mockSchedulingStrategy = mock(SchedulingStrategy.class);
- scope = new ExecChain.Scope(route, request, mockEndpoint, context);
+ scope = new ExecChain.Scope("test", route, request, mockEndpoint, context);
}
@Test
@@ -167,9 +167,9 @@ public class TestAsynchronousValidator {
new BasicHeaderIterator(variantHeaders, HeaderConstants.VARY));
mockSchedulingStrategy.schedule(isA(AsynchronousValidationRequest.class));
- impl.revalidateCacheEntry(mockClient, host, req1, new ExecChain.Scope(route, \
req1, mockEndpoint, context), + impl.revalidateCacheEntry(mockClient, host, \
req1, new ExecChain.Scope("test", route, req1, mockEndpoint, context), \
mockExecChain, mockCacheEntry);
- impl.revalidateCacheEntry(mockClient, host, req2, new ExecChain.Scope(route, \
req2, mockEndpoint, context), + impl.revalidateCacheEntry(mockClient, host, \
req2, new ExecChain.Scope("test", route, req2, mockEndpoint, context), \
mockExecChain, mockCacheEntry);
verify(mockCacheEntry, times(2)).hasVariants();
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/9ac5808b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestCachingExec.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestCachingExec.java \
b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestCachingExec.java
index 21facaa..366dea0 100644
--- a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestCachingExec.java
+++ b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestCachingExec.java
@@ -91,7 +91,7 @@ public class TestCachingExec extends TestCachingExecChain {
public void setUp() {
super.setUp();
- scope = new ExecChain.Scope(route, request, mockEndpoint, context);
+ scope = new ExecChain.Scope("test", route, request, mockEndpoint, context);
mockBackendResponse = createNiceMock(ClassicHttpResponse.class);
requestDate = new Date(System.currentTimeMillis() - 1000);
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/9ac5808b/httpclient5 \
-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestCachingExecChain.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestCachingExecChain.java \
b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestCachingExecChain.java
index cc8d86a..bd9f0a8 100644
--- a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestCachingExecChain.java
+++ b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestCachingExecChain.java
@@ -58,7 +58,7 @@ import org.apache.hc.client5.http.classic.ExecChainHandler;
import org.apache.hc.client5.http.classic.ExecRuntime;
import org.apache.hc.client5.http.classic.methods.HttpGet;
import org.apache.hc.client5.http.classic.methods.HttpOptions;
-import org.apache.hc.client5.http.impl.ExecSupport;
+import org.apache.hc.client5.http.impl.classic.ClassicRequestCopier;
import org.apache.hc.client5.http.protocol.HttpClientContext;
import org.apache.hc.client5.http.utils.DateUtils;
import org.apache.hc.core5.http.ClassicHttpRequest;
@@ -162,7 +162,8 @@ public abstract class TestCachingExecChain {
public abstract ExecChainHandler createCachingExecChain(HttpCache cache, \
CacheConfig config);
protected ClassicHttpResponse execute(final ClassicHttpRequest request) throws \
IOException, HttpException {
- return impl.execute(ExecSupport.copy(request), new ExecChain.Scope(route, \
request, mockEndpoint, context), mockExecChain); + return \
impl.execute(ClassicRequestCopier.INSTANCE.copy(request), new ExecChain.Scope( + \
"test", route, request, mockEndpoint, context), mockExecChain); }
public static ClassicHttpRequest eqRequest(final ClassicHttpRequest in) {
@@ -1349,8 +1350,8 @@ public abstract class TestCachingExecChain {
backend.setResponse(response);
impl = createCachingExecChain(new BasicHttpCache(), CacheConfig.DEFAULT);
final HttpClientContext ctx = HttpClientContext.create();
- impl.execute(request, new ExecChain.Scope(route, request, mockEndpoint, \
context), backend);
- impl.execute(request, new ExecChain.Scope(route, request, mockEndpoint, \
ctx), backend); + impl.execute(request, new ExecChain.Scope("test", route, \
request, mockEndpoint, context), backend); + impl.execute(request, new \
ExecChain.Scope("test", route, request, mockEndpoint, ctx), backend); }
@Test
@@ -1361,8 +1362,8 @@ public abstract class TestCachingExecChain {
backend.setResponse(response);
impl = createCachingExecChain(new BasicHttpCache(), CacheConfig.DEFAULT);
final HttpClientContext ctx = HttpClientContext.create();
- impl.execute(request, new ExecChain.Scope(route, request, mockEndpoint, \
context), backend);
- impl.execute(request, new ExecChain.Scope(route, request, mockEndpoint, \
ctx), backend); + impl.execute(request, new ExecChain.Scope("test", route, \
request, mockEndpoint, context), backend); + impl.execute(request, new \
ExecChain.Scope("test", route, request, mockEndpoint, ctx), backend); }
@Test
@@ -1373,8 +1374,8 @@ public abstract class TestCachingExecChain {
backend.setResponse(response);
impl = createCachingExecChain(new BasicHttpCache(), CacheConfig.DEFAULT);
final HttpClientContext ctx = HttpClientContext.create();
- impl.execute(request, new ExecChain.Scope(route, request, mockEndpoint, \
context), backend);
- impl.execute(request, new ExecChain.Scope(route, request, mockEndpoint, \
ctx), backend); + impl.execute(request, new ExecChain.Scope("test", route, \
request, mockEndpoint, context), backend); + impl.execute(request, new \
ExecChain.Scope("test", route, request, mockEndpoint, ctx), backend); \
assertEquals(route, ctx.getHttpRoute()); }
@@ -1386,8 +1387,8 @@ public abstract class TestCachingExecChain {
backend.setResponse(response);
impl = createCachingExecChain(new BasicHttpCache(), CacheConfig.DEFAULT);
final HttpClientContext ctx = HttpClientContext.create();
- impl.execute(request, new ExecChain.Scope(route, request, mockEndpoint, \
context), backend);
- impl.execute(request, new ExecChain.Scope(route, request, mockEndpoint, \
ctx), backend); + impl.execute(request, new ExecChain.Scope("test", route, \
request, mockEndpoint, context), backend); + impl.execute(request, new \
ExecChain.Scope("test", route, request, mockEndpoint, ctx), backend); if \
(!HttpTestUtils.equivalent(request, ctx.getRequest())) { assertSame(request, \
ctx.getRequest()); }
@@ -1401,8 +1402,8 @@ public abstract class TestCachingExecChain {
backend.setResponse(response);
impl = createCachingExecChain(new BasicHttpCache(), CacheConfig.DEFAULT);
final HttpClientContext ctx = HttpClientContext.create();
- impl.execute(request, new ExecChain.Scope(route, request, mockEndpoint, \
context), backend);
- final ClassicHttpResponse result = impl.execute(request, new \
ExecChain.Scope(route, request, mockEndpoint, ctx), null); + \
impl.execute(request, new ExecChain.Scope("test", route, request, mockEndpoint, \
context), backend); + final ClassicHttpResponse result = impl.execute(request, \
new ExecChain.Scope("test", route, request, mockEndpoint, ctx), null); if \
(!HttpTestUtils.equivalent(result, ctx.getResponse())) { assertSame(result, \
ctx.getResponse()); }
@@ -1416,8 +1417,8 @@ public abstract class TestCachingExecChain {
backend.setResponse(response);
impl = createCachingExecChain(new BasicHttpCache(), CacheConfig.DEFAULT);
final HttpClientContext ctx = HttpClientContext.create();
- impl.execute(request, new ExecChain.Scope(route, request, mockEndpoint, \
context), backend);
- impl.execute(request, new ExecChain.Scope(route, request, mockEndpoint, \
ctx), backend); + impl.execute(request, new ExecChain.Scope("test", route, \
request, mockEndpoint, context), backend); + impl.execute(request, new \
ExecChain.Scope("test", route, request, mockEndpoint, ctx), backend); }
@Test
@@ -1428,8 +1429,8 @@ public abstract class TestCachingExecChain {
final DummyBackend backend = new DummyBackend();
backend.setResponse(response);
impl = createCachingExecChain(new BasicHttpCache(), CacheConfig.DEFAULT);
- impl.execute(request, new ExecChain.Scope(route, request, mockEndpoint, \
context), backend);
- impl.execute(request, new ExecChain.Scope(route, request, mockEndpoint, \
context), backend); + impl.execute(request, new ExecChain.Scope("test", route, \
request, mockEndpoint, context), backend); + impl.execute(request, new \
ExecChain.Scope("test", route, request, mockEndpoint, context), backend); \
assertEquals(1, backend.getExecutions()); }
@@ -1581,12 +1582,12 @@ public abstract class TestCachingExecChain {
response.setHeader("Cache-Control", "max-age=3600");
backend.setResponse(response);
impl = createCachingExecChain(new BasicHttpCache(), CacheConfig.DEFAULT);
- impl.execute(request, new ExecChain.Scope(route, request, mockEndpoint, \
context), backend); + impl.execute(request, new ExecChain.Scope("test", route, \
request, mockEndpoint, context), backend); assertEquals(1, backend.getExecutions());
request.setAuthority(new URIAuthority("bar.example.com"));
- impl.execute(request, new ExecChain.Scope(route, request, mockEndpoint, \
context), backend); + impl.execute(request, new ExecChain.Scope("test", route, \
request, mockEndpoint, context), backend); assertEquals(2, backend.getExecutions());
- impl.execute(request, new ExecChain.Scope(route, request, mockEndpoint, \
context), backend); + impl.execute(request, new ExecChain.Scope("test", route, \
request, mockEndpoint, context), backend); assertEquals(2, backend.getExecutions());
}
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/9ac5808b/httpclient5 \
-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestConditionalRequestBuilder.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestConditionalRequestBuilder.java \
b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestConditionalRequestBuilder.java
index bdf7fc4..d5c596e 100644
--- a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestConditionalRequestBuilder.java
+++ b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestConditionalRequestBuilder.java
@@ -34,13 +34,12 @@ import java.util.Map;
import org.apache.hc.client5.http.HttpRoute;
import org.apache.hc.client5.http.cache.HeaderConstants;
import org.apache.hc.client5.http.cache.HttpCacheEntry;
-import org.apache.hc.client5.http.impl.ExecSupport;
+import org.apache.hc.client5.http.impl.classic.ClassicRequestCopier;
import org.apache.hc.client5.http.utils.DateUtils;
import org.apache.hc.core5.http.ClassicHttpRequest;
import org.apache.hc.core5.http.Header;
import org.apache.hc.core5.http.HeaderElement;
import org.apache.hc.core5.http.HttpHost;
-import org.apache.hc.core5.http.HttpVersion;
import org.apache.hc.core5.http.ProtocolException;
import org.apache.hc.core5.http.message.BasicClassicHttpRequest;
import org.apache.hc.core5.http.message.BasicHeader;
@@ -72,7 +71,7 @@ public class TestConditionalRequestBuilder {
final ClassicHttpRequest basicRequest = new \
BasicClassicHttpRequest(theMethod, theUri); \
basicRequest.addHeader("Accept-Encoding", "gzip");
- final ClassicHttpRequest requestWrapper = ExecSupport.copy(basicRequest);
+ final ClassicHttpRequest requestWrapper = \
ClassicRequestCopier.INSTANCE.copy(basicRequest);
final Header[] headers = new Header[] {
new BasicHeader("Date", DateUtils.formatDate(new Date())),
@@ -108,7 +107,7 @@ public class TestConditionalRequestBuilder {
new BasicHeader("ETag", etag)
};
final ClassicHttpRequest basicRequest = new BasicClassicHttpRequest("GET", \
"/");
- final ClassicHttpRequest requestWrapper = ExecSupport.copy(basicRequest);
+ final ClassicHttpRequest requestWrapper = \
ClassicRequestCopier.INSTANCE.copy(basicRequest);
final HttpCacheEntry cacheEntry = HttpTestUtils.makeCacheEntry(headers);
final ClassicHttpRequest result = \
impl.buildConditionalRequest(requestWrapper, cacheEntry); \
Assert.assertEquals(lmDate, @@ -125,7 +124,7 @@ public class \
TestConditionalRequestBuilder {
final ClassicHttpRequest basicRequest = new \
BasicClassicHttpRequest(theMethod, theUri); \
basicRequest.addHeader("Accept-Encoding", "gzip");
- final ClassicHttpRequest requestWrapper = ExecSupport.copy(basicRequest);
+ final ClassicHttpRequest requestWrapper = \
ClassicRequestCopier.INSTANCE.copy(basicRequest);
final Header[] headers = new Header[] {
new BasicHeader("Date", DateUtils.formatDate(new Date())),
@@ -153,7 +152,7 @@ public class TestConditionalRequestBuilder {
@Test
public void testCacheEntryWithMustRevalidateDoesEndToEndRevalidation() throws \
Exception {
final ClassicHttpRequest basicRequest = new \
BasicClassicHttpRequest("GET","/");
- final ClassicHttpRequest requestWrapper = ExecSupport.copy(basicRequest);
+ final ClassicHttpRequest requestWrapper = \
ClassicRequestCopier.INSTANCE.copy(basicRequest); final Date now = new Date();
final Date elevenSecondsAgo = new Date(now.getTime() - 11 * 1000L);
final Date tenSecondsAgo = new Date(now.getTime() - 10 * 1000L);
@@ -182,7 +181,7 @@ public class TestConditionalRequestBuilder {
@Test
public void testCacheEntryWithProxyRevalidateDoesEndToEndRevalidation() throws \
Exception {
final ClassicHttpRequest basicRequest = new BasicClassicHttpRequest("GET", \
"/");
- final ClassicHttpRequest requestWrapper = ExecSupport.copy(basicRequest);
+ final ClassicHttpRequest requestWrapper = \
ClassicRequestCopier.INSTANCE.copy(basicRequest); final Date now = new Date();
final Date elevenSecondsAgo = new Date(now.getTime() - 11 * 1000L);
final Date tenSecondsAgo = new Date(now.getTime() - 10 * 1000L);
@@ -224,13 +223,6 @@ public class TestConditionalRequestBuilder {
}
@Test
- public void testBuildUnconditionalRequestUsesHTTP_1_1()
- throws Exception {
- final ClassicHttpRequest result = impl.buildUnconditionalRequest(request);
- Assert.assertEquals(HttpVersion.HTTP_1_1, result.getVersion());
- }
-
- @Test
public void testBuildUnconditionalRequestAddsCacheControlNoCache()
throws Exception {
final ClassicHttpRequest result = impl.buildUnconditionalRequest(request);
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/9ac5808b/httpclient5 \
-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestExponentialBackingOffSchedulingStrategy.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestExponentialBackingOffSchedulingStrategy.java \
b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestExponentialBackingOffSchedulingStrategy.java
index 5954c43..277e82f 100644
--- a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestExponentialBackingOffSchedulingStrategy.java
+++ b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestExponentialBackingOffSchedulingStrategy.java
@@ -164,7 +164,7 @@ public class TestExponentialBackingOffSchedulingStrategy {
final HttpRoute route = new HttpRoute(host);
final ClassicHttpRequest request = new BasicClassicHttpRequest("GET", "/");
final HttpClientContext context = new HttpClientContext();
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, \
mock(ExecRuntime.class), context); + final ExecChain.Scope scope = new \
ExecChain.Scope("test", route, request, mock(ExecRuntime.class), \
context);
return new AsynchronousValidationRequest(mockValidator, cachingHttpClient, \
host, request,
scope, mock(ExecChain.class), null, "identifier", errorCount);
}
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/9ac5808b/httpclient5 \
-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestHttpCacheJiraNumber1147.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestHttpCacheJiraNumber1147.java \
b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestHttpCacheJiraNumber1147.java
index da362a7..72aa987 100644
--- a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestHttpCacheJiraNumber1147.java
+++ b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestHttpCacheJiraNumber1147.java
@@ -116,7 +116,7 @@ public class TestHttpCacheJiraNumber1147 {
final BasicHttpCache cache = new BasicHttpCache(resourceFactory, \
httpCacheStorage, cacheConfig);
final ExecChainHandler t = createCachingExecChain(cache, cacheConfig);
- final ExecChain.Scope scope = new ExecChain.Scope(route, get, mockEndpoint, \
context); + final ExecChain.Scope scope = new ExecChain.Scope("teset", route, \
get, mockEndpoint, context);
final ClassicHttpResponse response1 = t.execute(get, scope, mockExecChain);
Assert.assertEquals(200, response1.getCode());
IOUtils.consume(response1.getEntity());
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/9ac5808b/httpclient5 \
-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestProtocolDeviations.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestProtocolDeviations.java \
b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestProtocolDeviations.java
index 0c59c04..48c5f6a 100644
--- a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestProtocolDeviations.java
+++ b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestProtocolDeviations.java
@@ -36,7 +36,7 @@ import org.apache.hc.client5.http.cache.HttpCacheContext;
import org.apache.hc.client5.http.classic.ExecChain;
import org.apache.hc.client5.http.classic.ExecChainHandler;
import org.apache.hc.client5.http.classic.ExecRuntime;
-import org.apache.hc.client5.http.impl.ExecSupport;
+import org.apache.hc.client5.http.impl.classic.ClassicRequestCopier;
import org.apache.hc.client5.http.utils.DateUtils;
import org.apache.hc.core5.http.ClassicHttpRequest;
import org.apache.hc.core5.http.ClassicHttpResponse;
@@ -122,7 +122,8 @@ public class TestProtocolDeviations {
}
private ClassicHttpResponse execute(final ClassicHttpRequest request) throws \
IOException, HttpException {
- return impl.execute(ExecSupport.copy(request), new ExecChain.Scope(route, \
request, mockEndpoint, context), mockExecChain); + return \
impl.execute(ClassicRequestCopier.INSTANCE.copy(request), new ExecChain.Scope( + \
"test", route, request, mockEndpoint, context), mockExecChain); }
protected ExecChainHandler createCachingExecChain(final HttpCache cache, final \
CacheConfig config) {
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/9ac5808b/httpclient5 \
-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestRequestProtocolCompliance.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestRequestProtocolCompliance.java \
b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestRequestProtocolCompliance.java
index ad9b25a..a538229 100644
--- a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestRequestProtocolCompliance.java
+++ b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestRequestProtocolCompliance.java
@@ -33,7 +33,7 @@ import static org.junit.Assert.assertTrue;
import java.util.Arrays;
import org.apache.hc.client5.http.classic.methods.HttpPut;
-import org.apache.hc.client5.http.impl.ExecSupport;
+import org.apache.hc.client5.http.impl.classic.ClassicRequestCopier;
import org.apache.hc.core5.http.ClassicHttpRequest;
import org.apache.hc.core5.http.HttpVersion;
import org.apache.hc.core5.http.ProtocolVersion;
@@ -82,7 +82,7 @@ public class TestRequestProtocolCompliance {
@Test
public void doesNotModifyACompliantRequest() throws Exception {
- final ClassicHttpRequest wrapper = ExecSupport.copy(req);
+ final ClassicHttpRequest wrapper = ClassicRequestCopier.INSTANCE.copy(req);
impl.makeRequestCompliant(wrapper);
assertTrue(HttpTestUtils.equivalent(req, wrapper));
}
@@ -92,7 +92,7 @@ public class TestRequestProtocolCompliance {
final ClassicHttpRequest request = new BasicClassicHttpRequest("TRACE", \
"/"); request.setVersion(HttpVersion.HTTP_1_1);
request.setEntity(HttpTestUtils.makeBody(50));
- final ClassicHttpRequest wrapper = ExecSupport.copy(request);
+ final ClassicHttpRequest wrapper = \
ClassicRequestCopier.INSTANCE.copy(request); impl.makeRequestCompliant(wrapper);
assertNull(wrapper.getEntity());
}
@@ -101,7 +101,7 @@ public class TestRequestProtocolCompliance {
public void upgrades1_0RequestTo1_1() throws Exception {
req = new BasicClassicHttpRequest("GET", "/");
req.setVersion(HttpVersion.HTTP_1_0);
- final ClassicHttpRequest wrapper = ExecSupport.copy(req);
+ final ClassicHttpRequest wrapper = ClassicRequestCopier.INSTANCE.copy(req);
impl.makeRequestCompliant(wrapper);
assertEquals(HttpVersion.HTTP_1_1, wrapper.getVersion());
}
@@ -110,7 +110,7 @@ public class TestRequestProtocolCompliance {
public void downgrades1_2RequestTo1_1() throws Exception {
req = new BasicClassicHttpRequest("GET", "/");
req.setVersion(new ProtocolVersion("HTTP", 1, 2));
- final ClassicHttpRequest wrapper = ExecSupport.copy(req);
+ final ClassicHttpRequest wrapper = ClassicRequestCopier.INSTANCE.copy(req);
impl.makeRequestCompliant(wrapper);
assertEquals(HttpVersion.HTTP_1_1, wrapper.getVersion());
}
@@ -119,7 +119,7 @@ public class TestRequestProtocolCompliance {
public void stripsMinFreshFromRequestIfNoCachePresent()
throws Exception {
req.setHeader("Cache-Control", "no-cache, min-fresh=10");
- final ClassicHttpRequest wrapper = ExecSupport.copy(req);
+ final ClassicHttpRequest wrapper = ClassicRequestCopier.INSTANCE.copy(req);
impl.makeRequestCompliant(wrapper);
assertEquals("no-cache",
wrapper.getFirstHeader("Cache-Control").getValue());
@@ -129,7 +129,7 @@ public class TestRequestProtocolCompliance {
public void stripsMaxFreshFromRequestIfNoCachePresent()
throws Exception {
req.setHeader("Cache-Control", "no-cache, max-stale=10");
- final ClassicHttpRequest wrapper = ExecSupport.copy(req);
+ final ClassicHttpRequest wrapper = ClassicRequestCopier.INSTANCE.copy(req);
impl.makeRequestCompliant(wrapper);
assertEquals("no-cache",
wrapper.getFirstHeader("Cache-Control").getValue());
@@ -139,7 +139,7 @@ public class TestRequestProtocolCompliance {
public void stripsMaxAgeFromRequestIfNoCachePresent()
throws Exception {
req.setHeader("Cache-Control", "no-cache, max-age=10");
- final ClassicHttpRequest wrapper = ExecSupport.copy(req);
+ final ClassicHttpRequest wrapper = ClassicRequestCopier.INSTANCE.copy(req);
impl.makeRequestCompliant(wrapper);
assertEquals("no-cache",
wrapper.getFirstHeader("Cache-Control").getValue());
@@ -149,7 +149,7 @@ public class TestRequestProtocolCompliance {
public void doesNotStripMinFreshFromRequestWithoutNoCache()
throws Exception {
req.setHeader("Cache-Control", "min-fresh=10");
- final ClassicHttpRequest wrapper = ExecSupport.copy(req);
+ final ClassicHttpRequest wrapper = ClassicRequestCopier.INSTANCE.copy(req);
impl.makeRequestCompliant(wrapper);
assertEquals("min-fresh=10",
wrapper.getFirstHeader("Cache-Control").getValue());
@@ -159,7 +159,7 @@ public class TestRequestProtocolCompliance {
public void correctlyStripsMinFreshFromMiddleIfNoCache()
throws Exception {
req.setHeader("Cache-Control", "no-cache,min-fresh=10,no-store");
- final ClassicHttpRequest wrapper = ExecSupport.copy(req);
+ final ClassicHttpRequest wrapper = ClassicRequestCopier.INSTANCE.copy(req);
impl.makeRequestCompliant(wrapper);
assertEquals("no-cache,no-store",
wrapper.getFirstHeader("Cache-Control").getValue());
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/9ac5808b/httpclient5 \
-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestResponseProtocolCompliance.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestResponseProtocolCompliance.java \
b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestResponseProtocolCompliance.java
index e548e18..7410c1b 100644
--- a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestResponseProtocolCompliance.java
+++ b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestResponseProtocolCompliance.java
@@ -36,7 +36,7 @@ import org.apache.hc.client5.http.ClientProtocolException;
import org.apache.hc.client5.http.HttpRoute;
import org.apache.hc.client5.http.classic.methods.HttpGet;
import org.apache.hc.client5.http.classic.methods.HttpHead;
-import org.apache.hc.client5.http.impl.ExecSupport;
+import org.apache.hc.client5.http.impl.classic.ClassicRequestCopier;
import org.apache.hc.client5.http.utils.DateUtils;
import org.apache.hc.core5.http.ClassicHttpRequest;
import org.apache.hc.core5.http.ClassicHttpResponse;
@@ -92,7 +92,7 @@ public class TestResponseProtocolCompliance {
@Test
public void consumesBodyIfOriginSendsOneInResponseToHEAD() throws Exception {
final HttpHead req = new HttpHead("http://foo.example.com/");
- final ClassicHttpRequest wrapper = ExecSupport.copy(req);
+ final ClassicHttpRequest wrapper = ClassicRequestCopier.INSTANCE.copy(req);
final int nbytes = 128;
final ClassicHttpResponse resp = new \
BasicClassicHttpResponse(HttpStatus.SC_OK, "OK"); setMinimalResponseHeaders(resp);
@@ -110,7 +110,7 @@ public class TestResponseProtocolCompliance {
@Test(expected=ClientProtocolException.class)
public void throwsExceptionIfOriginReturnsPartialResponseWhenNotRequested() \
throws Exception { final HttpGet req = new HttpGet("http://foo.example.com/");
- final ClassicHttpRequest wrapper = ExecSupport.copy(req);
+ final ClassicHttpRequest wrapper = ClassicRequestCopier.INSTANCE.copy(req);
final int nbytes = 128;
final ClassicHttpResponse resp = makePartialResponse(nbytes);
resp.setEntity(HttpTestUtils.makeBody(nbytes));
@@ -121,7 +121,7 @@ public class TestResponseProtocolCompliance {
@Test
public void consumesPartialContentFromOriginEvenIfNotRequested() throws \
Exception { final HttpGet req = new HttpGet("http://foo.example.com/");
- final ClassicHttpRequest wrapper = ExecSupport.copy(req);
+ final ClassicHttpRequest wrapper = ClassicRequestCopier.INSTANCE.copy(req);
final int nbytes = 128;
final ClassicHttpResponse resp = makePartialResponse(nbytes);
@@ -144,7 +144,7 @@ public class TestResponseProtocolCompliance {
req.setHeader("Content-Type", "application/octet-stream");
final HttpEntity postBody = new \
ByteArrayEntity(HttpTestUtils.getRandomBytes(nbytes)); req.setEntity(postBody);
- final ClassicHttpRequest wrapper = ExecSupport.copy(req);
+ final ClassicHttpRequest wrapper = ClassicRequestCopier.INSTANCE.copy(req);
final ClassicHttpResponse resp = new \
BasicClassicHttpResponse(HttpStatus.SC_CONTINUE, "Continue"); final Flag closed = \
new Flag();
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/9ac5808b/httpclient5/src/main/java/org/apache/hc/client5/http/classic/ExecChain.java
----------------------------------------------------------------------
diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/classic/ExecChain.java \
b/httpclient5/src/main/java/org/apache/hc/client5/http/classic/ExecChain.java index \
30ecc47..fd1e92e 100644
--- a/httpclient5/src/main/java/org/apache/hc/client5/http/classic/ExecChain.java
+++ b/httpclient5/src/main/java/org/apache/hc/client5/http/classic/ExecChain.java
@@ -40,12 +40,14 @@ public interface ExecChain {
final class Scope {
+ public final String exchangeId;
public final HttpRoute route;
public final ClassicHttpRequest originalRequest;
public final ExecRuntime execRuntime;
public final HttpClientContext clientContext;
- public Scope(final HttpRoute route, final ClassicHttpRequest \
originalRequest, final ExecRuntime execRuntime, final HttpClientContext \
clientContext) { + public Scope(final String exchangeId, final HttpRoute \
route, final ClassicHttpRequest originalRequest, final ExecRuntime execRuntime, final \
HttpClientContext clientContext) { + this.exchangeId = \
Args.notNull(exchangeId, "Exchange id"); this.route = Args.notNull(route, "Route");
this.originalRequest = Args.notNull(originalRequest, "Original \
request"); this.execRuntime = Args.notNull(execRuntime, "Exec runtime");
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/9ac5808b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/ExecSupport.java
----------------------------------------------------------------------
diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/ExecSupport.java \
b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/ExecSupport.java index \
dc99528..9be8153 100644
--- a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/ExecSupport.java
+++ b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/ExecSupport.java
@@ -26,21 +26,8 @@
*/
package org.apache.hc.client5.http.impl;
-import java.util.Iterator;
import java.util.concurrent.atomic.AtomicLong;
-import org.apache.hc.core5.http.ClassicHttpRequest;
-import org.apache.hc.core5.http.ClassicHttpResponse;
-import org.apache.hc.core5.http.Header;
-import org.apache.hc.core5.http.HttpMessage;
-import org.apache.hc.core5.http.HttpRequest;
-import org.apache.hc.core5.http.HttpResponse;
-import org.apache.hc.core5.http.HttpVersion;
-import org.apache.hc.core5.http.message.BasicClassicHttpRequest;
-import org.apache.hc.core5.http.message.BasicClassicHttpResponse;
-import org.apache.hc.core5.http.message.BasicHttpRequest;
-import org.apache.hc.core5.http.message.BasicHttpResponse;
-
public final class ExecSupport {
private static final AtomicLong COUNT = new AtomicLong(0);
@@ -49,64 +36,4 @@ public final class ExecSupport {
return COUNT.incrementAndGet();
}
- private static void copyMessageProperties(final HttpMessage original, final \
HttpMessage copy) {
- copy.setVersion(original.getVersion());
- for (final Iterator<Header> it = original.headerIterator(); it.hasNext(); ) \
{
- copy.addHeader(it.next());
- }
- }
-
- private static void copyRequestProperties(final HttpRequest original, final \
HttpRequest copy) {
- copyMessageProperties(original, copy);
- if (copy.getVersion() == null) {
- copy.setVersion(HttpVersion.DEFAULT);
- }
- copy.setScheme(original.getScheme());
- copy.setAuthority(original.getAuthority());
- }
-
- private static void copyResponseProperties(final HttpResponse original, final \
HttpResponse copy) {
- copyMessageProperties(original, copy);
- copy.setLocale(copy.getLocale());
- copy.setReasonPhrase(copy.getReasonPhrase());
- }
-
- public static HttpRequest copy(final HttpRequest original) {
- if (original == null) {
- return null;
- }
- final BasicHttpRequest copy = new BasicHttpRequest(original.getMethod(), \
original.getPath());
- copyRequestProperties(original, copy);
- return copy;
- }
-
- public static HttpResponse copy(final HttpResponse original) {
- if (original == null) {
- return null;
- }
- final BasicHttpResponse copy = new BasicHttpResponse(original.getCode());
- copyResponseProperties(original, copy);
- return copy;
- }
-
- public static ClassicHttpRequest copy(final ClassicHttpRequest original) {
- if (original == null) {
- return null;
- }
- final BasicClassicHttpRequest copy = new \
BasicClassicHttpRequest(original.getMethod(), original.getPath());
- copyRequestProperties(original, copy);
- copy.setEntity(original.getEntity());
- return copy;
- }
-
- public static ClassicHttpResponse copy(final ClassicHttpResponse original) {
- if (original == null) {
- return null;
- }
- final BasicClassicHttpResponse copy = new \
BasicClassicHttpResponse(original.getCode());
- copyResponseProperties(original, copy);
- copy.setEntity(original.getEntity());
- return copy;
- }
-
}
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/9ac5808b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/MessageCopier.java
----------------------------------------------------------------------
diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/MessageCopier.java \
b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/MessageCopier.java new \
file mode 100644 index 0000000..cd152ea
--- /dev/null
+++ b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/MessageCopier.java
@@ -0,0 +1,41 @@
+/*
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation. For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ */
+
+package org.apache.hc.client5.http.impl;
+
+import org.apache.hc.core5.http.HttpMessage;
+
+/**
+ * Abstract HTTP message cloner.
+ *
+ * @since 5.0
+ */
+public interface MessageCopier<T extends HttpMessage> {
+
+ T copy(T object);
+
+}
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/9ac5808b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/RequestCopier.java
----------------------------------------------------------------------
diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/RequestCopier.java \
b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/RequestCopier.java new \
file mode 100644 index 0000000..b119018
--- /dev/null
+++ b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/RequestCopier.java
@@ -0,0 +1,53 @@
+/*
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation. For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ */
+package org.apache.hc.client5.http.impl;
+
+import java.util.Iterator;
+
+import org.apache.hc.core5.http.Header;
+import org.apache.hc.core5.http.HttpRequest;
+import org.apache.hc.core5.http.message.BasicHttpRequest;
+
+public final class RequestCopier implements MessageCopier<HttpRequest> {
+
+ public static final RequestCopier INSTANCE = new RequestCopier();
+
+ public HttpRequest copy(final HttpRequest original) {
+ if (original == null) {
+ return null;
+ }
+ final BasicHttpRequest copy = new BasicHttpRequest(original.getMethod(), \
original.getPath()); + copy.setVersion(original.getVersion());
+ for (final Iterator<Header> it = original.headerIterator(); it.hasNext(); ) \
{ + copy.addHeader(it.next());
+ }
+ copy.setScheme(original.getScheme());
+ copy.setAuthority(original.getAuthority());
+ return copy;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/9ac5808b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/AsyncRetryExec.java
----------------------------------------------------------------------
diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/AsyncRetryExec.java \
b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/AsyncRetryExec.java \
index 162915e..82fc6f9 100644
--- a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/AsyncRetryExec.java
+++ b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/AsyncRetryExec.java
@@ -33,7 +33,7 @@ import org.apache.hc.client5.http.HttpRoute;
import org.apache.hc.client5.http.async.AsyncExecCallback;
import org.apache.hc.client5.http.async.AsyncExecChain;
import org.apache.hc.client5.http.async.AsyncExecChainHandler;
-import org.apache.hc.client5.http.impl.ExecSupport;
+import org.apache.hc.client5.http.impl.RequestCopier;
import org.apache.hc.client5.http.protocol.HttpClientContext;
import org.apache.hc.core5.http.EntityDetails;
import org.apache.hc.core5.http.HttpException;
@@ -64,7 +64,7 @@ class AsyncRetryExec implements AsyncExecChainHandler {
final AsyncExecChain chain,
final AsyncExecCallback asyncExecCallback) throws HttpException, \
IOException {
- chain.proceed(ExecSupport.copy(request), entityProducer, scope, new \
AsyncExecCallback() { + chain.proceed(RequestCopier.INSTANCE.copy(request), \
entityProducer, scope, new AsyncExecCallback() {
@Override
public AsyncDataConsumer handleResponse(
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/9ac5808b/httpclient5 \
/src/main/java/org/apache/hc/client5/http/impl/async/InternalHttpAsyncClient.java
----------------------------------------------------------------------
diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/InternalHttpAsyncClient.java \
b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/InternalHttpAsyncClient.java
index c6f0d93..e1370e8 100644
--- a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/InternalHttpAsyncClient.java
+++ b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/InternalHttpAsyncClient.java
@@ -43,6 +43,7 @@ import org.apache.hc.client5.http.config.RequestConfig;
import org.apache.hc.client5.http.cookie.CookieSpecProvider;
import org.apache.hc.client5.http.cookie.CookieStore;
import org.apache.hc.client5.http.impl.ExecSupport;
+import org.apache.hc.client5.http.impl.RequestCopier;
import org.apache.hc.client5.http.nio.AsyncClientConnectionManager;
import org.apache.hc.client5.http.protocol.HttpClientContext;
import org.apache.hc.client5.http.routing.HttpRoutePlanner;
@@ -161,7 +162,7 @@ class InternalHttpAsyncClient extends AbstractHttpAsyncClientBase \
{
final AsyncExecChain.Scope scope = new AsyncExecChain.Scope(exchangeId, \
route, request, clientContext, execRuntime); execChain.execute(
- ExecSupport.copy(request),
+ RequestCopier.INSTANCE.copy(request),
entityDetails != null ? new \
InternalAsyncEntityProducer(exchangeHandler, entityDetails) : null, scope,
new AsyncExecCallback() {
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/9ac5808b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/ClassicRequestCopier.java
----------------------------------------------------------------------
diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/ClassicRequestCopier.java \
b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/ClassicRequestCopier.java
new file mode 100644
index 0000000..12f044d
--- /dev/null
+++ b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/ClassicRequestCopier.java
@@ -0,0 +1,55 @@
+/*
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation. For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ */
+package org.apache.hc.client5.http.impl.classic;
+
+import java.util.Iterator;
+
+import org.apache.hc.client5.http.impl.MessageCopier;
+import org.apache.hc.core5.http.ClassicHttpRequest;
+import org.apache.hc.core5.http.Header;
+import org.apache.hc.core5.http.message.BasicClassicHttpRequest;
+
+public final class ClassicRequestCopier implements MessageCopier<ClassicHttpRequest> \
{ +
+ public static final ClassicRequestCopier INSTANCE = new ClassicRequestCopier();
+
+ public ClassicHttpRequest copy(final ClassicHttpRequest original) {
+ if (original == null) {
+ return null;
+ }
+ final BasicClassicHttpRequest copy = new \
BasicClassicHttpRequest(original.getMethod(), original.getPath()); + \
copy.setVersion(original.getVersion()); + for (final Iterator<Header> it = \
original.headerIterator(); it.hasNext(); ) { + copy.addHeader(it.next());
+ }
+ copy.setScheme(original.getScheme());
+ copy.setAuthority(original.getAuthority());
+ copy.setEntity(original.getEntity());
+ return copy;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/9ac5808b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/InternalHttpClient.java
----------------------------------------------------------------------
diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/InternalHttpClient.java \
b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/InternalHttpClient.java
index b759809..795938a 100644
--- a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/InternalHttpClient.java
+++ b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/InternalHttpClient.java
@@ -157,10 +157,11 @@ class InternalHttpClient extends CloseableHttpClient \
implements Configurable { }
setupContext(localcontext);
final HttpRoute route = determineRoute(target, request, localcontext);
+ final String exchangeId = String.format("ex-%08X", \
ExecSupport.getNextExecNumber());
final ExecRuntime execRuntime = new ExecRuntimeImpl(log, connManager, \
requestExecutor,
request instanceof CancellableAware ? (CancellableAware) request \
: null);
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, \
execRuntime, localcontext);
- final ClassicHttpResponse response = \
this.execChain.execute(ExecSupport.copy(request), scope); + final \
ExecChain.Scope scope = new ExecChain.Scope(exchangeId, route, request, execRuntime, \
localcontext); + final ClassicHttpResponse response = \
this.execChain.execute(ClassicRequestCopier.INSTANCE.copy(request), scope); return \
CloseableHttpResponse.adapt(response); } catch (final HttpException httpException) {
throw new ClientProtocolException(httpException.getMessage(), \
httpException);
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/9ac5808b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/RedirectExec.java
----------------------------------------------------------------------
diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/RedirectExec.java \
b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/RedirectExec.java \
index 556c9df..a4fae90 100644
--- a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/RedirectExec.java
+++ b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/RedirectExec.java
@@ -159,6 +159,7 @@ final class RedirectExec implements ExecChainHandler {
}
currentRoute = this.routePlanner.determineRoute(newTarget, \
context); currentScope = new ExecChain.Scope(
+ currentScope.exchangeId,
currentRoute,
currentScope.originalRequest,
currentScope.execRuntime,
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/9ac5808b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/RetryExec.java
----------------------------------------------------------------------
diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/RetryExec.java \
b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/RetryExec.java \
index cd80c54..42167b1 100644
--- a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/RetryExec.java
+++ b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/RetryExec.java
@@ -34,7 +34,6 @@ import org.apache.hc.client5.http.HttpRoute;
import org.apache.hc.client5.http.NonRepeatableRequestException;
import org.apache.hc.client5.http.classic.ExecChain;
import org.apache.hc.client5.http.classic.ExecChainHandler;
-import org.apache.hc.client5.http.impl.ExecSupport;
import org.apache.hc.client5.http.protocol.HttpClientContext;
import org.apache.hc.core5.annotation.Contract;
import org.apache.hc.core5.annotation.ThreadingBehavior;
@@ -106,7 +105,7 @@ final class RetryExec implements ExecChainHandler {
throw new NonRepeatableRequestException("Cannot retry \
request " +
"with a non-repeatable request entity", ex);
}
- currentRequest = ExecSupport.copy(scope.originalRequest);
+ currentRequest = \
ClassicRequestCopier.INSTANCE.copy(scope.originalRequest); if \
(this.log.isInfoEnabled()) { this.log.info("Retrying request to " + route);
}
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/9ac5808b/httpclient5 \
/src/main/java/org/apache/hc/client5/http/impl/classic/ServiceUnavailableRetryExec.java
----------------------------------------------------------------------
diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/ServiceUnavailableRetryExec.java \
b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/ServiceUnavailableRetryExec.java
index 970f968..e36a02f 100644
--- a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/ServiceUnavailableRetryExec.java
+++ b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/ServiceUnavailableRetryExec.java
@@ -33,7 +33,6 @@ import java.io.InterruptedIOException;
import org.apache.hc.client5.http.ServiceUnavailableRetryStrategy;
import org.apache.hc.client5.http.classic.ExecChain;
import org.apache.hc.client5.http.classic.ExecChainHandler;
-import org.apache.hc.client5.http.impl.ExecSupport;
import org.apache.hc.client5.http.protocol.HttpClientContext;
import org.apache.hc.core5.annotation.Contract;
import org.apache.hc.core5.annotation.ThreadingBehavior;
@@ -101,7 +100,7 @@ final class ServiceUnavailableRetryExec implements \
ExecChainHandler { throw new InterruptedIOException();
}
}
- currentRequest = ExecSupport.copy(scope.originalRequest);
+ currentRequest = \
ClassicRequestCopier.INSTANCE.copy(scope.originalRequest); } else {
return response;
}
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/9ac5808b/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestConnectExec.java
----------------------------------------------------------------------
diff --git a/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestConnectExec.java \
b/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestConnectExec.java
index 4f5d8be..20b1aa8 100644
--- a/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestConnectExec.java
+++ b/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestConnectExec.java
@@ -114,7 +114,7 @@ public class TestConnectExec {
Mockito.same(request),
Mockito.same(response),
Mockito.<HttpClientContext>any())).thenReturn(false);
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, \
execRuntime, context); + final ExecChain.Scope scope = new \
ExecChain.Scope("test", route, request, execRuntime, context); exec.execute(request, \
scope, execChain);
Mockito.verify(execRuntime).acquireConnection(route, "Blah", context);
Mockito.verify(execRuntime).connect(context);
@@ -130,7 +130,7 @@ public class TestConnectExec {
Mockito.doAnswer(connectionState.connectAnswer()).when(execRuntime).connect(Mockito.<HttpClientContext>any());
Mockito.when(execRuntime.isConnected()).thenAnswer(connectionState.isConnectedAnswer());
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, \
execRuntime, context); + final ExecChain.Scope scope = new \
ExecChain.Scope("test", route, request, execRuntime, context); exec.execute(request, \
scope, execChain);
Mockito.verify(execRuntime).connect(context);
@@ -147,7 +147,7 @@ public class TestConnectExec {
Mockito.doAnswer(connectionState.connectAnswer()).when(execRuntime).connect(Mockito.<HttpClientContext>any());
Mockito.when(execRuntime.isConnected()).thenAnswer(connectionState.isConnectedAnswer());
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, \
execRuntime, context); + final ExecChain.Scope scope = new \
ExecChain.Scope("test", route, request, execRuntime, context); exec.execute(request, \
scope, execChain);
Mockito.verify(execRuntime).connect(context);
@@ -168,7 +168,7 @@ public class TestConnectExec {
Mockito.<ClassicHttpRequest>any(),
Mockito.<HttpClientContext>any())).thenReturn(response);
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, \
execRuntime, context); + final ExecChain.Scope scope = new \
ExecChain.Scope("test", route, request, execRuntime, context); exec.execute(request, \
scope, execChain);
Mockito.verify(execRuntime).connect(context);
@@ -197,7 +197,7 @@ public class TestConnectExec {
Mockito.<ClassicHttpRequest>any(),
Mockito.<HttpClientContext>any())).thenReturn(response);
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, \
execRuntime, context); + final ExecChain.Scope scope = new \
ExecChain.Scope("test", route, request, execRuntime, context); exec.execute(request, \
scope, execChain); }
@@ -216,7 +216,7 @@ public class TestConnectExec {
Mockito.<ClassicHttpRequest>any(),
Mockito.<HttpClientContext>any())).thenReturn(response);
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, \
execRuntime, context); + final ExecChain.Scope scope = new \
ExecChain.Scope("test", route, request, execRuntime, context); try {
exec.execute(request, scope, execChain);
} catch (final TunnelRefusedException ex) {
@@ -260,7 +260,7 @@ public class TestConnectExec {
Mockito.<Map<String, AuthChallenge>>any(),
Mockito.<HttpClientContext>any())).thenReturn(Collections.<AuthScheme>singletonList(new \
BasicScheme()));
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, \
execRuntime, context); + final ExecChain.Scope scope = new \
ExecChain.Scope("test", route, request, execRuntime, context); exec.execute(request, \
scope, execChain);
Mockito.verify(execRuntime).connect(context);
@@ -300,7 +300,7 @@ public class TestConnectExec {
Mockito.<Map<String, AuthChallenge>>any(),
Mockito.<HttpClientContext>any())).thenReturn(Collections.<AuthScheme>singletonList(new \
BasicScheme()));
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, \
execRuntime, context); + final ExecChain.Scope scope = new \
ExecChain.Scope("test", route, request, execRuntime, context); exec.execute(request, \
scope, execChain);
Mockito.verify(execRuntime).connect(context);
@@ -321,7 +321,7 @@ public class TestConnectExec {
Mockito.doAnswer(connectionState.connectAnswer()).when(execRuntime).connect(Mockito.<HttpClientContext>any());
Mockito.when(execRuntime.isConnected()).thenAnswer(connectionState.isConnectedAnswer());
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, \
execRuntime, context); + final ExecChain.Scope scope = new \
ExecChain.Scope("test", route, request, execRuntime, context); exec.execute(request, \
scope, execChain); }
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/9ac5808b/httpclient5 \
/src/test/java/org/apache/hc/client5/http/impl/classic/TestContentCompressionExec.java
----------------------------------------------------------------------
diff --git a/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestContentCompressionExec.java \
b/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestContentCompressionExec.java
index 950b6fb..ff96201 100644
--- a/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestContentCompressionExec.java
+++ b/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestContentCompressionExec.java
@@ -69,7 +69,7 @@ public class TestContentCompressionExec {
public void setup() {
host = new HttpHost("somehost", 80);
context = HttpClientContext.create();
- scope = new ExecChain.Scope(new HttpRoute(host), originaRequest, \
execRuntime, context); + scope = new ExecChain.Scope("test", new \
HttpRoute(host), originaRequest, execRuntime, context); impl = new \
ContentCompressionExec(); }
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/9ac5808b/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestMainClientExec.java
----------------------------------------------------------------------
diff --git a/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestMainClientExec.java \
b/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestMainClientExec.java
index 10313d1..bef2fa0 100644
--- a/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestMainClientExec.java
+++ b/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestMainClientExec.java
@@ -96,7 +96,7 @@ public class TestMainClientExec {
Mockito.same(response),
Mockito.<HttpClientContext>any())).thenReturn(false);
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, endpoint, \
context); + final ExecChain.Scope scope = new ExecChain.Scope("test", route, \
request, endpoint, context);
final ClassicHttpResponse finalResponse = mainClientExec.execute(request, \
scope, null); Mockito.verify(endpoint).execute(request, context);
Mockito.verify(endpoint, Mockito.times(1)).markConnectionNonReusable();
@@ -124,7 +124,7 @@ public class TestMainClientExec {
Mockito.same(response),
Mockito.<HttpClientContext>any())).thenReturn(false);
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, endpoint, \
context); + final ExecChain.Scope scope = new ExecChain.Scope("test", route, \
request, endpoint, context);
final ClassicHttpResponse finalResponse = mainClientExec.execute(request, \
scope, null);
Mockito.verify(endpoint).execute(request, context);
@@ -160,7 +160,7 @@ public class TestMainClientExec {
Mockito.same(response),
Mockito.<HttpClientContext>any())).thenReturn(TimeValue.ofMillis(678L));
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, endpoint, \
context); + final ExecChain.Scope scope = new ExecChain.Scope("test", route, \
request, endpoint, context);
final ClassicHttpResponse finalResponse = mainClientExec.execute(request, \
scope, null);
Mockito.verify(endpoint).execute(request, context);
@@ -192,7 +192,7 @@ public class TestMainClientExec {
Mockito.same(response),
Mockito.<HttpClientContext>any())).thenReturn(TimeValue.ofMillis(678L));
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, endpoint, \
context); + final ExecChain.Scope scope = new ExecChain.Scope("test", route, \
request, endpoint, context);
final ClassicHttpResponse finalResponse = mainClientExec.execute(request, \
scope, null);
Mockito.verify(endpoint).execute(request, context);
@@ -224,7 +224,7 @@ public class TestMainClientExec {
Mockito.same(response),
Mockito.<HttpClientContext>any())).thenReturn(Boolean.FALSE);
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, endpoint, \
context); + final ExecChain.Scope scope = new ExecChain.Scope("test", route, \
request, endpoint, context);
final ClassicHttpResponse finalResponse = mainClientExec.execute(request, \
scope, null);
Mockito.verify(endpoint, Mockito.times(1)).execute(request, context);
Mockito.verify(endpoint, Mockito.never()).disconnect();
@@ -248,7 +248,7 @@ public class TestMainClientExec {
Mockito.same(request),
Mockito.<HttpClientContext>any())).thenThrow(new \
ConnectionShutdownException());
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, endpoint, \
context); + final ExecChain.Scope scope = new ExecChain.Scope("test", route, \
request, endpoint, context); try {
mainClientExec.execute(request, scope, null);
} catch (Exception ex) {
@@ -267,7 +267,7 @@ public class TestMainClientExec {
Mockito.same(request),
Mockito.<HttpClientContext>any())).thenThrow(new \
RuntimeException("Ka-boom"));
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, endpoint, \
context); + final ExecChain.Scope scope = new ExecChain.Scope("test", route, \
request, endpoint, context); try {
mainClientExec.execute(request, scope, null);
} catch (final Exception ex) {
@@ -286,7 +286,7 @@ public class TestMainClientExec {
Mockito.same(request),
Mockito.<HttpClientContext>any())).thenThrow(new \
HttpException("Ka-boom"));
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, endpoint, \
context); + final ExecChain.Scope scope = new ExecChain.Scope("test", route, \
request, endpoint, context); try {
mainClientExec.execute(request, scope, null);
} catch (final Exception ex) {
@@ -305,7 +305,7 @@ public class TestMainClientExec {
Mockito.same(request),
Mockito.<HttpClientContext>any())).thenThrow(new \
IOException("Ka-boom"));
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, endpoint, \
context); + final ExecChain.Scope scope = new ExecChain.Scope("test", route, \
request, endpoint, context); try {
mainClientExec.execute(request, scope, null);
} catch (final Exception ex) {
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/9ac5808b/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestProtocolExec.java
----------------------------------------------------------------------
diff --git a/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestProtocolExec.java \
b/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestProtocolExec.java
index 881af34..ca498be 100644
--- a/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestProtocolExec.java
+++ b/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestProtocolExec.java
@@ -111,7 +111,7 @@ public class TestProtocolExec {
Mockito.<ClassicHttpRequest>any(),
Mockito.<ExecChain.Scope>any())).thenReturn(response);
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, \
execRuntime, context); + final ExecChain.Scope scope = new \
ExecChain.Scope("test", route, request, execRuntime, context); \
protocolExec.execute(request, scope, chain);
Mockito.verify(httpProcessor).process(request, null, context);
@@ -135,7 +135,7 @@ public class TestProtocolExec {
Mockito.<ClassicHttpRequest>any(),
Mockito.<ExecChain.Scope>any())).thenReturn(response);
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, \
execRuntime, context); + final ExecChain.Scope scope = new \
ExecChain.Scope("test", route, request, execRuntime, context); \
protocolExec.execute(request, scope, chain);
Assert.assertEquals(new URI("http://bar/test"), request.getUri());
final CredentialsProvider credentialsProvider = \
context.getCredentialsProvider(); @@ -157,7 +157,7 @@ public class TestProtocolExec {
Mockito.<ExecChain.Scope>any())).thenReturn(response);
Mockito.doThrow(new HttpException("Ooopsie")).when(httpProcessor).process(
Mockito.same(response), Mockito.<EntityDetails>isNull(), \
Mockito.<HttpContext>any());
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, \
execRuntime, context); + final ExecChain.Scope scope = new \
ExecChain.Scope("test", route, request, execRuntime, context); try {
protocolExec.execute(request, scope, chain);
} catch (final Exception ex) {
@@ -178,7 +178,7 @@ public class TestProtocolExec {
Mockito.<ExecChain.Scope>any())).thenReturn(response);
Mockito.doThrow(new IOException("Ooopsie")).when(httpProcessor).process(
Mockito.same(response), Mockito.<EntityDetails>isNull(), \
Mockito.<HttpContext>any());
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, \
execRuntime, context); + final ExecChain.Scope scope = new \
ExecChain.Scope("test", route, request, execRuntime, context); try {
protocolExec.execute(request, scope, chain);
} catch (final Exception ex) {
@@ -199,7 +199,7 @@ public class TestProtocolExec {
Mockito.<ExecChain.Scope>any())).thenReturn(response);
Mockito.doThrow(new \
RuntimeException("Ooopsie")).when(httpProcessor).process(
Mockito.same(response), Mockito.<EntityDetails>isNull(), \
Mockito.<HttpContext>any());
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, \
execRuntime, context); + final ExecChain.Scope scope = new \
ExecChain.Scope("test", route, request, execRuntime, context); try {
protocolExec.execute(request, scope, chain);
} catch (final Exception ex) {
@@ -238,7 +238,7 @@ public class TestProtocolExec {
Mockito.<HttpClientContext>any())).thenReturn(Collections.<AuthScheme>singletonList(new \
BasicScheme()));
Mockito.when(execRuntime.isConnectionReusable()).thenReturn(true);
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, \
execRuntime, context); + final ExecChain.Scope scope = new \
ExecChain.Scope("test", route, request, execRuntime, context);
final ClassicHttpResponse finalResponse = protocolExec.execute(request, \
scope, chain); Mockito.verify(chain, Mockito.times(2)).proceed(request, scope);
Mockito.verify(instream1).close();
@@ -284,7 +284,7 @@ public class TestProtocolExec {
Mockito.<Map<String, AuthChallenge>>any(),
Mockito.<HttpClientContext>any())).thenReturn(Collections.<AuthScheme>singletonList(new \
BasicScheme()));
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, \
execRuntime, context); + final ExecChain.Scope scope = new \
ExecChain.Scope("test", route, request, execRuntime, context);
final ClassicHttpResponse finalResponse = protocolExec.execute(request, \
scope, chain); Mockito.verify(chain, Mockito.times(2)).proceed(request, scope);
Mockito.verify(execRuntime).disconnect();
@@ -334,7 +334,7 @@ public class TestProtocolExec {
Mockito.<Map<String, AuthChallenge>>any(),
Mockito.<HttpClientContext>any())).thenReturn(Collections.<AuthScheme>singletonList(new \
BasicScheme()));
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, \
execRuntime, context); + final ExecChain.Scope scope = new \
ExecChain.Scope("test", route, request, execRuntime, context); \
protocolExec.execute(request, scope, chain); }
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/9ac5808b/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestRedirectExec.java
----------------------------------------------------------------------
diff --git a/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestRedirectExec.java \
b/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestRedirectExec.java
index 0346ead..2339a89 100644
--- a/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestRedirectExec.java
+++ b/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestRedirectExec.java
@@ -122,7 +122,7 @@ public class TestRedirectExec {
Mockito.eq(target),
Mockito.<HttpClientContext>any())).thenReturn(route);
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, endpoint, \
context); + final ExecChain.Scope scope = new ExecChain.Scope("test", route, \
request, endpoint, context); redirectExec.execute(request, scope, chain);
final ArgumentCaptor<ClassicHttpRequest> reqCaptor = \
ArgumentCaptor.forClass( @@ -171,7 +171,7 @@ public class TestRedirectExec {
Mockito.eq(target),
Mockito.<HttpClientContext>any())).thenReturn(route);
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, endpoint, \
context); + final ExecChain.Scope scope = new ExecChain.Scope("test", route, \
request, endpoint, context); redirectExec.execute(request, scope, chain);
}
@@ -202,7 +202,7 @@ public class TestRedirectExec {
Mockito.eq(target),
Mockito.<HttpClientContext>any())).thenReturn(route);
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, endpoint, \
context); + final ExecChain.Scope scope = new ExecChain.Scope("test", route, \
request, endpoint, context); redirectExec.execute(request, scope, chain);
}
@@ -248,7 +248,7 @@ public class TestRedirectExec {
Mockito.eq(otherHost),
Mockito.<HttpClientContext>any())).thenReturn(new \
HttpRoute(otherHost));
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, endpoint, \
context); + final ExecChain.Scope scope = new ExecChain.Scope("test", route, \
request, endpoint, context); redirectExec.execute(request, scope, chain);
final AuthExchange authExchange1 = context.getAuthExchange(target);
@@ -280,7 +280,7 @@ public class TestRedirectExec {
Mockito.same(response1),
Mockito.<HttpClientContext>any()));
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, endpoint, \
context); + final ExecChain.Scope scope = new ExecChain.Scope("test", route, \
request, endpoint, context); try {
redirectExec.execute(request, scope, chain);
} catch (final Exception ex) {
@@ -313,7 +313,7 @@ public class TestRedirectExec {
Mockito.same(response1),
Mockito.<HttpClientContext>any());
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, endpoint, \
context); + final ExecChain.Scope scope = new ExecChain.Scope("test", route, \
request, endpoint, context); try {
redirectExec.execute(request, scope, chain);
} catch (final Exception ex) {
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/9ac5808b/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestRetryExec.java
----------------------------------------------------------------------
diff --git a/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestRetryExec.java \
b/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestRetryExec.java
index d21a022..030d175 100644
--- a/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestRetryExec.java
+++ b/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestRetryExec.java
@@ -38,7 +38,6 @@ import org.apache.hc.client5.http.classic.ExecRuntime;
import org.apache.hc.client5.http.classic.methods.HttpGet;
import org.apache.hc.client5.http.classic.methods.HttpPost;
import org.apache.hc.client5.http.entity.EntityBuilder;
-import org.apache.hc.client5.http.impl.ExecSupport;
import org.apache.hc.client5.http.protocol.HttpClientContext;
import org.apache.hc.core5.http.ClassicHttpRequest;
import org.apache.hc.core5.http.Header;
@@ -104,8 +103,8 @@ public class TestRetryExec {
Mockito.<IOException>any(),
Mockito.eq(1),
Mockito.<HttpContext>any())).thenReturn(Boolean.TRUE);
- final ExecChain.Scope scope = new ExecChain.Scope(route, originalRequest, \
endpoint, context);
- final ClassicHttpRequest request = ExecSupport.copy(originalRequest);
+ final ExecChain.Scope scope = new ExecChain.Scope("test", route, \
originalRequest, endpoint, context); + final ClassicHttpRequest request = \
ClassicRequestCopier.INSTANCE.copy(originalRequest); try {
retryExec.execute(request, scope, chain);
} catch (final IOException ex) {
@@ -127,8 +126,8 @@ public class TestRetryExec {
Mockito.<ExecChain.Scope>any())).thenThrow(new \
IOException("Ka-boom")); \
Mockito.when(endpoint.isExecutionAborted()).thenReturn(true);
- final ExecChain.Scope scope = new ExecChain.Scope(route, originalRequest, \
endpoint, context);
- final ClassicHttpRequest request = ExecSupport.copy(originalRequest);
+ final ExecChain.Scope scope = new ExecChain.Scope("test", route, \
originalRequest, endpoint, context); + final ClassicHttpRequest request = \
ClassicRequestCopier.INSTANCE.copy(originalRequest); try {
retryExec.execute(request, scope, chain);
} catch (final IOException ex) {
@@ -172,8 +171,8 @@ public class TestRetryExec {
Mockito.<IOException>any(),
Mockito.eq(1),
Mockito.<HttpContext>any())).thenReturn(Boolean.TRUE);
- final ExecChain.Scope scope = new ExecChain.Scope(route, originalRequest, \
endpoint, context);
- final ClassicHttpRequest request = ExecSupport.copy(originalRequest);
+ final ExecChain.Scope scope = new ExecChain.Scope("test", route, \
originalRequest, endpoint, context); + final ClassicHttpRequest request = \
ClassicRequestCopier.INSTANCE.copy(originalRequest); try {
retryExec.execute(request, scope, chain);
} catch (final IOException ex) {
http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/9ac5808b/httpclient5 \
/src/test/java/org/apache/hc/client5/http/impl/classic/TestServiceUnavailableRetryExec.java
----------------------------------------------------------------------
diff --git a/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestServiceUnavailableRetryExec.java \
b/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestServiceUnavailableRetryExec.java
index f6ab7b3..10371c8 100644
--- a/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestServiceUnavailableRetryExec.java
+++ b/httpclient5/src/test/java/org/apache/hc/client5/http/impl/classic/TestServiceUnavailableRetryExec.java
@@ -87,7 +87,7 @@ public class TestServiceUnavailableRetryExec {
Mockito.<HttpResponse>any(),
Mockito.<HttpContext>any())).thenReturn(0L);
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, endpoint, \
context); + final ExecChain.Scope scope = new ExecChain.Scope("test", route, \
request, endpoint, context); retryExec.execute(request, scope, chain);
Mockito.verify(chain, Mockito.times(2)).proceed(
@@ -110,7 +110,7 @@ public class TestServiceUnavailableRetryExec {
Mockito.<HttpResponse>any(),
Mockito.anyInt(),
Mockito.<HttpContext>any());
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, endpoint, \
context); + final ExecChain.Scope scope = new ExecChain.Scope("test", route, \
request, endpoint, context); try {
retryExec.execute(request, scope, chain);
} catch (final Exception ex) {
@@ -138,7 +138,7 @@ public class TestServiceUnavailableRetryExec {
Mockito.anyInt(),
Mockito.<HttpContext>any())).thenReturn(Boolean.TRUE, \
Boolean.FALSE);
- final ExecChain.Scope scope = new ExecChain.Scope(route, request, endpoint, \
context); + final ExecChain.Scope scope = new ExecChain.Scope("test", route, \
request, endpoint, context);
final ClassicHttpResponse finalResponse = retryExec.execute(request, scope, \
chain);
Assert.assertSame(response, finalResponse);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic