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&lt;?&gt;)}
  *             <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&lt;?&gt;)}
  *             <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>, 
()-&gt;<js>"bar"</js>));
+        *              .headersDefault(<jsm>stringHeader</jsm>(<js>"Foo"</js>, 
()-&gt;<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> -&gt; 
<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>, 
()-&gt;<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>, ()-&gt;<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>, ()-&gt;<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>, 
()-&gt;<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

Reply via email to