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 5eec89d Context API refactoring.
5eec89d is described below
commit 5eec89d4b833b5218da4f16a522f558f5dcddf8b
Author: JamesBognar <[email protected]>
AuthorDate: Thu Sep 23 16:01:28 2021 -0400
Context API refactoring.
---
.../org/apache/juneau/rest/client/RestClient.java | 10 +-
.../juneau/rest/client/RestClientBuilder.java | 357 ++++++++++-----------
.../juneau/rest/mock/MockRestClientBuilder.java | 18 --
.../rest/client/RestClient_Marshalls_Test.java | 2 +-
.../juneau/rest/client/RestClient_Query_Test.java | 8 -
.../apache/juneau/rest/client/RestClient_Test.java | 2 +-
6 files changed, 177 insertions(+), 220 deletions(-)
diff --git
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
index 72126f4..882dd89 100644
---
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
+++
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
@@ -334,7 +334,7 @@ import org.apache.juneau.utils.*;
* <li class='jm'>{@link RestClientBuilder#header(String,String)
header(String,Object)}
* <li class='jm'>{@link RestClientBuilder#header(String,Supplier)
header(String,Supplier<?>)}
* <li class='jm'>{@link RestClientBuilder#headers(Header...)
headers(Header...)}
- * <li class='jm'>{@link
RestClientBuilder#defaultHeaders(Header...) defaultHeaders(Header...)}
+ * <li class='jm'>{@link
RestClientBuilder#headersDefault(Header...) defaultHeaders(Header...)}
* </ul>
* <li class='jc'>{@link RestRequest}
* <ul>
@@ -385,12 +385,11 @@ import org.apache.juneau.utils.*;
* <ul class='javatree'>
* <li class='jc'>{@link RestClientBuilder}
* <ul>
- * <li class='jm'>{@link RestClientBuilder#getQueryData()
getQueryData()}
+ * <li class='jm'>{@link RestClientBuilder#queryData() queryData()}
* <li class='jm'>{@link
RestClientBuilder#queryData(String,String) queryData(String,String)}
* <li class='jm'>{@link
RestClientBuilder#queryData(String,Supplier)
queryData(String,Supplier<?>)}
* <li class='jm'>{@link
RestClientBuilder#queryData(NameValuePair...) queryData(NameValuePair...)}
- * <li class='jm'>{@link
RestClientBuilder#queryDataPairs(String...) queryDataPairs(String...)}
- * <li class='jm'>{@link
RestClientBuilder#defaultQueryData(NameValuePair...)
defaultQueryData(NameValuePair...)}
+ * <li class='jm'>{@link
RestClientBuilder#queryDataDefault(NameValuePair...)
defaultQueryData(NameValuePair...)}
* </ul>
* <li class='jc'>{@link RestRequest}
* <ul>
@@ -1740,7 +1739,6 @@ public class RestClient extends BeanContextable
implements HttpClient, Closeable
public static final String RESTCLIENT_skipEmptyQueryData = PREFIX +
"skipEmptyQueryData.b";
static final String RESTCLIENT_INTERNAL_formDataBuilder = PREFIX +
"formDataBuilder.o";
- static final String RESTCLIENT_INTERNAL_queryDataBuilder = PREFIX +
"queryBuilder.o";
static final String RESTCLIENT_INTERNAL_pathDataBuilder = PREFIX +
"pathDataBuilder.o";
final HeaderList.Builder headerData;
@@ -1811,9 +1809,9 @@ public class RestClient extends BeanContextable
implements HttpClient, Closeable
httpClient = builder.getHttpClient();
headerData = builder.headerData().build().copy();
+ queryData = builder.queryData().build().copy();
ContextProperties cp =
getContextProperties().copy().apply(getBeanContext().getContextProperties()).build();
- this.queryData =
cp.getInstance(RESTCLIENT_INTERNAL_queryDataBuilder,
PartList.Builder.class).orElseGet(PartList.Builder::new).copy();
this.formData =
cp.getInstance(RESTCLIENT_INTERNAL_formDataBuilder,
PartList.Builder.class).orElseGet(PartList.Builder::new).copy();
this.pathData =
cp.getInstance(RESTCLIENT_INTERNAL_pathDataBuilder,
PartList.Builder.class).orElseGet(PartList.Builder::new).copy();
this.skipEmptyHeaders =
cp.getBoolean(RESTCLIENT_skipEmptyHeaders).orElse(false);
diff --git
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
index 3e9b565..529ac44 100644
---
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
+++
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
@@ -109,7 +109,6 @@ public class RestClientBuilder extends
BeanContextableBuilder {
*/
protected RestClientBuilder() {
super();
- this.queryData = PartList.create();
this.formData = PartList.create();
this.pathData = PartList.create();
this.serializerGroupBuilder =
SerializerGroup.create().beanContextBuilder(getBeanContextBuilder());
@@ -163,25 +162,11 @@ public class RestClientBuilder extends
BeanContextableBuilder {
private ContextProperties contextProperties() {
set(RESTCLIENT_INTERNAL_formDataBuilder, formData);
- set(RESTCLIENT_INTERNAL_queryDataBuilder, queryData);
set(RESTCLIENT_INTERNAL_pathDataBuilder, pathData);
return getContextProperties();
}
/**
- * Returns the builder for the query parameter list.
- *
- * <p>
- * Allows you to perform operations on the query parameters that aren't
otherwise exposed on this API, such
- * as Prepend/Replace/Default operations.
- *
- * @return The query parameter list builder.
- */
- public PartList.Builder getQueryData() {
- return queryData;
- }
-
- /**
* Returns the builder for the form data parameter list.
*
* <p>
@@ -939,7 +924,7 @@ public class RestClientBuilder extends
BeanContextableBuilder {
* The following convenience methods are also provided for updating the
headers:
* <ul>
* <li class='jm'>{@link #headers(Header...)}
- * <li class='jm'>{@link #defaultHeaders(Header...)}
+ * <li class='jm'>{@link #headersDefault(Header...)}
* <li class='jm'>{@link #header(String,String)}
* <li class='jm'>{@link #header(String,Supplier)}
* <li class='jm'>{@link #mediaType(String)}
@@ -1040,7 +1025,7 @@ public class RestClientBuilder extends
BeanContextableBuilder {
* <p class='bcode w800'>
* RestClient <jv>client</jv> = RestClient
* .<jsm>create</jsm>()
- * .defaultHeaders(<jsm>stringHeader</jsm>(<js>"Foo"</js>,
()-><js>"bar"</js>));
+ * .headersDefault(<jsm>stringHeader</jsm>(<js>"Foo"</js>,
()-><js>"bar"</js>));
* .build();
* </p>
*
@@ -1051,7 +1036,7 @@ public class RestClientBuilder extends
BeanContextableBuilder {
* @return This object (for method chaining).
* @see #headerData()
*/
- public RestClientBuilder defaultHeaders(Header...parts) {
+ public RestClientBuilder headersDefault(Header...parts) {
headerData().setDefault(parts);
return this;
}
@@ -1442,6 +1427,174 @@ public class RestClientBuilder extends
BeanContextableBuilder {
}
//------------------------------------------------------------------------------------------------------------------
+ // queryData
+
//------------------------------------------------------------------------------------------------------------------
+
+ /**
+ * Returns the builder for the list of query parameters that get
applied to all requests created by this builder.
+ *
+ * <p>
+ * This is the primary method for accessing the query parameter list.
+ * On first call, the builder is created via the method {@link
#createQueryData()}.
+ *
+ * <h5 class='section'>Example:</h5>
+ * <p class='bcode w800'>
+ * <jc>// Create a client that adds a "foo=bar" query parameter on
every request.</jc>
+ * RestClientBuilder <jv>builder</jv> =
RestClient.<jsm>create</jsm>();
+ * <jv>builder</jv>.queryData().setDefault(<js>"foo"</js>,
<js>"bar"</js>));
+ * RestClient <jv>client</jv> = <jv>builder</jv>.build();
+ * </p>
+ *
+ * <p>
+ * The following convenience methods are also provided for updating the
parameters:
+ * <ul>
+ * <li class='jm'>{@link #queryData(Header...)}
+ * <li class='jm'>{@link #queryDataDefault(Header...)}
+ * <li class='jm'>{@link #queryData(String,String)}
+ * <li class='jm'>{@link #queryData(String,Supplier)}
+ * </ul>
+ *
+ * <p>
+ * Note that the {@link #apply(Consumer)} method can be used to call
this method without breaking fluent call chains.
+ *
+ * <h5 class='section'>Example:</h5>
+ * <p class='bcode w800'>
+ * RestClient <jv>client</jv> = RestClient
+ * .<jsm>create</jsm>()
+ * .apply(<jv>x</jv> ->
<jv>x</jv>.queryData().setDefault(<js>"foo"</js>, <js>"bar"</js>))
+ * .build();
+ * </p>
+ *
+ * @return The header list builder.
+ */
+ public final PartList.Builder queryData() {
+ if (queryData == null)
+ queryData = createQueryData();
+ return queryData;
+ }
+
+ /**
+ * Creates the builder for the query data list.
+ *
+ * <p>
+ * Subclasses can override this method to provide their own
implementation.
+ *
+ * <p>
+ * The default behavior creates an empty builder.
+ *
+ * @return The query data list builder.
+ * @see #queryData()
+ */
+ protected PartList.Builder createQueryData() {
+ return PartList.create();
+ }
+
+ /**
+ * Appends multiple query parameters to the URI of all requests.
+ *
+ * <h5 class='section'>Example:</h5>
+ * <p class='bcode w800'>
+ * <jk>import static</jk> org.apache.juneau.http.HttpParts.*;
+ *
+ * RestClient <jv>client</jv> = RestClient
+ * .<jsm>create</jsm>()
+ * .queryData(
+ * <jsm>stringPart</jsm>(<js>"foo"</js>,
<js>"bar"</js>),
+ * <jsm>booleanPart</jsm>(<js>"baz"</js>,
<jk>true</jk>)
+ * )
+ * .build();
+ * </p>
+ *
+ * <p>
+ * This is a shortcut for calling
<c>queryData().append(<jv>parts</jv>)</c>.
+ *
+ * @param parts
+ * The query parameters.
+ * @return This object (for method chaining).
+ * @see #queryData()
+ */
+ @FluentSetter
+ public RestClientBuilder queryData(NameValuePair...parts) {
+ queryData().append(parts);
+ return this;
+ }
+
+ /**
+ * Sets default query parameter values.
+ *
+ * <p>
+ * Uses default values for specified parameters if not otherwise
specified on the outgoing requests.
+ *
+ * <h5 class='section'>Example:</h5>
+ * <p class='bcode w800'>
+ * RestClient <jv>client</jv> = RestClient
+ * .<jsm>create</jsm>()
+ * .queryDataDefault(<jsm>stringPart</jsm>(<js>"foo"</js>,
()-><js>"bar"</js>));
+ * .build();
+ * </p>
+ *
+ * <p>
+ * This is a shortcut for calling
<c>queryData().setDefault(<jv>parts</jv>)</c>.
+ *
+ * @param parts The parts.
+ * @return This object (for method chaining).
+ * @see #queryData()
+ */
+ public RestClientBuilder queryDataDefault(NameValuePair...parts) {
+ queryData().setDefault(parts);
+ return this;
+ }
+
+ /**
+ * Appends a query parameter to the URI.
+ *
+ * <h5 class='section'>Example:</h5>
+ * <p class='bcode w800'>
+ * RestClient <jv>client</jv> = RestClient
+ * .<jsm>create</jsm>()
+ * .queryData(<js>"foo"</js>, <js>"bar"</js>)
+ * .build();
+ * </p>
+ *
+ * <p>
+ * This is a shortcut for calling
<c>queryData().append(<jv>name</jv>,<jv>value</jv>)</c>.
+ *
+ * @param name The parameter name.
+ * @param value The parameter value.
+ * @return This object (for method chaining).
+ * @see #queryData()
+ */
+ @FluentSetter
+ public RestClientBuilder queryData(String name, String value) {
+ queryData().append(name, value);
+ return this;
+ }
+
+ /**
+ * Appends a query parameter with a dynamic value to the URI.
+ *
+ * <h5 class='section'>Example:</h5>
+ * <p class='bcode w800'>
+ * RestClient <jv>client</jv> = RestClient
+ * .<jsm>create</jsm>()
+ * .queryData(<js>"foo"</js>, ()-><js>"bar"</js>)
+ * .build();
+ * </p>
+ *
+ * <p>
+ * This is a shortcut for calling
<c>queryData().append(<jv>name</jv>,<jv>value</jv>)</c>.
+ *
+ * @param name The parameter name.
+ * @param value The parameter value supplier.
+ * @return This object (for method chaining).
+ */
+ @FluentSetter
+ public RestClientBuilder queryData(String name, Supplier<String> value)
{
+ queryData().append(name, value);
+ return this;
+ }
+
+
//------------------------------------------------------------------------------------------------------------------
// Logging.
//------------------------------------------------------------------------------------------------------------------
@@ -1656,32 +1809,6 @@ public class RestClientBuilder extends
BeanContextableBuilder {
// HTTP parts
//-----------------------------------------------------------------------------------------------------------------
- /**
- * Appends a query parameter to the URI of all requests.
- *
- * <h5 class='section'>Example:</h5>
- * <p class='bcode w800'>
- * <jk>import static</jk> org.apache.juneau.http.HttpParts.*;
- *
- * RestClient <jv>client</jv> = RestClient
- * .<jsm>create</jsm>()
- * .queryData(<jsm>stringPart</jsm>(<js>"foo"</js>,
<js>"bar"</js>))
- * .build();
- * </p>
- *
- * <p>
- * This is a shortcut for calling
<c>getQueryData().append(<jv>part</jv>)</c>.
- *
- * @param part
- * The parameter to append.
- * <br><jk>null</jk> values are ignored.
- * @return This object (for method chaining).
- */
- @FluentSetter
- public RestClientBuilder queryData(NameValuePair part) {
- getQueryData().append(part);
- return this;
- }
/**
* Appends a form-data parameter to the request bodies of all form
posts.
@@ -1738,35 +1865,6 @@ public class RestClientBuilder extends
BeanContextableBuilder {
}
/**
- * Appends multiple query parameters to the URI of all requests.
- *
- * <h5 class='section'>Example:</h5>
- * <p class='bcode w800'>
- * <jk>import static</jk> org.apache.juneau.http.HttpParts.*;
- *
- * RestClient <jv>client</jv> = RestClient
- * .<jsm>create</jsm>()
- * .queryData(
- * <jsm>stringPart</jsm>(<js>"foo"</js>,
<js>"bar"</js>),
- * <jsm>booleanPart</jsm>(<js>"baz"</js>,
<jk>true</jk>)
- * )
- * .build();
- * </p>
- *
- * <p>
- * This is a shortcut for calling
<c>getQueryData().append(<jv>parts</jv>)</c>.
- *
- * @param parts
- * The query parameters.
- * @return This object (for method chaining).
- */
- @FluentSetter
- public RestClientBuilder queryData(NameValuePair...parts) {
- getQueryData().append(parts);
- return this;
- }
-
- /**
* Appends multiple form-data parameters to the request bodies of all
URL-encoded form posts.
*
* <h5 class='section'>Example:</h5>
@@ -1825,22 +1923,6 @@ public class RestClientBuilder extends
BeanContextableBuilder {
}
/**
- * Appends multiple query parameters to all requests.
- *
- * <p>
- * This is a shortcut for calling
<c>getQueryData().append(<jv>parts</jv>)</c>.
- *
- * @param parts
- * The parts to set.
- * @return This object (for method chaining).
- */
- @FluentSetter
- public RestClientBuilder queryData(PartList parts) {
- getQueryData().append(parts);
- return this;
- }
-
- /**
* Appends multiple form-data parameters to all requests.
*
* <p>
@@ -1873,30 +1955,6 @@ public class RestClientBuilder extends
BeanContextableBuilder {
}
/**
- * Appends a query parameter to the URI.
- *
- * <h5 class='section'>Example:</h5>
- * <p class='bcode w800'>
- * RestClient <jv>client</jv> = RestClient
- * .<jsm>create</jsm>()
- * .queryData(<js>"foo"</js>, <js>"bar"</js>)
- * .build();
- * </p>
- *
- * <p>
- * This is a shortcut for calling
<c>getQueryData().append(<jv>name</jv>,<jv>value</jv>)</c>.
- *
- * @param name The parameter name.
- * @param value The parameter value.
- * @return This object (for method chaining).
- */
- @FluentSetter
- public RestClientBuilder queryData(String name, String value) {
- getQueryData().append(name, value);
- return this;
- }
-
- /**
* Appends a form-data parameter to all request bodies.
*
* <h5 class='section'>Example:</h5>
@@ -1945,30 +2003,6 @@ public class RestClientBuilder extends
BeanContextableBuilder {
}
/**
- * Appends a query parameter with a dynamic value to the URI.
- *
- * <h5 class='section'>Example:</h5>
- * <p class='bcode w800'>
- * RestClient <jv>client</jv> = RestClient
- * .<jsm>create</jsm>()
- * .queryData(<js>"foo"</js>, ()-><js>"bar"</js>)
- * .build();
- * </p>
- *
- * <p>
- * This is a shortcut for calling
<c>getQueryData().append(<jv>name</jv>,<jv>value</jv>)</c>.
- *
- * @param name The parameter name.
- * @param value The parameter value supplier.
- * @return This object (for method chaining).
- */
- @FluentSetter
- public RestClientBuilder queryData(String name, Supplier<String> value)
{
- getQueryData().append(name, value);
- return this;
- }
-
- /**
* Appends a form-data parameter with a dynamic value to all request
bodies.
*
* <h5 class='section'>Example:</h5>
@@ -2017,31 +2051,6 @@ public class RestClientBuilder extends
BeanContextableBuilder {
}
/**
- * Sets default query parameter values.
- *
- * <p>
- * Uses default values for specified parameters if not otherwise
specified on the outgoing requests.
- *
- * <h5 class='section'>Example:</h5>
- * <p class='bcode w800'>
- * RestClient <jv>client</jv> = RestClient
- * .<jsm>create</jsm>()
- * .defaultQueryData(<jsm>stringPart</jsm>(<js>"foo"</js>,
()-><js>"bar"</js>));
- * .build();
- * </p>
- *
- * <p>
- * This is a shortcut for calling
<c>getQueryData().setDefault(<jv>parts</jv>)</c>.
- *
- * @param parts The parts.
- * @return This object (for method chaining).
- */
- public RestClientBuilder defaultQueryData(NameValuePair...parts) {
- getQueryData().setDefault(parts);
- return this;
- }
-
- /**
* Sets default form-data parameter values.
*
* <p>
@@ -2092,30 +2101,6 @@ public class RestClientBuilder extends
BeanContextableBuilder {
}
/**
- * Appends query parameters to the URI query using free-form key/value
pairs.
- *
- * <h5 class='section'>Example:</h5>
- * <p class='bcode w800'>
- * RestClient <jv>client</jv> = RestClient
- * .<jsm>create</jsm>()
- *
.queryDataPairs(<js>"key1"</js>,<js>"val1"</js>,<js>"key2"</js>,<js>"val2"</js>)
- * .build();
- * </p>
- *
- * @param pairs The query key/value pairs.
- * @return This object (for method chaining).
- */
- @FluentSetter
- public RestClientBuilder queryDataPairs(String...pairs) {
- if (pairs.length % 2 != 0)
- throw new RuntimeException("Odd number of parameters
passed into queryDataPairs(String...)");
- PartList.Builder b = getQueryData();
- for (int i = 0; i < pairs.length; i+=2)
- b.append(pairs[i], pairs[i+1]);
- return this;
- }
-
- /**
* Appends form-data parameters to all request bodies using free-form
key/value pairs.
*
* <h5 class='section'>Example:</h5>
diff --git
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestClientBuilder.java
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestClientBuilder.java
index 7bd36d8..b892d09 100644
---
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestClientBuilder.java
+++
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestClientBuilder.java
@@ -1339,18 +1339,6 @@ public class MockRestClientBuilder extends
RestClientBuilder {
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder queryData(NameValuePair part) {
- super.queryData(part);
- return this;
- }
-
- @Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder queryData(PartList parts) {
- super.queryData(parts);
- return this;
- }
-
- @Override /* GENERATED - RestClientBuilder */
public MockRestClientBuilder queryData(String name, String value) {
super.queryData(name, value);
return this;
@@ -1363,12 +1351,6 @@ public class MockRestClientBuilder extends
RestClientBuilder {
}
@Override /* GENERATED - RestClientBuilder */
- public MockRestClientBuilder queryDataPairs(String...pairs) {
- super.queryDataPairs(pairs);
- return this;
- }
-
- @Override /* GENERATED - RestClientBuilder */
public MockRestClientBuilder quoteChar(char value) {
super.quoteChar(value);
return this;
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Marshalls_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Marshalls_Test.java
index 09a0b45..3610d2e 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Marshalls_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Marshalls_Test.java
@@ -163,7 +163,7 @@ public class RestClient_Marshalls_Test {
@Test
public void d01_universal() throws Exception {
- RestClient x =
client().universal().defaultHeaders(Accept.APPLICATION_JSON,
ContentType.APPLICATION_JSON).build();
+ RestClient x =
client().universal().headersDefault(Accept.APPLICATION_JSON,
ContentType.APPLICATION_JSON).build();
x.post("/a01",bean).header("X-Accept","application/json").header("X-Content-Type","application/json").run().assertCode().is(200).getBody().asType(Bean.class).check();
x.post("/a01",bean).header("Accept","application/json").header("Content-Type","application/json").header("X-Accept","application/json").header("X-Content-Type","application/json").run().assertCode().is(200).getBody().asType(Bean.class).check();
x.post("/a01",bean).header("Accept","text/xml").header("Content-Type","text/xml").header("X-Accept","text/xml").header("X-Content-Type","text/xml").run().assertCode().is(200).getBody().asType(Bean.class).check();
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Query_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Query_Test.java
index c0ddf48..8535809 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Query_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Query_Test.java
@@ -127,14 +127,6 @@ public class RestClient_Query_Test {
client().build().get("/query").queryData(part("foo","bar")).run().assertBody().is("foo=bar");
}
- @Test
- public void a11_queryPairs_Objects() throws Exception {
-
client().queryDataPairs("foo","bar","baz","qux").build().get("/query").run().assertBody().is("foo=bar&baz=qux");
-
client().build().get("/query").queryDataPairs("foo","bar","baz","qux").run().assertBody().is("foo=bar&baz=qux");
-
assertThrown(()->client().queryDataPairs("foo","bar","baz")).message().is("Odd
number of parameters passed into queryDataPairs(String...)");
-
assertThrown(()->client().build().get().queryDataPairs("foo","bar","baz")).message().is("Odd
number of parameters passed into queryDataPairs(String...)");
- }
-
public static class A12 extends Reader {
@Override
public int read(char[] cbuf,int off,int len) throws IOException
{
diff --git
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Test.java
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Test.java
index 49bf50b..b257c3e 100644
---
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Test.java
+++
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Test.java
@@ -223,7 +223,7 @@ public class RestClient_Test {
@Test
public void c04_httpClient_defaultHeaders() throws RestCallException {
-
client().defaultHeaders(stringHeader("Foo","bar")).build().get("/echo").run().assertBody().contains("GET
/echo HTTP/1.1","Foo: bar");
+
client().headersDefault(stringHeader("Foo","bar")).build().get("/echo").run().assertBody().contains("GET
/echo HTTP/1.1","Foo: bar");
}
@Test