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 2017/05/01 11:11:11 UTC

svn commit: r1793308 [11/11] - in /httpcomponents/httpclient/trunk: httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/ httpclient5-cache/src/test/java/org/apache...

Modified: httpcomponents/httpclient/trunk/httpclient5/src/test/java/org/apache/hc/client5/http/impl/sync/TestProtocolExec.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/test/java/org/apache/hc/client5/http/impl/sync/TestProtocolExec.java?rev=1793308&r1=1793307&r2=1793308&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient5/src/test/java/org/apache/hc/client5/http/impl/sync/TestProtocolExec.java (original)
+++ httpcomponents/httpclient/trunk/httpclient5/src/test/java/org/apache/hc/client5/http/impl/sync/TestProtocolExec.java Mon May  1 11:11:09 2017
@@ -34,8 +34,10 @@ import org.apache.hc.client5.http.auth.A
 import org.apache.hc.client5.http.auth.Credentials;
 import org.apache.hc.client5.http.auth.CredentialsProvider;
 import org.apache.hc.client5.http.protocol.HttpClientContext;
-import org.apache.hc.client5.http.sync.methods.HttpExecutionAware;
+import org.apache.hc.client5.http.sync.ExecChain;
+import org.apache.hc.client5.http.sync.ExecRuntime;
 import org.apache.hc.client5.http.sync.methods.HttpGet;
+import org.apache.hc.core5.http.ClassicHttpRequest;
 import org.apache.hc.core5.http.ClassicHttpResponse;
 import org.apache.hc.core5.http.EntityDetails;
 import org.apache.hc.core5.http.HttpException;
@@ -53,11 +55,11 @@ import org.mockito.MockitoAnnotations;
 public class TestProtocolExec {
 
     @Mock
-    private ClientExecChain requestExecutor;
-    @Mock
     private HttpProcessor httpProcessor;
     @Mock
-    private HttpExecutionAware execAware;
+    private ExecChain chain;
+    @Mock
+    private ExecRuntime endpoint;
 
     private ProtocolExec protocolExec;
     private HttpHost target;
@@ -65,27 +67,27 @@ public class TestProtocolExec {
     @Before
     public void setup() throws Exception {
         MockitoAnnotations.initMocks(this);
-        protocolExec = new ProtocolExec(requestExecutor, httpProcessor);
+        protocolExec = new ProtocolExec(httpProcessor);
         target = new HttpHost("foo", 80);
     }
 
     @Test
     public void testFundamentals() throws Exception {
         final HttpRoute route = new HttpRoute(target);
-        final RoutedHttpRequest request = RoutedHttpRequest.adapt(new HttpGet("/test"), route);
+        final ClassicHttpRequest request = new HttpGet("/test");
         final HttpClientContext context = HttpClientContext.create();
 
         final ClassicHttpResponse response = Mockito.mock(ClassicHttpResponse.class);
 
-        Mockito.when(requestExecutor.execute(
-                Mockito.<RoutedHttpRequest>any(),
-                Mockito.<HttpClientContext>any(),
-                Mockito.<HttpExecutionAware>any())).thenReturn(response);
+        Mockito.when(chain.proceed(
+                Mockito.<ClassicHttpRequest>any(),
+                Mockito.<ExecChain.Scope>any())).thenReturn(response);
 
-        protocolExec.execute(request, context, execAware);
+        final ExecChain.Scope scope = new ExecChain.Scope(route, request, endpoint, context);
+        protocolExec.execute(request, scope, chain);
 
         Mockito.verify(httpProcessor).process(request, null, context);
-        Mockito.verify(requestExecutor).execute(request, context, execAware);
+        Mockito.verify(chain).proceed(request, scope);
         Mockito.verify(httpProcessor).process(response, null, context);
 
         Assert.assertEquals(route, context.getHttpRoute());
@@ -96,18 +98,17 @@ public class TestProtocolExec {
     @Test
     public void testUserInfoInRequestURI() throws Exception {
         final HttpRoute route = new HttpRoute(new HttpHost("somehost", 8080));
-        final RoutedHttpRequest request = RoutedHttpRequest.adapt(
-                new HttpGet("http://somefella:secret@bar/test"), route);
+        final ClassicHttpRequest request = new HttpGet("http://somefella:secret@bar/test");
         final HttpClientContext context = HttpClientContext.create();
         context.setCredentialsProvider(new BasicCredentialsProvider());
 
         final ClassicHttpResponse response = Mockito.mock(ClassicHttpResponse.class);
-        Mockito.when(requestExecutor.execute(
-                Mockito.<RoutedHttpRequest>any(),
-                Mockito.<HttpClientContext>any(),
-                Mockito.<HttpExecutionAware>any())).thenReturn(response);
+        Mockito.when(chain.proceed(
+                Mockito.<ClassicHttpRequest>any(),
+                Mockito.<ExecChain.Scope>any())).thenReturn(response);
 
-        protocolExec.execute(request, context, execAware);
+        final ExecChain.Scope scope = new ExecChain.Scope(route, request, endpoint, context);
+        protocolExec.execute(request, scope, chain);
         Assert.assertEquals(new URI("http://bar/test"), request.getUri());
         final CredentialsProvider credentialsProvider = context.getCredentialsProvider();
         final Credentials creds = credentialsProvider.getCredentials(new AuthScope("bar", -1, null), null);
@@ -118,19 +119,19 @@ public class TestProtocolExec {
     @Test(expected = HttpException.class)
     public void testPostProcessHttpException() throws Exception {
         final HttpRoute route = new HttpRoute(target);
-        final RoutedHttpRequest request = RoutedHttpRequest.adapt(new HttpGet("/test"), route);
+        final ClassicHttpRequest request = new HttpGet("/test");
         final HttpClientContext context = HttpClientContext.create();
 
         final ClassicHttpResponse response = Mockito.mock(ClassicHttpResponse.class);
 
-        Mockito.when(requestExecutor.execute(
-                Mockito.<RoutedHttpRequest>any(),
-                Mockito.<HttpClientContext>any(),
-                Mockito.<HttpExecutionAware>any())).thenReturn(response);
+        Mockito.when(chain.proceed(
+                Mockito.<ClassicHttpRequest>any(),
+                Mockito.<ExecChain.Scope>any())).thenReturn(response);
         Mockito.doThrow(new HttpException("Ooopsie")).when(httpProcessor).process(
                 Mockito.same(response), Mockito.isNull(EntityDetails.class), Mockito.<HttpContext>any());
+        final ExecChain.Scope scope = new ExecChain.Scope(route, request, endpoint, context);
         try {
-            protocolExec.execute(request, context, execAware);
+            protocolExec.execute(request, scope, chain);
         } catch (final Exception ex) {
             Mockito.verify(response).close();
             throw ex;
@@ -140,18 +141,18 @@ public class TestProtocolExec {
     @Test(expected = IOException.class)
     public void testPostProcessIOException() throws Exception {
         final HttpRoute route = new HttpRoute(target);
-        final RoutedHttpRequest request = RoutedHttpRequest.adapt(new HttpGet("/test"), route);
+        final ClassicHttpRequest request = new HttpGet("/test");
         final HttpClientContext context = HttpClientContext.create();
 
         final ClassicHttpResponse response = Mockito.mock(ClassicHttpResponse.class);
-        Mockito.when(requestExecutor.execute(
-                Mockito.<RoutedHttpRequest>any(),
-                Mockito.<HttpClientContext>any(),
-                Mockito.<HttpExecutionAware>any())).thenReturn(response);
+        Mockito.when(chain.proceed(
+                Mockito.<ClassicHttpRequest>any(),
+                Mockito.<ExecChain.Scope>any())).thenReturn(response);
         Mockito.doThrow(new IOException("Ooopsie")).when(httpProcessor).process(
                 Mockito.same(response), Mockito.isNull(EntityDetails.class), Mockito.<HttpContext>any());
+        final ExecChain.Scope scope = new ExecChain.Scope(route, request, endpoint, context);
         try {
-            protocolExec.execute(request, context, execAware);
+            protocolExec.execute(request, scope, chain);
         } catch (final Exception ex) {
             Mockito.verify(response).close();
             throw ex;
@@ -161,18 +162,18 @@ public class TestProtocolExec {
     @Test(expected = RuntimeException.class)
     public void testPostProcessRuntimeException() throws Exception {
         final HttpRoute route = new HttpRoute(target);
-        final RoutedHttpRequest request = RoutedHttpRequest.adapt(new HttpGet("/test"), route);
+        final ClassicHttpRequest request = new HttpGet("/test");
         final HttpClientContext context = HttpClientContext.create();
 
         final ClassicHttpResponse response = Mockito.mock(ClassicHttpResponse.class);
-        Mockito.when(requestExecutor.execute(
-                Mockito.<RoutedHttpRequest>any(),
-                Mockito.<HttpClientContext>any(),
-                Mockito.<HttpExecutionAware>any())).thenReturn(response);
+        Mockito.when(chain.proceed(
+                Mockito.<ClassicHttpRequest>any(),
+                Mockito.<ExecChain.Scope>any())).thenReturn(response);
         Mockito.doThrow(new RuntimeException("Ooopsie")).when(httpProcessor).process(
                 Mockito.same(response), Mockito.isNull(EntityDetails.class), Mockito.<HttpContext>any());
+        final ExecChain.Scope scope = new ExecChain.Scope(route, request, endpoint, context);
         try {
-            protocolExec.execute(request, context, execAware);
+            protocolExec.execute(request, scope, chain);
         } catch (final Exception ex) {
             Mockito.verify(response).close();
             throw ex;

Modified: httpcomponents/httpclient/trunk/httpclient5/src/test/java/org/apache/hc/client5/http/impl/sync/TestRedirectExec.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/test/java/org/apache/hc/client5/http/impl/sync/TestRedirectExec.java?rev=1793308&r1=1793307&r2=1793308&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient5/src/test/java/org/apache/hc/client5/http/impl/sync/TestRedirectExec.java (original)
+++ httpcomponents/httpclient/trunk/httpclient5/src/test/java/org/apache/hc/client5/http/impl/sync/TestRedirectExec.java Mon May  1 11:11:09 2017
@@ -28,6 +28,8 @@ package org.apache.hc.client5.http.impl.
 
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
+import java.net.URI;
+import java.net.URISyntaxException;
 import java.util.List;
 
 import org.apache.hc.client5.http.HttpRoute;
@@ -40,8 +42,10 @@ import org.apache.hc.client5.http.protoc
 import org.apache.hc.client5.http.protocol.RedirectException;
 import org.apache.hc.client5.http.protocol.RedirectStrategy;
 import org.apache.hc.client5.http.routing.HttpRoutePlanner;
-import org.apache.hc.client5.http.sync.methods.HttpExecutionAware;
+import org.apache.hc.client5.http.sync.ExecChain;
+import org.apache.hc.client5.http.sync.ExecRuntime;
 import org.apache.hc.client5.http.sync.methods.HttpGet;
+import org.apache.hc.core5.http.ClassicHttpRequest;
 import org.apache.hc.core5.http.ClassicHttpResponse;
 import org.apache.hc.core5.http.HttpEntity;
 import org.apache.hc.core5.http.HttpException;
@@ -63,13 +67,13 @@ import org.mockito.MockitoAnnotations;
 public class TestRedirectExec {
 
     @Mock
-    private ClientExecChain requestExecutor;
-    @Mock
     private HttpRoutePlanner httpRoutePlanner;
     @Mock
     private RedirectStrategy redirectStrategy;
     @Mock
-    private HttpExecutionAware execAware;
+    private ExecChain chain;
+    @Mock
+    private ExecRuntime endpoint;
 
     private RedirectExec redirectExec;
     private HttpHost target;
@@ -77,15 +81,14 @@ public class TestRedirectExec {
     @Before
     public void setup() throws Exception {
         MockitoAnnotations.initMocks(this);
-        redirectExec = new RedirectExec(requestExecutor, httpRoutePlanner, redirectStrategy);
+        redirectExec = new RedirectExec(httpRoutePlanner, redirectStrategy);
         target = new HttpHost("localhost", 80);
     }
 
     @Test
     public void testFundamentals() throws Exception {
         final HttpRoute route = new HttpRoute(target);
-        final HttpGet get = new HttpGet("/test");
-        final RoutedHttpRequest request = RoutedHttpRequest.adapt(get, route);
+        final HttpGet request = new HttpGet("/test");
         final HttpClientContext context = HttpClientContext.create();
 
         final ClassicHttpResponse response1 = Mockito.mock(ClassicHttpResponse.class);
@@ -100,38 +103,36 @@ public class TestRedirectExec {
                 .setStream(instream2)
                 .build();
         Mockito.when(response2.getEntity()).thenReturn(entity2);
-        final HttpGet redirect = new HttpGet("http://localhost:80/redirect");
+        final URI redirect = new URI("http://localhost:80/redirect");
 
-        Mockito.when(requestExecutor.execute(
+        Mockito.when(chain.proceed(
                 Mockito.same(request),
-                Mockito.<HttpClientContext>any(),
-                Mockito.<HttpExecutionAware>any())).thenReturn(response1);
-        Mockito.when(requestExecutor.execute(
-                HttpRequestWrapperMatcher.same(redirect),
-                Mockito.<HttpClientContext>any(),
-                Mockito.<HttpExecutionAware>any())).thenReturn(response2);
+                Mockito.<ExecChain.Scope>any())).thenReturn(response1);
+        Mockito.when(chain.proceed(
+                HttpRequestMatcher.matchesRequestUri(redirect),
+                Mockito.<ExecChain.Scope>any())).thenReturn(response2);
         Mockito.when(redirectStrategy.isRedirected(
-                Mockito.same(get),
+                Mockito.same(request),
                 Mockito.same(response1),
                 Mockito.<HttpClientContext>any())).thenReturn(Boolean.TRUE);
-        Mockito.when(redirectStrategy.getRedirect(
-                Mockito.same(get),
+        Mockito.when(redirectStrategy.getLocationURI(
+                Mockito.same(request),
                 Mockito.same(response1),
                 Mockito.<HttpClientContext>any())).thenReturn(redirect);
         Mockito.when(httpRoutePlanner.determineRoute(
                 Mockito.eq(target),
                 Mockito.<HttpClientContext>any())).thenReturn(route);
 
-        redirectExec.execute(request, context, execAware);
+        final ExecChain.Scope scope = new ExecChain.Scope(route, request, endpoint, context);
+        redirectExec.execute(request, scope, chain);
 
-        final ArgumentCaptor<RoutedHttpRequest> reqCaptor = ArgumentCaptor.forClass(
-                RoutedHttpRequest.class);
-        Mockito.verify(requestExecutor, Mockito.times(2)).execute(
+        final ArgumentCaptor<ClassicHttpRequest> reqCaptor = ArgumentCaptor.forClass(
+                ClassicHttpRequest.class);
+        Mockito.verify(chain, Mockito.times(2)).proceed(
                 reqCaptor.capture(),
-                Mockito.same(context),
-                Mockito.same(execAware));
+                Mockito.same(scope));
 
-        final List<RoutedHttpRequest> allValues = reqCaptor.getAllValues();
+        final List<ClassicHttpRequest> allValues = reqCaptor.getAllValues();
         Assert.assertNotNull(allValues);
         Assert.assertEquals(2, allValues.size());
         Assert.assertSame(request, allValues.get(0));
@@ -145,8 +146,7 @@ public class TestRedirectExec {
     @Test(expected = RedirectException.class)
     public void testMaxRedirect() throws Exception {
         final HttpRoute route = new HttpRoute(target);
-        final HttpGet get = new HttpGet("/test");
-        final RoutedHttpRequest request = RoutedHttpRequest.adapt(get, route);
+        final HttpGet request = new HttpGet("/test");
         final HttpClientContext context = HttpClientContext.create();
         final RequestConfig config = RequestConfig.custom()
                 .setRedirectsEnabled(true)
@@ -155,58 +155,56 @@ public class TestRedirectExec {
         context.setRequestConfig(config);
 
         final ClassicHttpResponse response1 = Mockito.mock(ClassicHttpResponse.class);
-        final HttpGet redirect = new HttpGet("http://localhost:80/redirect");
+        final URI redirect = new URI("http://localhost:80/redirect");
 
-        Mockito.when(requestExecutor.execute(
-                Mockito.<RoutedHttpRequest>any(),
-                Mockito.<HttpClientContext>any(),
-                Mockito.<HttpExecutionAware>any())).thenReturn(response1);
+        Mockito.when(chain.proceed(
+                Mockito.<ClassicHttpRequest>any(),
+                Mockito.<ExecChain.Scope>any())).thenReturn(response1);
         Mockito.when(redirectStrategy.isRedirected(
-                Mockito.<RoutedHttpRequest>any(),
+                Mockito.<ClassicHttpRequest>any(),
                 Mockito.<HttpResponse>any(),
                 Mockito.<HttpClientContext>any())).thenReturn(Boolean.TRUE);
-        Mockito.when(redirectStrategy.getRedirect(
-                Mockito.<RoutedHttpRequest>any(),
+        Mockito.when(redirectStrategy.getLocationURI(
+                Mockito.<ClassicHttpRequest>any(),
                 Mockito.<HttpResponse>any(),
                 Mockito.<HttpClientContext>any())).thenReturn(redirect);
         Mockito.when(httpRoutePlanner.determineRoute(
                 Mockito.eq(target),
                 Mockito.<HttpClientContext>any())).thenReturn(route);
 
-        redirectExec.execute(request, context, execAware);
+        final ExecChain.Scope scope = new ExecChain.Scope(route, request, endpoint, context);
+        redirectExec.execute(request, scope, chain);
     }
 
     @Test(expected = HttpException.class)
     public void testRelativeRedirect() throws Exception {
         final HttpRoute route = new HttpRoute(target);
-        final HttpGet get = new HttpGet("/test");
-        final RoutedHttpRequest request = RoutedHttpRequest.adapt(get, route);
+        final HttpGet request = new HttpGet("/test");
         final HttpClientContext context = HttpClientContext.create();
 
         final ClassicHttpResponse response1 = Mockito.mock(ClassicHttpResponse.class);
         final ClassicHttpResponse response2 = Mockito.mock(ClassicHttpResponse.class);
-        final HttpGet redirect = new HttpGet("/redirect");
-        Mockito.when(requestExecutor.execute(
+        final URI redirect = new URI("/redirect");
+        Mockito.when(chain.proceed(
                 Mockito.same(request),
-                Mockito.<HttpClientContext>any(),
-                Mockito.<HttpExecutionAware>any())).thenReturn(response1);
-        Mockito.when(requestExecutor.execute(
-                HttpRequestWrapperMatcher.same(redirect),
-                Mockito.<HttpClientContext>any(),
-                Mockito.<HttpExecutionAware>any())).thenReturn(response2);
+                Mockito.<ExecChain.Scope>any())).thenReturn(response1);
+        Mockito.when(chain.proceed(
+                HttpRequestMatcher.matchesRequestUri(redirect),
+                Mockito.<ExecChain.Scope>any())).thenReturn(response2);
         Mockito.when(redirectStrategy.isRedirected(
-                Mockito.same(get),
+                Mockito.same(request),
                 Mockito.same(response1),
                 Mockito.<HttpClientContext>any())).thenReturn(Boolean.TRUE);
-        Mockito.when(redirectStrategy.getRedirect(
-                Mockito.same(get),
+        Mockito.when(redirectStrategy.getLocationURI(
+                Mockito.same(request),
                 Mockito.same(response1),
                 Mockito.<HttpClientContext>any())).thenReturn(redirect);
         Mockito.when(httpRoutePlanner.determineRoute(
                 Mockito.eq(target),
                 Mockito.<HttpClientContext>any())).thenReturn(route);
 
-        redirectExec.execute(request, context, execAware);
+        final ExecChain.Scope scope = new ExecChain.Scope(route, request, endpoint, context);
+        redirectExec.execute(request, scope, chain);
     }
 
     @Test
@@ -214,8 +212,7 @@ public class TestRedirectExec {
 
         final HttpHost proxy = new HttpHost("proxy");
         final HttpRoute route = new HttpRoute(target, proxy);
-        final HttpGet get = new HttpGet("/test");
-        final RoutedHttpRequest request = RoutedHttpRequest.adapt(get, route);
+        final HttpGet request = new HttpGet("/test");
         final HttpClientContext context = HttpClientContext.create();
 
         final AuthExchange targetAuthExchange = new AuthExchange();
@@ -230,21 +227,19 @@ public class TestRedirectExec {
         final ClassicHttpResponse response1 = Mockito.mock(ClassicHttpResponse.class);
         final ClassicHttpResponse response2 = Mockito.mock(ClassicHttpResponse.class);
         final HttpHost otherHost = new HttpHost("otherhost", 8888);
-        final HttpGet redirect = new HttpGet("http://otherhost:8888/redirect");
-        Mockito.when(requestExecutor.execute(
+        final URI redirect = new URI("http://otherhost:8888/redirect");
+        Mockito.when(chain.proceed(
                 Mockito.same(request),
-                Mockito.<HttpClientContext>any(),
-                Mockito.<HttpExecutionAware>any())).thenReturn(response1);
-        Mockito.when(requestExecutor.execute(
-                HttpRequestWrapperMatcher.same(redirect),
-                Mockito.<HttpClientContext>any(),
-                Mockito.<HttpExecutionAware>any())).thenReturn(response2);
+                Mockito.<ExecChain.Scope>any())).thenReturn(response1);
+        Mockito.when(chain.proceed(
+                HttpRequestMatcher.matchesRequestUri(redirect),
+                Mockito.<ExecChain.Scope>any())).thenReturn(response2);
         Mockito.when(redirectStrategy.isRedirected(
-                Mockito.same(get),
+                Mockito.same(request),
                 Mockito.same(response1),
                 Mockito.<HttpClientContext>any())).thenReturn(Boolean.TRUE);
-        Mockito.when(redirectStrategy.getRedirect(
-                Mockito.same(get),
+        Mockito.when(redirectStrategy.getLocationURI(
+                Mockito.same(request),
                 Mockito.same(response1),
                 Mockito.<HttpClientContext>any())).thenReturn(redirect);
         Mockito.when(httpRoutePlanner.determineRoute(
@@ -254,7 +249,8 @@ public class TestRedirectExec {
                 Mockito.eq(otherHost),
                 Mockito.<HttpClientContext>any())).thenReturn(new HttpRoute(otherHost));
 
-        redirectExec.execute(request, context, execAware);
+        final ExecChain.Scope scope = new ExecChain.Scope(route, request, endpoint, context);
+        redirectExec.execute(request, scope, chain);
 
         final AuthExchange authExchange1 = context.getAuthExchange(target);
         Assert.assertNotNull(authExchange1);
@@ -269,26 +265,25 @@ public class TestRedirectExec {
     @Test(expected = RuntimeException.class)
     public void testRedirectRuntimeException() throws Exception {
         final HttpRoute route = new HttpRoute(target);
-        final HttpGet get = new HttpGet("/test");
-        final RoutedHttpRequest request = RoutedHttpRequest.adapt(get, route);
+        final HttpGet request = new HttpGet("/test");
         final HttpClientContext context = HttpClientContext.create();
 
         final ClassicHttpResponse response1 = Mockito.mock(ClassicHttpResponse.class);
-        Mockito.when(requestExecutor.execute(
+        Mockito.when(chain.proceed(
                 Mockito.same(request),
-                Mockito.<HttpClientContext>any(),
-                Mockito.<HttpExecutionAware>any())).thenReturn(response1);
+                Mockito.<ExecChain.Scope>any())).thenReturn(response1);
         Mockito.when(redirectStrategy.isRedirected(
                 Mockito.same(request),
                 Mockito.same(response1),
                 Mockito.<HttpClientContext>any())).thenReturn(Boolean.TRUE);
-        Mockito.doThrow(new RuntimeException("Oppsie")).when(redirectStrategy.getRedirect(
+        Mockito.doThrow(new RuntimeException("Oppsie")).when(redirectStrategy.getLocationURI(
                 Mockito.same(request),
                 Mockito.same(response1),
                 Mockito.<HttpClientContext>any()));
 
+        final ExecChain.Scope scope = new ExecChain.Scope(route, request, endpoint, context);
         try {
-            redirectExec.execute(request, context, execAware);
+            redirectExec.execute(request, scope, chain);
         } catch (final Exception ex) {
             Mockito.verify(response1).close();
             throw ex;
@@ -298,8 +293,7 @@ public class TestRedirectExec {
     @Test(expected = ProtocolException.class)
     public void testRedirectProtocolException() throws Exception {
         final HttpRoute route = new HttpRoute(target);
-        final HttpGet get = new HttpGet("/test");
-        final RoutedHttpRequest request = RoutedHttpRequest.adapt(get, route);
+        final HttpGet request = new HttpGet("/test");
         final HttpClientContext context = HttpClientContext.create();
 
         final ClassicHttpResponse response1 = Mockito.mock(ClassicHttpResponse.class);
@@ -308,21 +302,21 @@ public class TestRedirectExec {
                 .setStream(instream1)
                 .build();
         Mockito.when(response1.getEntity()).thenReturn(entity1);
-        Mockito.when(requestExecutor.execute(
+        Mockito.when(chain.proceed(
                 Mockito.same(request),
-                Mockito.<HttpClientContext>any(),
-                Mockito.<HttpExecutionAware>any())).thenReturn(response1);
+                Mockito.<ExecChain.Scope>any())).thenReturn(response1);
         Mockito.when(redirectStrategy.isRedirected(
-                Mockito.same(get),
+                Mockito.same(request),
                 Mockito.same(response1),
                 Mockito.<HttpClientContext>any())).thenReturn(Boolean.TRUE);
-        Mockito.doThrow(new ProtocolException("Oppsie")).when(redirectStrategy).getRedirect(
-                Mockito.same(get),
+        Mockito.doThrow(new ProtocolException("Oppsie")).when(redirectStrategy).getLocationURI(
+                Mockito.same(request),
                 Mockito.same(response1),
                 Mockito.<HttpClientContext>any());
 
+        final ExecChain.Scope scope = new ExecChain.Scope(route, request, endpoint, context);
         try {
-            redirectExec.execute(request, context, execAware);
+            redirectExec.execute(request, scope, chain);
         } catch (final Exception ex) {
             Mockito.verify(instream1).close();
             Mockito.verify(response1).close();
@@ -330,22 +324,30 @@ public class TestRedirectExec {
         }
     }
 
-    static class HttpRequestWrapperMatcher extends ArgumentMatcher<RoutedHttpRequest> {
+    private static class HttpRequestMatcher extends ArgumentMatcher<ClassicHttpRequest> {
 
-        private final HttpRequest original;
+        private final URI requestUri;
 
-        HttpRequestWrapperMatcher(final HttpRequest original) {
+        HttpRequestMatcher(final URI requestUri) {
             super();
-            this.original = original;
+            this.requestUri = requestUri;
         }
         @Override
         public boolean matches(final Object obj) {
-            final RoutedHttpRequest wrapper = (RoutedHttpRequest) obj;
-            return original == wrapper.getOriginal();
+            if (obj instanceof HttpRequest) {
+                final HttpRequest request = (HttpRequest) obj;
+                try {
+                    return requestUri.equals(request.getUri());
+                } catch (URISyntaxException e) {
+                    return false;
+                }
+            } else {
+                return false;
+            }
         }
 
-        static RoutedHttpRequest same(final HttpRequest original) {
-            return Matchers.argThat(new HttpRequestWrapperMatcher(original));
+        static ClassicHttpRequest matchesRequestUri(final URI requestUri) {
+            return Matchers.argThat(new HttpRequestMatcher(requestUri));
         }
 
     }

Modified: httpcomponents/httpclient/trunk/httpclient5/src/test/java/org/apache/hc/client5/http/impl/sync/TestResponseEntityWrapper.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/test/java/org/apache/hc/client5/http/impl/sync/TestResponseEntityWrapper.java?rev=1793308&r1=1793307&r2=1793308&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient5/src/test/java/org/apache/hc/client5/http/impl/sync/TestResponseEntityWrapper.java (original)
+++ httpcomponents/httpclient/trunk/httpclient5/src/test/java/org/apache/hc/client5/http/impl/sync/TestResponseEntityWrapper.java Mon May  1 11:11:09 2017
@@ -31,6 +31,7 @@ import java.io.InputStream;
 import java.io.OutputStream;
 import java.net.SocketException;
 
+import org.apache.hc.client5.http.sync.ExecRuntime;
 import org.apache.hc.core5.http.HttpEntity;
 import org.apache.hc.core5.http.io.entity.EntityUtils;
 import org.junit.Assert;
@@ -43,7 +44,7 @@ public class TestResponseEntityWrapper {
 
     private InputStream instream;
     private HttpEntity entity;
-    private EndpointHolder endpointHolder;
+    private ExecRuntime execRuntime;
     private ResponseEntityProxy wrapper;
 
     @Before
@@ -51,83 +52,83 @@ public class TestResponseEntityWrapper {
         instream = Mockito.mock(InputStream.class);
         entity = Mockito.mock(HttpEntity.class);
         Mockito.when(entity.getContent()).thenReturn(instream);
-        endpointHolder = Mockito.mock(EndpointHolder.class);
-        wrapper = new ResponseEntityProxy(entity, endpointHolder);
+        execRuntime = Mockito.mock(ExecRuntime.class);
+        wrapper = new ResponseEntityProxy(entity, execRuntime);
     }
 
     @Test
     public void testReusableEntityStreamClosed() throws Exception {
         Mockito.when(entity.isStreaming()).thenReturn(true);
-        Mockito.when(endpointHolder.isReusable()).thenReturn(true);
+        Mockito.when(execRuntime.isConnectionReusable()).thenReturn(true);
         EntityUtils.consume(wrapper);
 
         Mockito.verify(instream, Mockito.times(1)).close();
-        Mockito.verify(endpointHolder).releaseConnection();
+        Mockito.verify(execRuntime).releaseConnection();
     }
 
     @Test
     public void testReusableEntityStreamClosedIOError() throws Exception {
         Mockito.when(entity.isStreaming()).thenReturn(true);
-        Mockito.when(endpointHolder.isReusable()).thenReturn(true);
+        Mockito.when(execRuntime.isConnectionReusable()).thenReturn(true);
         Mockito.doThrow(new IOException()).when(instream).close();
         try {
             EntityUtils.consume(wrapper);
             Assert.fail("IOException expected");
         } catch (final IOException ex) {
         }
-        Mockito.verify(endpointHolder).abortConnection();
+        Mockito.verify(execRuntime, Mockito.atLeast(1)).discardConnection();
     }
 
     @Test
     public void testEntityStreamClosedIOErrorAlreadyReleased() throws Exception {
         Mockito.when(entity.isStreaming()).thenReturn(true);
-        Mockito.when(endpointHolder.isReusable()).thenReturn(true);
-        Mockito.when(endpointHolder.isReleased()).thenReturn(true);
+        Mockito.when(execRuntime.isConnectionReusable()).thenReturn(true);
+        Mockito.when(execRuntime.isConnectionAcquired()).thenReturn(false);
         Mockito.doThrow(new SocketException()).when(instream).close();
         EntityUtils.consume(wrapper);
-        Mockito.verify(endpointHolder).close();
+        Mockito.verify(execRuntime).discardConnection();
     }
 
     @Test
     public void testReusableEntityWriteTo() throws Exception {
         final OutputStream outstream = Mockito.mock(OutputStream.class);
         Mockito.when(entity.isStreaming()).thenReturn(true);
-        Mockito.when(endpointHolder.isReusable()).thenReturn(true);
+        Mockito.when(execRuntime.isConnectionReusable()).thenReturn(true);
         wrapper.writeTo(outstream);
-        Mockito.verify(endpointHolder).releaseConnection();
+        Mockito.verify(execRuntime).releaseConnection();
     }
 
     @Test
     public void testReusableEntityWriteToIOError() throws Exception {
         final OutputStream outstream = Mockito.mock(OutputStream.class);
         Mockito.when(entity.isStreaming()).thenReturn(true);
-        Mockito.when(endpointHolder.isReusable()).thenReturn(true);
+        Mockito.when(execRuntime.isConnectionReusable()).thenReturn(true);
         Mockito.doThrow(new IOException()).when(entity).writeTo(outstream);
         try {
             wrapper.writeTo(outstream);
             Assert.fail("IOException expected");
         } catch (final IOException ex) {
         }
-        Mockito.verify(endpointHolder, Mockito.never()).releaseConnection();
-        Mockito.verify(endpointHolder).abortConnection();
+        Mockito.verify(execRuntime, Mockito.never()).releaseConnection();
+        Mockito.verify(execRuntime, Mockito.atLeast(1)).discardConnection();
     }
 
     @Test
     public void testReusableEntityEndOfStream() throws Exception {
         Mockito.when(instream.read()).thenReturn(-1);
         Mockito.when(entity.isStreaming()).thenReturn(true);
-        Mockito.when(endpointHolder.isReusable()).thenReturn(true);
+        Mockito.when(execRuntime.isConnectionReusable()).thenReturn(true);
         final InputStream content = wrapper.getContent();
         Assert.assertEquals(-1, content.read());
         Mockito.verify(instream).close();
-        Mockito.verify(endpointHolder).releaseConnection();
+        Mockito.verify(execRuntime).releaseConnection();
     }
 
     @Test
     public void testReusableEntityEndOfStreamIOError() throws Exception {
         Mockito.when(instream.read()).thenReturn(-1);
         Mockito.when(entity.isStreaming()).thenReturn(true);
-        Mockito.when(endpointHolder.isReusable()).thenReturn(true);
+        Mockito.when(execRuntime.isConnectionReusable()).thenReturn(true);
         Mockito.doThrow(new IOException()).when(instream).close();
         final InputStream content = wrapper.getContent();
         try {
@@ -135,7 +136,7 @@ public class TestResponseEntityWrapper {
             Assert.fail("IOException expected");
         } catch (final IOException ex) {
         }
-        Mockito.verify(endpointHolder).abortConnection();
+        Mockito.verify(execRuntime, Mockito.atLeast(1)).discardConnection();
     }
 
 }

Modified: httpcomponents/httpclient/trunk/httpclient5/src/test/java/org/apache/hc/client5/http/impl/sync/TestRetryExec.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/test/java/org/apache/hc/client5/http/impl/sync/TestRetryExec.java?rev=1793308&r1=1793307&r2=1793308&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient5/src/test/java/org/apache/hc/client5/http/impl/sync/TestRetryExec.java (original)
+++ httpcomponents/httpclient/trunk/httpclient5/src/test/java/org/apache/hc/client5/http/impl/sync/TestRetryExec.java Mon May  1 11:11:09 2017
@@ -32,10 +32,12 @@ import java.io.IOException;
 
 import org.apache.hc.client5.http.HttpRoute;
 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.client5.http.protocol.NonRepeatableRequestException;
+import org.apache.hc.client5.http.sync.ExecChain;
+import org.apache.hc.client5.http.sync.ExecRuntime;
 import org.apache.hc.client5.http.sync.HttpRequestRetryHandler;
-import org.apache.hc.client5.http.sync.methods.HttpExecutionAware;
 import org.apache.hc.client5.http.sync.methods.HttpGet;
 import org.apache.hc.client5.http.sync.methods.HttpPost;
 import org.apache.hc.core5.http.ClassicHttpRequest;
@@ -56,11 +58,11 @@ import org.mockito.stubbing.Answer;
 public class TestRetryExec {
 
     @Mock
-    private ClientExecChain requestExecutor;
-    @Mock
     private HttpRequestRetryHandler retryHandler;
     @Mock
-    private HttpExecutionAware execAware;
+    private ExecRuntime endpoint;
+    @Mock
+    private ExecChain chain;
 
     private RetryExec retryExec;
     private HttpHost target;
@@ -68,28 +70,26 @@ public class TestRetryExec {
     @Before
     public void setup() throws Exception {
         MockitoAnnotations.initMocks(this);
-        retryExec = new RetryExec(requestExecutor, retryHandler);
+        retryExec = new RetryExec(retryHandler);
         target = new HttpHost("localhost", 80);
     }
 
     @Test(expected = IOException.class)
     public void testFundamentals() throws Exception {
         final HttpRoute route = new HttpRoute(target);
-        final HttpGet get = new HttpGet("/test");
-        get.addHeader("header", "this");
-        get.addHeader("header", "that");
-        final RoutedHttpRequest request = RoutedHttpRequest.adapt(get, route);
+        final HttpGet originalRequest = new HttpGet("/test");
+        originalRequest.addHeader("header", "this");
+        originalRequest.addHeader("header", "that");
         final HttpClientContext context = HttpClientContext.create();
 
-        Mockito.when(requestExecutor.execute(
-                Mockito.same(request),
-                Mockito.<HttpClientContext>any(),
-                Mockito.<HttpExecutionAware>any())).thenAnswer(new Answer<Object>() {
+        Mockito.when(chain.proceed(
+                Mockito.<ClassicHttpRequest>any(),
+                Mockito.<ExecChain.Scope>any())).thenAnswer(new Answer<Object>() {
 
             @Override
             public Object answer(final InvocationOnMock invocationOnMock) throws Throwable {
                 final Object[] args = invocationOnMock.getArguments();
-                final RoutedHttpRequest wrapper = (RoutedHttpRequest) args[0];
+                final ClassicHttpRequest wrapper = (ClassicHttpRequest) args[0];
                 final Header[] headers = wrapper.getAllHeaders();
                 Assert.assertEquals(2, headers.length);
                 Assert.assertEquals("this", headers[0].getValue());
@@ -104,13 +104,14 @@ 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);
         try {
-            retryExec.execute(request, context, execAware);
+            retryExec.execute(request, scope, chain);
         } catch (final IOException ex) {
-            Mockito.verify(requestExecutor, Mockito.times(2)).execute(
-                    Mockito.same(request),
-                    Mockito.same(context),
-                    Mockito.same(execAware));
+            Mockito.verify(chain, Mockito.times(2)).proceed(
+                    Mockito.<ClassicHttpRequest>any(),
+                    Mockito.same(scope));
             throw ex;
         }
     }
@@ -118,23 +119,22 @@ public class TestRetryExec {
     @Test(expected = IOException.class)
     public void testAbortedRequest() throws Exception {
         final HttpRoute route = new HttpRoute(target);
-        final HttpGet get = new HttpGet("/test");
-        final RoutedHttpRequest request = RoutedHttpRequest.adapt(get, route);
+        final HttpGet originalRequest = new HttpGet("/test");
         final HttpClientContext context = HttpClientContext.create();
 
-        Mockito.when(requestExecutor.execute(
-                Mockito.same(request),
-                Mockito.<HttpClientContext>any(),
-                Mockito.<HttpExecutionAware>any())).thenThrow(new IOException("Ka-boom"));
+        Mockito.when(chain.proceed(
+                Mockito.<ClassicHttpRequest>any(),
+                Mockito.<ExecChain.Scope>any())).thenThrow(new IOException("Ka-boom"));
+        Mockito.when(endpoint.isExecutionAborted()).thenReturn(true);
 
-        Mockito.when(execAware.isAborted()).thenReturn(Boolean.TRUE);
+        final ExecChain.Scope scope = new ExecChain.Scope(route, originalRequest, endpoint, context);
+        final ClassicHttpRequest request = ExecSupport.copy(originalRequest);
         try {
-            retryExec.execute(request, context, execAware);
+            retryExec.execute(request, scope, chain);
         } catch (final IOException ex) {
-            Mockito.verify(requestExecutor, Mockito.times(1)).execute(
+            Mockito.verify(chain, Mockito.times(1)).proceed(
                     Mockito.same(request),
-                    Mockito.same(context),
-                    Mockito.same(execAware));
+                    Mockito.same(scope));
             Mockito.verify(retryHandler, Mockito.never()).retryRequest(
                     Mockito.<HttpRequest>any(),
                     Mockito.<IOException>any(),
@@ -148,17 +148,15 @@ public class TestRetryExec {
     @Test(expected = NonRepeatableRequestException.class)
     public void testNonRepeatableRequest() throws Exception {
         final HttpRoute route = new HttpRoute(target);
-        final HttpPost post = new HttpPost("/test");
-        post.setEntity(EntityBuilder.create()
+        final HttpPost originalRequest = new HttpPost("/test");
+        originalRequest.setEntity(EntityBuilder.create()
                 .setStream(new ByteArrayInputStream(new byte[]{}))
                 .build());
-        final RoutedHttpRequest request = RoutedHttpRequest.adapt(post, route);
         final HttpClientContext context = HttpClientContext.create();
 
-        Mockito.when(requestExecutor.execute(
-                Mockito.same(request),
-                Mockito.<HttpClientContext>any(),
-                Mockito.<HttpExecutionAware>any())).thenAnswer(new Answer<Object>() {
+        Mockito.when(chain.proceed(
+                Mockito.<ClassicHttpRequest>any(),
+                Mockito.<ExecChain.Scope>any())).thenAnswer(new Answer<Object>() {
 
             @Override
             public Object answer(final InvocationOnMock invocationOnMock) throws Throwable {
@@ -174,13 +172,14 @@ 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);
         try {
-            retryExec.execute(request, context, execAware);
+            retryExec.execute(request, scope, chain);
         } catch (final IOException ex) {
-            Mockito.verify(requestExecutor, Mockito.times(1)).execute(
+            Mockito.verify(chain, Mockito.times(1)).proceed(
                     Mockito.same(request),
-                    Mockito.same(context),
-                    Mockito.same(execAware));
+                    Mockito.same(scope));
 
             throw ex;
         }

Modified: httpcomponents/httpclient/trunk/httpclient5/src/test/java/org/apache/hc/client5/http/impl/sync/TestServiceUnavailableRetryExec.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/test/java/org/apache/hc/client5/http/impl/sync/TestServiceUnavailableRetryExec.java?rev=1793308&r1=1793307&r2=1793308&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient5/src/test/java/org/apache/hc/client5/http/impl/sync/TestServiceUnavailableRetryExec.java (original)
+++ httpcomponents/httpclient/trunk/httpclient5/src/test/java/org/apache/hc/client5/http/impl/sync/TestServiceUnavailableRetryExec.java Mon May  1 11:11:09 2017
@@ -28,9 +28,11 @@ package org.apache.hc.client5.http.impl.
 
 import org.apache.hc.client5.http.HttpRoute;
 import org.apache.hc.client5.http.protocol.HttpClientContext;
+import org.apache.hc.client5.http.sync.ExecChain;
+import org.apache.hc.client5.http.sync.ExecRuntime;
 import org.apache.hc.client5.http.sync.ServiceUnavailableRetryStrategy;
-import org.apache.hc.client5.http.sync.methods.HttpExecutionAware;
 import org.apache.hc.client5.http.sync.methods.HttpGet;
+import org.apache.hc.core5.http.ClassicHttpRequest;
 import org.apache.hc.core5.http.ClassicHttpResponse;
 import org.apache.hc.core5.http.HttpHost;
 import org.apache.hc.core5.http.HttpResponse;
@@ -45,11 +47,11 @@ import org.mockito.MockitoAnnotations;
 public class TestServiceUnavailableRetryExec {
 
     @Mock
-    private ClientExecChain requestExecutor;
-    @Mock
     private ServiceUnavailableRetryStrategy retryStrategy;
     @Mock
-    private HttpExecutionAware execAware;
+    private ExecChain chain;
+    @Mock
+    private ExecRuntime endpoint;
 
     private ServiceUnavailableRetryExec retryExec;
     private HttpHost target;
@@ -57,23 +59,21 @@ public class TestServiceUnavailableRetry
     @Before
     public void setup() throws Exception {
         MockitoAnnotations.initMocks(this);
-        retryExec = new ServiceUnavailableRetryExec(requestExecutor, retryStrategy);
+        retryExec = new ServiceUnavailableRetryExec(retryStrategy);
         target = new HttpHost("localhost", 80);
     }
 
     @Test
     public void testFundamentals() throws Exception {
         final HttpRoute route = new HttpRoute(target);
-        final HttpGet get = new HttpGet("/test");
-        final RoutedHttpRequest request = RoutedHttpRequest.adapt(get, route);
+        final HttpGet request = new HttpGet("/test");
         final HttpClientContext context = HttpClientContext.create();
 
         final ClassicHttpResponse response = Mockito.mock(ClassicHttpResponse.class);
 
-        Mockito.when(requestExecutor.execute(
+        Mockito.when(chain.proceed(
                 Mockito.same(request),
-                Mockito.<HttpClientContext>any(),
-                Mockito.<HttpExecutionAware>any())).thenReturn(response);
+                Mockito.<ExecChain.Scope>any())).thenReturn(response);
         Mockito.when(retryStrategy.retryRequest(
                 Mockito.<HttpResponse>any(),
                 Mockito.anyInt(),
@@ -82,32 +82,32 @@ public class TestServiceUnavailableRetry
                 Mockito.<HttpResponse>any(),
                 Mockito.<HttpContext>any())).thenReturn(0L);
 
-        retryExec.execute(request, context, execAware);
+        final ExecChain.Scope scope = new ExecChain.Scope(route, request, endpoint, context);
+        retryExec.execute(request, scope, chain);
 
-        Mockito.verify(requestExecutor, Mockito.times(2)).execute(
-                Mockito.same(request),
-                Mockito.same(context),
-                Mockito.same(execAware));
+        Mockito.verify(chain, Mockito.times(2)).proceed(
+                Mockito.<ClassicHttpRequest>any(),
+                Mockito.same(scope));
         Mockito.verify(response, Mockito.times(1)).close();
     }
 
     @Test(expected = RuntimeException.class)
     public void testStrategyRuntimeException() throws Exception {
         final HttpRoute route = new HttpRoute(target);
-        final RoutedHttpRequest request = RoutedHttpRequest.adapt(new HttpGet("/test"), route);
+        final ClassicHttpRequest request = new HttpGet("/test");
         final HttpClientContext context = HttpClientContext.create();
 
         final ClassicHttpResponse response = Mockito.mock(ClassicHttpResponse.class);
-        Mockito.when(requestExecutor.execute(
-                Mockito.<RoutedHttpRequest>any(),
-                Mockito.<HttpClientContext>any(),
-                Mockito.<HttpExecutionAware>any())).thenReturn(response);
+        Mockito.when(chain.proceed(
+                Mockito.<ClassicHttpRequest>any(),
+                Mockito.<ExecChain.Scope>any())).thenReturn(response);
         Mockito.doThrow(new RuntimeException("Ooopsie")).when(retryStrategy).retryRequest(
                 Mockito.<HttpResponse>any(),
                 Mockito.anyInt(),
                 Mockito.<HttpContext>any());
+        final ExecChain.Scope scope = new ExecChain.Scope(route, request, endpoint, context);
         try {
-            retryExec.execute(request, context, execAware);
+            retryExec.execute(request, scope, chain);
         } catch (final Exception ex) {
             Mockito.verify(response).close();
             throw ex;

Modified: httpcomponents/httpclient/trunk/httpclient5/src/test/java/org/apache/hc/client5/http/sync/methods/TestRequestBuilder.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/test/java/org/apache/hc/client5/http/sync/methods/TestRequestBuilder.java?rev=1793308&r1=1793307&r2=1793308&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient5/src/test/java/org/apache/hc/client5/http/sync/methods/TestRequestBuilder.java (original)
+++ httpcomponents/httpclient/trunk/httpclient5/src/test/java/org/apache/hc/client5/http/sync/methods/TestRequestBuilder.java Mon May  1 11:11:09 2017
@@ -32,6 +32,7 @@ import java.util.List;
 
 import org.apache.hc.client5.http.config.Configurable;
 import org.apache.hc.client5.http.config.RequestConfig;
+import org.apache.hc.core5.http.ClassicHttpRequest;
 import org.apache.hc.core5.http.ContentType;
 import org.apache.hc.core5.http.Header;
 import org.apache.hc.core5.http.HttpEntity;
@@ -49,7 +50,7 @@ public class TestRequestBuilder {
 
     @Test
     public void testBasicGet() throws Exception {
-        final HttpUriRequest request = RequestBuilder.get().build();
+        final ClassicHttpRequest request = RequestBuilder.get().build();
         Assert.assertNotNull(request);
         Assert.assertEquals("GET", request.getMethod());
         Assert.assertEquals(URI.create("/"), request.getUri());
@@ -57,7 +58,7 @@ public class TestRequestBuilder {
 
     @Test
     public void testArbitraryMethod() throws Exception {
-        final HttpUriRequest request = RequestBuilder.create("Whatever").build();
+        final ClassicHttpRequest request = RequestBuilder.create("Whatever").build();
         Assert.assertNotNull(request);
         Assert.assertEquals("Whatever", request.getMethod());
         Assert.assertEquals(URI.create("/"), request.getUri());
@@ -66,7 +67,7 @@ public class TestRequestBuilder {
     @Test
     public void testBasicWithEntity() throws Exception {
         final HttpEntity entity = new BasicHttpEntity();
-        final HttpUriRequest request = RequestBuilder.post().setEntity(entity).build();
+        final ClassicHttpRequest request = RequestBuilder.post().setEntity(entity).build();
         Assert.assertNotNull(request);
         Assert.assertEquals("POST", request.getMethod());
         Assert.assertEquals(URI.create("/"), request.getUri());
@@ -76,7 +77,7 @@ public class TestRequestBuilder {
     @Test
     public void testGetWithEntity() throws Exception {
         final HttpEntity entity = new BasicHttpEntity();
-        final HttpUriRequest request = RequestBuilder.get().setEntity(entity).build();
+        final ClassicHttpRequest request = RequestBuilder.get().setEntity(entity).build();
         Assert.assertNotNull(request);
         Assert.assertEquals("GET", request.getMethod());
         Assert.assertEquals(URI.create("/"), request.getUri());
@@ -85,7 +86,7 @@ public class TestRequestBuilder {
 
     @Test
     public void testAddParameters1() throws Exception {
-        final HttpUriRequest request = RequestBuilder.get()
+        final ClassicHttpRequest request = RequestBuilder.get()
                 .addParameter("p1", "this")
                 .addParameter("p2", "that")
                 .build();
@@ -94,7 +95,7 @@ public class TestRequestBuilder {
 
     @Test
     public void testAddParameters2() throws Exception {
-        final HttpUriRequest request = RequestBuilder.get()
+        final ClassicHttpRequest request = RequestBuilder.get()
                 .addParameter("p1", "this")
                 .addParameters(new BasicNameValuePair("p2", "that"))
                 .build();
@@ -103,7 +104,7 @@ public class TestRequestBuilder {
 
     @Test
     public void testAddParameters3() throws Exception {
-        final HttpUriRequest request = RequestBuilder.post()
+        final ClassicHttpRequest request = RequestBuilder.post()
                 .addParameter("p1", "this")
                 .addParameter("p2", "that")
                 .build();
@@ -115,7 +116,7 @@ public class TestRequestBuilder {
 
     @Test
     public void testAddParameters4() throws Exception {
-        final HttpUriRequest request = RequestBuilder.post()
+        final ClassicHttpRequest request = RequestBuilder.post()
                 .setUri("http://targethost/?blah")
                 .addParameter("p1", "this")
                 .addParameter("p2", "that")
@@ -128,7 +129,7 @@ public class TestRequestBuilder {
     public void testCopy() throws Exception {
         final HttpEntity entity = new StringEntity("stuff");
         final RequestConfig config = RequestConfig.custom().build();
-        final HttpUriRequest request = RequestBuilder.put()
+        final ClassicHttpRequest request = RequestBuilder.put()
             .setUri(URI.create("/stuff"))
             .setVersion(HttpVersion.HTTP_1_0)
             .addHeader("header1", "stuff")
@@ -141,7 +142,7 @@ public class TestRequestBuilder {
         Assert.assertEquals(URI.create("/stuff"), request.getUri());
         Assert.assertEquals(HttpVersion.HTTP_1_0, request.getVersion());
 
-        final HttpUriRequest copy = RequestBuilder.copy(request).setUri("/other-stuff").build();
+        final ClassicHttpRequest copy = RequestBuilder.copy(request).setUri("/other-stuff").build();
         Assert.assertEquals("PUT", copy.getMethod());
         Assert.assertEquals(URI.create("/other-stuff"), copy.getUri());
         Assert.assertSame(entity, copy.getEntity());
@@ -199,7 +200,7 @@ public class TestRequestBuilder {
         final URI uri1 = URI.create("http://host1.com/path?param=something");
         final URI uri2 = URI.create("http://host2.com/path?param=somethingdifferent");
         final HttpGet request1 = new HttpGet(uri1);
-        final HttpUriRequest request2 = RequestBuilder.copy(request1).setUri(uri2).build();
+        final ClassicHttpRequest request2 = RequestBuilder.copy(request1).setUri(uri2).build();
         Assert.assertEquals(request2.getUri(), uri2);
     }
 

Modified: httpcomponents/httpclient/trunk/httpclient5/src/test/java/org/apache/hc/client5/http/utils/TestRequestBuilder.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5/src/test/java/org/apache/hc/client5/http/utils/TestRequestBuilder.java?rev=1793308&r1=1793307&r2=1793308&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient5/src/test/java/org/apache/hc/client5/http/utils/TestRequestBuilder.java (original)
+++ httpcomponents/httpclient/trunk/httpclient5/src/test/java/org/apache/hc/client5/http/utils/TestRequestBuilder.java Mon May  1 11:11:09 2017
@@ -31,8 +31,8 @@ import java.net.URLEncoder;
 import java.nio.charset.Charset;
 import java.nio.charset.StandardCharsets;
 
-import org.apache.hc.client5.http.sync.methods.HttpUriRequest;
 import org.apache.hc.client5.http.sync.methods.RequestBuilder;
+import org.apache.hc.core5.http.ClassicHttpRequest;
 import org.apache.hc.core5.http.NameValuePair;
 import org.apache.hc.core5.http.message.BasicNameValuePair;
 import org.junit.Assert;
@@ -60,7 +60,7 @@ public class TestRequestBuilder {
 
         final String uriExpected = String.format("https://somehost.com/stuff?parameter1=value1&parameter2=%s&parameter3=%s", encodedData1, encodedData2);
 
-        final HttpUriRequest request = requestBuilder.build();
+        final ClassicHttpRequest request = requestBuilder.build();
         Assert.assertEquals(uriExpected, request.getUri().toString());
     }