This is an automated email from the ASF dual-hosted git repository.
jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git
The following commit(s) were added to refs/heads/master by this push:
new 788bc5e RestClient tests.
788bc5e is described below
commit 788bc5e0b7b1efc1adb4990b0d33e540879629b9
Author: JamesBognar <[email protected]>
AuthorDate: Tue Mar 31 19:57:09 2020 -0400
RestClient tests.
---
.../org/apache/juneau/reflect/ConstructorInfo.java | 2 +-
.../juneau/rest/client2/RestClientBuilderTest.java | 1163 ++++++++++++++++----
...lInterceptor.java => BasicRestCallHandler.java} | 105 +-
...erceptor.java => BasicRestCallInterceptor.java} | 86 +-
.../juneau/rest/client2/RestCallInterceptor.java | 7 +-
.../org/apache/juneau/rest/client2/RestClient.java | 57 +-
.../juneau/rest/client2/RestClientBuilder.java | 11 +-
.../apache/juneau/rest/client2/RestRequest.java | 1 -
.../apache/juneau/rest/mock2/MockRestClient.java | 2 +-
9 files changed, 1065 insertions(+), 369 deletions(-)
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ConstructorInfo.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ConstructorInfo.java
index 17c96c3..4de094b 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ConstructorInfo.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ConstructorInfo.java
@@ -137,7 +137,7 @@ public final class ConstructorInfo extends ExecutableInfo
implements Comparable<
public <T> T invoke(Object...args) throws ExecutableException {
try {
return (T)c.newInstance(args);
- } catch (InstantiationException | IllegalAccessException |
InvocationTargetException e) {
+ } catch (Exception e) {
throw new ExecutableException(e);
}
}
diff --git
a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientBuilderTest.java
b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientBuilderTest.java
index 4ce2326..f8431d5 100644
---
a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientBuilderTest.java
+++
b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientBuilderTest.java
@@ -24,15 +24,21 @@ import org.apache.http.*;
import org.apache.http.HttpException;
import org.apache.http.HttpResponse;
import org.apache.http.auth.*;
+import org.apache.http.client.*;
+import org.apache.http.client.methods.*;
import org.apache.http.impl.client.*;
import org.apache.http.protocol.*;
+import org.apache.juneau.*;
import org.apache.juneau.collections.*;
import org.apache.juneau.http.*;
import org.apache.juneau.http.annotation.*;
import org.apache.juneau.http.exception.*;
+import org.apache.juneau.http.response.*;
import org.apache.juneau.marshall.*;
import org.apache.juneau.rest.*;
import org.apache.juneau.rest.annotation.*;
+import org.apache.juneau.rest.client2.RestRequest;
+import org.apache.juneau.rest.client2.RestResponse;
import org.apache.juneau.rest.client2.ext.*;
import org.apache.juneau.rest.mock2.*;
import org.apache.juneau.rest.testutils.*;
@@ -73,6 +79,14 @@ public class RestClientBuilderTest {
public String getEcho(org.apache.juneau.rest.RestRequest req) {
return req.toString();
}
+ @RestMethod(path="/echo")
+ public String postEcho(org.apache.juneau.rest.RestRequest req) {
+ return req.toString();
+ }
+ @RestMethod(path="/ok")
+ public Ok getOk() {
+ return Ok.OK;
+ }
@RestMethod(path="/checkHeader")
public String[] getHeader(org.apache.juneau.rest.RestRequest
req) {
return req.getHeaders().get(req.getHeader("Check"));
@@ -337,407 +351,691 @@ public class RestClientBuilderTest {
@Test
public void f01_basicHeader() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
- .header("Foo","bar")
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header("Check", "Foo")
+ .header("Foo","bar")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['bar']");
+ rc
+ .get("/checkHeader")
+ .header("Foo","baz")
+ .run()
+ .getBody()
+ .assertValue("['bar','baz']");
}
@Test
public void f02_beanHeader() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
- .header("Foo",bean)
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
+ .header("Foo", bean)
.header("Check", "Foo")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['(f=1)']");
+ rc
+ .get("/checkHeader")
+ .header("Foo", bean)
+ .run()
+ .getBody()
+ .assertValue("['(f=1)','(f=1)']");
}
@Test
public void f03_nullHeaders() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
- .header("Foo",null)
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
+ .header("Foo", null)
.header("Check", "Foo")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("null");
+ rc
+ .get("/checkHeader")
+ .header("Foo", null)
+ .run()
+ .getBody()
+ .assertValue("null");
}
@Test
public void f04_header_Header() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new org.apache.http.message.BasicHeader("Foo",
"bar"))
.header("Check", "Foo")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['bar']");
+ rc
+ .get("/checkHeader")
+ .header(new org.apache.http.message.BasicHeader("Foo",
"baz"))
+ .run()
+ .getBody()
+ .assertValue("['bar','baz']");
}
@Test
public void f05_header_NameValuePair() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new SimpleNameValuePair("Foo", "bar"))
.header("Check", "Foo")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['bar']");
+ rc
+ .get("/checkHeader")
+ .header(new SimpleNameValuePair("Foo", "baz"))
+ .run()
+ .getBody()
+ .assertValue("['bar','baz']");
}
@Test
public void f06_header_HttpHeader() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new BasicStringHeader("Foo", "bar"))
.header("Check", "Foo")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['bar']");
+ rc
+ .get("/checkHeader")
+ .header(new BasicStringHeader("Foo", "baz"))
+ .run()
+ .getBody()
+ .assertValue("['bar','baz']");
}
@Test
public void f07_headers_Header() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
- .headers(new org.apache.http.message.BasicHeader("Foo",
"bar"),new org.apache.http.message.BasicHeader("Baz", "qux"))
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
+ .headers(new org.apache.http.message.BasicHeader("Foo",
"bar"),new org.apache.http.message.BasicHeader("Baz", "baz"))
.header("Check", "Foo")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['bar']");
+ rc
+ .get("/checkHeader")
+ .headers(new org.apache.http.message.BasicHeader("Foo",
"baz"),new org.apache.http.message.BasicHeader("Baz", "quux"))
+ .run()
+ .getBody()
+ .assertValue("['bar','baz']");
}
@Test
public void f08_headers_OMap() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.headers(OMap.of("Foo", "bar"))
.header("Check", "Foo")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['bar']");
+ rc
+ .get("/checkHeader")
+ .headers(OMap.of("Foo", "baz"))
+ .run()
+ .getBody()
+ .assertValue("['bar','baz']");
}
@Test
public void f09_headers_Map() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.headers(AMap.of("Foo", "bar"))
.header("Check", "Foo")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['bar']");
+ rc
+ .get("/checkHeader")
+ .headers(AMap.of("Foo", "baz"))
+ .run()
+ .getBody()
+ .assertValue("['bar','baz']");
}
@Test
public void f10_headers_NameValuePairs() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.headers(NameValuePairs.of("Foo","bar"))
.header("Check", "Foo")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['bar']");
+ rc
+ .get("/checkHeader")
+ .headers(NameValuePairs.of("Foo","baz"))
+ .run()
+ .getBody()
+ .assertValue("['bar','baz']");
}
@Test
public void f11_headers_NameValuePair() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.headers(new SimpleNameValuePair("Foo","bar"))
.header("Check", "Foo")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['bar']");
+ rc
+ .get("/checkHeader")
+ .headers(new SimpleNameValuePair("Foo","baz"))
+ .run()
+ .getBody()
+ .assertValue("['bar','baz']");
}
@Test
public void f12_headers_pairs() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.headerPairs("Foo", "bar")
.header("Check", "Foo")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['bar']");
+ rc
+ .get("/checkHeader")
+ .headerPairs("Foo", "baz")
+ .run()
+ .getBody()
+ .assertValue("['bar','baz']");
}
@Test
public void f13_headers_HttpHeader() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.headers(new BasicStringHeader("Foo", "bar"))
.header("Check", "Foo")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['bar']");
+ rc
+ .get("/checkHeader")
+ .headers(new BasicStringHeader("Foo", "baz"))
+ .run()
+ .getBody()
+ .assertValue("['bar','baz']");
}
@Test
public void f14_headers_accept() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
- .accept("text/plain")
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
+ .accept("text/foo")
.header("Check", "Accept")
.build();
-
rc.get("/checkHeader").run().getBody().assertValue("['text/plain']");
+ rc
+ .get("/checkHeader")
+ .accept("text/plain")
+ .run()
+ .getBody()
+ .assertValue("['text/foo','text/plain']");
}
@Test
public void f15_headers_acceptCharset() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.acceptCharset("UTF-8")
.header("Check", "Accept-Charset")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['UTF-8']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['UTF-8']");
}
@Test
public void f16_headers_acceptEncoding() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.acceptEncoding("identity")
.header("Check", "Accept-Encoding")
.build();
-
rc.get("/checkHeader").run().getBody().assertValue("['identity']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['identity']");
}
@Test
public void f17_headers_acceptLanguage() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.acceptLanguage("en")
.header("Check", "Accept-Language")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['en']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['en']");
}
@Test
public void f18_headers_authorization() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.authorization("foo")
.header("Check", "Authorization")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void f19_headers_cacheControl() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.cacheControl("none")
.header("Check", "Cache-Control")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['none']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['none']");
}
@Test
public void f20_headers_clientVersion() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.clientVersion("1")
.header("Check", "X-Client-Version")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['1']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['1']");
}
@Test
public void f21_headers_connection() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.connection("foo")
.header("Check", "Connection")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void f22_headers_contentLength() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.contentLength("123")
.header("Check", "Content-Length")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['123']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['123']");
}
@Test
public void f23_headers_contentType() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.contentType("foo")
.header("Check", "Content-Type")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void f24_headers_date() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.date("123")
.header("Check", "Date")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['123']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['123']");
}
@Test
public void f25_headers_expect() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.expect("foo")
.header("Check", "Expect")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void f26_headers_forwarded() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.forwarded("foo")
.header("Check", "Forwarded")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void f27_headers_from() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.from("foo")
.header("Check", "From")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void f28_headers_host() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.host("foo")
.header("Check", "Host")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void f29_headers_ifMatch() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.ifMatch("foo")
.header("Check", "If-Match")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void f30_headers_ifModifiedSince() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.ifModifiedSince("foo")
.header("Check", "If-Modified-Since")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void f31_headers_ifNoneMatch() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.ifNoneMatch("foo")
.header("Check", "If-None-Match")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void f32_headers_ifRange() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.ifRange("foo")
.header("Check", "If-Range")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void f33_headers_ifUnmodifiedSince() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.ifUnmodifiedSince("foo")
.header("Check", "If-Unmodified-Since")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void f34_headers_maxForwards() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.maxForwards("10")
.header("Check", "Max-Forwards")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['10']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['10']");
}
@Test
public void f35_headers_noTrace() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.noTrace()
.header("Check", "No-Trace")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['true']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['true']");
}
@Test
public void f36_headers_origin() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.origin("foo")
.header("Check", "Origin")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void f37_headers_pragma() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.pragma("foo")
.header("Check", "Pragma")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void f38_headers_proxyAuthorization() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.proxyAuthorization("foo")
.header("Check", "Proxy-Authorization")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void f39_headers_range() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.range("foo")
.header("Check", "Range")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void f40_headers_referer() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.referer("foo")
.header("Check", "Referer")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void f41_headers_te() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.te("foo")
.header("Check", "TE")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void f42_headers_userAgent() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.userAgent("foo")
.header("Check", "User-Agent")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void f43_headers_upgrade() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.upgrade("foo")
.header("Check", "Upgrade")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void f44_headers_via() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.via("foo")
.header("Check", "Via")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void f45_headers_warning() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.warning("foo")
.header("Check", "Warning")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
//------------------------------------------------------------------------------------------------------------------
@@ -746,318 +1044,529 @@ public class RestClientBuilderTest {
@Test
public void g01_headers_accept() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
- .header(new Accept("text/plain"))
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
+ .header(new Accept("text/foo"))
.header("Check", "Accept")
.build();
-
rc.get("/checkHeader").run().getBody().assertValue("['text/plain']");
+ rc
+ .get("/checkHeader")
+ .header(new Accept("text/plain"))
+ .run()
+ .getBody()
+ .assertValue("['text/foo','text/plain']");
}
@Test
public void g02_headers_acceptCharset() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new AcceptCharset("UTF-8"))
.header("Check", "Accept-Charset")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['UTF-8']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['UTF-8']");
}
@Test
public void g03_headers_acceptEncoding() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new AcceptEncoding("identity"))
.header("Check", "Accept-Encoding")
.build();
-
rc.get("/checkHeader").run().getBody().assertValue("['identity']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['identity']");
}
@Test
public void g04_headers_acceptLanguage() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new AcceptLanguage("en"))
.header("Check", "Accept-Language")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['en']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['en']");
}
@Test
public void g05_headers_authorization() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new Authorization("foo"))
.header("Check", "Authorization")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void g06_headers_cacheControl() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new CacheControl("none"))
.header("Check", "Cache-Control")
.header("X-Expect", "none")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['none']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['none']");
}
@Test
public void g07_headers_clientVersion() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new ClientVersion("1"))
.header("Check", "X-Client-Version")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['1']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['1']");
}
@Test
public void g08_headers_connection() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new Connection("foo"))
.header("Check", "Connection")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void g09_headers_contentLength() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new ContentLength(123))
.header("Check", "Content-Length")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['123']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['123']");
}
@Test
public void g10_headers_contentType() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new ContentType("foo"))
.header("Check", "Content-Type")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void g11a_headers_date() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new org.apache.juneau.http.Date("Sun, 31 Dec
2000 12:34:56 GMT"))
.header("Check", "Date")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['Sun, 31
Dec 2000 12:34:56 GMT']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['Sun, 31 Dec 2000 12:34:56 GMT']");
}
@Test
public void g11b_headers_date() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new org.apache.juneau.http.Date(CALENDAR))
.header("Check", "Date")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['Sun, 31
Dec 2000 12:34:56 GMT']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['Sun, 31 Dec 2000 12:34:56 GMT']");
}
@Test
public void g12_headers_expect() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new Expect("foo"))
.header("Check", "Expect")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void g13_headers_forwarded() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new Forwarded("foo"))
.header("Check", "Forwarded")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void g14_headers_from() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new From("foo"))
.header("Check", "From")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void g15_headers_host() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new Host("foo"))
.header("Check", "Host")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void g16_headers_ifMatch() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new IfMatch("foo"))
.header("Check", "If-Match")
.build();
-
rc.get("/checkHeader").run().getBody().assertValue("['\"foo\"']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['\"foo\"']");
}
@Test
public void g17a_headers_ifModifiedSince() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new IfModifiedSince(CALENDAR))
.header("Check", "If-Modified-Since")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['Sun, 31
Dec 2000 12:34:56 GMT']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['Sun, 31 Dec 2000 12:34:56 GMT']");
}
@Test
public void g17b_headers_ifModifiedSince() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new IfModifiedSince("Sun, 31 Dec 2000 12:34:56
GMT"))
.header("Check", "If-Modified-Since")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['Sun, 31
Dec 2000 12:34:56 GMT']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['Sun, 31 Dec 2000 12:34:56 GMT']");
}
@Test
public void g18_headers_ifNoneMatch() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new IfNoneMatch("foo"))
.header("Check", "If-None-Match")
.build();
-
rc.get("/checkHeader").run().getBody().assertValue("['\"foo\"']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['\"foo\"']");
}
@Test
public void g19_headers_ifRange() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new IfRange("foo"))
.header("Check", "If-Range")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void g20a_headers_ifUnmodifiedSince() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new IfUnmodifiedSince(CALENDAR))
.header("Check", "If-Unmodified-Since")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['Sun, 31
Dec 2000 12:34:56 GMT']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['Sun, 31 Dec 2000 12:34:56 GMT']");
}
@Test
public void g20b_headers_ifUnmodifiedSince() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new IfUnmodifiedSince("Sun, 31 Dec 2000
12:34:56 GMT"))
.header("Check", "If-Unmodified-Since")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['Sun, 31
Dec 2000 12:34:56 GMT']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['Sun, 31 Dec 2000 12:34:56 GMT']");
}
@Test
public void g21_headers_maxForwards() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new MaxForwards(10))
.header("Check", "Max-Forwards")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['10']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['10']");
}
@Test
public void g22_headers_noTrace() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new NoTrace("true"))
.header("Check", "No-Trace")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['true']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['true']");
}
@Test
public void g23_headers_origin() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new Origin("foo"))
.header("Check", "Origin")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void g24_headers_pragma() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new Pragma("foo"))
.header("Check", "Pragma")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void g25_headers_proxyAuthorization() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new ProxyAuthorization("foo"))
.header("Check", "Proxy-Authorization")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void g26_headers_range() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new Range("foo"))
.header("Check", "Range")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void g27_headers_referer() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new Referer("foo"))
.header("Check", "Referer")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void g28_headers_te() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new TE("foo"))
.header("Check", "TE")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void g29_headers_userAgent() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new UserAgent("foo"))
.header("Check", "User-Agent")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void g30_headers_upgrade() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new Upgrade("foo"))
.header("Check", "Upgrade")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void g31_headers_via() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new Via("foo"))
.header("Check", "Via")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
@Test
public void g32_headers_warning() throws Exception {
- RestClient rc = MockRestClient.create(A.class).simpleJson()
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
.header(new Warning("foo"))
.header("Check", "Warning")
.build();
- rc.get("/checkHeader").run().getBody().assertValue("['foo']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['foo']");
}
//------------------------------------------------------------------------------------------------------------------
@@ -1074,7 +1583,12 @@ public class RestClientBuilderTest {
.headerPairs("Foo","bar","Foo","baz")
.header("Foo","qux")
.build();
-
rc.get("/checkHeader").run().getBody().assertValue("['bar','baz','qux']");
+ rc
+ .get("/checkHeader")
+ .headerPairs("Foo","q1x","Foo","q2x")
+ .run()
+ .getBody()
+ .assertValue("['bar','baz','qux','q1x','q2x']");
}
@Test
@@ -1085,7 +1599,12 @@ public class RestClientBuilderTest {
.header("Check", "Foo")
.headerPairs("Foo","bar","Foo","baz")
.build();
-
rc.get("/checkHeader").header("Foo","qux").run().getBody().assertValue("['bar','baz','qux']");
+ rc
+ .get("/checkHeader")
+ .header("Foo","qux")
+ .run()
+ .getBody()
+ .assertValue("['bar','baz','qux']");
}
@Test
@@ -1096,7 +1615,11 @@ public class RestClientBuilderTest {
.header("Check", "Accept")
.header("Accept", "text/plain")
.build();
-
rc.get("/checkHeader").run().getBody().assertValue("['text/plain']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['text/plain']");
}
@Test
@@ -1107,7 +1630,12 @@ public class RestClientBuilderTest {
.header("Check", "Accept")
.header("Accept", "text/foo")
.build();
-
rc.get("/checkHeader").header("Accept","text/plain").run().getBody().assertValue("['text/foo','text/plain']");
+ rc
+ .get("/checkHeader")
+ .header("Accept","text/plain")
+ .run()
+ .getBody()
+ .assertValue("['text/foo','text/plain']");
}
@Test
@@ -1120,7 +1648,10 @@ public class RestClientBuilderTest {
.build();
RestRequest req = rc.get("/checkHeader");
req.setHeader("Accept","text/plain");
- req.run().getBody().assertValue("['text/plain']");
+ req
+ .run()
+ .getBody()
+ .assertValue("['text/plain']");
}
@Test
@@ -1131,7 +1662,11 @@ public class RestClientBuilderTest {
.header("Check", "Content-Type")
.header("Content-Type", "text/plain")
.build();
-
rc.get("/checkHeader").run().getBody().assertValue("['text/plain']");
+ rc
+ .get("/checkHeader")
+ .run()
+ .getBody()
+ .assertValue("['text/plain']");
}
@Test
@@ -1142,7 +1677,12 @@ public class RestClientBuilderTest {
.header("Check", "Content-Type")
.header("Content-Type", "text/foo")
.build();
- rc.get("/checkHeader").header("Content-Type",
"text/plain").run().getBody().assertValue("['text/foo','text/plain']");
+ rc
+ .get("/checkHeader")
+ .header("Content-Type", "text/plain")
+ .run()
+ .getBody()
+ .assertValue("['text/foo','text/plain']");
}
@Test
@@ -1213,50 +1753,239 @@ public class RestClientBuilderTest {
rc.post("/checkFormData").run().getBody().assertValue("Foo=f1&Foo=f2&Foo=f3&Foo=f4&Foo=f5&Foo=f6&Foo=f7");
}
-//
//-----------------------------------------------------------------------------------------------------------------
-// // RestClient properties
-//
//-----------------------------------------------------------------------------------------------------------------
-//
-// @Test
-// public void k01_restClient_CallHandlerClass() throws Exception {
fail(); }
-//// public RestClientBuilder callHandler(Class<? extends RestCallHandler>
value) {
-//
-// @Test
-// public void k02_restClient_CallHandlerObject() throws Exception {
fail(); }
-//// public RestClientBuilder callHandler(RestCallHandler value) {
-//
-// @Test
-// public void k03_restClient_errorCodes() throws Exception { fail(); }
-//// public RestClientBuilder errorCodes(Predicate<Integer> value) {
-//
-// @Test
-// public void k04_restClient_executorService() throws Exception { fail();
}
-//// public RestClientBuilder executorService(ExecutorService
executorService, boolean shutdownOnClose) {
-//
-// @Test
-// public void k05_restClient_keepHttpClientOpenBoolean() throws Exception
{ fail(); }
-//// public RestClientBuilder keepHttpClientOpen(boolean value) {
-//
-// @Test
-// public void k06_restClient_keepHttpClientOpen() throws Exception {
fail(); }
-//// public RestClientBuilder keepHttpClientOpen() {
-//
-// @Test
-// public void k07_restClient_interceptorsClasses() throws Exception {
fail(); }
-//// public RestClientBuilder interceptors(Class<? extends
RestCallInterceptor>...values) {
-//
-// @Test
-// public void k08_restClient_interceptorsObjects() throws Exception {
fail(); }
-//// public RestClientBuilder interceptors(RestCallInterceptor...value) {
-//
-// @Test
-// public void k09_restClient_leakDetection() throws Exception { fail(); }
-//// public RestClientBuilder leakDetection() {
-//
-// @Test
-// public void k10_restClient_leakDetectionBoolean() throws Exception {
fail(); }
-//// public RestClientBuilder leakDetection(boolean value) {
-//
+
//-----------------------------------------------------------------------------------------------------------------
+ // RestClient properties
+
//-----------------------------------------------------------------------------------------------------------------
+
+ public static class XCallHandler extends BasicRestCallHandler {
+
+ public XCallHandler(RestClient client) {
+ super(client);
+ }
+
+ @Override
+ public HttpResponse execute(HttpHost target,
HttpEntityEnclosingRequestBase request, HttpContext context) throws
ClientProtocolException, IOException {
+ request.addHeader("Check", "Foo");
+ request.addHeader("Foo", "bar");
+ return super.execute(target, request, context);
+ }
+
+ @Override
+ public HttpResponse execute(HttpHost target, HttpRequestBase
request, HttpContext context) throws ClientProtocolException, IOException {
+ request.addHeader("Check", "Foo");
+ request.addHeader("Foo", "baz");
+ return super.execute(target, request, context);
+ }
+ }
+ @Test
+ public void k01_restClient_CallHandlerClass() throws Exception {
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
+ .callHandler(XCallHandler.class)
+ .header("Foo", "f1")
+ .build();
+ rc
+ .get("/checkHeader")
+ .header("Foo","f2")
+ .run()
+ .getBody()
+ .assertValue("['f1','f2','baz']");
+ }
+
+ @Test
+ public void k03_restClient_errorCodes() throws Exception {
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
+ .errorCodes(x -> x == 200)
+ .build();
+ try {
+ rc
+ .get("/echo")
+ .run();
+ fail("Exception expected.");
+ } catch (RestCallException e) {
+ assertEquals(200, e.getResponseCode());
+ }
+ }
+
+ @Test
+ public void k04_restClient_executorService() throws Exception {
+ ExecutorService es = new ThreadPoolExecutor(1, 1, 30,
TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(10));
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
+ .executorService(es, true)
+ .build();
+ assertEquals(es, rc.getExecutorService(false));
+ rc
+ .get("/echo")
+ .runFuture()
+ .get()
+ .assertStatusCode(200)
+ .getBody().assertContains("HTTP GET /echo");
+ }
+
+ @Test
+ public void k05_restClient_keepHttpClientOpenBoolean() throws Exception
{
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
+ .keepHttpClientOpen()
+ .build();
+ CloseableHttpClient c = rc.httpClient;
+ rc.close();
+ rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
+ .httpClient(c)
+ .build();
+ rc
+ .get("/ok")
+ .runFuture()
+ .get()
+ .getBody()
+ .assertContains("OK");
+ }
+
+ @Test
+ public void k06_restClient_keepHttpClientOpen() throws Exception {
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
+ .keepHttpClientOpen(true)
+ .build();
+ CloseableHttpClient c = rc.httpClient;
+ rc.close();
+ rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
+ .httpClient(c)
+ .build();
+ rc
+ .get("/ok")
+ .runFuture()
+ .get()
+ .getBody()
+ .assertContains("OK");
+ }
+
+ public static class XRestCallInterceptor implements RestCallInterceptor
{
+ public static int x;
+ @Override
+ public void onInit(RestRequest req) throws Exception {
+ x = 1;
+ req.header("Foo", "f2");
+ }
+
+ @Override
+ public void onConnect(RestRequest req, RestResponse res) throws
Exception {
+ x += 10;
+ res.addHeader("Bar", "b1");
+ }
+
+ @Override
+ public void onClose(RestRequest req, RestResponse res) throws
Exception {
+ x += 100;
+ }
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void k07_restClient_interceptorsClasses() throws Exception {
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
+ .header("Foo","f1")
+ .interceptors(XRestCallInterceptor.class)
+ .build();
+ rc
+ .get("/checkHeader")
+ .header("Check","foo")
+ .header("Foo","f3")
+ .run()
+ .getBody()
+ .assertValue("['f1','f2','f3']")
+ .getHeader("Bar").assertValue("b1");
+ assertEquals(111, XRestCallInterceptor.x);
+ }
+
+ @Test
+ public void k08_restClient_interceptorsObjects() throws Exception {
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
+ .header("Foo","f1")
+ .interceptors(new XRestCallInterceptor())
+ .build();
+ rc
+ .get("/checkHeader")
+ .header("Check","foo")
+ .header("Foo","f3")
+ .run()
+ .getBody()
+ .assertValue("['f1','f2','f3']")
+ .getHeader("Bar").assertValue("b1");
+ assertEquals(111, XRestCallInterceptor.x);
+ }
+
+ public static class K09RestClient extends RestClient {
+ private static String lastMessage;
+
+ public K09RestClient(PropertyStore ps) {
+ super(ps);
+ }
+
+ @Override
+ public void log(String msg) {
+ lastMessage = msg;
+ }
+ }
+
+ @Test
+ public void k09a_restClient_leakDetection() throws Throwable {
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
+ .leakDetection()
+ .build(K09RestClient.class);
+ rc.finalize();
+ assertEquals("WARNING: RestClient garbage collected before it
was finalized.", K09RestClient.lastMessage);
+ }
+
+ @Test
+ public void k09b_restClient_leakDetection_withThreadCreationStack()
throws Throwable {
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
+ .debug()
+ .build(K09RestClient.class);
+ rc.finalize();
+ assertTrue(K09RestClient.lastMessage.startsWith("WARNING:
RestClient garbage collected before it was finalized.\nCreation Stack:\n\t"));
+ }
+
+ @Test
+ public void k10_restClient_leakDetectionBoolean() throws Throwable {
+ RestClient rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
+ .leakDetection(true)
+ .build(K09RestClient.class);
+ rc.finalize();
+ assertEquals("WARNING: RestClient garbage collected before it
was finalized.", K09RestClient.lastMessage);
+
+ K09RestClient.lastMessage = null;
+ rc = MockRestClient
+ .create(A.class)
+ .simpleJson()
+ .leakDetection(false)
+ .build(K09RestClient.class);
+ rc.finalize();
+ assertNull(K09RestClient.lastMessage);
+
+ }
+
// @Test
// public void k11_restClient_marshallObject() throws Exception { fail(); }
//// public RestClientBuilder marshall(Marshall value) {
diff --git
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestCallInterceptor.java
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/BasicRestCallHandler.java
similarity index 52%
copy from
juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestCallInterceptor.java
copy to
juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/BasicRestCallHandler.java
index 5ce0d00..301abc9 100644
---
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestCallInterceptor.java
+++
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/BasicRestCallHandler.java
@@ -1,56 +1,49 @@
-//
***************************************************************************************************************************
-// * 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. *
-//
***************************************************************************************************************************
-package org.apache.juneau.rest.client2;
-
-/**
- * Used to intercept http connection responses to allow modification of that
response before processing and for
- * listening for call lifecycle events.
- *
- * <p>
- * Useful if you want to prevent {@link RestCallException RestCallExceptions}
from being thrown on error conditions.
- *
- * <ul class='seealso'>
- * <li class='jf'>{@link RestClient#RESTCLIENT_interceptors}
- * <li class='jm'>{@link RestClientBuilder#interceptors(Class...)}
- * <li class='jm'>{@link
RestClientBuilder#interceptors(RestCallInterceptor...)}
- * </ul>
- */
-public interface RestCallInterceptor {
-
- /**
- * Called when {@link RestRequest} object is created.
- *
- * @param restCall The restCall object invoking this method.
- * @throws Exception Any exception can be thrown.
- */
- public void onInit(RestRequest restCall) throws Exception;
-
- /**
- * Called immediately after an HTTP response has been received.
- *
- * @param req The HTTP request object.
- * @param res The HTTP response object.
- * @throws Exception Any exception can be thrown.
- */
- public void onConnect(RestRequest req, RestResponse res) throws
Exception;
-
- /**
- * Called when the response body is consumed.
- *
- * @param req The request object.
- * @param res The response object.
- * @throws RestCallException Error occurred during call.
- * @throws Exception Any exception can be thrown.
- */
- public void onClose(RestRequest req, RestResponse res) throws Exception;
-}
+//
***************************************************************************************************************************
+// * 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. *
+//
***************************************************************************************************************************
+package org.apache.juneau.rest.client2;
+
+import java.io.*;
+
+import org.apache.http.*;
+import org.apache.http.client.*;
+import org.apache.http.client.methods.*;
+import org.apache.http.protocol.*;
+
+/**
+ * Default HTTP call handler.
+ *
+ * Can be subclasses and specified via {@link
RestClient#RESTCLIENT_callHandler}.
+ */
+public class BasicRestCallHandler implements RestCallHandler {
+
+ private final RestClient client;
+
+ /**
+ * Constructor.
+ *
+ * @param client The client to use for handling requests.
+ */
+ public BasicRestCallHandler(RestClient client) {
+ this.client = client;
+ }
+
+ @Override
+ public HttpResponse execute(HttpHost target,
HttpEntityEnclosingRequestBase request, HttpContext context) throws
ClientProtocolException, IOException {
+ return target == null ? client.execute(request, context) :
client.execute(target, (HttpRequest)request, context);
+ }
+
+ @Override
+ public HttpResponse execute(HttpHost target, HttpRequestBase request,
HttpContext context) throws ClientProtocolException, IOException {
+ return target == null ? client.execute(request, context) :
client.execute(target, (HttpRequest)request, context);
+ }
+}
diff --git
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestCallInterceptor.java
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/BasicRestCallInterceptor.java
similarity index 56%
copy from
juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestCallInterceptor.java
copy to
juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/BasicRestCallInterceptor.java
index 5ce0d00..8e7dfb6 100644
---
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestCallInterceptor.java
+++
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/BasicRestCallInterceptor.java
@@ -1,56 +1,30 @@
-//
***************************************************************************************************************************
-// * 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. *
-//
***************************************************************************************************************************
-package org.apache.juneau.rest.client2;
-
-/**
- * Used to intercept http connection responses to allow modification of that
response before processing and for
- * listening for call lifecycle events.
- *
- * <p>
- * Useful if you want to prevent {@link RestCallException RestCallExceptions}
from being thrown on error conditions.
- *
- * <ul class='seealso'>
- * <li class='jf'>{@link RestClient#RESTCLIENT_interceptors}
- * <li class='jm'>{@link RestClientBuilder#interceptors(Class...)}
- * <li class='jm'>{@link
RestClientBuilder#interceptors(RestCallInterceptor...)}
- * </ul>
- */
-public interface RestCallInterceptor {
-
- /**
- * Called when {@link RestRequest} object is created.
- *
- * @param restCall The restCall object invoking this method.
- * @throws Exception Any exception can be thrown.
- */
- public void onInit(RestRequest restCall) throws Exception;
-
- /**
- * Called immediately after an HTTP response has been received.
- *
- * @param req The HTTP request object.
- * @param res The HTTP response object.
- * @throws Exception Any exception can be thrown.
- */
- public void onConnect(RestRequest req, RestResponse res) throws
Exception;
-
- /**
- * Called when the response body is consumed.
- *
- * @param req The request object.
- * @param res The response object.
- * @throws RestCallException Error occurred during call.
- * @throws Exception Any exception can be thrown.
- */
- public void onClose(RestRequest req, RestResponse res) throws Exception;
-}
+//
***************************************************************************************************************************
+// * 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. *
+//
***************************************************************************************************************************
+package org.apache.juneau.rest.client2;
+
+/**
+ * A default implementation of a {@link RestCallInterceptor}.
+ *
+ * All default methods are no-ops.
+ */
+public abstract class BasicRestCallInterceptor implements RestCallInterceptor {
+
+ @Override /* RestCallInterceptor */
+ public void onInit(RestRequest req) throws Exception {}
+
+ @Override /* RestCallInterceptor */
+ public void onConnect(RestRequest req, RestResponse res) throws
Exception {}
+
+ @Override /* RestCallInterceptor */
+ public void onClose(RestRequest req, RestResponse res) throws Exception
{}
+}
diff --git
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestCallInterceptor.java
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestCallInterceptor.java
index 5ce0d00..584d760 100644
---
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestCallInterceptor.java
+++
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestCallInterceptor.java
@@ -28,12 +28,13 @@ package org.apache.juneau.rest.client2;
public interface RestCallInterceptor {
/**
- * Called when {@link RestRequest} object is created.
+ * Called immediately after {@link RestRequest} object is created and
all headers/query/form-data has been
+ * set on the request from the client.
*
- * @param restCall The restCall object invoking this method.
+ * @param req The HTTP request object.
* @throws Exception Any exception can be thrown.
*/
- public void onInit(RestRequest restCall) throws Exception;
+ public void onInit(RestRequest req) throws Exception;
/**
* Called immediately after an HTTP response has been received.
diff --git
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java
index 435c323..8ebcb6c 100644
---
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java
+++
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java
@@ -1493,11 +1493,13 @@ public class RestClient extends BeanContext implements
HttpClient, Closeable {
*/
public static final String RESTCLIENT_serializers = PREFIX +
"serializers.lo";
+ static final String RESTCLIENT_httpClient = PREFIX + "httpClient.o";
+ static final String RESTCLIENT_httpClientBuilder= PREFIX +
"httpClientBuilder.o";
+
private static final Set<String> NO_BODY_METHODS =
ASet.unmodifiable("GET","HEAD","DELETE","CONNECT","OPTIONS","TRACE");
private final List<Object> headers, query, formData;
- private final HttpClientBuilder httpClientBuilder;
- private final CloseableHttpClient httpClient;
+ final CloseableHttpClient httpClient;
private final boolean keepHttpClientOpen, debug, leakDetection;
private final UrlEncodingSerializer urlEncodingSerializer; // Used for
form posts only.
private final HttpPartSerializer partSerializer;
@@ -1525,12 +1527,12 @@ public class RestClient extends BeanContext implements
HttpClient, Closeable {
* @return A new {@link RestClientBuilder} object.
*/
public static RestClientBuilder create() {
- return new RestClientBuilder(PropertyStore.DEFAULT, null);
+ return new RestClientBuilder(PropertyStore.DEFAULT);
}
@Override /* Context */
public RestClientBuilder builder() {
- return new RestClientBuilder(getPropertyStore(),
httpClientBuilder);
+ return new RestClientBuilder(getPropertyStore());
}
private static final
@@ -1539,14 +1541,12 @@ public class RestClient extends BeanContext implements
HttpClient, Closeable {
/**
* Constructor.
*
- * @param builder The REST client builder.
+ * @param ps The property store containing the unmodifiable
configuration for this client.
*/
@SuppressWarnings("unchecked")
- protected RestClient(RestClientBuilder builder) {
- super(builder.getPropertyStore());
- PropertyStore ps = getPropertyStore();
- this.httpClientBuilder = builder.getHttpClientBuilder();
- this.httpClient = builder.getHttpClient();
+ protected RestClient(PropertyStore ps) {
+ super(ps);
+ this.httpClient = getInstanceProperty(RESTCLIENT_httpClient,
CloseableHttpClient.class, null);
this.keepHttpClientOpen =
getBooleanProperty(RESTCLIENT_keepHttpClientOpen, false);
this.errorCodes = getInstanceProperty(RESTCLIENT_errorCodes,
Predicate.class, ERROR_CODES_DEFAULT);
this.debug = getBooleanProperty(RESTCLIENT_debug,
getBooleanProperty(BEAN_debug, false));
@@ -1602,21 +1602,7 @@ public class RestClient extends BeanContext implements
HttpClient, Closeable {
.collect(Collectors.toList())
);
- RestCallHandler callHandler =
getInstanceProperty(RESTCLIENT_callHandler, RestCallHandler.class, null);
- if (callHandler == null) {
- callHandler = new RestCallHandler() {
- @Override
- public HttpResponse execute(HttpHost target,
HttpEntityEnclosingRequestBase request, HttpContext context) throws
ClientProtocolException, IOException {
- return target == null ?
RestClient.this.execute(request, context) : RestClient.this.execute(target,
(HttpRequest)request, context);
- }
-
- @Override
- public HttpResponse execute(HttpHost target,
HttpRequestBase request, HttpContext context) throws ClientProtocolException,
IOException {
- return target == null ?
RestClient.this.execute(request, context) : RestClient.this.execute(target,
(HttpRequest)request, context);
- }
- };
- }
- this.callHandler = callHandler;
+ this.callHandler = getInstanceProperty(RESTCLIENT_callHandler,
RestCallHandler.class, BasicRestCallHandler.class, ResourceResolver.FUZZY, ps,
this);
RestCallInterceptor[] rci =
getInstanceArrayProperty(RESTCLIENT_interceptors, RestCallInterceptor.class,
new RestCallInterceptor[0]);
if (debug)
@@ -2314,6 +2300,8 @@ public class RestClient extends BeanContext implements
HttpClient, Closeable {
for (Object o : formData)
req.formData(toFormData(o));
+ req.interceptors(interceptors);
+
return req;
}
@@ -2700,15 +2688,28 @@ public class RestClient extends BeanContext implements
HttpClient, Closeable {
@Override
protected void finalize() throws Throwable {
if (leakDetection && ! isClosed && ! keepHttpClientOpen) {
- System.err.println("WARNING: RestClient garbage
collected before it was finalized."); // NOT DEBUG
+ StringBuilder sb = new StringBuilder("WARNING:
RestClient garbage collected before it was finalized."); // NOT DEBUG
if (creationStack != null) {
- System.err.println("Creation Stack:"); // NOT
DEBUG
+ sb.append("\nCreation Stack:"); // NOT DEBUG
for (StackTraceElement e : creationStack)
- System.err.println(e); // NOT DEBUG
+ sb.append("\n\t" + e); // NOT DEBUG
}
+ log(sb.toString());
}
}
+ /**
+ * Captures log messages produced by this class.
+ *
+ * <p>
+ * Default behavior is just to print to STDERR.
+ *
+ * @param msg The message to log.
+ */
+ protected void log(String msg) {
+ System.err.println(msg);
+ }
+
//------------------------------------------------------------------------------------------------
// Passthrough methods for HttpClient.
//------------------------------------------------------------------------------------------------
diff --git
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClientBuilder.java
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClientBuilder.java
index c375a86..16435bd 100644
---
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClientBuilder.java
+++
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClientBuilder.java
@@ -99,19 +99,18 @@ public class RestClientBuilder extends BeanContextBuilder {
* Constructor.
* @param ps
* Initial configuration properties for this builder.
- * <br>Can be <jk>null</jk>.
- * @param httpClientBuilder
- * The HTTP client builder to use for this REST client builder.
- * <br>Can be <jk>null</jk> to just call {@link
#createHttpClientBuilder()} to instantiate it again.
*/
- protected RestClientBuilder(PropertyStore ps, HttpClientBuilder
httpClientBuilder) {
+ protected RestClientBuilder(PropertyStore ps) {
super(ps);
+ HttpClientBuilder httpClientBuilder =
peek(HttpClientBuilder.class, RESTCLIENT_httpClientBuilder);
this.httpClientBuilder = httpClientBuilder != null ?
httpClientBuilder : getHttpClientBuilder();
}
@Override /* ContextBuilder */
public RestClient build() {
- return new RestClient(this);
+ set(RESTCLIENT_httpClient, getHttpClient());
+ set(RESTCLIENT_httpClientBuilder, getHttpClientBuilder());
+ return new RestClient(getPropertyStore());
}
//------------------------------------------------------------------------------------------------------------------
diff --git
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java
index 843d8bd..1ac9d7b 100644
---
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java
+++
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java
@@ -92,7 +92,6 @@ public final class RestRequest extends BeanSession implements
HttpUriRequest, Co
super(client, BeanSessionArgs.DEFAULT);
this.client = client;
this.request = request;
- interceptors(this.client.interceptors);
this.errorCodes = client.errorCodes;
this.partSerializer = client.getPartSerializer();
this.uriBuilder = new URIBuilder(uri);
diff --git
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClient.java
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClient.java
index 6ca8809..0f88b48 100644
---
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClient.java
+++
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClient.java
@@ -52,7 +52,7 @@ public class MockRestClient extends RestClientBuilder {
* <br>If a class, it must have a no-arg constructor.
*/
protected MockRestClient(Object impl) {
- super(null, null);
+ super(null);
mrb = MockRest.create(impl);
rootUrl("http://localhost");
}