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 9691ead  MockRest improvements.
9691ead is described below

commit 9691ead8b9065e695575c320207e2276204be495
Author: JamesBognar <james.bog...@salesforce.com>
AuthorDate: Wed May 27 09:45:53 2020 -0400

    MockRest improvements.
---
 .../rest/test/client/InterfaceProxyTest.java       |    1 -
 .../apache/juneau/rest/client2/RestClientTest.java |   20 +-
 .../juneau/rest/client2/RestClientBuilder.java     |    7 +
 .../apache/juneau/rest/client2/RestResponse.java   |    2 +-
 .../org/apache/juneau/rest/mock2/MockRemote.java   |    2 +-
 .../org/apache/juneau/rest/mock2/MockRest.java     |  287 +----
 .../apache/juneau/rest/mock2/MockRestBuilder.java  |  302 +++++
 .../apache/juneau/rest/mock2/MockRestClient.java   | 1169 +-------------------
 ...kRestClient.java => MockRestClientBuilder.java} |  472 ++++----
 .../juneau/rest/mock2/MockServletRequest.java      |    2 +-
 .../juneau/rest/BasicRestInfoProviderTest.java     |    2 +-
 .../juneau/rest/BeanContextPropertiesTest.java     |    2 +-
 .../java/org/apache/juneau/rest/DebugModeTest.java |   32 +-
 .../test/java/org/apache/juneau/rest/NlsTest.java  |    6 +-
 14 files changed, 581 insertions(+), 1725 deletions(-)

diff --git 
a/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/client/InterfaceProxyTest.java
 
b/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/client/InterfaceProxyTest.java
index 8c20150..367bd03 100644
--- 
a/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/client/InterfaceProxyTest.java
+++ 
b/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/client/InterfaceProxyTest.java
@@ -922,7 +922,6 @@ public class InterfaceProxyTest {
                        };
                }
        }
-       static MockRest interfaceProxyResource = 
MockRest.build(InterfaceProxyResource.class);
 
        private static Map<String,InterfaceProxy> cache = new LinkedHashMap<>();
 
diff --git 
a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java
 
b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java
index 25e5e61..64e6719 100644
--- 
a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java
+++ 
b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java
@@ -127,8 +127,24 @@ public class RestClientTest {
        public void a01_overrideHttpClient() {
                HttpClientBuilder cb = HttpClientBuilder.create();
                CloseableHttpClient hc = HttpClientBuilder.create().build();
-               RestClient.create().httpClientBuilder(cb).build();
-               RestClient.create().httpClient(hc).build();
+               
RestClient.create().httpClientBuilder(cb).build().builder().build();
+               RestClient.create().httpClient(hc).build().builder().build();
+       }
+
+       public static class A2 extends RestClientBuilder {}
+
+       @Test
+       public void a02_useNoArgConstructor() {
+//             new A2()
+//                     .
+//             .create(A.class)
+//             .simpleJson()
+//             .logToConsole()
+//             .build()
+//             .post("/bean", bean)
+//             .complete();
+//             A2.create().httpClientBuilder(cb).build().builder().build();
+//             RestClient.create().httpClient(hc).build().builder().build();
        }
 
        
//------------------------------------------------------------------------------------------------------------------
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 4e86792..58fcfb2 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
@@ -125,6 +125,13 @@ public class RestClientBuilder extends BeanContextBuilder {
                return new RestClient(getPropertyStore());
        }
 
+       @Override /* ContextBuilder */
+       public <T extends Context> T build(Class<T> c) {
+               set(RESTCLIENT_httpClient, getHttpClient());
+               set(RESTCLIENT_httpClientBuilder, getHttpClientBuilder());
+               return super.build(c);
+       }
+
        
//------------------------------------------------------------------------------------------------------------------
        // Convenience marshalling support methods.
        
//------------------------------------------------------------------------------------------------------------------
diff --git 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestResponse.java
 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestResponse.java
index c0b3452..90ea5e8 100644
--- 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestResponse.java
+++ 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestResponse.java
@@ -40,7 +40,7 @@ import org.apache.juneau.utils.*;
  *     <li class='link'>{@doc juneau-rest-client}
  * </ul>
  */
-public final class RestResponse implements HttpResponse {
+public class RestResponse implements HttpResponse {
 
        private final RestClient client;
        private final RestRequest request;
diff --git 
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRemote.java
 
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRemote.java
index 60e3852..8998577 100644
--- 
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRemote.java
+++ 
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRemote.java
@@ -40,7 +40,7 @@ import org.apache.juneau.xml.*;
  */
 public class MockRemote<T> {
 
-       private MockRest.Builder mrb;
+       private MockRestBuilder mrb;
        private RestClientBuilder rcb = RestClient.create();
        private final Class<T> intf;
 
diff --git 
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRest.java
 
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRest.java
index b006267..2ae2fe0 100644
--- 
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRest.java
+++ 
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRest.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.rest.mock2;
 
-import static org.apache.juneau.rest.util.RestUtils.*;
 import static org.apache.juneau.internal.StringUtils.*;
 
 import java.io.*;
@@ -83,7 +82,7 @@ public class MockRest implements MockHttpConnection {
         *
         * @param b Builder.
         */
-       protected MockRest(Builder b) {
+       protected MockRest(MockRestBuilder b) {
                try {
                        debug = b.debug;
                        Class<?> c = b.impl instanceof Class ? (Class<?>)b.impl 
: b.impl.getClass();
@@ -125,8 +124,8 @@ public class MockRest implements MockHttpConnection {
         *      <br>If a class, it must have a no-arg constructor.
         * @return A new builder.
         */
-       public static Builder create(Object impl) {
-               return new Builder(impl);
+       public static MockRestBuilder create(Object impl) {
+               return new MockRestBuilder(impl);
        }
 
        /**
@@ -238,286 +237,6 @@ public class MockRest implements MockHttpConnection {
        }
 
        /**
-        * Builder class.
-        */
-       public static class Builder {
-               Object impl;
-               boolean debug;
-               Map<String,Object> headers = new LinkedHashMap<>();
-               String contextPath, servletPath;
-               String[] roles = new String[0];
-
-               Builder(Object impl) {
-                       this.impl = impl;
-               }
-
-               /**
-                * Enable debug mode.
-                *
-                * @return This object (for method chaining).
-                */
-               public Builder debug() {
-                       this.debug = true;
-                       header("X-Debug", true);
-                       return this;
-               }
-
-               /**
-                * Enable no-trace mode.
-                *
-                * @return This object (for method chaining).
-                */
-               public Builder noTrace() {
-                       header("X-NoTrace", true);
-                       return this;
-               }
-
-               /**
-                * Adds a header to every request.
-                *
-                * @param name The header name.
-                * @param value
-                *      The header value.
-                *      <br>Can be <jk>null</jk> (will be skipped).
-                * @return This object (for method chaining).
-                */
-               public Builder header(String name, Object value) {
-                       this.headers.put(name, value);
-                       return this;
-               }
-
-               /**
-                * Adds the specified headers to every request.
-                *
-                * @param value
-                *      The header values.
-                *      <br>Can be <jk>null</jk> (existing values will be 
cleared).
-                *      <br><jk>null</jk> null map values will be ignored.
-                * @return This object (for method chaining).
-                */
-               public Builder headers(Map<String,Object> value) {
-                       if (value != null)
-                               this.headers.putAll(value);
-                       else
-                               this.headers.clear();
-                       return this;
-               }
-
-               /**
-                * Specifies the <c>Accept</c> header to every request.
-                *
-                * @param value The <c>Accept</c> header value.
-                * @return This object (for method chaining).
-                */
-               public Builder accept(String value) {
-                       return header("Accept", value);
-               }
-
-               /**
-                * Specifies the  <c>Content-Type</c> header to every request.
-                *
-                * @param value The <c>Content-Type</c> header value.
-                * @return This object (for method chaining).
-                */
-               public Builder contentType(String value) {
-                       return header("Content-Type", value);
-               }
-
-               /**
-                * Convenience method for setting the <c>Accept</c> and 
<c>Content-Type</c> headers to <js>"application/json"</js>.
-                *
-                * @return This object (for method chaining).
-                */
-               public Builder json() {
-                       return 
accept("application/json").contentType("application/json");
-               }
-
-               /**
-                * Convenience method for setting the <c>Accept</c> and 
<c>Content-Type</c> headers to <js>"application/json+simple"</js>.
-                *
-                * @return This object (for method chaining).
-                */
-               public Builder simpleJson() {
-                       return 
accept("application/json+simple").contentType("application/json+simple");
-               }
-
-               /**
-                * Convenience method for setting the <c>Accept</c> and 
<c>Content-Type</c> headers to <js>"text/xml"</js>.
-                *
-                * @return This object (for method chaining).
-                */
-               public Builder xml() {
-                       return accept("text/xml").contentType("text/xml");
-               }
-
-               /**
-                * Convenience method for setting the <c>Accept</c> and 
<c>Content-Type</c> headers to <js>"text/html"</js>.
-                *
-                * @return This object (for method chaining).
-                */
-               public Builder html() {
-                       return accept("text/html").contentType("text/html");
-               }
-
-               /**
-                * Convenience method for setting the <c>Accept</c> and 
<c>Content-Type</c> headers to <js>"text/plain"</js>.
-                *
-                * @return This object (for method chaining).
-                */
-               public Builder plainText() {
-                       return accept("text/plain").contentType("text/plain");
-               }
-
-               /**
-                * Convenience method for setting the <c>Accept</c> and 
<c>Content-Type</c> headers to <js>"octal/msgpack"</js>.
-                *
-                * @return This object (for method chaining).
-                */
-               public Builder msgpack() {
-                       return 
accept("octal/msgpack").contentType("octal/msgpack");
-               }
-
-               /**
-                * Convenience method for setting the <c>Accept</c> and 
<c>Content-Type</c> headers to <js>"text/uon"</js>.
-                *
-                * @return This object (for method chaining).
-                */
-               public Builder uon() {
-                       return accept("text/uon").contentType("text/uon");
-               }
-
-               /**
-                * Convenience method for setting the <c>Accept</c> and 
<c>Content-Type</c> headers to <js>"application/x-www-form-urlencoded"</js>.
-                *
-                * @return This object (for method chaining).
-                */
-               public Builder urlEnc() {
-                       return 
accept("application/x-www-form-urlencoded").contentType("application/x-www-form-urlencoded");
-               }
-
-               /**
-                * Convenience method for setting the <c>Accept</c> and 
<c>Content-Type</c> headers to <js>"text/yaml"</js>.
-                *
-                * @return This object (for method chaining).
-                */
-               public Builder yaml() {
-                       return accept("text/yaml").contentType("text/yaml");
-               }
-
-               /**
-                * Convenience method for setting the <c>Accept</c> and 
<c>Content-Type</c> headers to <js>"text/openapi"</js>.
-                *
-                * @return This object (for method chaining).
-                */
-               public Builder openapi() {
-                       return 
accept("text/openapi").contentType("text/openapi");
-               }
-
-               /**
-                * Convenience method for setting the <c>Content-Type</c> 
header to the primary media type on the specified serializer.
-                *
-                * @param value
-                *      The serializer to get the media type from.
-                *      <br>If <jk>null</jk>, header will be reset.
-                * @return This object (for method chaining).
-                */
-               public Builder serializer(Serializer value) {
-                       return contentType(value == null ? null : 
value.getPrimaryMediaType().toString());
-               }
-
-               /**
-                * Convenience method for setting the <c>Accept</c> header to 
the primary media type on the specified parser.
-                *
-                * @param value
-                *      The parser to get the media type from.
-                *      <br>If <jk>null</jk>, header will be reset.
-                * @return This object (for method chaining).
-                */
-               public Builder parser(Parser value) {
-                       return accept(value == null ? null : 
value.getPrimaryMediaType().toString());
-               }
-
-               /**
-                * Convenience method for setting the <c>Accept</c> and 
<c>Content-Type</c> headers to the primary media types on the specified 
marshall.
-                *
-                * @param value
-                *      The marshall to get the media types from.
-                *      <br>If <jk>null</jk>, headers will be reset.
-                * @return This object (for method chaining).
-                */
-               public Builder marshall(Marshall value) {
-                       contentType(value == null ? null : 
value.getSerializer().getPrimaryMediaType().toString());
-                       accept(value == null ? null : 
value.getParser().getPrimaryMediaType().toString());
-                       return this;
-               }
-
-               /**
-                * Identifies the context path for the REST resource.
-                *
-                * <p>
-                * If not specified, uses <js>""</js>.
-                *
-                * @param value
-                *      The context path.
-                *      <br>Must not be <jk>null</jk> and must either be blank 
or start but not end with a <js>'/'</js> character.
-                * @return This object (for method chaining).
-                */
-               public Builder contextPath(String value) {
-                       validateContextPath(value);
-                       this.contextPath = value;
-                       return this;
-               }
-
-               /**
-                * Identifies the servlet path for the REST resource.
-                *
-                * <p>
-                * If not specified, uses <js>""</js>.
-                *
-                * @param value
-                *      The servlet path.
-                *      <br>Must not be <jk>null</jk> and must either be blank 
or start but not end with a <js>'/'</js> character.
-                * @return This object (for method chaining).
-                */
-               public Builder servletPath(String value) {
-                       validateServletPath(value);
-                       this.servletPath = value;
-                       return this;
-               }
-
-               /**
-                * Adds the specified security roles for all requests.
-                *
-                * @param values The role names to add to all requests (e.g. 
<js>"ROLE_ADMIN"</js>).
-                * @return This object (for method chaining).
-                */
-               public Builder roles(String...values) {
-                       this.roles = values;
-                       return this;
-               }
-
-               /**
-                * Adds the specified security role for all requests.
-                *
-                * @param value The role name to add to all requests (e.g. 
<js>"ROLE_ADMIN"</js>).
-                * @return This object (for method chaining).
-                */
-               public Builder role(String value) {
-                       this.roles = new String[]{value};
-                       return this;
-               }
-
-               /**
-                * Create a new {@link MockRest} object based on the settings 
on this builder.
-                *
-                * @return A new {@link MockRest} object.
-                */
-               public MockRest build() {
-                       return new MockRest(this);
-               }
-       }
-
-       /**
         * Performs a REST request against the REST interface.
         *
         * @param method The HTTP method
diff --git 
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestBuilder.java
 
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestBuilder.java
new file mode 100644
index 0000000..d36f1d4
--- /dev/null
+++ 
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestBuilder.java
@@ -0,0 +1,302 @@
+// 
***************************************************************************************************************************
+// * 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.mock2;
+
+import static org.apache.juneau.rest.util.RestUtils.*;
+
+import java.util.*;
+
+import org.apache.juneau.marshall.*;
+import org.apache.juneau.parser.*;
+import org.apache.juneau.serializer.*;
+
+/**
+ * Builder class for {@link MockRest} objects.
+ */
+public class MockRestBuilder {
+
+       Object impl;
+       boolean debug;
+       Map<String,Object> headers = new LinkedHashMap<>();
+       String contextPath, servletPath;
+       String[] roles = new String[0];
+
+       MockRestBuilder(Object impl) {
+               this.impl = impl;
+       }
+
+       /**
+        * Enable debug mode.
+        *
+        * @return This object (for method chaining).
+        */
+       public MockRestBuilder debug() {
+               this.debug = true;
+               header("X-Debug", true);
+               return this;
+       }
+
+       /**
+        * Enable no-trace mode.
+        *
+        * @return This object (for method chaining).
+        */
+       public MockRestBuilder noTrace() {
+               header("X-NoTrace", true);
+               return this;
+       }
+
+       /**
+        * Adds a header to every request.
+        *
+        * @param name The header name.
+        * @param value
+        *      The header value.
+        *      <br>Can be <jk>null</jk> (will be skipped).
+        * @return This object (for method chaining).
+        */
+       public MockRestBuilder header(String name, Object value) {
+               this.headers.put(name, value);
+               return this;
+       }
+
+       /**
+        * Adds the specified headers to every request.
+        *
+        * @param value
+        *      The header values.
+        *      <br>Can be <jk>null</jk> (existing values will be cleared).
+        *      <br><jk>null</jk> null map values will be ignored.
+        * @return This object (for method chaining).
+        */
+       public MockRestBuilder headers(Map<String,Object> value) {
+               if (value != null)
+                       this.headers.putAll(value);
+               else
+                       this.headers.clear();
+               return this;
+       }
+
+       /**
+        * Specifies the <c>Accept</c> header to every request.
+        *
+        * @param value The <c>Accept</c> header value.
+        * @return This object (for method chaining).
+        */
+       public MockRestBuilder accept(String value) {
+               return header("Accept", value);
+       }
+
+       /**
+        * Specifies the  <c>Content-Type</c> header to every request.
+        *
+        * @param value The <c>Content-Type</c> header value.
+        * @return This object (for method chaining).
+        */
+       public MockRestBuilder contentType(String value) {
+               return header("Content-Type", value);
+       }
+
+       /**
+        * Convenience method for setting the <c>Accept</c> and 
<c>Content-Type</c> headers to <js>"application/json"</js>.
+        *
+        * @return This object (for method chaining).
+        */
+       public MockRestBuilder json() {
+               return 
accept("application/json").contentType("application/json");
+       }
+
+       /**
+        * Convenience method for setting the <c>Accept</c> and 
<c>Content-Type</c> headers to <js>"application/json+simple"</js>.
+        *
+        * @return This object (for method chaining).
+        */
+       public MockRestBuilder simpleJson() {
+               return 
accept("application/json+simple").contentType("application/json+simple");
+       }
+
+       /**
+        * Convenience method for setting the <c>Accept</c> and 
<c>Content-Type</c> headers to <js>"text/xml"</js>.
+        *
+        * @return This object (for method chaining).
+        */
+       public MockRestBuilder xml() {
+               return accept("text/xml").contentType("text/xml");
+       }
+
+       /**
+        * Convenience method for setting the <c>Accept</c> and 
<c>Content-Type</c> headers to <js>"text/html"</js>.
+        *
+        * @return This object (for method chaining).
+        */
+       public MockRestBuilder html() {
+               return accept("text/html").contentType("text/html");
+       }
+
+       /**
+        * Convenience method for setting the <c>Accept</c> and 
<c>Content-Type</c> headers to <js>"text/plain"</js>.
+        *
+        * @return This object (for method chaining).
+        */
+       public MockRestBuilder plainText() {
+               return accept("text/plain").contentType("text/plain");
+       }
+
+       /**
+        * Convenience method for setting the <c>Accept</c> and 
<c>Content-Type</c> headers to <js>"octal/msgpack"</js>.
+        *
+        * @return This object (for method chaining).
+        */
+       public MockRestBuilder msgpack() {
+               return accept("octal/msgpack").contentType("octal/msgpack");
+       }
+
+       /**
+        * Convenience method for setting the <c>Accept</c> and 
<c>Content-Type</c> headers to <js>"text/uon"</js>.
+        *
+        * @return This object (for method chaining).
+        */
+       public MockRestBuilder uon() {
+               return accept("text/uon").contentType("text/uon");
+       }
+
+       /**
+        * Convenience method for setting the <c>Accept</c> and 
<c>Content-Type</c> headers to <js>"application/x-www-form-urlencoded"</js>.
+        *
+        * @return This object (for method chaining).
+        */
+       public MockRestBuilder urlEnc() {
+               return 
accept("application/x-www-form-urlencoded").contentType("application/x-www-form-urlencoded");
+       }
+
+       /**
+        * Convenience method for setting the <c>Accept</c> and 
<c>Content-Type</c> headers to <js>"text/yaml"</js>.
+        *
+        * @return This object (for method chaining).
+        */
+       public MockRestBuilder yaml() {
+               return accept("text/yaml").contentType("text/yaml");
+       }
+
+       /**
+        * Convenience method for setting the <c>Accept</c> and 
<c>Content-Type</c> headers to <js>"text/openapi"</js>.
+        *
+        * @return This object (for method chaining).
+        */
+       public MockRestBuilder openapi() {
+               return accept("text/openapi").contentType("text/openapi");
+       }
+
+       /**
+        * Convenience method for setting the <c>Content-Type</c> header to the 
primary media type on the specified serializer.
+        *
+        * @param value
+        *      The serializer to get the media type from.
+        *      <br>If <jk>null</jk>, header will be reset.
+        * @return This object (for method chaining).
+        */
+       public MockRestBuilder serializer(Serializer value) {
+               return contentType(value == null ? null : 
value.getPrimaryMediaType().toString());
+       }
+
+       /**
+        * Convenience method for setting the <c>Accept</c> header to the 
primary media type on the specified parser.
+        *
+        * @param value
+        *      The parser to get the media type from.
+        *      <br>If <jk>null</jk>, header will be reset.
+        * @return This object (for method chaining).
+        */
+       public MockRestBuilder parser(Parser value) {
+               return accept(value == null ? null : 
value.getPrimaryMediaType().toString());
+       }
+
+       /**
+        * Convenience method for setting the <c>Accept</c> and 
<c>Content-Type</c> headers to the primary media types on the specified 
marshall.
+        *
+        * @param value
+        *      The marshall to get the media types from.
+        *      <br>If <jk>null</jk>, headers will be reset.
+        * @return This object (for method chaining).
+        */
+       public MockRestBuilder marshall(Marshall value) {
+               contentType(value == null ? null : 
value.getSerializer().getPrimaryMediaType().toString());
+               accept(value == null ? null : 
value.getParser().getPrimaryMediaType().toString());
+               return this;
+       }
+
+       /**
+        * Identifies the context path for the REST resource.
+        *
+        * <p>
+        * If not specified, uses <js>""</js>.
+        *
+        * @param value
+        *      The context path.
+        *      <br>Must not be <jk>null</jk> and must either be blank or start 
but not end with a <js>'/'</js> character.
+        * @return This object (for method chaining).
+        */
+       public MockRestBuilder contextPath(String value) {
+               validateContextPath(value);
+               this.contextPath = value;
+               return this;
+       }
+
+       /**
+        * Identifies the servlet path for the REST resource.
+        *
+        * <p>
+        * If not specified, uses <js>""</js>.
+        *
+        * @param value
+        *      The servlet path.
+        *      <br>Must not be <jk>null</jk> and must either be blank or start 
but not end with a <js>'/'</js> character.
+        * @return This object (for method chaining).
+        */
+       public MockRestBuilder servletPath(String value) {
+               validateServletPath(value);
+               this.servletPath = value;
+               return this;
+       }
+
+       /**
+        * Adds the specified security roles for all requests.
+        *
+        * @param values The role names to add to all requests (e.g. 
<js>"ROLE_ADMIN"</js>).
+        * @return This object (for method chaining).
+        */
+       public MockRestBuilder roles(String...values) {
+               this.roles = values;
+               return this;
+       }
+
+       /**
+        * Adds the specified security role for all requests.
+        *
+        * @param value The role name to add to all requests (e.g. 
<js>"ROLE_ADMIN"</js>).
+        * @return This object (for method chaining).
+        */
+       public MockRestBuilder role(String value) {
+               this.roles = new String[]{value};
+               return this;
+       }
+
+       /**
+        * Create a new {@link MockRest} object based on the settings on this 
builder.
+        *
+        * @return A new {@link MockRest} object.
+        */
+       public MockRest build() {
+               return new MockRest(this);
+       }
+}
\ No newline at end of file
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 2ec6ba6..06ca3fb 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
@@ -12,26 +12,9 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.rest.mock2;
 
-import java.util.*;
-import java.util.concurrent.*;
-import java.util.function.*;
-import java.util.logging.*;
-
-import java.lang.annotation.*;
-import java.lang.reflect.Method;
-
-import org.apache.http.impl.client.*;
 import org.apache.juneau.*;
-import org.apache.juneau.http.*;
-import org.apache.juneau.httppart.*;
-import org.apache.juneau.marshall.*;
-import org.apache.juneau.parser.*;
-import org.apache.juneau.reflect.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.client2.*;
-import org.apache.juneau.serializer.*;
-import org.apache.juneau.svl.*;
-import org.apache.juneau.uon.*;
 
 /**
  * Mocked {@link RestClient}.
@@ -40,21 +23,17 @@ import org.apache.juneau.uon.*;
  *     <li class='link'>{@doc juneau-rest-mock}
  * </ul>
  */
-public class MockRestClient extends RestClientBuilder {
-
-       private MockRest.Builder mrb;
+public class MockRestClient extends RestClient {
 
        /**
         * Constructor.
         *
-        * @param impl
+        * @param ps
         *      The REST bean or bean class annotated with {@link Rest @Rest}.
         *      <br>If a class, it must have a no-arg constructor.
         */
-       protected MockRestClient(Object impl) {
-               super(null);
-               mrb = MockRest.create(impl);
-               rootUrl("http://localhost";);
+       public MockRestClient(PropertyStore ps) {
+               super(ps);
        }
 
        /**
@@ -65,8 +44,8 @@ public class MockRestClient extends RestClientBuilder {
         *      <br>If a class, it must have a no-arg constructor.
         * @return A new builder.
         */
-       public static MockRestClient create(Object impl) {
-               return new MockRestClient(impl);
+       public static MockRestClientBuilder create(Object impl) {
+               return new MockRestClientBuilder().bean(impl);
        }
 
        /**
@@ -83,7 +62,7 @@ public class MockRestClient extends RestClientBuilder {
         *      <br>If a class, it must have a no-arg constructor.
         * @return A new builder.
         */
-       public static RestClient build(Object impl) {
+       public static MockRestClient build(Object impl) {
                return create(impl).build();
        }
 
@@ -101,8 +80,8 @@ public class MockRestClient extends RestClientBuilder {
         *      <br>If a class, it must have a no-arg constructor.
         * @return A new builder.
         */
-       public static RestClient buildJson(Object impl) {
-               return create(impl).json().build();
+       public static MockRestClient buildJson(Object impl) {
+               return create(impl).json().build(MockRestClient.class);
        }
 
        /**
@@ -119,1138 +98,12 @@ public class MockRestClient extends RestClientBuilder {
         *      <br>If a class, it must have a no-arg constructor.
         * @return A new builder.
         */
-       public static RestClient buildSimpleJson(Object impl) {
-               return create(impl).simpleJson().build();
+       public static MockRestClient buildSimpleJson(Object impl) {
+               return create(impl).simpleJson().build(MockRestClient.class);
        }
 
-       @Override
-       public RestClient build() {
-               if (peek(BeanContext.BEAN_debug) == Boolean.TRUE)
-                       mrb.debug();
-               connectionManager(new 
MockHttpClientConnectionManager(mrb.build()));
-               return super.build();
-       }
 
        // <CONFIGURATION-PROPERTIES>
 
-       @Override /* GENERATED - ContextBuilder */
-       public MockRestClient add(Map<String,Object> properties) {
-               super.add(properties);
-               return this;
-       }
-
-       @Override /* GENERATED - ContextBuilder */
-       public MockRestClient addTo(String name, Object value) {
-               super.addTo(name, value);
-               return this;
-       }
-
-       @Override /* GENERATED - ContextBuilder */
-       public MockRestClient appendTo(String name, Object value) {
-               super.appendTo(name, value);
-               return this;
-       }
-
-       @Override /* GENERATED - ContextBuilder */
-       public MockRestClient apply(PropertyStore copyFrom) {
-               super.apply(copyFrom);
-               return this;
-       }
-
-       @Override /* GENERATED - ContextBuilder */
-       public MockRestClient 
applyAnnotations(java.lang.Class<?>...fromClasses) {
-               super.applyAnnotations(fromClasses);
-               return this;
-       }
-
-       @Override /* GENERATED - ContextBuilder */
-       public MockRestClient applyAnnotations(Method...fromMethods) {
-               super.applyAnnotations(fromMethods);
-               return this;
-       }
-
-       @Override /* GENERATED - ContextBuilder */
-       public MockRestClient applyAnnotations(AnnotationList al, 
VarResolverSession r) {
-               super.applyAnnotations(al, r);
-               return this;
-       }
-
-       @Override /* GENERATED - ContextBuilder */
-       public MockRestClient prependTo(String name, Object value) {
-               super.prependTo(name, value);
-               return this;
-       }
-
-       @Override /* GENERATED - ContextBuilder */
-       public MockRestClient putAllTo(String name, Object value) {
-               super.putAllTo(name, value);
-               return this;
-       }
-
-       @Override /* GENERATED - ContextBuilder */
-       public MockRestClient putTo(String name, String key, Object value) {
-               super.putTo(name, key, value);
-               return this;
-       }
-
-       @Override /* GENERATED - ContextBuilder */
-       public MockRestClient removeFrom(String name, Object value) {
-               super.removeFrom(name, value);
-               return this;
-       }
-
-       @Override /* GENERATED - ContextBuilder */
-       public MockRestClient set(Map<String,Object> properties) {
-               super.set(properties);
-               return this;
-       }
-
-       @Override /* GENERATED - ContextBuilder */
-       public MockRestClient set(String name, Object value) {
-               super.set(name, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient annotations(Annotation...values) {
-               super.annotations(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient beanClassVisibility(Visibility value) {
-               super.beanClassVisibility(value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient beanConstructorVisibility(Visibility value) {
-               super.beanConstructorVisibility(value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient beanFieldVisibility(Visibility value) {
-               super.beanFieldVisibility(value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient beanInterceptor(Class<?> on, Class<? extends 
org.apache.juneau.transform.BeanInterceptor<?>> value) {
-               super.beanInterceptor(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient beanMapPutReturnsOldValue() {
-               super.beanMapPutReturnsOldValue();
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient beanMethodVisibility(Visibility value) {
-               super.beanMethodVisibility(value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient beansDontRequireSomeProperties() {
-               super.beansDontRequireSomeProperties();
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient beansRequireDefaultConstructor() {
-               super.beansRequireDefaultConstructor();
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient beansRequireSerializable() {
-               super.beansRequireSerializable();
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient beansRequireSettersForGetters() {
-               super.beansRequireSettersForGetters();
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient bpi(Map<String,Object> values) {
-               super.bpi(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient bpi(Class<?> beanClass, String properties) {
-               super.bpi(beanClass, properties);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient bpi(String beanClassName, String properties) {
-               super.bpi(beanClassName, properties);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient bpro(Map<String,Object> values) {
-               super.bpro(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient bpro(Class<?> beanClass, String properties) {
-               super.bpro(beanClass, properties);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient bpro(String beanClassName, String properties) {
-               super.bpro(beanClassName, properties);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient bpwo(Map<String,Object> values) {
-               super.bpwo(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient bpwo(Class<?> beanClass, String properties) {
-               super.bpwo(beanClass, properties);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient bpwo(String beanClassName, String properties) {
-               super.bpwo(beanClassName, properties);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient bpx(Map<String,Object> values) {
-               super.bpx(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient bpx(Class<?> beanClass, String properties) {
-               super.bpx(beanClass, properties);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient bpx(String beanClassName, String properties) {
-               super.bpx(beanClassName, properties);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient debug() {
-               super.debug();
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient dictionary(Object...values) {
-               super.dictionary(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient dictionaryOn(Class<?> on, 
java.lang.Class<?>...values) {
-               super.dictionaryOn(on, values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient dontIgnorePropertiesWithoutSetters() {
-               super.dontIgnorePropertiesWithoutSetters();
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient dontIgnoreTransientFields() {
-               super.dontIgnoreTransientFields();
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient dontIgnoreUnknownNullBeanProperties() {
-               super.dontIgnoreUnknownNullBeanProperties();
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient dontUseInterfaceProxies() {
-               super.dontUseInterfaceProxies();
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public <T> MockRestClient example(Class<T> pojoClass, T o) {
-               super.example(pojoClass, o);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public <T> MockRestClient exampleJson(Class<T> pojoClass, String json) {
-               super.exampleJson(pojoClass, json);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient fluentSetters() {
-               super.fluentSetters();
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient fluentSetters(Class<?> on) {
-               super.fluentSetters(on);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient ignoreInvocationExceptionsOnGetters() {
-               super.ignoreInvocationExceptionsOnGetters();
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient ignoreInvocationExceptionsOnSetters() {
-               super.ignoreInvocationExceptionsOnSetters();
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient ignoreUnknownBeanProperties() {
-               super.ignoreUnknownBeanProperties();
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient implClass(Class<?> interfaceClass, Class<?> 
implClass) {
-               super.implClass(interfaceClass, implClass);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient implClasses(Map<Class<?>,Class<?>> values) {
-               super.implClasses(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient interfaceClass(Class<?> on, Class<?> value) {
-               super.interfaceClass(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient interfaces(java.lang.Class<?>...value) {
-               super.interfaces(value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient locale(Locale value) {
-               super.locale(value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient mediaType(MediaType value) {
-               super.mediaType(value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient notBeanClasses(Object...values) {
-               super.notBeanClasses(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient notBeanPackages(Object...values) {
-               super.notBeanPackages(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
-               super.propertyNamer(value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient propertyNamer(Class<?> on, Class<? extends 
org.apache.juneau.PropertyNamer> value) {
-               super.propertyNamer(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient sortProperties() {
-               super.sortProperties();
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient sortProperties(java.lang.Class<?>...on) {
-               super.sortProperties(on);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient stopClass(Class<?> on, Class<?> value) {
-               super.stopClass(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient swaps(Object...values) {
-               super.swaps(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient timeZone(TimeZone value) {
-               super.timeZone(value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient typeName(Class<?> on, String value) {
-               super.typeName(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient typePropertyName(String value) {
-               super.typePropertyName(value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient typePropertyName(Class<?> on, String value) {
-               super.typePropertyName(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient useEnumNames() {
-               super.useEnumNames();
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient useJavaBeanIntrospector() {
-               super.useJavaBeanIntrospector();
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient accept(Object value) {
-               super.accept(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient acceptCharset(Object value) {
-               super.acceptCharset(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient acceptEncoding(Object value) {
-               super.acceptEncoding(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient acceptLanguage(Object value) {
-               super.acceptLanguage(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient addBeanTypes() {
-               super.addBeanTypes();
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient addRootType() {
-               super.addRootType();
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient authorization(Object value) {
-               super.authorization(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient basicAuth(String host, int port, String user, 
String pw) {
-               super.basicAuth(host, port, user, pw);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient cacheControl(Object value) {
-               super.cacheControl(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient callHandler(Class<? extends 
org.apache.juneau.rest.client2.RestCallHandler> value) {
-               super.callHandler(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient callHandler(RestCallHandler value) {
-               super.callHandler(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient clientVersion(Object value) {
-               super.clientVersion(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient connection(Object value) {
-               super.connection(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient contentLength(Object value) {
-               super.contentLength(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient contentType(Object value) {
-               super.contentType(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient date(Object value) {
-               super.date(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient debugOutputLines(int value) {
-               super.debugOutputLines(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient detectRecursions() {
-               super.detectRecursions();
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient errorCodes(Predicate<Integer> value) {
-               super.errorCodes(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient executorService(ExecutorService executorService, 
boolean shutdownOnClose) {
-               super.executorService(executorService, shutdownOnClose);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient expect(Object value) {
-               super.expect(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient formData(Object...params) {
-               super.formData(params);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient formData(String name, Object value) {
-               super.formData(name, value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient formData(String name, Object value, 
HttpPartSchema schema) {
-               super.formData(name, value, schema);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient formData(String name, Object value, 
HttpPartSerializer serializer, HttpPartSchema schema) {
-               super.formData(name, value, serializer, schema);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient formDataPairs(Object...pairs) {
-               super.formDataPairs(pairs);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient forwarded(Object value) {
-               super.forwarded(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient from(Object value) {
-               super.from(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient header(Object header) {
-               super.header(header);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient header(String name, Object value) {
-               super.header(name, value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient header(String name, Object value, HttpPartSchema 
schema) {
-               super.header(name, value, schema);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient header(String name, Object value, 
HttpPartSerializer serializer, HttpPartSchema schema) {
-               super.header(name, value, serializer, schema);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient headerPairs(Object...pairs) {
-               super.headerPairs(pairs);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient headers(Object...headers) {
-               super.headers(headers);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient host(Object value) {
-               super.host(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient html() {
-               super.html();
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient htmlDoc() {
-               super.htmlDoc();
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient htmlStrippedDoc() {
-               super.htmlStrippedDoc();
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient httpClient(CloseableHttpClient value) {
-               super.httpClient(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient httpClientBuilder(HttpClientBuilder value) {
-               super.httpClientBuilder(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient ifMatch(Object value) {
-               super.ifMatch(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient ifModifiedSince(Object value) {
-               super.ifModifiedSince(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient ifNoneMatch(Object value) {
-               super.ifNoneMatch(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient ifRange(Object value) {
-               super.ifRange(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient ifUnmodifiedSince(Object value) {
-               super.ifUnmodifiedSince(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient ignoreRecursions() {
-               super.ignoreRecursions();
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient initialDepth(int value) {
-               super.initialDepth(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       @SuppressWarnings("unchecked")
-       public MockRestClient interceptors(java.lang.Class<? extends 
org.apache.juneau.rest.client2.RestCallInterceptor>...values) throws Exception{
-               super.interceptors(values);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient interceptors(RestCallInterceptor...value) {
-               super.interceptors(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient json() {
-               super.json();
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient keepHttpClientOpen() {
-               super.keepHttpClientOpen();
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient keepNullProperties() {
-               super.keepNullProperties();
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient leakDetection() {
-               super.leakDetection();
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient logRequests(DetailLevel detail, Level level) {
-               super.logRequests(detail, level);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient logToConsole() {
-               super.logToConsole();
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient logger(Logger value) {
-               super.logger(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient marshall(Marshall value) {
-               super.marshall(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient marshalls(Marshall...value) {
-               super.marshalls(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient maxDepth(int value) {
-               super.maxDepth(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient maxForwards(Object value) {
-               super.maxForwards(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient maxIndent(int value) {
-               super.maxIndent(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient msgPack() {
-               super.msgPack();
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient noTrace() {
-               super.noTrace();
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient oapiCollectionFormat(HttpPartCollectionFormat 
value) {
-               super.oapiCollectionFormat(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient oapiFormat(HttpPartFormat value) {
-               super.oapiFormat(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient openApi() {
-               super.openApi();
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient origin(Object value) {
-               super.origin(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient paramFormat(ParamFormat value) {
-               super.paramFormat(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient paramFormatPlain() {
-               super.paramFormatPlain();
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient parser(Class<? extends 
org.apache.juneau.parser.Parser> value) {
-               super.parser(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient parser(Parser value) {
-               super.parser(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       @SuppressWarnings("unchecked")
-       public MockRestClient parsers(java.lang.Class<? extends 
org.apache.juneau.parser.Parser>...value) {
-               super.parsers(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient parsers(Parser...value) {
-               super.parsers(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient partParser(Class<? extends 
org.apache.juneau.httppart.HttpPartParser> value) {
-               super.partParser(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient partParser(HttpPartParser value) {
-               super.partParser(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient partSerializer(Class<? extends 
org.apache.juneau.httppart.HttpPartSerializer> value) {
-               super.partSerializer(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient partSerializer(HttpPartSerializer value) {
-               super.partSerializer(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient plainText() {
-               super.plainText();
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient pooled() {
-               super.pooled();
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient pragma(Object value) {
-               super.pragma(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient proxyAuthorization(Object value) {
-               super.proxyAuthorization(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient query(Object...params) {
-               super.query(params);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient query(String name, Object value) {
-               super.query(name, value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient query(String name, Object value, HttpPartSchema 
schema) {
-               super.query(name, value, schema);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient query(String name, Object value, 
HttpPartSerializer serializer, HttpPartSchema schema) {
-               super.query(name, value, serializer, schema);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient queryPairs(Object...pairs) {
-               super.queryPairs(pairs);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient quoteChar(char value) {
-               super.quoteChar(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient range(Object value) {
-               super.range(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient referer(Object value) {
-               super.referer(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient rootUrl(Object value) {
-               super.rootUrl(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient serializer(Class<? extends 
org.apache.juneau.serializer.Serializer> value) {
-               super.serializer(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient serializer(Serializer value) {
-               super.serializer(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       @SuppressWarnings("unchecked")
-       public MockRestClient serializers(java.lang.Class<? extends 
org.apache.juneau.serializer.Serializer>...value) {
-               super.serializers(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient serializers(Serializer...value) {
-               super.serializers(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient simpleJson() {
-               super.simpleJson();
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient sortCollections() {
-               super.sortCollections();
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient sortMaps() {
-               super.sortMaps();
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient sq() {
-               super.sq();
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient strict() {
-               super.strict();
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient te(Object value) {
-               super.te(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient trimEmptyCollections() {
-               super.trimEmptyCollections();
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient trimEmptyMaps() {
-               super.trimEmptyMaps();
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient trimStringsOnRead() {
-               super.trimStringsOnRead();
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient trimStringsOnWrite() {
-               super.trimStringsOnWrite();
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient uon() {
-               super.uon();
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient upgrade(Object value) {
-               super.upgrade(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient uriContext(UriContext value) {
-               super.uriContext(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient uriRelativity(UriRelativity value) {
-               super.uriRelativity(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient uriResolution(UriResolution value) {
-               super.uriResolution(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient urlEnc() {
-               super.urlEnc();
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient useWhitespace() {
-               super.useWhitespace();
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient userAgent(Object value) {
-               super.userAgent(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient via(Object value) {
-               super.via(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient warning(Object value) {
-               super.warning(value);
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient ws() {
-               super.ws();
-               return this;
-       }
-
-       @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient xml() {
-               super.xml();
-               return this;
-       }
-
        // </CONFIGURATION-PROPERTIES>
 }
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/MockRestClientBuilder.java
similarity index 61%
copy from 
juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClient.java
copy to 
juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClientBuilder.java
index 2ec6ba6..b060d79 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/MockRestClientBuilder.java
@@ -40,1214 +40,1174 @@ import org.apache.juneau.uon.*;
  *     <li class='link'>{@doc juneau-rest-mock}
  * </ul>
  */
-public class MockRestClient extends RestClientBuilder {
+public class MockRestClientBuilder extends RestClientBuilder {
 
-       private MockRest.Builder mrb;
+       private MockRestBuilder mrb;
 
        /**
         * Constructor.
-        *
-        * @param impl
-        *      The REST bean or bean class annotated with {@link Rest @Rest}.
-        *      <br>If a class, it must have a no-arg constructor.
+        * @param ps
+        *      Initial configuration properties for this builder.
         */
-       protected MockRestClient(Object impl) {
-               super(null);
-               mrb = MockRest.create(impl);
-               rootUrl("http://localhost";);
+       protected MockRestClientBuilder(PropertyStore ps) {
+               super(ps);
        }
 
        /**
-        * Creates a new {@link RestClientBuilder} configured with the 
specified REST implementation bean or bean class.
+        * No-arg constructor.
         *
-        * @param impl
-        *      The REST bean or bean class annotated with {@link Rest @Rest}.
-        *      <br>If a class, it must have a no-arg constructor.
-        * @return A new builder.
+        * <p>
+        * Provided so that this class can be easily subclassed.
         */
-       public static MockRestClient create(Object impl) {
-               return new MockRestClient(impl);
+       protected MockRestClientBuilder() {
+               super(null);
+               rootUrl("http://localhost";);
        }
 
-       /**
-        * Creates a new {@link RestClient} with no registered serializer or 
parser.
-        *
-        * <p>
-        * Equivalent to calling:
-        * <p class='bcode w800'>
-        *      MockRestClient.create(impl).build();
-        * </p>
-        *
-        * @param impl
-        *      The REST bean or bean class annotated with {@link Rest @Rest}.
-        *      <br>If a class, it must have a no-arg constructor.
-        * @return A new builder.
-        */
-       public static RestClient build(Object impl) {
-               return create(impl).build();
+       @Override /* ContextBuilder */
+       public MockRestClient build() {
+               if (peek(BeanContext.BEAN_debug) == Boolean.TRUE)
+                       mrb.debug();
+               connectionManager(new 
MockHttpClientConnectionManager(mrb.build()));
+               return super.build(MockRestClient.class);
        }
 
-       /**
-        * Creates a new {@link RestClient} with JSON marshalling support.
-        *
-        * <p>
-        * Equivalent to calling:
-        * <p class='bcode w800'>
-        *      MockRestClient.create(impl).json().build();
-        * </p>
-        *
-        * @param impl
-        *      The REST bean or bean class annotated with {@link Rest @Rest}.
-        *      <br>If a class, it must have a no-arg constructor.
-        * @return A new builder.
-        */
-       public static RestClient buildJson(Object impl) {
-               return create(impl).json().build();
+       @Override /* ContextBuilder */
+       public <T extends Context> T build(Class<T> c) {
+               if (peek(BeanContext.BEAN_debug) == Boolean.TRUE)
+                       mrb.debug();
+               connectionManager(new 
MockHttpClientConnectionManager(mrb.build()));
+               return super.build(c);
        }
 
        /**
-        * Creates a new {@link RestClient} with Simplified-JSON marshalling 
support.
+        * Specifies the {@link Rest}-annotated bean to test against.
         *
-        * <p>
-        * Equivalent to calling:
-        * <p class='bcode w800'>
-        *      MockRestClient.create(impl).json().build();
-        * </p>
-        *
-        * @param impl
-        *      The REST bean or bean class annotated with {@link Rest @Rest}.
-        *      <br>If a class, it must have a no-arg constructor.
-        * @return A new builder.
+        * @param bean The {@link Rest}-annotated bean to test against.
+        * @return This object (for method chaining).
         */
-       public static RestClient buildSimpleJson(Object impl) {
-               return create(impl).simpleJson().build();
-       }
-
-       @Override
-       public RestClient build() {
-               if (peek(BeanContext.BEAN_debug) == Boolean.TRUE)
-                       mrb.debug();
-               connectionManager(new 
MockHttpClientConnectionManager(mrb.build()));
-               return super.build();
+       public MockRestClientBuilder bean(Object bean) {
+               mrb = MockRest.create(bean);
+               return this;
        }
 
        // <CONFIGURATION-PROPERTIES>
 
        @Override /* GENERATED - ContextBuilder */
-       public MockRestClient add(Map<String,Object> properties) {
+       public MockRestClientBuilder add(Map<String,Object> properties) {
                super.add(properties);
                return this;
        }
 
        @Override /* GENERATED - ContextBuilder */
-       public MockRestClient addTo(String name, Object value) {
+       public MockRestClientBuilder addTo(String name, Object value) {
                super.addTo(name, value);
                return this;
        }
 
        @Override /* GENERATED - ContextBuilder */
-       public MockRestClient appendTo(String name, Object value) {
+       public MockRestClientBuilder appendTo(String name, Object value) {
                super.appendTo(name, value);
                return this;
        }
 
        @Override /* GENERATED - ContextBuilder */
-       public MockRestClient apply(PropertyStore copyFrom) {
+       public MockRestClientBuilder apply(PropertyStore copyFrom) {
                super.apply(copyFrom);
                return this;
        }
 
        @Override /* GENERATED - ContextBuilder */
-       public MockRestClient 
applyAnnotations(java.lang.Class<?>...fromClasses) {
+       public MockRestClientBuilder 
applyAnnotations(java.lang.Class<?>...fromClasses) {
                super.applyAnnotations(fromClasses);
                return this;
        }
 
        @Override /* GENERATED - ContextBuilder */
-       public MockRestClient applyAnnotations(Method...fromMethods) {
+       public MockRestClientBuilder applyAnnotations(Method...fromMethods) {
                super.applyAnnotations(fromMethods);
                return this;
        }
 
        @Override /* GENERATED - ContextBuilder */
-       public MockRestClient applyAnnotations(AnnotationList al, 
VarResolverSession r) {
+       public MockRestClientBuilder applyAnnotations(AnnotationList al, 
VarResolverSession r) {
                super.applyAnnotations(al, r);
                return this;
        }
 
        @Override /* GENERATED - ContextBuilder */
-       public MockRestClient prependTo(String name, Object value) {
+       public MockRestClientBuilder prependTo(String name, Object value) {
                super.prependTo(name, value);
                return this;
        }
 
        @Override /* GENERATED - ContextBuilder */
-       public MockRestClient putAllTo(String name, Object value) {
+       public MockRestClientBuilder putAllTo(String name, Object value) {
                super.putAllTo(name, value);
                return this;
        }
 
        @Override /* GENERATED - ContextBuilder */
-       public MockRestClient putTo(String name, String key, Object value) {
+       public MockRestClientBuilder putTo(String name, String key, Object 
value) {
                super.putTo(name, key, value);
                return this;
        }
 
        @Override /* GENERATED - ContextBuilder */
-       public MockRestClient removeFrom(String name, Object value) {
+       public MockRestClientBuilder removeFrom(String name, Object value) {
                super.removeFrom(name, value);
                return this;
        }
 
        @Override /* GENERATED - ContextBuilder */
-       public MockRestClient set(Map<String,Object> properties) {
+       public MockRestClientBuilder set(Map<String,Object> properties) {
                super.set(properties);
                return this;
        }
 
        @Override /* GENERATED - ContextBuilder */
-       public MockRestClient set(String name, Object value) {
+       public MockRestClientBuilder set(String name, Object value) {
                super.set(name, value);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient annotations(Annotation...values) {
+       public MockRestClientBuilder annotations(Annotation...values) {
                super.annotations(values);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient beanClassVisibility(Visibility value) {
+       public MockRestClientBuilder beanClassVisibility(Visibility value) {
                super.beanClassVisibility(value);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient beanConstructorVisibility(Visibility value) {
+       public MockRestClientBuilder beanConstructorVisibility(Visibility 
value) {
                super.beanConstructorVisibility(value);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient beanFieldVisibility(Visibility value) {
+       public MockRestClientBuilder beanFieldVisibility(Visibility value) {
                super.beanFieldVisibility(value);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient beanInterceptor(Class<?> on, Class<? extends 
org.apache.juneau.transform.BeanInterceptor<?>> value) {
+       public MockRestClientBuilder beanInterceptor(Class<?> on, Class<? 
extends org.apache.juneau.transform.BeanInterceptor<?>> value) {
                super.beanInterceptor(on, value);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient beanMapPutReturnsOldValue() {
+       public MockRestClientBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient beanMethodVisibility(Visibility value) {
+       public MockRestClientBuilder beanMethodVisibility(Visibility value) {
                super.beanMethodVisibility(value);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient beansDontRequireSomeProperties() {
+       public MockRestClientBuilder beansDontRequireSomeProperties() {
                super.beansDontRequireSomeProperties();
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient beansRequireDefaultConstructor() {
+       public MockRestClientBuilder beansRequireDefaultConstructor() {
                super.beansRequireDefaultConstructor();
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient beansRequireSerializable() {
+       public MockRestClientBuilder beansRequireSerializable() {
                super.beansRequireSerializable();
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient beansRequireSettersForGetters() {
+       public MockRestClientBuilder beansRequireSettersForGetters() {
                super.beansRequireSettersForGetters();
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient bpi(Map<String,Object> values) {
+       public MockRestClientBuilder bpi(Map<String,Object> values) {
                super.bpi(values);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient bpi(Class<?> beanClass, String properties) {
+       public MockRestClientBuilder bpi(Class<?> beanClass, String properties) 
{
                super.bpi(beanClass, properties);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient bpi(String beanClassName, String properties) {
+       public MockRestClientBuilder bpi(String beanClassName, String 
properties) {
                super.bpi(beanClassName, properties);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient bpro(Map<String,Object> values) {
+       public MockRestClientBuilder bpro(Map<String,Object> values) {
                super.bpro(values);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient bpro(Class<?> beanClass, String properties) {
+       public MockRestClientBuilder bpro(Class<?> beanClass, String 
properties) {
                super.bpro(beanClass, properties);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient bpro(String beanClassName, String properties) {
+       public MockRestClientBuilder bpro(String beanClassName, String 
properties) {
                super.bpro(beanClassName, properties);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient bpwo(Map<String,Object> values) {
+       public MockRestClientBuilder bpwo(Map<String,Object> values) {
                super.bpwo(values);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient bpwo(Class<?> beanClass, String properties) {
+       public MockRestClientBuilder bpwo(Class<?> beanClass, String 
properties) {
                super.bpwo(beanClass, properties);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient bpwo(String beanClassName, String properties) {
+       public MockRestClientBuilder bpwo(String beanClassName, String 
properties) {
                super.bpwo(beanClassName, properties);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient bpx(Map<String,Object> values) {
+       public MockRestClientBuilder bpx(Map<String,Object> values) {
                super.bpx(values);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient bpx(Class<?> beanClass, String properties) {
+       public MockRestClientBuilder bpx(Class<?> beanClass, String properties) 
{
                super.bpx(beanClass, properties);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient bpx(String beanClassName, String properties) {
+       public MockRestClientBuilder bpx(String beanClassName, String 
properties) {
                super.bpx(beanClassName, properties);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient debug() {
+       public MockRestClientBuilder debug() {
                super.debug();
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient dictionary(Object...values) {
+       public MockRestClientBuilder dictionary(Object...values) {
                super.dictionary(values);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient dictionaryOn(Class<?> on, 
java.lang.Class<?>...values) {
+       public MockRestClientBuilder dictionaryOn(Class<?> on, 
java.lang.Class<?>...values) {
                super.dictionaryOn(on, values);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient dontIgnorePropertiesWithoutSetters() {
+       public MockRestClientBuilder dontIgnorePropertiesWithoutSetters() {
                super.dontIgnorePropertiesWithoutSetters();
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient dontIgnoreTransientFields() {
+       public MockRestClientBuilder dontIgnoreTransientFields() {
                super.dontIgnoreTransientFields();
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient dontIgnoreUnknownNullBeanProperties() {
+       public MockRestClientBuilder dontIgnoreUnknownNullBeanProperties() {
                super.dontIgnoreUnknownNullBeanProperties();
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient dontUseInterfaceProxies() {
+       public MockRestClientBuilder dontUseInterfaceProxies() {
                super.dontUseInterfaceProxies();
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> MockRestClient example(Class<T> pojoClass, T o) {
+       public <T> MockRestClientBuilder example(Class<T> pojoClass, T o) {
                super.example(pojoClass, o);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> MockRestClient exampleJson(Class<T> pojoClass, String json) {
+       public <T> MockRestClientBuilder exampleJson(Class<T> pojoClass, String 
json) {
                super.exampleJson(pojoClass, json);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient fluentSetters() {
+       public MockRestClientBuilder fluentSetters() {
                super.fluentSetters();
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient fluentSetters(Class<?> on) {
+       public MockRestClientBuilder fluentSetters(Class<?> on) {
                super.fluentSetters(on);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient ignoreInvocationExceptionsOnGetters() {
+       public MockRestClientBuilder ignoreInvocationExceptionsOnGetters() {
                super.ignoreInvocationExceptionsOnGetters();
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient ignoreInvocationExceptionsOnSetters() {
+       public MockRestClientBuilder ignoreInvocationExceptionsOnSetters() {
                super.ignoreInvocationExceptionsOnSetters();
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient ignoreUnknownBeanProperties() {
+       public MockRestClientBuilder ignoreUnknownBeanProperties() {
                super.ignoreUnknownBeanProperties();
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient implClass(Class<?> interfaceClass, Class<?> 
implClass) {
+       public MockRestClientBuilder implClass(Class<?> interfaceClass, 
Class<?> implClass) {
                super.implClass(interfaceClass, implClass);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient implClasses(Map<Class<?>,Class<?>> values) {
+       public MockRestClientBuilder implClasses(Map<Class<?>,Class<?>> values) 
{
                super.implClasses(values);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient interfaceClass(Class<?> on, Class<?> value) {
+       public MockRestClientBuilder interfaceClass(Class<?> on, Class<?> 
value) {
                super.interfaceClass(on, value);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient interfaces(java.lang.Class<?>...value) {
+       public MockRestClientBuilder interfaces(java.lang.Class<?>...value) {
                super.interfaces(value);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient locale(Locale value) {
+       public MockRestClientBuilder locale(Locale value) {
                super.locale(value);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient mediaType(MediaType value) {
+       public MockRestClientBuilder mediaType(MediaType value) {
                super.mediaType(value);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient notBeanClasses(Object...values) {
+       public MockRestClientBuilder notBeanClasses(Object...values) {
                super.notBeanClasses(values);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient notBeanPackages(Object...values) {
+       public MockRestClientBuilder notBeanPackages(Object...values) {
                super.notBeanPackages(values);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
+       public MockRestClientBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient propertyNamer(Class<?> on, Class<? extends 
org.apache.juneau.PropertyNamer> value) {
+       public MockRestClientBuilder propertyNamer(Class<?> on, Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(on, value);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient sortProperties() {
+       public MockRestClientBuilder sortProperties() {
                super.sortProperties();
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient sortProperties(java.lang.Class<?>...on) {
+       public MockRestClientBuilder sortProperties(java.lang.Class<?>...on) {
                super.sortProperties(on);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient stopClass(Class<?> on, Class<?> value) {
+       public MockRestClientBuilder stopClass(Class<?> on, Class<?> value) {
                super.stopClass(on, value);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient swaps(Object...values) {
+       public MockRestClientBuilder swaps(Object...values) {
                super.swaps(values);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient timeZone(TimeZone value) {
+       public MockRestClientBuilder timeZone(TimeZone value) {
                super.timeZone(value);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient typeName(Class<?> on, String value) {
+       public MockRestClientBuilder typeName(Class<?> on, String value) {
                super.typeName(on, value);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient typePropertyName(String value) {
+       public MockRestClientBuilder typePropertyName(String value) {
                super.typePropertyName(value);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient typePropertyName(Class<?> on, String value) {
+       public MockRestClientBuilder typePropertyName(Class<?> on, String 
value) {
                super.typePropertyName(on, value);
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient useEnumNames() {
+       public MockRestClientBuilder useEnumNames() {
                super.useEnumNames();
                return this;
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient useJavaBeanIntrospector() {
+       public MockRestClientBuilder useJavaBeanIntrospector() {
                super.useJavaBeanIntrospector();
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient accept(Object value) {
+       public MockRestClientBuilder accept(Object value) {
                super.accept(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient acceptCharset(Object value) {
+       public MockRestClientBuilder acceptCharset(Object value) {
                super.acceptCharset(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient acceptEncoding(Object value) {
+       public MockRestClientBuilder acceptEncoding(Object value) {
                super.acceptEncoding(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient acceptLanguage(Object value) {
+       public MockRestClientBuilder acceptLanguage(Object value) {
                super.acceptLanguage(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient addBeanTypes() {
+       public MockRestClientBuilder addBeanTypes() {
                super.addBeanTypes();
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient addRootType() {
+       public MockRestClientBuilder addRootType() {
                super.addRootType();
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient authorization(Object value) {
+       public MockRestClientBuilder authorization(Object value) {
                super.authorization(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient basicAuth(String host, int port, String user, 
String pw) {
+       public MockRestClientBuilder basicAuth(String host, int port, String 
user, String pw) {
                super.basicAuth(host, port, user, pw);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient cacheControl(Object value) {
+       public MockRestClientBuilder cacheControl(Object value) {
                super.cacheControl(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient callHandler(Class<? extends 
org.apache.juneau.rest.client2.RestCallHandler> value) {
+       public MockRestClientBuilder callHandler(Class<? extends 
org.apache.juneau.rest.client2.RestCallHandler> value) {
                super.callHandler(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient callHandler(RestCallHandler value) {
+       public MockRestClientBuilder callHandler(RestCallHandler value) {
                super.callHandler(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient clientVersion(Object value) {
+       public MockRestClientBuilder clientVersion(Object value) {
                super.clientVersion(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient connection(Object value) {
+       public MockRestClientBuilder connection(Object value) {
                super.connection(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient contentLength(Object value) {
+       public MockRestClientBuilder contentLength(Object value) {
                super.contentLength(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient contentType(Object value) {
+       public MockRestClientBuilder contentType(Object value) {
                super.contentType(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient date(Object value) {
+       public MockRestClientBuilder date(Object value) {
                super.date(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient debugOutputLines(int value) {
+       public MockRestClientBuilder debugOutputLines(int value) {
                super.debugOutputLines(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient detectRecursions() {
+       public MockRestClientBuilder detectRecursions() {
                super.detectRecursions();
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient errorCodes(Predicate<Integer> value) {
+       public MockRestClientBuilder errorCodes(Predicate<Integer> value) {
                super.errorCodes(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient executorService(ExecutorService executorService, 
boolean shutdownOnClose) {
+       public MockRestClientBuilder executorService(ExecutorService 
executorService, boolean shutdownOnClose) {
                super.executorService(executorService, shutdownOnClose);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient expect(Object value) {
+       public MockRestClientBuilder expect(Object value) {
                super.expect(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient formData(Object...params) {
+       public MockRestClientBuilder formData(Object...params) {
                super.formData(params);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient formData(String name, Object value) {
+       public MockRestClientBuilder formData(String name, Object value) {
                super.formData(name, value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient formData(String name, Object value, 
HttpPartSchema schema) {
+       public MockRestClientBuilder formData(String name, Object value, 
HttpPartSchema schema) {
                super.formData(name, value, schema);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient formData(String name, Object value, 
HttpPartSerializer serializer, HttpPartSchema schema) {
+       public MockRestClientBuilder formData(String name, Object value, 
HttpPartSerializer serializer, HttpPartSchema schema) {
                super.formData(name, value, serializer, schema);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient formDataPairs(Object...pairs) {
+       public MockRestClientBuilder formDataPairs(Object...pairs) {
                super.formDataPairs(pairs);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient forwarded(Object value) {
+       public MockRestClientBuilder forwarded(Object value) {
                super.forwarded(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient from(Object value) {
+       public MockRestClientBuilder from(Object value) {
                super.from(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient header(Object header) {
+       public MockRestClientBuilder header(Object header) {
                super.header(header);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient header(String name, Object value) {
+       public MockRestClientBuilder header(String name, Object value) {
                super.header(name, value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient header(String name, Object value, HttpPartSchema 
schema) {
+       public MockRestClientBuilder header(String name, Object value, 
HttpPartSchema schema) {
                super.header(name, value, schema);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient header(String name, Object value, 
HttpPartSerializer serializer, HttpPartSchema schema) {
+       public MockRestClientBuilder header(String name, Object value, 
HttpPartSerializer serializer, HttpPartSchema schema) {
                super.header(name, value, serializer, schema);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient headerPairs(Object...pairs) {
+       public MockRestClientBuilder headerPairs(Object...pairs) {
                super.headerPairs(pairs);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient headers(Object...headers) {
+       public MockRestClientBuilder headers(Object...headers) {
                super.headers(headers);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient host(Object value) {
+       public MockRestClientBuilder host(Object value) {
                super.host(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient html() {
+       public MockRestClientBuilder html() {
                super.html();
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient htmlDoc() {
+       public MockRestClientBuilder htmlDoc() {
                super.htmlDoc();
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient htmlStrippedDoc() {
+       public MockRestClientBuilder htmlStrippedDoc() {
                super.htmlStrippedDoc();
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient httpClient(CloseableHttpClient value) {
+       public MockRestClientBuilder httpClient(CloseableHttpClient value) {
                super.httpClient(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient httpClientBuilder(HttpClientBuilder value) {
+       public MockRestClientBuilder httpClientBuilder(HttpClientBuilder value) 
{
                super.httpClientBuilder(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient ifMatch(Object value) {
+       public MockRestClientBuilder ifMatch(Object value) {
                super.ifMatch(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient ifModifiedSince(Object value) {
+       public MockRestClientBuilder ifModifiedSince(Object value) {
                super.ifModifiedSince(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient ifNoneMatch(Object value) {
+       public MockRestClientBuilder ifNoneMatch(Object value) {
                super.ifNoneMatch(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient ifRange(Object value) {
+       public MockRestClientBuilder ifRange(Object value) {
                super.ifRange(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient ifUnmodifiedSince(Object value) {
+       public MockRestClientBuilder ifUnmodifiedSince(Object value) {
                super.ifUnmodifiedSince(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient ignoreRecursions() {
+       public MockRestClientBuilder ignoreRecursions() {
                super.ignoreRecursions();
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient initialDepth(int value) {
+       public MockRestClientBuilder initialDepth(int value) {
                super.initialDepth(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
        @SuppressWarnings("unchecked")
-       public MockRestClient interceptors(java.lang.Class<? extends 
org.apache.juneau.rest.client2.RestCallInterceptor>...values) throws Exception{
+       public MockRestClientBuilder interceptors(java.lang.Class<? extends 
org.apache.juneau.rest.client2.RestCallInterceptor>...values) throws Exception{
                super.interceptors(values);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient interceptors(RestCallInterceptor...value) {
+       public MockRestClientBuilder interceptors(RestCallInterceptor...value) {
                super.interceptors(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient json() {
+       public MockRestClientBuilder json() {
                super.json();
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient keepHttpClientOpen() {
+       public MockRestClientBuilder keepHttpClientOpen() {
                super.keepHttpClientOpen();
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient keepNullProperties() {
+       public MockRestClientBuilder keepNullProperties() {
                super.keepNullProperties();
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient leakDetection() {
+       public MockRestClientBuilder leakDetection() {
                super.leakDetection();
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient logRequests(DetailLevel detail, Level level) {
+       public MockRestClientBuilder logRequests(DetailLevel detail, Level 
level) {
                super.logRequests(detail, level);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient logToConsole() {
+       public MockRestClientBuilder logToConsole() {
                super.logToConsole();
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient logger(Logger value) {
+       public MockRestClientBuilder logger(Logger value) {
                super.logger(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient marshall(Marshall value) {
+       public MockRestClientBuilder marshall(Marshall value) {
                super.marshall(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient marshalls(Marshall...value) {
+       public MockRestClientBuilder marshalls(Marshall...value) {
                super.marshalls(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient maxDepth(int value) {
+       public MockRestClientBuilder maxDepth(int value) {
                super.maxDepth(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient maxForwards(Object value) {
+       public MockRestClientBuilder maxForwards(Object value) {
                super.maxForwards(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient maxIndent(int value) {
+       public MockRestClientBuilder maxIndent(int value) {
                super.maxIndent(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient msgPack() {
+       public MockRestClientBuilder msgPack() {
                super.msgPack();
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient noTrace() {
+       public MockRestClientBuilder noTrace() {
                super.noTrace();
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient oapiCollectionFormat(HttpPartCollectionFormat 
value) {
+       public MockRestClientBuilder 
oapiCollectionFormat(HttpPartCollectionFormat value) {
                super.oapiCollectionFormat(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient oapiFormat(HttpPartFormat value) {
+       public MockRestClientBuilder oapiFormat(HttpPartFormat value) {
                super.oapiFormat(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient openApi() {
+       public MockRestClientBuilder openApi() {
                super.openApi();
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient origin(Object value) {
+       public MockRestClientBuilder origin(Object value) {
                super.origin(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient paramFormat(ParamFormat value) {
+       public MockRestClientBuilder paramFormat(ParamFormat value) {
                super.paramFormat(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient paramFormatPlain() {
+       public MockRestClientBuilder paramFormatPlain() {
                super.paramFormatPlain();
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient parser(Class<? extends 
org.apache.juneau.parser.Parser> value) {
+       public MockRestClientBuilder parser(Class<? extends 
org.apache.juneau.parser.Parser> value) {
                super.parser(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient parser(Parser value) {
+       public MockRestClientBuilder parser(Parser value) {
                super.parser(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
        @SuppressWarnings("unchecked")
-       public MockRestClient parsers(java.lang.Class<? extends 
org.apache.juneau.parser.Parser>...value) {
+       public MockRestClientBuilder parsers(java.lang.Class<? extends 
org.apache.juneau.parser.Parser>...value) {
                super.parsers(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient parsers(Parser...value) {
+       public MockRestClientBuilder parsers(Parser...value) {
                super.parsers(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient partParser(Class<? extends 
org.apache.juneau.httppart.HttpPartParser> value) {
+       public MockRestClientBuilder partParser(Class<? extends 
org.apache.juneau.httppart.HttpPartParser> value) {
                super.partParser(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient partParser(HttpPartParser value) {
+       public MockRestClientBuilder partParser(HttpPartParser value) {
                super.partParser(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient partSerializer(Class<? extends 
org.apache.juneau.httppart.HttpPartSerializer> value) {
+       public MockRestClientBuilder partSerializer(Class<? extends 
org.apache.juneau.httppart.HttpPartSerializer> value) {
                super.partSerializer(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient partSerializer(HttpPartSerializer value) {
+       public MockRestClientBuilder partSerializer(HttpPartSerializer value) {
                super.partSerializer(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient plainText() {
+       public MockRestClientBuilder plainText() {
                super.plainText();
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient pooled() {
+       public MockRestClientBuilder pooled() {
                super.pooled();
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient pragma(Object value) {
+       public MockRestClientBuilder pragma(Object value) {
                super.pragma(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient proxyAuthorization(Object value) {
+       public MockRestClientBuilder proxyAuthorization(Object value) {
                super.proxyAuthorization(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient query(Object...params) {
+       public MockRestClientBuilder query(Object...params) {
                super.query(params);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient query(String name, Object value) {
+       public MockRestClientBuilder query(String name, Object value) {
                super.query(name, value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient query(String name, Object value, HttpPartSchema 
schema) {
+       public MockRestClientBuilder query(String name, Object value, 
HttpPartSchema schema) {
                super.query(name, value, schema);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient query(String name, Object value, 
HttpPartSerializer serializer, HttpPartSchema schema) {
+       public MockRestClientBuilder query(String name, Object value, 
HttpPartSerializer serializer, HttpPartSchema schema) {
                super.query(name, value, serializer, schema);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient queryPairs(Object...pairs) {
+       public MockRestClientBuilder queryPairs(Object...pairs) {
                super.queryPairs(pairs);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient quoteChar(char value) {
+       public MockRestClientBuilder quoteChar(char value) {
                super.quoteChar(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient range(Object value) {
+       public MockRestClientBuilder range(Object value) {
                super.range(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient referer(Object value) {
+       public MockRestClientBuilder referer(Object value) {
                super.referer(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient rootUrl(Object value) {
+       public MockRestClientBuilder rootUrl(Object value) {
                super.rootUrl(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient serializer(Class<? extends 
org.apache.juneau.serializer.Serializer> value) {
+       public MockRestClientBuilder serializer(Class<? extends 
org.apache.juneau.serializer.Serializer> value) {
                super.serializer(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient serializer(Serializer value) {
+       public MockRestClientBuilder serializer(Serializer value) {
                super.serializer(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
        @SuppressWarnings("unchecked")
-       public MockRestClient serializers(java.lang.Class<? extends 
org.apache.juneau.serializer.Serializer>...value) {
+       public MockRestClientBuilder serializers(java.lang.Class<? extends 
org.apache.juneau.serializer.Serializer>...value) {
                super.serializers(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient serializers(Serializer...value) {
+       public MockRestClientBuilder serializers(Serializer...value) {
                super.serializers(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient simpleJson() {
+       public MockRestClientBuilder simpleJson() {
                super.simpleJson();
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient sortCollections() {
+       public MockRestClientBuilder sortCollections() {
                super.sortCollections();
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient sortMaps() {
+       public MockRestClientBuilder sortMaps() {
                super.sortMaps();
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient sq() {
+       public MockRestClientBuilder sq() {
                super.sq();
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient strict() {
+       public MockRestClientBuilder strict() {
                super.strict();
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient te(Object value) {
+       public MockRestClientBuilder te(Object value) {
                super.te(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient trimEmptyCollections() {
+       public MockRestClientBuilder trimEmptyCollections() {
                super.trimEmptyCollections();
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient trimEmptyMaps() {
+       public MockRestClientBuilder trimEmptyMaps() {
                super.trimEmptyMaps();
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient trimStringsOnRead() {
+       public MockRestClientBuilder trimStringsOnRead() {
                super.trimStringsOnRead();
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient trimStringsOnWrite() {
+       public MockRestClientBuilder trimStringsOnWrite() {
                super.trimStringsOnWrite();
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient uon() {
+       public MockRestClientBuilder uon() {
                super.uon();
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient upgrade(Object value) {
+       public MockRestClientBuilder upgrade(Object value) {
                super.upgrade(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient uriContext(UriContext value) {
+       public MockRestClientBuilder uriContext(UriContext value) {
                super.uriContext(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient uriRelativity(UriRelativity value) {
+       public MockRestClientBuilder uriRelativity(UriRelativity value) {
                super.uriRelativity(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient uriResolution(UriResolution value) {
+       public MockRestClientBuilder uriResolution(UriResolution value) {
                super.uriResolution(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient urlEnc() {
+       public MockRestClientBuilder urlEnc() {
                super.urlEnc();
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient useWhitespace() {
+       public MockRestClientBuilder useWhitespace() {
                super.useWhitespace();
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient userAgent(Object value) {
+       public MockRestClientBuilder userAgent(Object value) {
                super.userAgent(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient via(Object value) {
+       public MockRestClientBuilder via(Object value) {
                super.via(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient warning(Object value) {
+       public MockRestClientBuilder warning(Object value) {
                super.warning(value);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient ws() {
+       public MockRestClientBuilder ws() {
                super.ws();
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
-       public MockRestClient xml() {
+       public MockRestClientBuilder xml() {
                super.xml();
                return this;
        }
diff --git 
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockServletRequest.java
 
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockServletRequest.java
index 937f58f..89e2acf 100644
--- 
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockServletRequest.java
+++ 
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockServletRequest.java
@@ -261,7 +261,7 @@ public class MockServletRequest implements 
HttpServletRequest, MockHttpRequest {
         * Adds the specified role on this request.
         *
         * <p>
-        * Note that {@link MockRest.Builder#roles(String...)} can be used to 
set the roles for all requests.
+        * Note that {@link MockRestBuilder#roles(String...)} can be used to 
set the roles for all requests.
         *
         * @param role The role to add to this request (e.g. 
<js>"ROLE_ADMIN"</js>).
         * @return This object (for method chaining).
diff --git 
a/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/BasicRestInfoProviderTest.java
 
b/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/BasicRestInfoProviderTest.java
index 51e6499..37f85b0 100644
--- 
a/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/BasicRestInfoProviderTest.java
+++ 
b/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/BasicRestInfoProviderTest.java
@@ -2337,7 +2337,7 @@ public class BasicRestInfoProviderTest {
                }
        }
 
-       static MockRest p = MockRest.build(P.class);
+       static MockRestClient p = MockRestClient.build(P.class);
 
        @Test
        public void p01_bodyWithReadOnlyProperty() throws Exception {
diff --git 
a/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/BeanContextPropertiesTest.java
 
b/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/BeanContextPropertiesTest.java
index 6bd1faf..9e8156e 100644
--- 
a/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/BeanContextPropertiesTest.java
+++ 
b/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/BeanContextPropertiesTest.java
@@ -44,7 +44,7 @@ public class BeanContextPropertiesTest  {
                        return "d1="+df.swap(session, 
d1)+",d2="+df.swap(session, d2)+",d3="+df.swap(session, d3)+"";
                }
        }
-       static MockRest a = MockRest.build(A.class);
+       static MockRestClient a = MockRestClient.build(A.class);
 
        @Test
        public void a01_testClassTransforms() throws Exception {
diff --git 
a/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/DebugModeTest.java
 
b/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/DebugModeTest.java
index ac62cde..151ee1e 100644
--- 
a/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/DebugModeTest.java
+++ 
b/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/DebugModeTest.java
@@ -113,8 +113,8 @@ public class DebugModeTest {
                        return req.isDebug();
                }
        }
-       static MockRest a1 = MockRest.buildSimpleJson(A1.class);
-       static MockRest a1d = 
MockRest.create(A1.class).simpleJson().header("X-Debug", true).build();
+       static MockRestClient a1 = MockRestClient.buildSimpleJson(A1.class);
+       static MockRestClient a1d = 
MockRestClient.create(A1.class).simpleJson().header("X-Debug", true).build();
 
        @Test
        public void a01_debugDefault() throws Exception {
@@ -188,8 +188,8 @@ public class DebugModeTest {
                        return req.isDebug();
                }
        }
-       static MockRest a1a = MockRest.buildSimpleJson(A1a.class);
-       static MockRest a1ad = 
MockRest.create(A1a.class).simpleJson().header("X-Debug", true).build();
+       static MockRestClient a1a = MockRestClient.buildSimpleJson(A1a.class);
+       static MockRestClient a1ad = 
MockRestClient.create(A1a.class).simpleJson().header("X-Debug", true).build();
 
        @Test
        public void a01a_debugDefault() throws Exception {
@@ -267,8 +267,8 @@ public class DebugModeTest {
                        return req.isDebug();
                }
        }
-       static MockRest a2 = MockRest.buildSimpleJson(A2.class);
-       static MockRest a2d = 
MockRest.create(A2.class).simpleJson().header("X-Debug", true).build();
+       static MockRestClient a2 = MockRestClient.buildSimpleJson(A2.class);
+       static MockRestClient a2d = 
MockRestClient.create(A2.class).simpleJson().header("X-Debug", true).build();
 
        @Test
        public void a02_debugTrue() throws Exception {
@@ -346,8 +346,8 @@ public class DebugModeTest {
                        return req.isDebug();
                }
        }
-       static MockRest a3 = MockRest.buildSimpleJson(A3.class);
-       static MockRest a3d = 
MockRest.create(A3.class).simpleJson().header("X-Debug", true).build();
+       static MockRestClient a3 = MockRestClient.buildSimpleJson(A3.class);
+       static MockRestClient a3d = 
MockRestClient.create(A3.class).simpleJson().header("X-Debug", true).build();
 
        @Test
        public void a03_restDebugFalse() throws Exception {
@@ -425,8 +425,8 @@ public class DebugModeTest {
                        return req.isDebug();
                }
        }
-       static MockRest a4 = MockRest.buildSimpleJson(A4.class);
-       static MockRest a4d = 
MockRest.create(A4.class).simpleJson().header("X-Debug", true).build();
+       static MockRestClient a4 = MockRestClient.buildSimpleJson(A4.class);
+       static MockRestClient a4d = 
MockRestClient.create(A4.class).simpleJson().header("X-Debug", true).build();
 
        @Test
        public void a04_debugPerRequest() throws Exception {
@@ -486,7 +486,7 @@ public class DebugModeTest {
                        LOGGER.log(config, req, res);
                }
        }
-       static MockRest b1 = MockRest.buildSimpleJson(B1.class);
+       static MockRestClient b1 = MockRestClient.buildSimpleJson(B1.class);
 
        @Test
        public void b01_debugDefault() throws Exception {
@@ -512,7 +512,7 @@ public class DebugModeTest {
                        LOGGER.log(config, req, res);
                }
        }
-       static MockRest b2 = MockRest.buildSimpleJson(B2.class);
+       static MockRestClient b2 = MockRestClient.buildSimpleJson(B2.class);
 
        @Test
        public void b02_debugDefault() throws Exception {
@@ -700,8 +700,8 @@ public class DebugModeTest {
                        return req.isDebug();
                }
        }
-       static MockRest c1 = MockRest.buildSimpleJson(C1.class);
-       static MockRest c1d = 
MockRest.create(C1.class).simpleJson().header("X-Debug", true).build();
+       static MockRestClient c1 = MockRestClient.buildSimpleJson(C1.class);
+       static MockRestClient c1d = 
MockRestClient.create(C1.class).simpleJson().header("X-Debug", true).build();
 
        @Test
        public void c01_debugDefault() throws Exception {
@@ -1034,8 +1034,8 @@ public class DebugModeTest {
                        return req.isDebug();
                }
        }
-       static MockRest c2 = MockRest.buildSimpleJson(C2.class);
-       static MockRest c2d = 
MockRest.create(C2.class).simpleJson().header("X-Debug", true).build();
+       static MockRestClient c2 = MockRestClient.buildSimpleJson(C2.class);
+       static MockRestClient c2d = 
MockRestClient.create(C2.class).simpleJson().header("X-Debug", true).build();
 
        @Test
        public void c02_debugTrue() throws Exception {
diff --git 
a/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/NlsTest.java
 
b/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/NlsTest.java
index fc7b05d..ec52440 100644
--- 
a/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/NlsTest.java
+++ 
b/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/NlsTest.java
@@ -47,7 +47,7 @@ public class NlsTest {
                        return null;
                }
        }
-       static MockRest a = MockRest.build(A.class);
+       static MockRestClient a = MockRestClient.build(A.class);
 
        public static class A01 extends WriterSerializer {
                public A01(PropertyStore ps) {
@@ -86,7 +86,7 @@ public class NlsTest {
                        return req.getSwagger();
                }
        }
-       static MockRest b = MockRest.build(B.class);
+       static MockRestClient b = MockRestClient.build(B.class);
 
        @Test
        public void b01_optionsPageWithoutNls() throws Exception {
@@ -105,7 +105,7 @@ public class NlsTest {
                        return req.getMessage("bad", 1, 2, 3);
                }
        }
-       static MockRest c = MockRest.build(C.class);
+       static MockRestClient c = MockRestClient.build(C.class);
 
        @Test
        public void c01_missingResourceBundle() throws Exception {

Reply via email to