You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2022/08/11 20:25:08 UTC

[juneau] branch jbFixRestNpe updated: Minor API improvements.

This is an automated email from the ASF dual-hosted git repository.

jamesbognar pushed a commit to branch jbFixRestNpe
in repository https://gitbox.apache.org/repos/asf/juneau.git


The following commit(s) were added to refs/heads/jbFixRestNpe by this push:
     new 6a78e402a Minor API improvements.
6a78e402a is described below

commit 6a78e402aa9ba5c6fd49788d3c50b0639c52fe68
Author: JamesBognar <ja...@salesforce.com>
AuthorDate: Thu Aug 11 16:23:39 2022 -0400

    Minor API improvements.
---
 .../org/apache/juneau/internal/ThrowableUtils.java |  21 +
 .../org/apache/juneau/rest/client/RestRequest.java |  62 ++
 .../apache/juneau/rest/client/RestResponse.java    |  82 +-
 .../apache/juneau/rest/mock/MockRestRequest.java   | 367 +++++++++
 .../apache/juneau/rest/mock/MockRestResponse.java  |  18 +
 .../apache/juneau/rest/annotation/RestPatch.java   | 883 +++++++++++++++++++++
 .../rest/annotation/RestPatchAnnotation.java       | 630 +++++++++++++++
 .../juneau/http/SerializedHttpEntity_Test.java     |   6 +-
 .../juneau/http/header/AcceptCharset_Test.java     |   8 +-
 .../juneau/http/header/AcceptEncoding_Test.java    |  14 +-
 .../juneau/http/header/AcceptLanguage_Test.java    |   8 +-
 .../juneau/http/header/AcceptRanges_Test.java      |   6 +-
 .../org/apache/juneau/http/header/Accept_Test.java |   8 +-
 .../org/apache/juneau/http/header/Age_Test.java    |   8 +-
 .../org/apache/juneau/http/header/Allow_Test.java  |   8 +-
 .../juneau/http/header/Authorization_Test.java     |   6 +-
 .../http/header/BasicBooleanHeader_Test.java       |   8 +-
 .../juneau/http/header/BasicCsvHeader_Test.java    |   8 +-
 .../juneau/http/header/BasicDateHeader_Test.java   |   8 +-
 .../http/header/BasicEntityTagHeader_Test.java     |   8 +-
 .../http/header/BasicEntityTagsHeader_Test.java    |   8 +-
 .../http/header/BasicIntegerHeader_Test.java       |   8 +-
 .../juneau/http/header/BasicLongHeader_Test.java   |   8 +-
 .../http/header/BasicMediaRangesHeader_Test.java   |   8 +-
 .../http/header/BasicMediaTypeHeader_Test.java     |   8 +-
 .../juneau/http/header/BasicStringHeader_Test.java |   8 +-
 .../http/header/BasicStringRangesHeader_Test.java  |   8 +-
 .../juneau/http/header/BasicUriHeader_Test.java    |   8 +-
 .../juneau/http/header/CacheControl_Test.java      |   8 +-
 .../juneau/http/header/ClientVersion_Test.java     |   8 +-
 .../apache/juneau/http/header/Connection_Test.java |  14 +-
 .../http/header/ContentDisposition_Test.java       |   8 +-
 .../juneau/http/header/ContentEncoding_Test.java   |   8 +-
 .../juneau/http/header/ContentLanguage_Test.java   |   8 +-
 .../juneau/http/header/ContentLength_Test.java     |   8 +-
 .../juneau/http/header/ContentLocation_Test.java   |   8 +-
 .../juneau/http/header/ContentRange_Test.java      |   8 +-
 .../juneau/http/header/ContentType_Test.java       |   8 +-
 .../org/apache/juneau/http/header/Date_Test.java   |   8 +-
 .../org/apache/juneau/http/header/ETag_Test.java   |   8 +-
 .../org/apache/juneau/http/header/Expect_Test.java |   8 +-
 .../apache/juneau/http/header/Expires_Test.java    |  12 +-
 .../apache/juneau/http/header/Forwarded_Test.java  |   8 +-
 .../org/apache/juneau/http/header/From_Test.java   |   8 +-
 .../org/apache/juneau/http/header/Host_Test.java   |  14 +-
 .../apache/juneau/http/header/IfMatch_Test.java    |   8 +-
 .../juneau/http/header/IfModifiedSince_Test.java   |  12 +-
 .../juneau/http/header/IfNoneMatch_Test.java       |   8 +-
 .../apache/juneau/http/header/IfRange_Test.java    |  24 +-
 .../juneau/http/header/IfUnmodifiedSince_Test.java |   8 +-
 .../juneau/http/header/LastModified_Test.java      |   8 +-
 .../apache/juneau/http/header/Location_Test.java   |   8 +-
 .../juneau/http/header/MaxForwards_Test.java       |   8 +-
 .../apache/juneau/http/header/NoTrace_Test.java    |   8 +-
 .../org/apache/juneau/http/header/Origin_Test.java |   8 +-
 .../org/apache/juneau/http/header/Pragma_Test.java |   8 +-
 .../juneau/http/header/ProxyAuthenticate_Test.java |   8 +-
 .../http/header/ProxyAuthorization_Test.java       |   8 +-
 .../org/apache/juneau/http/header/Range_Test.java  |   8 +-
 .../apache/juneau/http/header/Referer_Test.java    |   8 +-
 .../apache/juneau/http/header/RetryAfter_Test.java |  16 +-
 .../org/apache/juneau/http/header/Server_Test.java |   8 +-
 .../org/apache/juneau/http/header/TE_Test.java     |   8 +-
 .../apache/juneau/http/header/Trailer_Test.java    |   8 +-
 .../juneau/http/header/TransferEncoding_Test.java  |   8 +-
 .../apache/juneau/http/header/Upgrade_Test.java    |   8 +-
 .../apache/juneau/http/header/UserAgent_Test.java  |   8 +-
 .../org/apache/juneau/http/header/Vary_Test.java   |   8 +-
 .../org/apache/juneau/http/header/Via_Test.java    |   8 +-
 .../apache/juneau/http/header/Warning_Test.java    |   8 +-
 .../juneau/http/header/WwwAuthenticate_Test.java   |   8 +-
 .../apache/juneau/http/response/Accepted_Test.java |  10 +-
 .../juneau/http/response/AlreadyReported_Test.java |  10 +-
 .../juneau/http/response/BadRequest_Test.java      |  12 +-
 .../apache/juneau/http/response/Conflict_Test.java |  12 +-
 .../apache/juneau/http/response/Continue_Test.java |  10 +-
 .../apache/juneau/http/response/Created_Test.java  |  10 +-
 .../juneau/http/response/EarlyHints_Test.java      |  10 +-
 .../http/response/ExpectationFailed_Test.java      |  12 +-
 .../http/response/FailedDependency_Test.java       |  12 +-
 .../juneau/http/response/Forbidden_Test.java       |  12 +-
 .../apache/juneau/http/response/Found_Test.java    |  12 +-
 .../org/apache/juneau/http/response/Gone_Test.java |  12 +-
 .../juneau/http/response/HttpException_Test.java   |  10 +-
 .../response/HttpVersionNotSupported_Test.java     |  12 +-
 .../apache/juneau/http/response/IMUsed_Test.java   |  10 +-
 .../http/response/InsufficentStorage_Test.java     |  12 +-
 .../http/response/InternalServerError_Test.java    |  12 +-
 .../juneau/http/response/LengthRequired_Test.java  |  12 +-
 .../apache/juneau/http/response/Locked_Test.java   |  12 +-
 .../juneau/http/response/LoopDetected_Test.java    |  12 +-
 .../http/response/MethodNotAllowed_Test.java       |  12 +-
 .../http/response/MisdirectedRequest_Test.java     |  12 +-
 .../http/response/MovedPermanently_Test.java       |  12 +-
 .../juneau/http/response/MultiStatus_Test.java     |  10 +-
 .../juneau/http/response/MultipleChoices_Test.java |  10 +-
 .../NetworkAuthenticationRequired_Test.java        |  12 +-
 .../juneau/http/response/NoContent_Test.java       |   6 +-
 .../response/NonAuthoritativeInformation_Test.java |  10 +-
 .../juneau/http/response/NotAcceptable_Test.java   |  12 +-
 .../juneau/http/response/NotExtended_Test.java     |  12 +-
 .../apache/juneau/http/response/NotFound_Test.java |  12 +-
 .../juneau/http/response/NotImplemented_Test.java  |  12 +-
 .../juneau/http/response/NotModified_Test.java     |   6 +-
 .../org/apache/juneau/http/response/Ok_Test.java   |  10 +-
 .../juneau/http/response/PartialContent_Test.java  |  10 +-
 .../juneau/http/response/PayloadTooLarge_Test.java |  12 +-
 .../http/response/PermanentRedirect_Test.java      |  12 +-
 .../http/response/PreconditionFailed_Test.java     |  12 +-
 .../http/response/PreconditionRequired_Test.java   |  12 +-
 .../juneau/http/response/Processing_Test.java      |  10 +-
 .../http/response/RangeNotSatisfiable_Test.java    |  12 +-
 .../response/RequestHeaderFieldsTooLarge_Test.java |  12 +-
 .../juneau/http/response/ResetContent_Test.java    |   6 +-
 .../apache/juneau/http/response/SeeOther_Test.java |  12 +-
 .../http/response/ServiceUnavailable_Test.java     |  12 +-
 .../http/response/SwitchingProtocols_Test.java     |  10 +-
 .../http/response/TemporaryRedirect_Test.java      |  12 +-
 .../juneau/http/response/TooManyRequests_Test.java |  12 +-
 .../juneau/http/response/Unauthorized_Test.java    |  12 +-
 .../response/UnavailableForLegalReasons_Test.java  |  12 +-
 .../http/response/UnprocessableEntity_Test.java    |  12 +-
 .../http/response/UnsupportedMediaType_Test.java   |  12 +-
 .../juneau/http/response/UpgradeRequired_Test.java |  12 +-
 .../juneau/http/response/UriTooLong_Test.java      |  12 +-
 .../apache/juneau/http/response/UseProxy_Test.java |  10 +-
 .../http/response/VariantAlsoNegotiates_Test.java  |  12 +-
 .../juneau/rest/Header_AcceptCharset_Test.java     |  14 +-
 .../juneau/rest/Header_AcceptEncoding_Test.java    |  58 +-
 .../org/apache/juneau/rest/Header_Accept_Test.java |  52 +-
 .../juneau/rest/Header_ContentType_Test.java       |  42 +-
 .../test/java/org/apache/juneau/rest/Nls_Test.java |   6 +-
 .../juneau/rest/RestContext_Builder_Test.java      |  16 +-
 .../org/apache/juneau/rest/RestOp_Params_Test.java | 108 +--
 .../apache/juneau/rest/RestOp_Returns_Test.java    |  46 +-
 .../org/apache/juneau/rest/RestOp_Throws_Test.java | 536 ++++++-------
 .../rest/Rest_PredefinedStatusCodes_Test.java      |  28 +-
 .../rest/annotation/BeanConfig_Swaps_Test.java     |  12 +-
 .../juneau/rest/annotation/Content_Test.java       | 290 +++----
 .../juneau/rest/annotation/FormData_Test.java      | 134 ++--
 .../juneau/rest/annotation/HasFormData_Test.java   |  22 +-
 .../juneau/rest/annotation/HasQuery_Test.java      |  44 +-
 .../apache/juneau/rest/annotation/Header_Test.java | 118 +--
 .../juneau/rest/annotation/PathRemainder_Test.java |  56 +-
 .../apache/juneau/rest/annotation/Path_Test.java   | 348 ++++----
 .../apache/juneau/rest/annotation/Query_Test.java  | 188 ++---
 .../rest/annotation/ResponseHeader_Test.java       |   6 +-
 .../rest/annotation/ResponseStatus_Test.java       |   2 +-
 .../juneau/rest/annotation/Response_Test.java      |  86 +-
 .../juneau/rest/annotation/RestInit_Test.java      |   6 +-
 .../rest/annotation/RestOp_BeanConfig_Test.java    |  96 +--
 .../rest/annotation/RestOp_ClientVersion_Test.java |  24 +-
 .../juneau/rest/annotation/RestOp_Guards_Test.java |  60 +-
 .../rest/annotation/RestOp_Matchers_Test.java      |  14 +-
 .../rest/annotation/RestOp_ReqHeaders_Test.java    |  36 +-
 .../juneau/rest/annotation/RestPostInit_Test.java  |  16 +-
 .../juneau/rest/annotation/RestPreCall_Test.java   |   2 +-
 .../juneau/rest/annotation/RestStartCall_Test.java |   2 +-
 .../annotation/Rest_AllowContentParam_Test.java    |  16 +-
 .../annotation/Rest_AllowedHeaderParams_Test.java  |  48 +-
 .../annotation/Rest_AllowedMethodHeaders_Test.java |  88 +-
 .../annotation/Rest_AllowedMethodParams_Test.java  | 148 ++--
 .../Rest_AnnotationInheritance_Test.java           |   6 +-
 .../juneau/rest/annotation/Rest_Debug_Test.java    | 456 +++++------
 .../Rest_DefaultRequestAttributes_Test.java        |  32 +-
 .../juneau/rest/annotation/Rest_Encoders_Test.java |  14 +-
 .../juneau/rest/annotation/Rest_Messages_Test.java |  44 +-
 .../juneau/rest/annotation/Rest_RVars_Test.java    |   2 +-
 .../juneau/rest/annotation/Restx_Parsers_Test.java |  24 +-
 .../juneau/rest/annotation/Restx_Path_Test.java    |  22 +-
 .../rest/annotation/Restx_ReqAttrs_Test.java       |  30 +-
 .../rest/annotation/Restx_RoleGuard_Test.java      | 464 +++++------
 .../rest/annotation/Restx_Serializers_Test.java    |  22 +-
 .../rest/client/RestClient_BasicCalls_Test.java    | 102 +--
 .../juneau/rest/client/RestClient_Body_Test.java   |  12 +-
 .../client/RestClient_CallbackStrings_Test.java    |  12 +-
 .../client/RestClient_Config_BeanContext_Test.java | 114 +--
 .../client/RestClient_Config_Context_Test.java     |  16 +-
 .../client/RestClient_Config_OpenApi_Test.java     |   8 +-
 .../client/RestClient_Config_RestClient_Test.java  |  56 +-
 .../client/RestClient_Config_Serializer_Test.java  |  40 +-
 .../rest/client/RestClient_FormData_Test.java      |  42 +-
 .../rest/client/RestClient_Headers_Test.java       | 128 +--
 .../rest/client/RestClient_Marshalls_Test.java     | 102 +--
 .../juneau/rest/client/RestClient_Query_Test.java  |   4 +-
 .../rest/client/RestClient_Response_Test.java      |  30 +-
 .../apache/juneau/rest/client/RestClient_Test.java |  10 +-
 .../apache/juneau/rest/helper/Hyperlink_Test.java  |   6 +-
 .../rest/mock/MockRestClient_PathVars_Test.java    |   2 +-
 189 files changed, 4890 insertions(+), 2921 deletions(-)

diff --git a/juneau-core/juneau-common/src/main/java/org/apache/juneau/internal/ThrowableUtils.java b/juneau-core/juneau-common/src/main/java/org/apache/juneau/internal/ThrowableUtils.java
index d25452dc6..ea5096593 100644
--- a/juneau-core/juneau-common/src/main/java/org/apache/juneau/internal/ThrowableUtils.java
+++ b/juneau-core/juneau-common/src/main/java/org/apache/juneau/internal/ThrowableUtils.java
@@ -122,4 +122,25 @@ public class ThrowableUtils {
 		}
 		return sw.toString();
 	}
+
+	/**
+	 * Calculates a 16-bit hash for the specified throwable based on it's stack trace.
+	 *
+	 * @param t The throwable to calculate the stack trace on.
+	 * @param stopClass Optional stop class on which to stop calculation of a stack trace beyond when found.
+	 * @return A calculated hash.
+	 */
+	public static int hash(Throwable t, String stopClass) {
+		int i = 0;
+		while (t != null) {
+			for (StackTraceElement e : t.getStackTrace()) {
+				if (e.getClassName().equals(stopClass))
+					break;
+				if (e.getClassName().indexOf('$') == -1)
+					i ^= e.hashCode();
+			}
+			t = t.getCause();
+		}
+		return i;
+	}
 }
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequest.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequest.java
index d9de9aa32..2d2e9e251 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequest.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequest.java
@@ -52,6 +52,7 @@ import org.apache.juneau.http.header.*;
 import org.apache.juneau.http.part.*;
 import org.apache.juneau.http.resource.*;
 import org.apache.juneau.httppart.*;
+import org.apache.juneau.internal.*;
 import org.apache.juneau.json.*;
 import org.apache.juneau.msgpack.*;
 import org.apache.juneau.oapi.*;
@@ -78,6 +79,7 @@ import org.apache.juneau.xml.*;
  * 	<li class='extlink'>{@source}
  * </ul>
  */
+@FluentSetters
 public class RestRequest extends BeanSession implements HttpUriRequest, Configurable {
 
 	private static final ContentType TEXT_PLAIN = ContentType.TEXT_PLAIN;
@@ -178,6 +180,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 *
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest json() {
 		return serializer(JsonSerializer.class).parser(JsonParser.class);
 	}
@@ -218,6 +221,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 *
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest simpleJson() {
 		return serializer(SimpleJsonSerializer.class).parser(SimpleJsonParser.class);
 	}
@@ -248,6 +252,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 *
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest xml() {
 		return serializer(XmlSerializer.class).parser(XmlParser.class);
 	}
@@ -281,6 +286,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 *
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest html() {
 		return serializer(HtmlSerializer.class).parser(HtmlParser.class);
 	}
@@ -314,6 +320,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 *
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest htmlDoc() {
 		return serializer(HtmlDocSerializer.class).parser(HtmlParser.class);
 	}
@@ -347,6 +354,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 *
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest htmlStrippedDoc() {
 		return serializer(HtmlStrippedDocSerializer.class).parser(HtmlParser.class);
 	}
@@ -381,6 +389,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 *
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest plainText() {
 		return serializer(PlainTextSerializer.class).parser(PlainTextParser.class);
 	}
@@ -414,6 +423,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 *
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest msgPack() {
 		return serializer(MsgPackSerializer.class).parser(MsgPackParser.class);
 	}
@@ -448,6 +458,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 *
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest uon() {
 		return serializer(UonSerializer.class).parser(UonParser.class);
 	}
@@ -480,6 +491,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 *
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest urlEnc() {
 		return serializer(UrlEncodingSerializer.class).parser(UrlEncodingParser.class);
 	}
@@ -516,6 +528,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 *
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest openApi() {
 		return serializer(OpenApiSerializer.class).parser(OpenApiParser.class);
 	}
@@ -536,6 +549,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @param serializer The serializer used to serialize POJOs to the body of the HTTP request.
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest serializer(Serializer serializer) {
 		this.serializer = serializer;
 		return this;
@@ -557,6 +571,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @param serializer The serializer used to serialize POJOs to the body of the HTTP request.
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest serializer(Class<? extends Serializer> serializer) {
 		this.serializer = client.getInstance(serializer);
 		return this;
@@ -578,6 +593,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @param parser The parser used to parse POJOs from the body of the HTTP response.
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest parser(Parser parser) {
 		this.parser = parser;
 		return this;
@@ -599,6 +615,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @param parser The parser used to parse POJOs from the body of the HTTP response.
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest parser(Class<? extends Parser> parser) {
 		this.parser = client.getInstance(parser);
 		return this;
@@ -613,6 +630,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @param value The new predicate for calculating error codes.
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest errorCodes(Predicate<Integer> value) {
 		this.errorCodes = value;
 		return this;
@@ -625,6 +643,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @return This object.
 	 * @throws RestCallException If init method on interceptor threw an exception.
 	 */
+	@FluentSetter
 	public RestRequest interceptors(RestCallInterceptor...interceptors) throws RestCallException {
 		try {
 			for (RestCallInterceptor i : interceptors) {
@@ -648,6 +667,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 *
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest ignoreErrors() {
 		this.ignoreErrors = true;
 		return this;
@@ -667,6 +687,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @return This object.
 	 */
 	@SuppressWarnings("unchecked")
+	@FluentSetter
 	public RestRequest rethrow(Class<?>...values) {
 		if (rethrow == null)
 			rethrow = list();
@@ -683,6 +704,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @return This object.
 	 * @throws RestCallException Invalid input.
 	 */
+	@FluentSetter
 	public RestRequest debug() throws RestCallException {
 		header("Debug", true);
 		return this;
@@ -704,6 +726,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 *
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest suppressLogging() {
 		this.suppressLogging = true;
 		return this;
@@ -721,6 +744,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * 	target or by inspecting the request.
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest target(HttpHost target) {
 		this.target = target;
 		return this;
@@ -732,6 +756,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @param context The context to use for the execution, or <jk>null</jk> to use the default context.
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest context(HttpContext context) {
 		this.context = context;
 		return this;
@@ -862,6 +887,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * 	<jk>null</jk> values are ignored.
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest header(Header part) {
 		return headers(part);
 	}
@@ -886,6 +912,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * 	<jk>null</jk> values are ignored.
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest headers(Header...parts) {
 		headers().append(parts);
 		return this;
@@ -911,6 +938,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * 	<jk>null</jk> values are ignored.
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest queryData(NameValuePair...parts) {
 		queryData().append(parts);
 		return this;
@@ -936,6 +964,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * 	<jk>null</jk> values are ignored.
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest formData(NameValuePair...parts) {
 		formData().append(parts);
 		return this;
@@ -961,6 +990,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * 	<jk>null</jk> values are ignored.
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest pathData(NameValuePair...parts) {
 		pathData().set(parts);
 		return this;
@@ -985,6 +1015,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * 	<br>Non-string values are converted to strings using the {@link HttpPartSerializer} defined on the client.
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest header(String name, Object value) {
 		headers().append(createHeader(name, value));
 		return this;
@@ -1009,6 +1040,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * 	<br>Non-string values are converted to strings using the {@link HttpPartSerializer} defined on the client.
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest queryData(String name, Object value) {
 		queryData().append(createPart(QUERY, name, value));
 		return this;
@@ -1033,6 +1065,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * 	<br>Non-string values are converted to strings using the {@link HttpPartSerializer} defined on the client.
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest formData(String name, Object value) {
 		formData().append(createPart(FORMDATA, name, value));
 		return this;
@@ -1057,6 +1090,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * 	<br>Non-string values are converted to strings using the {@link HttpPartSerializer} defined on the client.
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest pathData(String name, Object value) {
 		pathData().set(createPart(PATH, name, value));
 		return this;
@@ -1077,6 +1111,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @param pairs The form-data key/value pairs.
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest headerPairs(String...pairs) {
 		if (pairs.length % 2 != 0)
 			throw new RuntimeException("Odd number of parameters passed into headerPairs(String...)");
@@ -1106,6 +1141,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @return This object.
 	 * @throws RestCallException Invalid input.
 	 */
+	@FluentSetter
 	public RestRequest queryDataPairs(String...pairs) throws RestCallException {
 		if (pairs.length % 2 != 0)
 			throw new RuntimeException("Odd number of parameters passed into queryDataPairs(String...)");
@@ -1135,6 +1171,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @return This object.
 	 * @throws RestCallException Invalid input.
 	 */
+	@FluentSetter
 	public RestRequest formDataPairs(String...pairs) throws RestCallException {
 		if (pairs.length % 2 != 0)
 			throw new RuntimeException("Odd number of parameters passed into formDataPairs(String...)");
@@ -1166,6 +1203,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * 	</ul>
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest pathDataPairs(String...pairs) {
 		if (pairs.length % 2 != 0)
 			throw new RuntimeException("Odd number of parameters passed into pathDataPairs(String...)");
@@ -1199,6 +1237,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @param value The bean containing the properties to set as header values.
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest headersBean(Object value) {
 		if (! isBean(value))
 			throw new RuntimeException("Object passed into headersBean(Object) is not a bean.");
@@ -1227,6 +1266,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @param value The bean containing the properties to set as query parameter values.
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest queryDataBean(Object value) {
 		if (! isBean(value))
 			throw new RuntimeException("Object passed into queryDataBean(Object) is not a bean.");
@@ -1255,6 +1295,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @param value The bean containing the properties to set as form-data parameter values.
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest formDataBean(Object value) {
 		if (! isBean(value))
 			throw new RuntimeException("Object passed into formDataBean(Object) is not a bean.");
@@ -1283,6 +1324,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @param value The bean containing the properties to set as path parameter values.
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest pathDataBean(Object value) {
 		if (! isBean(value))
 			throw new RuntimeException("Object passed into pathDataBean(Object) is not a bean.");
@@ -1324,6 +1366,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @return This object.
 	 * @throws RestCallException Invalid URI syntax detected.
 	 */
+	@FluentSetter
 	public RestRequest uri(Object uri) throws RestCallException {
 		URI x = client.toURI(uri, null);
 		if (x.getScheme() != null)
@@ -1348,6 +1391,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @param scheme The new URI host.
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest uriScheme(String scheme) {
 		uriBuilder.setScheme(scheme);
 		return this;
@@ -1359,6 +1403,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @param host The new URI host.
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest uriHost(String host) {
 		uriBuilder.setHost(host);
 		return this;
@@ -1370,6 +1415,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @param port The new URI port.
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest uriPort(int port) {
 		uriBuilder.setPort(port);
 		return this;
@@ -1381,6 +1427,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @param userInfo The new URI user info.
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest uriUserInfo(String userInfo) {
 		uriBuilder.setUserInfo(userInfo);
 		return this;
@@ -1393,6 +1440,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @param password The new URI password.
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest uriUserInfo(String username, String password) {
 		uriBuilder.setUserInfo(username, password);
 		return this;
@@ -1404,6 +1452,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @param fragment The URI fragment.  The value is expected to be unescaped and may contain non ASCII characters.
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest uriFragment(String fragment) {
 		uriBuilder.setFragment(fragment);
 		return this;
@@ -1435,6 +1484,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * 	</ul>
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest queryCustom(Object value) {
 		try {
 			String q = null;
@@ -1496,6 +1546,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * 	</ul>
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest formDataCustom(Object value) {
 		header(ContentType.APPLICATION_FORM_URLENCODED);
 		content(value instanceof CharSequence ? new StringReader(value.toString()) : value);
@@ -1675,6 +1726,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * 	</ul>
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest content(Object value) {
 		this.content = value;
 		return this;
@@ -1711,6 +1763,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @return This object.
 	 * @throws RestCallException If a retry was attempted, but the entity was not repeatable.
 	 */
+	@FluentSetter
 	public RestRequest contentString(Object input) throws RestCallException {
 		return content(input == null ? null : new StringReader(stringify(input)));
 	}
@@ -1745,6 +1798,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * 	</ul>
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest content(Object input, HttpPartSchema schema) {
 		this.content = input;
 		this.contentSchema = schema;
@@ -1766,6 +1820,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @return This object.
 	 * @throws RestCallException Invalid input.
 	 */
+	@FluentSetter
 	public RestRequest accept(String value) throws RestCallException {
 		return header(Accept.of(value));
 	}
@@ -1780,6 +1835,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @return This object.
 	 * @throws RestCallException Invalid input.
 	 */
+	@FluentSetter
 	public RestRequest acceptCharset(String value) throws RestCallException {
 		return header(AcceptCharset.of(value));
 	}
@@ -1795,6 +1851,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @return This object.
 	 * @throws RestCallException Invalid input.
 	 */
+	@FluentSetter
 	public RestRequest contentType(String value) throws RestCallException {
 		return header(ContentType.of(value));
 	}
@@ -1806,6 +1863,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @return This object.
 	 * @throws RestCallException Invalid input.
 	 */
+	@FluentSetter
 	public RestRequest mediaType(String value) throws RestCallException {
 		return header(Accept.of(value)).header(ContentType.of(value));
 	}
@@ -1821,6 +1879,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @return This object.
 	 * @throws RestCallException Invalid input.
 	 */
+	@FluentSetter
 	public RestRequest noTrace() throws RestCallException {
 		return header(NoTrace.TRUE);
 	}
@@ -2158,6 +2217,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @param value The new value.
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest config(RequestConfig value) {
 		request.setConfig(value);
 		return this;
@@ -2169,6 +2229,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @param cancellable The cancellable object.
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest cancellable(Cancellable cancellable) {
 		request.setCancellable(cancellable);
 		return this;
@@ -2180,6 +2241,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @param version The protocol version for this request.
 	 * @return This object.
 	 */
+	@FluentSetter
 	public RestRequest protocolVersion(ProtocolVersion version) {
 		request.setProtocolVersion(version);
 		return this;
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestResponse.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestResponse.java
index 65c97dff1..ee7e038ed 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestResponse.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestResponse.java
@@ -44,6 +44,7 @@ import org.apache.juneau.internal.*;
  * 	<li class='extlink'>{@source}
  * </ul>
  */
+@FluentSetters
 public class RestResponse implements HttpResponse {
 
 	private final RestClient client;
@@ -96,6 +97,7 @@ public class RestResponse implements HttpResponse {
 	 * @return This object.
 	 * @throws RestCallException If one of the {@link RestCallInterceptor RestCallInterceptors} threw an exception.
 	 */
+	@FluentSetter
 	public RestResponse consume() throws RestCallException {
 		close();
 		return this;
@@ -105,17 +107,6 @@ public class RestResponse implements HttpResponse {
 	// Status line
 	//------------------------------------------------------------------------------------------------------------------
 
-	/**
-	 * Same as {@link #getStatusLine()} but sets the value in a mutable for fluent calls.
-	 *
-	 * @param value The mutable to set the status line in.
-	 * @return This object.
-	 */
-	public RestResponse getStatusLine(Value<StatusLine> value) {
-		value.set(getStatusLine());
-		return this;
-	}
-
 	/**
 	 * Returns the status code of the response.
 	 *
@@ -127,17 +118,6 @@ public class RestResponse implements HttpResponse {
 		return getStatusLine().getStatusCode();
 	}
 
-	/**
-	 * Same as {@link #getStatusCode()} but sets the value in a mutable for fluent calls.
-	 *
-	 * @param value The mutable to set the status code in.
-	 * @return This object.
-	 */
-	public RestResponse getStatusCode(Value<Integer> value) {
-		value.set(getStatusCode());
-		return this;
-	}
-
 	/**
 	 * Returns the status line reason phrase of the response.
 	 *
@@ -149,17 +129,6 @@ public class RestResponse implements HttpResponse {
 		return getStatusLine().getReasonPhrase();
 	}
 
-	/**
-	 * Same as {@link #getReasonPhrase()} but sets the value in a mutable for fluent calls.
-	 *
-	 * @param value The mutable to set the status line reason phrase in.
-	 * @return This object.
-	 */
-	public RestResponse getReasonPhrase(Value<String> value) {
-		value.set(getReasonPhrase());
-		return this;
-	}
-
 	//------------------------------------------------------------------------------------------------------------------
 	// Status line assertions
 	//------------------------------------------------------------------------------------------------------------------
@@ -190,14 +159,16 @@ public class RestResponse implements HttpResponse {
 	 * 	MyBean <jv>bean</jv> = <jv>client</jv>
 	 * 		.get(<jsf>URI</jsf>)
 	 * 		.run()
-	 * 		.assertCode().is(200)
+	 * 		.assertStatus(200)
 	 * 		.getContent().as(MyBean.<jk>class</jk>);
 	 * </p>
 	 *
+	 * @param value The value to assert.
 	 * @return A new fluent assertion object.
 	 */
-	public FluentIntegerAssertion<RestResponse> assertCode() {
-		return assertStatus().asCode();
+	public RestResponse assertStatus(int value) {
+		assertStatus().asCode().is(value);
+		return this;
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -406,6 +377,44 @@ public class RestResponse implements HttpResponse {
 		return new FluentResponseBodyAssertion<>(responseContent, this);
 	}
 
+	/**
+	 * Provides the ability to perform fluent-style assertions on this response body.
+	 *
+	 * <p>
+	 * A shortcut for calling <c>assertContent().is(<jv>value</jv>)</c>.
+	 *
+	 * <h5 class='section'>Examples:</h5>
+	 * <p class='bjava'>
+	 * 	<jc>// Validates the response body equals the text "OK".</jc>
+	 * 	<jv>client</jv>
+	 * 		.get(<jsf>URI</jsf>)
+	 * 		.run()
+	 * 		.assertContent(<js>"OK"</js>);
+	 * </p>
+	 *
+	 * @param value The value to assert.
+	 * @return This object.
+	 */
+	public RestResponse assertContent(String value) {
+		assertContent().is(value);
+		return this;
+	}
+
+	/**
+	 * Provides the ability to perform fluent-style assertions on this response body.
+	 *
+	 * <p>
+	 * A shortcut for calling <c>assertContent().asString().isMatches(<jv>value</jv>)</c>.
+	 *
+	 * @see FluentStringAssertion#isMatches(String)
+	 * @param value The value to assert.
+	 * @return This object.
+	 */
+	public RestResponse assertContentMatches(String value) {
+		assertContent().asString().isMatches(value);
+		return this;
+	}
+
 	/**
 	 * Caches the response body so that it can be read as a stream multiple times.
 	 *
@@ -416,6 +425,7 @@ public class RestResponse implements HttpResponse {
 	 *
 	 * @return The body of the response.
 	 */
+	@FluentSetter
 	public RestResponse cacheContent() {
 		responseContent.cache();
 		return this;
diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestRequest.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestRequest.java
index 45bcf1e7c..c26e1c7ce 100644
--- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestRequest.java
+++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestRequest.java
@@ -17,12 +17,20 @@ import static org.apache.juneau.internal.CollectionUtils.*;
 import java.net.*;
 import java.security.*;
 import java.util.*;
+import java.util.function.*;
 
 import javax.servlet.*;
 import javax.servlet.http.*;
 
 import org.apache.http.*;
+import org.apache.http.client.config.*;
+import org.apache.http.concurrent.*;
+import org.apache.http.protocol.*;
+import org.apache.juneau.httppart.*;
+import org.apache.juneau.internal.*;
+import org.apache.juneau.parser.*;
 import org.apache.juneau.rest.client.*;
+import org.apache.juneau.serializer.*;
 
 /**
  * A subclass of {@link RestRequest} with additional features for mocked testing.
@@ -39,6 +47,7 @@ import org.apache.juneau.rest.client.*;
  * 	<li class='extlink'>{@source}
  * </ul>
  */
+@FluentSetters(ignore="uriScheme")
 public class MockRestRequest extends org.apache.juneau.rest.client.RestRequest {
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -892,4 +901,362 @@ public class MockRestRequest extends org.apache.juneau.rest.client.RestRequest {
 	public HttpSession getHttpSession() {
 		return httpSession;
 	}
+
+	// <FluentSetters>
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest accept(String value) throws RestCallException{
+		super.accept(value);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest acceptCharset(String value) throws RestCallException{
+		super.acceptCharset(value);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest cancellable(Cancellable cancellable) {
+		super.cancellable(cancellable);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest config(RequestConfig value) {
+		super.config(value);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest content(Object value) {
+		super.content(value);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest content(Object input, HttpPartSchema schema) {
+		super.content(input, schema);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest contentString(Object input) throws RestCallException{
+		super.contentString(input);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest contentType(String value) throws RestCallException{
+		super.contentType(value);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest context(HttpContext context) {
+		super.context(context);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest debug() throws RestCallException{
+		super.debug();
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest errorCodes(Predicate<Integer> value) {
+		super.errorCodes(value);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest formData(NameValuePair...parts) {
+		super.formData(parts);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest formData(String name, Object value) {
+		super.formData(name, value);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest formDataBean(Object value) {
+		super.formDataBean(value);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest formDataCustom(Object value) {
+		super.formDataCustom(value);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest formDataPairs(String...pairs) throws RestCallException{
+		super.formDataPairs(pairs);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest header(Header part) {
+		super.header(part);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest header(String name, Object value) {
+		super.header(name, value);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest headerPairs(String...pairs) {
+		super.headerPairs(pairs);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest headers(Header...parts) {
+		super.headers(parts);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest headersBean(Object value) {
+		super.headersBean(value);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest html() {
+		super.html();
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest htmlDoc() {
+		super.htmlDoc();
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest htmlStrippedDoc() {
+		super.htmlStrippedDoc();
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest ignoreErrors() {
+		super.ignoreErrors();
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest interceptors(RestCallInterceptor...interceptors) throws RestCallException{
+		super.interceptors(interceptors);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest json() {
+		super.json();
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest mediaType(String value) throws RestCallException{
+		super.mediaType(value);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest msgPack() {
+		super.msgPack();
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest noTrace() throws RestCallException{
+		super.noTrace();
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest openApi() {
+		super.openApi();
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest parser(Class<? extends org.apache.juneau.parser.Parser> parser) {
+		super.parser(parser);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest parser(Parser parser) {
+		super.parser(parser);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest pathData(NameValuePair...parts) {
+		super.pathData(parts);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest pathData(String name, Object value) {
+		super.pathData(name, value);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest pathDataBean(Object value) {
+		super.pathDataBean(value);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest pathDataPairs(String...pairs) {
+		super.pathDataPairs(pairs);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest plainText() {
+		super.plainText();
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest protocolVersion(ProtocolVersion version) {
+		super.protocolVersion(version);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest queryCustom(Object value) {
+		super.queryCustom(value);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest queryData(NameValuePair...parts) {
+		super.queryData(parts);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest queryData(String name, Object value) {
+		super.queryData(name, value);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest queryDataBean(Object value) {
+		super.queryDataBean(value);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest queryDataPairs(String...pairs) throws RestCallException{
+		super.queryDataPairs(pairs);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest rethrow(java.lang.Class<?>...values) {
+		super.rethrow(values);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest serializer(Class<? extends org.apache.juneau.serializer.Serializer> serializer) {
+		super.serializer(serializer);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest serializer(Serializer serializer) {
+		super.serializer(serializer);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest simpleJson() {
+		super.simpleJson();
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest suppressLogging() {
+		super.suppressLogging();
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest target(HttpHost target) {
+		super.target(target);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest uon() {
+		super.uon();
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest uri(Object uri) throws RestCallException{
+		super.uri(uri);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest uriFragment(String fragment) {
+		super.uriFragment(fragment);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest uriHost(String host) {
+		super.uriHost(host);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest uriPort(int port) {
+		super.uriPort(port);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest uriUserInfo(String userInfo) {
+		super.uriUserInfo(userInfo);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest uriUserInfo(String username, String password) {
+		super.uriUserInfo(username, password);
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest urlEnc() {
+		super.urlEnc();
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestRequest */
+	public MockRestRequest xml() {
+		super.xml();
+		return this;
+	}
+
+	// </FluentSetters>
 }
diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestResponse.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestResponse.java
index 32d7c64ca..f99e721c9 100644
--- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestResponse.java
+++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestResponse.java
@@ -13,6 +13,7 @@
 package org.apache.juneau.rest.mock;
 
 import org.apache.http.*;
+import org.apache.juneau.internal.*;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.rest.client.*;
 
@@ -24,6 +25,7 @@ import org.apache.juneau.rest.client.*;
  * 	<li class='extlink'>{@source}
  * </ul>
 */
+@FluentSetters
 public class MockRestResponse extends org.apache.juneau.rest.client.RestResponse {
 
 	/**
@@ -38,4 +40,20 @@ public class MockRestResponse extends org.apache.juneau.rest.client.RestResponse
 		super(client, request, response, parser);
 		((MockRestClient)client).currentResponse(this);
 	}
+
+	// <FluentSetters>
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestResponse */
+	public MockRestResponse cacheContent() {
+		super.cacheContent();
+		return this;
+	}
+
+	@Override /* GENERATED - org.apache.juneau.rest.client.RestResponse */
+	public MockRestResponse consume() throws RestCallException{
+		super.consume();
+		return this;
+	}
+
+	// </FluentSetters>
 }
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPatch.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPatch.java
new file mode 100644
index 000000000..5d8bd60bd
--- /dev/null
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPatch.java
@@ -0,0 +1,883 @@
+// ***************************************************************************************************************************
+// * 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.annotation;
+
+import static java.lang.annotation.ElementType.*;
+import static java.lang.annotation.RetentionPolicy.*;
+
+import java.lang.annotation.*;
+import java.nio.charset.*;
+
+import org.apache.juneau.*;
+import org.apache.juneau.annotation.*;
+import org.apache.juneau.rest.*;
+import org.apache.juneau.rest.converter.*;
+import org.apache.juneau.rest.guard.*;
+import org.apache.juneau.rest.httppart.*;
+import org.apache.juneau.rest.matcher.*;
+import org.apache.juneau.rest.servlet.*;
+import org.apache.juneau.rest.swagger.*;
+import org.apache.juneau.serializer.*;
+import org.apache.juneau.dto.swagger.*;
+import org.apache.juneau.encoders.*;
+import org.apache.juneau.parser.*;
+
+/**
+ * Identifies a REST PATH operation Java method on a {@link RestServlet} implementation class.
+ *
+ * <p>
+ * This is a specialized subtype of <c><ja>{@link RestOp @RestOp}(method=<jsf>PATCH</jsf>)</c>.
+ *
+ * <ul class='seealso'>
+ * 	<li class='link'>{@doc jrs.RestOpAnnotatedMethods}
+ * 	<li class='extlink'>{@source}
+ * </ul>
+ */
+@Target(METHOD)
+@Retention(RUNTIME)
+@Inherited
+@ContextApply(RestPatchAnnotation.RestOpContextApply.class)
+@AnnotationGroup(RestOp.class)
+public @interface RestPatch {
+
+	/**
+	 * Specifies whether this method can be called based on the client version.
+	 *
+	 * <p>
+	 * The client version is identified via the HTTP request header identified by
+	 * {@link Rest#clientVersionHeader() @Rest(clientVersionHeader)} which by default is <js>"Client-Version"</js>.
+	 *
+	 * <p>
+	 * This is a specialized kind of {@link RestMatcher} that allows you to invoke different Java methods for the same
+	 * method/path based on the client version.
+	 *
+	 * <p>
+	 * The format of the client version range is similar to that of OSGi versions.
+	 *
+	 * <p>
+	 * In the following example, the Java methods are mapped to the same HTTP method and URL <js>"/foobar"</js>.
+	 * <p class='bjava'>
+	 * 	<jc>// Call this method if Client-Version is at least 2.0.
+	 * 	// Note that this also matches 2.0.1.</jc>
+	 * 	<ja>@RestPatch</ja>(path=<js>"/foobar"</js>, clientVersion=<js>"2.0"</js>)
+	 * 	<jk>public</jk> Object method1()  {...}
+	 *
+	 * 	<jc>// Call this method if Client-Version is at least 1.1, but less than 2.0.</jc>
+	 * 	<ja>@RestPatch</ja>(path=<js>"/foobar"</js>, clientVersion=<js>"[1.1,2.0)"</js>)
+	 * 	<jk>public</jk> Object method2()  {...}
+	 *
+	 * 	<jc>// Call this method if Client-Version is less than 1.1.</jc>
+	 * 	<ja>@RestPatch</ja>(path=<js>"/foobar"</js>, clientVersion=<js>"[0,1.1)"</js>)
+	 * 	<jk>public</jk> Object method3()  {...}
+	 * </p>
+	 *
+	 * <p>
+	 * It's common to combine the client version with transforms that will convert new POJOs into older POJOs for
+	 * backwards compatibility.
+	 * <p class='bjava'>
+	 * 	<jc>// Call this method if Client-Version is at least 2.0.</jc>
+	 * 	<ja>@RestPatch</ja>(path=<js>"/foobar"</js>, clientVersion=<js>"2.0"</js>)
+	 * 	<jk>public</jk> NewPojo newMethod()  {...}
+	 *
+	 * 	<jc>// Call this method if X-Client-Version is at least 1.1, but less than 2.0.</jc>
+	 * 	<ja>@RestPatch</ja>(path=<js>"/foobar"</js>, clientVersion=<js>"[1.1,2.0)"</js>)
+	 * 	<ja>@BeanConfig</ja>(swaps=NewToOldSwap.<jk>class</jk>)
+	 * 	<jk>public</jk> NewPojo oldMethod() {
+	 * 		<jk>return</jk> newMethod();
+	 * 	}
+	 *
+	 * <p>
+	 * Note that in the previous example, we're returning the exact same POJO, but using a transform to convert it into
+	 * an older form.
+	 * The old method could also just return back a completely different object.
+	 * The range can be any of the following:
+	 * <ul>
+	 * 	<li><js>"[0,1.0)"</js> = Less than 1.0.  1.0 and 1.0.0 does not match.
+	 * 	<li><js>"[0,1.0]"</js> = Less than or equal to 1.0.  Note that 1.0.1 will match.
+	 * 	<li><js>"1.0"</js> = At least 1.0.  1.0 and 2.0 will match.
+	 * </ul>
+	 *
+	 * <ul class='seealso'>
+	 * 	<li class='jm'>{@link org.apache.juneau.rest.RestContext.Builder#clientVersionHeader(String)}
+	 * </ul>
+	 *
+	 * @return The annotation value.
+	 */
+	String clientVersion() default "";
+
+	/**
+	 * Supported content media types.
+	 *
+	 * <p>
+	 * Overrides the media types inferred from the parsers that identify what media types can be consumed by the resource.
+	 *
+	 * <ul class='notes'>
+	 * 	<li class='note'>
+	 * 		Supports {@doc jrs.SvlVariables}
+	 * 		(e.g. <js>"$S{mySystemProperty}"</js>).
+	 * </ul>
+	 *
+	 * <ul class='seealso'>
+	 * 	<li class='jm'>{@link org.apache.juneau.rest.RestOpContext.Builder#consumes(MediaType...)}
+	 * </ul>
+	 *
+	 * @return The annotation value.
+	 */
+	String[] consumes() default {};
+
+	/**
+	 * Class-level response converters.
+	 *
+	 * <p>
+	 * Associates one or more {@link RestConverter converters} with this method.
+	 *
+	 * <ul class='seealso'>
+	 * 	<li class='jm'>{@link org.apache.juneau.rest.RestOpContext.Builder#converters()} - Registering converters with REST resources.
+	 * </ul>
+	 *
+	 * @return The annotation value.
+	 */
+	Class<? extends RestConverter>[] converters() default {};
+
+	/**
+	 * Enable debug mode.
+	 *
+	 * <p>
+	 * Enables the following:
+	 * <ul class='spaced-list'>
+	 * 	<li>
+	 * 		HTTP request/response bodies are cached in memory for logging purposes.
+	 * 	<li>
+	 * 		Request/response messages are automatically logged.
+	 * </ul>
+	 *
+	 * <ul class='values'>
+	 * 	<li><js>"true"</js> - Debug is enabled for all requests.
+	 * 	<li><js>"false"</js> - Debug is disabled for all requests.
+	 * 	<li><js>"conditional"</js> - Debug is enabled only for requests that have a <c class='snippet'>Debug: true</c> header.
+	 * 	<li><js>""</js> (or anything else) - Debug mode is inherited from class.
+	 * </ul>
+	 *
+	 * <ul class='notes'>
+	 * 	<li class='note'>
+	 * 		Supports {@doc jrs.SvlVariables}
+	 * 		(e.g. <js>"$L{my.localized.variable}"</js>).
+	 * </ul>
+	 *
+	 * <ul class='seealso'>
+	 * 	<li class='jm'>{@link org.apache.juneau.rest.RestContext.Builder#debugEnablement()}
+	 * </ul>
+	 *
+	 * @return The annotation value.
+	 */
+	String debug() default "";
+
+	/**
+	 * Default <c>Accept</c> header.
+	 *
+	 * <p>
+	 * The default value for the <c>Accept</c> header if not specified on a request.
+	 *
+	 * <p>
+	 * This is a shortcut for using {@link #defaultRequestHeaders()} for just this specific header.
+	 *
+	 * @return The annotation value.
+	 */
+	String defaultAccept() default "";
+
+	/**
+	 * Default character encoding.
+	 *
+	 * <p>
+	 * The default character encoding for the request and response if not specified on the request.
+	 *
+	 * <ul class='notes'>
+	 * 	<li class='note'>
+	 * 		Supports {@doc jrs.SvlVariables}
+	 * 		(e.g. <js>"$S{mySystemProperty}"</js>).
+	 * </ul>
+	 *
+	 * <ul class='seealso'>
+	 * 	<li class='jm'>{@link org.apache.juneau.rest.RestContext.Builder#defaultCharset(Charset)}
+	 * 	<li class='jm'>{@link org.apache.juneau.rest.RestOpContext.Builder#defaultCharset(Charset)}
+	 * 	<li class='ja'>{@link Rest#defaultCharset}
+	 * </ul>
+	 *
+	 * @return The annotation value.
+	 */
+	String defaultCharset() default "";
+
+	/**
+	 * Default <c>Content-Type</c> header.
+	 *
+	 * <p>
+	 * The default value for the <c>Content-Type</c> header if not specified on a request.
+	 *
+	 * <p>
+	 * This is a shortcut for using {@link #defaultRequestHeaders()} for just this specific header.
+	 *
+	 * @return The annotation value.
+	 */
+	String defaultContentType() default "";
+
+	/**
+	 * Specifies default values for form-data parameters.
+	 *
+	 * <p>
+	 * Strings are of the format <js>"name=value"</js>.
+	 *
+	 * <p>
+	 * Affects values returned by {@link RestRequest#getFormParam(String)} when the parameter is not present on the
+	 * request.
+	 *
+	 * <h5 class='section'>Example:</h5>
+	 * <p class='bjava'>
+	 * 	<ja>@RestPatch</ja>(path=<js>"/*"</js>, defaultRequestFormData={<js>"foo=bar"</js>})
+	 * 	<jk>public</jk> String doGet(<ja>@FormData</ja>(<js>"foo"</js>) String <jv>foo</jv>)  {...}
+	 * </p>
+	 *
+	 * <ul class='notes'>
+	 * 	<li class='note'>
+	 * 		You can use either <js>':'</js> or <js>'='</js> as the key/value delimiter.
+	 * 	<li class='note'>
+	 * 		Key and value is trimmed of whitespace.
+	 * 	<li class='note'>
+	 * 		Supports {@doc jrs.SvlVariables}
+	 * 		(e.g. <js>"$S{mySystemProperty}"</js>).
+	 * </ul>
+	 *
+	 * @return The annotation value.
+	 */
+	String[] defaultRequestFormData() default {};
+
+	/**
+	 * Specifies default values for query parameters.
+	 *
+	 * <p>
+	 * Strings are of the format <js>"name=value"</js>.
+	 *
+	 * <p>
+	 * Affects values returned by {@link RestRequest#getQueryParam(String)} when the parameter is not present on the request.
+	 *
+	 * <h5 class='section'>Example:</h5>
+	 * <p class='bjava'>
+	 * 	<ja>@RestPatch</ja>(path=<js>"/*"</js>, defaultRequestQueryData={<js>"foo=bar"</js>})
+	 * 	<jk>public</jk> String doPost(<ja>@Query</ja>(<js>"foo"</js>) String <jv>foo</jv>)  {...}
+	 * </p>
+	 *
+	 * <ul class='notes'>
+	 * 	<li class='note'>
+	 * 		You can use either <js>':'</js> or <js>'='</js> as the key/value delimiter.
+	 * 	<li class='note'>
+	 * 		Key and value is trimmed of whitespace.
+	 * 	<li class='note'>
+	 * 		Supports {@doc jrs.SvlVariables}
+	 * 		(e.g. <js>"$S{mySystemProperty}"</js>).
+	 * </ul>
+	 *
+	 * @return The annotation value.
+	 */
+	String[] defaultRequestQueryData() default {};
+
+	/**
+	 * Default request attributes.
+	 *
+	 * <p>
+	 * Specifies default values for request attributes if they're not already set on the request.
+	 *
+	 * <p>
+	 * Affects values returned by the following methods:
+	 * 	<ul>
+	 * 		<li class='jm'>{@link RestRequest#getAttribute(String)}.
+	 * 		<li class='jm'>{@link RestRequest#getAttributes()}.
+	 * 	</ul>
+	 *
+	 * <h5 class='section'>Example:</h5>
+	 * <p class='bjava'>
+	 * 	<jc>// Defined via annotation resolving to a config file setting with default value.</jc>
+	 * 	<ja>@Rest</ja>(defaultRequestAttributes={<js>"Foo=bar"</js>, <js>"Baz: $C{REST/myAttributeValue}"</js>})
+	 * 	<jk>public class</jk> MyResource {
+	 *
+	 * 		<jc>// Override at the method level.</jc>
+	 * 		<ja>@RestGet</ja>(defaultRequestAttributes={<js>"Foo: bar"</js>})
+	 * 		<jk>public</jk> Object myMethod() {...}
+	 * 	}
+	 * </p>
+	 *
+	 * </ul>
+	 * <ul class='notes'>
+	 * 	<li class='note'>
+	 * 		Supports {@doc jrs.SvlVariables}
+	 * 		(e.g. <js>"$L{my.localized.variable}"</js>).
+	 * </ul>
+	 *
+	 * <ul class='seealso'>
+	 * 	<li class='jm'>{@link org.apache.juneau.rest.RestContext.Builder#defaultRequestAttributes(NamedAttribute...)}
+	 * 	<li class='ja'>{@link Rest#defaultRequestAttributes()}
+	 * </ul>
+	 *
+	 * @return The annotation value.
+	 */
+	String[] defaultRequestAttributes() default {};
+
+	/**
+	 * Default request headers.
+	 *
+	 * <p>
+	 * Specifies default values for request headers if they're not passed in through the request.
+	 *
+	 * <h5 class='section'>Example:</h5>
+	 * <p class='bjava'>
+	 * 	<jc>// Assume "text/json" Accept value when Accept not specified</jc>
+	 * 	<ja>@RestPatch</ja>(path=<js>"/*"</js>, defaultRequestHeaders={<js>"Accept: text/json"</js>})
+	 * 	<jk>public</jk> String doPost()  {...}
+	 * </p>
+	 *
+	 * <ul class='notes'>
+	 * 	<li class='note'>
+	 * 		Supports {@doc jrs.SvlVariables}
+	 * 		(e.g. <js>"$S{mySystemProperty}"</js>).
+	 * </ul>
+	 *
+	 * <ul class='seealso'>
+	 * 	<li class='jm'>{@link org.apache.juneau.rest.RestContext.Builder#defaultRequestHeaders(org.apache.http.Header...)}
+	 * </ul>
+	 *
+	 * @return The annotation value.
+	 */
+	String[] defaultRequestHeaders() default {};
+
+	/**
+	 * Default response headers.
+	 *
+	 * <p>
+	 * Specifies default values for response headers if they're not overwritten during the request.
+	 *
+	 * <h5 class='section'>Example:</h5>
+	 * <p class='bjava'>
+	 * 	<jc>// Assume "text/json" Accept value when Accept not specified</jc>
+	 * 	<ja>@RestPatch</ja>(path=<js>"/*"</js>, defaultResponseHeaders={<js>"Content-Type: text/json"</js>})
+	 * 	<jk>public</jk> String doPost()  {...}
+	 * </p>
+	 *
+	 * <ul class='notes'>
+	 * 	<li class='note'>
+	 * 		Supports {@doc jrs.SvlVariables}
+	 * 		(e.g. <js>"$S{mySystemProperty}"</js>).
+	 * </ul>
+	 *
+	 * <ul class='seealso'>
+	 * 	<li class='jm'>{@link org.apache.juneau.rest.RestContext.Builder#defaultResponseHeaders(org.apache.http.Header...)}
+	 * </ul>
+	 *
+	 * @return The annotation value.
+	 */
+	String[] defaultResponseHeaders() default {};
+
+	/**
+	 * Optional description for the exposed API.
+	 *
+	 * <p>
+	 * This description is used in the following locations:
+	 * <ul class='spaced-list'>
+	 * 	<li>
+	 * 		The value returned by {@link Operation#getDescription()} in the auto-generated swagger.
+	 * 	<li>
+	 * 		The <js>"$RS{operationDescription}"</js> variable.
+	 * 	<li>
+	 * 		The description of the method in the Swagger page.
+	 * </ul>
+	 *
+	 * <ul class='notes'>
+	 * 	<li class='note'>
+	 * 		Corresponds to the swagger field <c>/paths/{path}/{method}/description</c>.
+	 * 	<li class='note'>
+	 * 		Supports {@doc jrs.SvlVariables}
+	 * 		(e.g. <js>"$L{my.localized.variable}"</js>).
+	 * </ul>
+	 *
+	 * @return The annotation value.
+	 */
+	String[] description() default {};
+
+	/**
+	 * Specifies the compression encoders for this method.
+	 *
+	 * <p>
+	 * Encoders are used to enable various kinds of compression (e.g. <js>"gzip"</js>) on requests and responses.
+	 *
+	 * <p>
+	 * This value overrides encoders specified at the class level using {@link Rest#encoders()}.
+	 * The {@link org.apache.juneau.encoders.EncoderSet.Inherit} class can be used to include values from the parent class.
+	 *
+	 * <h5 class='section'>Example:</h5>
+	 * <p class='bjava'>
+	 * 	<jc>// Define a REST resource that handles GZIP compression.</jc>
+	 * 	<ja>@Rest</ja>(
+	 * 		encoders={
+	 * 			GzipEncoder.<jk>class</jk>
+	 * 		}
+	 * 	)
+	 * 	<jk>public class</jk> MyResource {
+	 *
+	 * 		<jc>// Define a REST method that can also use a custom encoder.</jc>
+	 * 		<ja>@RestPatch</ja>(
+	 * 			encoders={
+	 * 				EncoderSet.Inherit.<jk>class</jk>, MyEncoder.<jk>class</jk>
+	 * 			}
+	 * 		)
+	 * 		<jk>public void</jk> doPost(MyBean <jv>bean</jv>) {
+	 * 			...
+	 * 		}
+	 * 	}
+	 * </p>
+	 *
+	 * <p>
+	 * The programmatic equivalent to this annotation is:
+	 * <p class='bjava'>
+	 * 	RestOpContext.Builder <jv>builder</jv> = RestOpContext.<jsm>create</jsm>(<jv>method</jv>,<jv>restContext</jv>);
+	 * 	<jv>builder</jv>.getEncoders().set(<jv>classes</jv>);
+	 * </p>
+	 *
+	 * <ul class='seealso'>
+	 * 	<li class='link'>{@doc jrs.Encoders}
+	 * </ul>
+	 *
+	 * @return The annotation value.
+	 */
+	Class<? extends Encoder>[] encoders() default {};
+
+	/**
+	 * Method-level guards.
+	 *
+	 * <p>
+	 * Associates one or more {@link RestGuard RestGuards} with this method.
+	 *
+	 * <ul class='seealso'>
+	 * 	<li class='jm'>{@link org.apache.juneau.rest.RestOpContext.Builder#guards()}
+	 * </ul>
+	 *
+	 * @return The annotation value.
+	 */
+	Class<? extends RestGuard>[] guards() default {};
+
+	/**
+	 * Method matchers.
+	 *
+	 * <p>
+	 * Associates one more more {@link RestMatcher RestMatchers} with this method.
+	 *
+	 * <p>
+	 * Matchers are used to allow multiple Java methods to handle requests assigned to the same URL path pattern, but
+	 * differing based on some request attribute, such as a specific header value.
+	 *
+	 * <ul class='seealso'>
+	 * 	<li class='jac'>{@link RestMatcher}
+	 * </ul>
+	 *
+	 * @return The annotation value.
+	 */
+	Class<? extends RestMatcher>[] matchers() default {};
+
+	/**
+	 * The maximum allowed input size (in bytes) on HTTP requests.
+	 *
+	 * <p>
+	 * Useful for alleviating DoS attacks by throwing an exception when too much input is received instead of resulting
+	 * in out-of-memory errors which could affect system stability.
+	 *
+	 * <h5 class='section'>Example:</h5>
+	 * <p class='bjava'>
+	 * 	<ja>@RestPatch</ja>(
+	 * 		maxInput=<js>"100M"</js>
+	 * 	)
+	 * </p>
+	 *
+	 * <ul class='notes'>
+	 * 	<li class='note'>
+	 * 		Supports {@doc jrs.SvlVariables}
+	 * 		(e.g. <js>"$S{mySystemProperty}"</js>).
+	 * </ul>
+	 *
+	 * <ul class='seealso'>
+	 * 	<li class='jm'>{@link org.apache.juneau.rest.RestContext.Builder#maxInput(String)}
+	 * 	<li class='jm'>{@link org.apache.juneau.rest.RestOpContext.Builder#maxInput(String)}
+	 * 	<li class='ja'>{@link Rest#maxInput}
+	 * </ul>
+	 *
+	 * @return The annotation value.
+	 */
+	String maxInput() default "";
+
+	/**
+	 * Dynamically apply this annotation to the specified methods.
+	 *
+	 * <ul class='seealso'>
+	 * 	<li class='link'>{@doc jm.DynamicallyAppliedAnnotations}
+	 * </ul>
+	 *
+	 * @return The annotation value.
+	 */
+	String[] on() default {};
+
+	/**
+	 * Specifies the parsers for converting HTTP request bodies into POJOs for this method.
+	 *
+	 * <p>
+	 * Parsers are used to convert the content of HTTP requests into POJOs.
+	 * <br>Any of the Juneau framework parsers can be used in this setting.
+	 * <br>The parser selected is based on the request <c>Content-Type</c> header matched against the values returned by the following method
+	 * using a best-match algorithm:
+	 * <ul class='javatree'>
+	 * 	<li class='jm'>{@link Parser#getMediaTypes()}
+	 * </ul>
+	 *
+	 * <p>
+	 * This value overrides parsers specified at the class level using {@link Rest#parsers()}.
+	 * The {@link org.apache.juneau.parser.ParserSet.Inherit} class can be used to include values from the parent class.
+	 *
+	 * <h5 class='section'>Example:</h5>
+	 * <p class='bjava'>
+	 * 	<jc>// Define a REST resource that can consume JSON and HTML.</jc>
+	 * 	<ja>@Rest</ja>(
+	 * 		parsers={
+	 * 			JsonParser.<jk>class</jk>,
+	 * 			HtmlParser.<jk>class</jk>
+	 * 		}
+	 * 	)
+	 * 	<jk>public class</jk> MyResource {
+	 *
+	 * 		<jc>// Define a REST method that can also consume XML.</jc>
+	 * 		<ja>@RestPatch</ja>(
+	 * 			parsers={
+	 * 				ParserSet.Inherit.<jk>class</jk>, XmlParser.<jk>class</jk>
+	 * 			}
+	 * 		)
+	 * 		<jk>public void</jk> doPost(MyBean <jv>bean</jv>) {
+	 * 			...
+	 * 		}
+	 * 	}
+	 * </p>
+	 *
+	 * <p>
+	 * The programmatic equivalent to this annotation is:
+	 * <p class='bjava'>
+	 * 	RestOpContext.Builder <jv>builder</jv> = RestOpContext.<jsm>create</jsm>(<jv>method</jv>,<jv>restContext</jv>);
+	 * 	<jv>builder</jv>.getParsers().set(<jv>classes</jv>);
+	 * </p>
+	 *
+	 * <ul class='seealso'>
+	 * 	<li class='link'>{@doc jrs.Marshalling}
+	 * </ul>
+	 *
+	 * @return The annotation value.
+	 */
+	Class<?>[] parsers() default {};
+
+	/**
+	 * Optional path pattern for the specified method.
+	 *
+	 * <p>
+	 * Appending <js>"/*"</js> to the end of the path pattern will make it match any remainder too.
+	 * <br>Not appending <js>"/*"</js> to the end of the pattern will cause a 404 (Not found) error to occur if the exact
+	 * pattern is not found.
+	 *
+	 * <p>
+	 * The path can contain variables that get resolved to {@link org.apache.juneau.http.annotation.Path @Path} parameters.
+	 *
+	 * <h5 class='figure'>Examples:</h5>
+	 * <p class='bjava'>
+	 * 	<ja>@RestPatch</ja>(path=<js>"/myurl/{foo}/{bar}/{baz}/*"</js>)
+	 * </p>
+	 * <p class='bjava'>
+	 * 	<ja>@RestPatch</ja>(path=<js>"/myurl/{0}/{1}/{2}/*"</js>)
+	 * </p>
+	 *
+	 * <p>
+	 * If you do not specify a path name, then the path name is inferred from the Java method name.
+	 *
+	 * <h5 class='figure'>Example:</h5>
+	 * <p class='bjava'>
+	 * 	<jc>// Path is assumed to be "/foo".</jc>
+	 * 	<ja>@RestPatch</ja>
+	 * 	<jk>public void</jk> foo() {...}
+	 * </p>
+	 *
+	 * <p>
+	 * Note that you can also use {@link #value()} to specify the path.
+	 *
+	 * <ul class='seealso'>
+	 * 	<li class='ja'>{@link org.apache.juneau.http.annotation.Path}
+	 * </ul>
+	 *
+	 * @return The annotation value.
+	 */
+	String[] path() default {};
+
+	/**
+	 * Supported accept media types.
+	 *
+	 * <p>
+	 * Overrides the media types inferred from the serializers that identify what media types can be produced by the resource.
+	 *
+	 * <ul class='notes'>
+	 * 	<li class='note'>
+	 * 		Supports {@doc jrs.SvlVariables}
+	 * 		(e.g. <js>"$S{mySystemProperty}"</js>).
+	 * </ul>
+	 *
+	 * <ul class='seealso'>
+	 * 	<li class='jm'>{@link org.apache.juneau.rest.RestOpContext.Builder#produces(MediaType...)}
+	 * </ul>
+	 *
+	 * @return The annotation value.
+	 */
+	String[] produces() default {};
+
+	/**
+	 * Role guard.
+	 *
+	 * <p>
+	 * An expression defining if a user with the specified roles are allowed to access this method.
+	 *
+	 * <h5 class='section'>Example:</h5>
+	 * <p class='bjava'>
+	 * 	<jk>public class</jk> MyResource <jk>extends</jk> BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
+	 *
+	 * 		<ja>@RestPatch</ja>(
+	 * 			path=<js>"/foo"</js>,
+	 * 			roleGuard=<js>"ROLE_ADMIN || (ROLE_READ_WRITE &amp;&amp; ROLE_SPECIAL)"</js>
+	 * 		)
+	 * 		<jk>public</jk> Object doPost() {
+	 * 		}
+	 * 	}
+	 * </p>
+	 *
+	 * <ul class='notes'>
+	 * 	<li class='note'>
+	 * 		Supports any of the following expression constructs:
+	 * 		<ul>
+	 * 			<li><js>"foo"</js> - Single arguments.
+	 * 			<li><js>"foo,bar,baz"</js> - Multiple OR'ed arguments.
+	 * 			<li><js>"foo | bar | baz"</js> - Multiple OR'ed arguments, pipe syntax.
+	 * 			<li><js>"foo || bar || baz"</js> - Multiple OR'ed arguments, Java-OR syntax.
+	 * 			<li><js>"fo*"</js> - Patterns including <js>'*'</js> and <js>'?'</js>.
+	 * 			<li><js>"fo* &amp; *oo"</js> - Multiple AND'ed arguments, ampersand syntax.
+	 * 			<li><js>"fo* &amp;&amp; *oo"</js> - Multiple AND'ed arguments, Java-AND syntax.
+	 * 			<li><js>"fo* || (*oo || bar)"</js> - Parenthesis.
+	 * 		</ul>
+	 * 	<li class='note'>
+	 * 		AND operations take precedence over OR operations (as expected).
+	 * 	<li class='note'>
+	 * 		Whitespace is ignored.
+	 * 	<li class='note'>
+	 * 		<jk>null</jk> or empty expressions always match as <jk>false</jk>.
+	 * 	<li class='note'>
+	 * 		If patterns are used, you must specify the list of declared roles using {@link #rolesDeclared()} or {@link org.apache.juneau.rest.RestOpContext.Builder#rolesDeclared(String...)}.
+	 * 	<li class='note'>
+	 * 		Supports {@doc jrs.SvlVariables}
+	 * 		(e.g. <js>"$L{my.localized.variable}"</js>).
+	 * 	<li class='note'>
+	 * 		When defined on parent/child classes and methods, ALL guards within the hierarchy must pass.
+	 * </ul>
+	 *
+	 * <ul class='seealso'>
+	 * 	<li class='jm'>{@link org.apache.juneau.rest.RestOpContext.Builder#roleGuard(String)}
+	 * </ul>
+	 *
+	 * @return The annotation value.
+	 */
+	String roleGuard() default "";
+
+	/**
+	 * Declared roles.
+	 *
+	 * <p>
+	 * A comma-delimited list of all possible user roles.
+	 *
+	 * <p>
+	 * Used in conjunction with {@link #roleGuard()} is used with patterns.
+	 *
+	 * <h5 class='section'>Example:</h5>
+	 * <p class='bjava'>
+	 * 	<jk>public class</jk> MyResource <jk>extends</jk> BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
+	 *
+	 * 		<ja>@RestPatch</ja>(
+	 * 			path=<js>"/foo"</js>,
+	 * 			rolesDeclared=<js>"ROLE_ADMIN,ROLE_READ_WRITE,ROLE_READ_ONLY,ROLE_SPECIAL"</js>,
+	 * 			roleGuard=<js>"ROLE_ADMIN || (ROLE_READ_WRITE &amp;&amp; ROLE_SPECIAL)"</js>
+	 * 		)
+	 * 		<jk>public</jk> Object doPost() {
+	 * 		}
+	 * 	}
+	 * </p>
+	 *
+	 * <ul class='seealso'>
+	 * 	<li class='jm'>{@link org.apache.juneau.rest.RestOpContext.Builder#rolesDeclared(String...)}
+	 * </ul>
+	 *
+	 * @return The annotation value.
+	 */
+	String rolesDeclared() default "";
+
+	/**
+	 * Specifies the serializers for marshalling POJOs into response bodies for this method.
+	 *
+	 * <p>
+	 * Serializer are used to convert POJOs to HTTP response bodies.
+	 * <br>Any of the Juneau framework serializers can be used in this setting.
+	 * <br>The serializer selected is based on the request <c>Accept</c> header matched against the values returned by the following method
+	 * using a best-match algorithm:
+	 * <ul class='javatree'>
+	 * 	<li class='jm'>{@link Serializer#getMediaTypeRanges()}
+	 * </ul>
+	 *
+	 * <p>
+	 * This value overrides serializers specified at the class level using {@link Rest#serializers()}.
+	 * The {@link org.apache.juneau.serializer.SerializerSet.Inherit} class can be used to include values from the parent class.
+	 *
+	 * <h5 class='section'>Example:</h5>
+	 * <p class='bjava'>
+	 * 	<jc>// Define a REST resource that can produce JSON and HTML.</jc>
+	 * 	<ja>@Rest</ja>(
+	 * 		serializers={
+	 * 			JsonParser.<jk>class</jk>,
+	 * 			HtmlParser.<jk>class</jk>
+	 * 		}
+	 * 	)
+	 * 	<jk>public class</jk> MyResource {
+	 *
+	 * 		<jc>// Define a REST method that can also produce XML.</jc>
+	 * 		<ja>@RestPatch</ja>(
+	 * 			parsers={
+	 * 				SerializerSet.Inherit.<jk>class</jk>, XmlParser.<jk>class</jk>
+	 * 			}
+	 * 		)
+	 * 		<jk>public</jk> MyBean doPost() {
+	 * 			...
+	 * 		}
+	 * 	}
+	 * </p>
+	 *
+	 * <p>
+	 * The programmatic equivalent to this annotation is:
+	 * <p class='bjava'>
+	 * 	RestOpContext.Builder <jv>builder</jv> = RestOpContext.<jsm>create</jsm>(<jv>method</jv>,<jv>restContext</jv>);
+	 * 	<jv>builder</jv>.getSerializers().set(<jv>classes</jv>);
+	 * </p>
+	 *
+	 * <ul class='seealso'>
+	 * 	<li class='link'>{@doc jrs.Marshalling}
+	 * </ul>
+	 *
+	 * @return The annotation value.
+	 */
+	Class<? extends Serializer>[] serializers() default {};
+
+	/**
+	 * Optional summary for the exposed API.
+	 *
+	 * <p>
+	 * This summary is used in the following locations:
+	 * <ul class='spaced-list'>
+	 * 	<li>
+	 * 		The value returned by {@link Operation#getSummary()} in the auto-generated swagger.
+	 * 	<li>
+	 * 		The <js>"$RS{operationSummary}"</js> variable.
+	 * 	<li>
+	 * 		The summary of the method in the Swagger page.
+	 * </ul>
+	 *
+	 * <ul class='notes'>
+	 * 	<li class='note'>
+	 * 		Corresponds to the swagger field <c>/paths/{path}/{method}/summary</c>.
+	 * 	<li class='note'>
+	 * 		Supports {@doc jrs.SvlVariables}
+	 * 		(e.g. <js>"$L{my.localized.variable}"</js>).
+	 * </ul>
+	 *
+	 * @return The annotation value.
+	 */
+	String summary() default "";
+
+	/**
+	 * Provides swagger-specific metadata on this method.
+	 *
+	 * <p>
+	 * Used to populate the auto-generated OPTIONS swagger documentation.
+	 *
+	 * <p>
+	 * The format of this annotation is JSON when all individual parts are concatenated.
+	 * <br>The starting and ending <js>'{'</js>/<js>'}'</js> characters around the entire value are optional.
+	 *
+	 * <h5 class='section'>Example:</h5>
+	 * <p class='bjava'>
+	 * 	<ja>@RestPatch</ja>(
+	 * 		path=<js>"/{propertyName}"</js>,
+	 *
+	 * 		<jc>// Swagger info.</jc>
+	 * 		swagger={
+	 * 			<js>"parameters:["</js>,
+	 * 				<js>"{name:'propertyName',in:'path',description:'The system property name.'},"</js>,
+	 * 				<js>"{in:'body',description:'The new system property value.'}"</js>,
+	 * 			<js>"],"</js>,
+	 * 			<js>"responses:{"</js>,
+	 * 				<js>"302: {headers:{Location:{description:'The root URL of this resource.'}}},"</js>,
+	 * 				<js>"403: {description:'User is not an admin.'}"</js>,
+	 * 			<js>"}"</js>
+	 * 		}
+	 * 	)
+	 * </p>
+	 *
+	 * <ul class='notes'>
+	 * 	<li class='note'>
+	 * 		The format is {@doc jd.Swagger}.
+	 * 		<br>Multiple lines are concatenated with newlines.
+	 * 	<li class='note'>
+	 * 		The starting and ending <js>'{'</js>/<js>'}'</js> characters around the entire value are optional.
+	 * 	<li class='note'>
+	 * 		These values are superimposed on top of any Swagger JSON file present for the resource in the classpath.
+	 * 	<li class='note'>
+	 * 		Supports {@doc jrs.SvlVariables}
+	 * 		(e.g. <js>"$L{my.localized.variable}"</js>).
+	 * </ul>
+	 *
+	 * <ul class='seealso'>
+	 * 	<li class='ja'>{@link OpSwagger}
+	 * 	<li class='jc'>{@link SwaggerProvider}
+	 * </ul>
+	 *
+	 * @return The annotation value.
+	 */
+	OpSwagger swagger() default @OpSwagger;
+
+	/**
+	 * REST method path.
+	 *
+	 * <p>
+	 * Can be used to provide a shortened form for the {@link #path()} value.
+	 *
+	 * <p>
+	 * The following examples are considered equivalent.
+	 * <p class='bjava'>
+	 * 	<jc>// Normal form</jc>
+	 * 	<ja>@RestPatch</ja>(path=<js>"/{propertyName}"</js>)
+	 *
+	 * 	<jc>// Shortened form</jc>
+	 * 	<ja>@RestPatch</ja>(<js>"/{propertyName}"</js>)
+	 * </p>
+	 *
+	 * @return The annotation value.
+	 */
+	String value() default "";
+}
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPatchAnnotation.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPatchAnnotation.java
new file mode 100644
index 000000000..49a702291
--- /dev/null
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPatchAnnotation.java
@@ -0,0 +1,630 @@
+// ***************************************************************************************************************************
+// * 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.annotation;
+
+import static org.apache.juneau.http.HttpHeaders.*;
+import static org.apache.juneau.internal.ArrayUtils.*;
+import static org.apache.juneau.http.HttpParts.*;
+
+import java.lang.annotation.*;
+import java.nio.charset.*;
+
+import org.apache.juneau.*;
+import org.apache.juneau.annotation.*;
+import org.apache.juneau.encoders.*;
+import org.apache.juneau.reflect.*;
+import org.apache.juneau.rest.*;
+import org.apache.juneau.rest.converter.*;
+import org.apache.juneau.rest.guard.*;
+import org.apache.juneau.rest.httppart.*;
+import org.apache.juneau.rest.matcher.*;
+import org.apache.juneau.serializer.*;
+import org.apache.juneau.svl.*;
+
+/**
+ * Utility classes and methods for the {@link RestPatch @RestPatch} annotation.
+ *
+ * <ul class='seealso'>
+ * 	<li class='link'>{@doc jrs.RestOpAnnotatedMethods}
+ * 	<li class='extlink'>{@source}
+ * </ul>
+ */
+public class RestPatchAnnotation {
+
+	//-----------------------------------------------------------------------------------------------------------------
+	// Static
+	//-----------------------------------------------------------------------------------------------------------------
+
+	/** Default value */
+	public static final RestPatch DEFAULT = create().build();
+
+	/**
+	 * Instantiates a new builder for this class.
+	 *
+	 * @return A new builder object.
+	 */
+	public static Builder create() {
+		return new Builder();
+	}
+
+	//-----------------------------------------------------------------------------------------------------------------
+	// Builder
+	//-----------------------------------------------------------------------------------------------------------------
+
+	/**
+	 * Builder class.
+	 *
+	 * <ul class='seealso'>
+	 * 	<li class='jm'>{@link org.apache.juneau.BeanContext.Builder#annotations(Annotation...)}
+	 * </ul>
+	 */
+	@SuppressWarnings("unchecked")
+	public static class Builder extends TargetedAnnotationMBuilder {
+
+		Class<? extends RestConverter>[] converters = new Class[0];
+		Class<? extends RestGuard>[] guards = new Class[0];
+		Class<? extends RestMatcher>[] matchers = new Class[0];
+		Class<? extends Encoder>[] encoders = new Class[0];
+		Class<? extends Serializer>[] serializers = new Class[0];
+		Class<?>[] parsers=new Class<?>[0];
+		OpSwagger swagger = OpSwaggerAnnotation.DEFAULT;
+		String clientVersion="", debug="", defaultAccept="", defaultCharset="", defaultContentType="", maxInput="", rolesDeclared="", roleGuard="", summary="", value="";
+		String[] consumes={}, defaultRequestFormData={}, defaultRequestQueryData={}, defaultRequestAttributes={}, defaultRequestHeaders={}, defaultResponseHeaders={}, description={}, path={}, produces={};
+
+		/**
+		 * Constructor.
+		 */
+		protected Builder() {
+			super(RestPatch.class);
+		}
+
+		/**
+		 * Instantiates a new {@link RestPatch @RestPatch} object initialized with this builder.
+		 *
+		 * @return A new {@link RestPatch @RestPatch} object.
+		 */
+		public RestPatch build() {
+			return new Impl(this);
+		}
+
+		/**
+		 * Sets the {@link RestPatch#clientVersion()} property on this annotation.
+		 *
+		 * @param value The new value for this property.
+		 * @return This object.
+		 */
+		public Builder clientVersion(String value) {
+			this.clientVersion = value;
+			return this;
+		}
+
+		/**
+		 * Sets the {@link RestPatch#consumes()} property on this annotation.
+		 *
+		 * @param value The new value for this property.
+		 * @return This object.
+		 */
+		public Builder consumes(String...value) {
+			this.consumes = value;
+			return this;
+		}
+
+		/**
+		 * Sets the {@link RestPatch#converters()} property on this annotation.
+		 *
+		 * @param value The new value for this property.
+		 * @return This object.
+		 */
+		public Builder converters(Class<? extends RestConverter>...value) {
+			this.converters = value;
+			return this;
+		}
+
+		/**
+		 * Sets the {@link RestPatch#debug()} property on this annotation.
+		 *
+		 * @param value The new value for this property.
+		 * @return This object.
+		 */
+		public Builder debug(String value) {
+			this.debug = value;
+			return this;
+		}
+
+		/**
+		 * Sets the {@link RestPatch#defaultAccept()} property on this annotation.
+		 *
+		 * @param value The new value for this property.
+		 * @return This object.
+		 */
+		public Builder defaultAccept(String value) {
+			this.defaultAccept = value;
+			return this;
+		}
+
+		/**
+		 * Sets the {@link RestPatch#defaultCharset()} property on this annotation.
+		 *
+		 * @param value The new value for this property.
+		 * @return This object.
+		 */
+		public Builder defaultCharset(String value) {
+			this.defaultCharset = value;
+			return this;
+		}
+
+		/**
+		 * Sets the {@link RestPatch#defaultContentType()} property on this annotation.
+		 *
+		 * @param value The new value for this property.
+		 * @return This object.
+		 */
+		public Builder defaultContentType(String value) {
+			this.defaultContentType = value;
+			return this;
+		}
+
+		/**
+		 * Sets the {@link RestPatch#defaultRequestFormData()} property on this annotation.
+		 *
+		 * @param value The new value for this property.
+		 * @return This object.
+		 */
+		public Builder defaultRequestFormData(String...value) {
+			this.defaultRequestFormData = value;
+			return this;
+		}
+
+		/**
+		 * Sets the {@link RestPatch#defaultRequestQueryData()} property on this annotation.
+		 *
+		 * @param value The new value for this property.
+		 * @return This object.
+		 */
+		public Builder defaultRequestQueryData(String...value) {
+			this.defaultRequestQueryData = value;
+			return this;
+		}
+
+		/**
+		 * Sets the {@link RestPatch#defaultRequestAttributes()} property on this annotation.
+		 *
+		 * @param value The new value for this property.
+		 * @return This object.
+		 */
+		public Builder defaultRequestAttributes(String...value) {
+			this.defaultRequestAttributes = value;
+			return this;
+		}
+
+		/**
+		 * Sets the {@link RestPatch#defaultRequestHeaders()} property on this annotation.
+		 *
+		 * @param value The new value for this property.
+		 * @return This object.
+		 */
+		public Builder defaultRequestHeaders(String...value) {
+			this.defaultRequestHeaders = value;
+			return this;
+		}
+
+		/**
+		 * Sets the {@link RestPatch#defaultResponseHeaders()} property on this annotation.
+		 *
+		 * @param value The new value for this property.
+		 * @return This object.
+		 */
+		public Builder defaultResponseHeaders(String...value) {
+			this.defaultResponseHeaders = value;
+			return this;
+		}
+
+		/**
+		 * Sets the {@link RestPatch#description()} property on this annotation.
+		 *
+		 * @param value The new value for this property.
+		 * @return This object.
+		 */
+		public Builder description(String...value) {
+			this.description = value;
+			return this;
+		}
+
+		/**
+		 * Sets the {@link RestPatch#encoders()} property on this annotation.
+		 *
+		 * @param value The new value for this property.
+		 * @return This object.
+		 */
+		public Builder encoders(Class<? extends Encoder>...value) {
+			this.encoders = value;
+			return this;
+		}
+
+		/**
+		 * Sets the {@link RestPatch#guards()} property on this annotation.
+		 *
+		 * @param value The new value for this property.
+		 * @return This object.
+		 */
+		public Builder guards(Class<? extends RestGuard>...value) {
+			this.guards = value;
+			return this;
+		}
+
+		/**
+		 * Sets the {@link RestPatch#matchers()} property on this annotation.
+		 *
+		 * @param value The new value for this property.
+		 * @return This object.
+		 */
+		public Builder matchers(Class<? extends RestMatcher>...value) {
+			this.matchers = value;
+			return this;
+		}
+
+		/**
+		 * Sets the {@link RestPatch#maxInput()} property on this annotation.
+		 *
+		 * @param value The new value for this property.
+		 * @return This object.
+		 */
+		public Builder maxInput(String value) {
+			this.maxInput = value;
+			return this;
+		}
+
+		/**
+		 * Sets the {@link RestPatch#parsers()} property on this annotation.
+		 *
+		 * @param value The new value for this property.
+		 * @return This object.
+		 */
+		public Builder parsers(Class<?>...value) {
+			this.parsers = value;
+			return this;
+		}
+
+		/**
+		 * Sets the {@link RestPatch#path()} property on this annotation.
+		 *
+		 * @param value The new value for this property.
+		 * @return This object.
+		 */
+		public Builder path(String...value) {
+			this.path = value;
+			return this;
+		}
+
+		/**
+		 * Sets the {@link RestPatch#produces()} property on this annotation.
+		 *
+		 * @param value The new value for this property.
+		 * @return This object.
+		 */
+		public Builder produces(String...value) {
+			this.produces = value;
+			return this;
+		}
+
+		/**
+		 * Sets the {@link RestPatch#roleGuard()} property on this annotation.
+		 *
+		 * @param value The new value for this property.
+		 * @return This object.
+		 */
+		public Builder roleGuard(String value) {
+			this.roleGuard = value;
+			return this;
+		}
+
+		/**
+		 * Sets the {@link RestPatch#rolesDeclared()} property on this annotation.
+		 *
+		 * @param value The new value for this property.
+		 * @return This object.
+		 */
+		public Builder rolesDeclared(String value) {
+			this.rolesDeclared = value;
+			return this;
+		}
+
+		/**
+		 * Sets the {@link RestPatch#serializers()} property on this annotation.
+		 *
+		 * @param value The new value for this property.
+		 * @return This object.
+		 */
+		public Builder serializers(Class<? extends Serializer>...value) {
+			this.serializers = value;
+			return this;
+		}
+
+		/**
+		 * Sets the {@link RestPatch#summary()} property on this annotation.
+		 *
+		 * @param value The new value for this property.
+		 * @return This object.
+		 */
+		public Builder summary(String value) {
+			this.summary = value;
+			return this;
+		}
+
+		/**
+		 * Sets the {@link RestPatch#swagger()} property on this annotation.
+		 *
+		 * @param value The new value for this property.
+		 * @return This object.
+		 */
+		public Builder swagger(OpSwagger value) {
+			this.swagger = value;
+			return this;
+		}
+
+		/**
+		 * Sets the {@link RestPatch#value()} property on this annotation.
+		 *
+		 * @param value The new value for this property.
+		 * @return This object.
+		 */
+		public Builder value(String value) {
+			this.value = value;
+			return this;
+		}
+
+		// <FluentSetters>
+
+		@Override /* GENERATED - TargetedAnnotationBuilder */
+		public Builder on(String...values) {
+			super.on(values);
+			return this;
+		}
+
+		@Override /* GENERATED - TargetedAnnotationTMBuilder */
+		public Builder on(java.lang.reflect.Method...value) {
+			super.on(value);
+			return this;
+		}
+
+		// </FluentSetters>
+	}
+
+	//-----------------------------------------------------------------------------------------------------------------
+	// Implementation
+	//-----------------------------------------------------------------------------------------------------------------
+
+	private static class Impl extends TargetedAnnotationImpl implements RestPatch {
+
+		private final Class<? extends RestConverter>[] converters;
+		private final Class<? extends RestGuard>[] guards;
+		private final Class<? extends RestMatcher>[] matchers;
+		private final Class<? extends Encoder>[] encoders;
+		private final Class<? extends Serializer>[] serializers;
+		private final Class<?>[] parsers;
+		private final OpSwagger swagger;
+		private final String clientVersion, debug, defaultAccept, defaultCharset, defaultContentType, maxInput, rolesDeclared, roleGuard, summary, value;
+		private final String[] consumes, defaultRequestFormData, defaultRequestQueryData, defaultRequestAttributes, defaultRequestHeaders, defaultResponseHeaders, description, path, produces;
+
+		Impl(Builder b) {
+			super(b);
+			this.clientVersion = b.clientVersion;
+			this.consumes = copyOf(b.consumes);
+			this.converters = copyOf(b.converters);
+			this.debug = b.debug;
+			this.defaultAccept = b.defaultAccept;
+			this.defaultCharset = b.defaultCharset;
+			this.defaultContentType = b.defaultContentType;
+			this.defaultRequestFormData = copyOf(b.defaultRequestFormData);
+			this.defaultRequestQueryData = copyOf(b.defaultRequestQueryData);
+			this.defaultRequestAttributes = copyOf(b.defaultRequestAttributes);
+			this.defaultRequestHeaders = copyOf(b.defaultRequestHeaders);
+			this.defaultResponseHeaders = copyOf(b.defaultResponseHeaders);
+			this.description = copyOf(b.description);
+			this.encoders = copyOf(b.encoders);
+			this.guards = copyOf(b.guards);
+			this.matchers = copyOf(b.matchers);
+			this.maxInput = b.maxInput;
+			this.parsers = copyOf(b.parsers);
+			this.path = copyOf(b.path);
+			this.produces = copyOf(b.produces);
+			this.roleGuard = b.roleGuard;
+			this.rolesDeclared = b.rolesDeclared;
+			this.serializers = copyOf(b.serializers);
+			this.summary = b.summary;
+			this.swagger = b.swagger;
+			this.value = b.value;
+			postConstruct();
+		}
+
+		@Override /* RestPatch */
+		public String clientVersion() {
+			return clientVersion;
+		}
+
+		@Override /* RestPatch */
+		public String[] consumes() {
+			return consumes;
+		}
+
+		@Override /* RestPatch */
+		public Class<? extends RestConverter>[] converters() {
+			return converters;
+		}
+
+		@Override /* RestPatch */
+		public String debug() {
+			return debug;
+		}
+
+		@Override /* RestPatch */
+		public String defaultAccept() {
+			return defaultAccept;
+		}
+
+		@Override /* RestPatch */
+		public String defaultCharset() {
+			return defaultCharset;
+		}
+
+		@Override /* RestPatch */
+		public String defaultContentType() {
+			return defaultContentType;
+		}
+
+		@Override /* RestPatch */
+		public String[] defaultRequestFormData() {
+			return defaultRequestFormData;
+		}
+
+		@Override /* RestPatch */
+		public String[] defaultRequestQueryData() {
+			return defaultRequestQueryData;
+		}
+
+		@Override /* RestPatch */
+		public String[] defaultRequestAttributes() {
+			return defaultRequestAttributes;
+		}
+
+		@Override /* RestPatch */
+		public String[] defaultRequestHeaders() {
+			return defaultRequestHeaders;
+		}
+
+		@Override /* RestPatch */
+		public String[] defaultResponseHeaders() {
+			return defaultResponseHeaders;
+		}
+
+		@Override /* RestPatch */
+		public String[] description() {
+			return description;
+		}
+
+		@Override /* RestPatch */
+		public Class<? extends Encoder>[] encoders() {
+			return encoders;
+		}
+
+		@Override /* RestPatch */
+		public Class<? extends RestGuard>[] guards() {
+			return guards;
+		}
+
+		@Override /* RestPatch */
+		public Class<? extends RestMatcher>[] matchers() {
+			return matchers;
+		}
+
+		@Override /* RestPatch */
+		public String maxInput() {
+			return maxInput;
+		}
+
+		@Override /* RestPatch */
+		public Class<?>[] parsers() {
+			return parsers;
+		}
+
+		@Override /* RestPatch */
+		public String[] path() {
+			return path;
+		}
+
+		@Override /* RestPatch */
+		public String[] produces() {
+			return produces;
+		}
+
+		@Override /* RestPatch */
+		public String roleGuard() {
+			return roleGuard;
+		}
+
+		@Override /* RestPatch */
+		public String rolesDeclared() {
+			return rolesDeclared;
+		}
+
+		@Override /* RestPatch */
+		public Class<? extends Serializer>[] serializers() {
+			return serializers;
+		}
+
+		@Override /* RestPatch */
+		public String summary() {
+			return summary;
+		}
+
+		@Override /* RestPatch */
+		public OpSwagger swagger() {
+			return swagger;
+		}
+
+		@Override /* RestPatch */
+		public String value() {
+			return value;
+		}
+	}
+
+	//-----------------------------------------------------------------------------------------------------------------
+	// Appliers
+	//-----------------------------------------------------------------------------------------------------------------
+
+	/**
+	 * Applies {@link RestPatch} annotations to a {@link org.apache.juneau.rest.RestOpContext.Builder}.
+	 */
+	public static class RestOpContextApply extends AnnotationApplier<RestPatch,RestOpContext.Builder> {
+
+		/**
+		 * Constructor.
+		 *
+		 * @param vr The resolver for resolving values in annotations.
+		 */
+		public RestOpContextApply(VarResolverSession vr) {
+			super(RestPatch.class, RestOpContext.Builder.class, vr);
+		}
+
+		@Override
+		public void apply(AnnotationInfo<RestPatch> ai, RestOpContext.Builder b) {
+			RestPatch a = ai.inner();
+
+			b.httpMethod("patch");
+
+			classes(a.serializers()).ifPresent(x -> b.serializers().set(x));
+			classes(a.parsers()).ifPresent(x -> b.parsers().set(x));
+			classes(a.encoders()).ifPresent(x -> b.encoders().set(x));
+			stream(a.produces()).map(MediaType::of).forEach(x -> b.produces(x));
+			stream(a.consumes()).map(MediaType::of).forEach(x -> b.consumes(x));
+			stream(a.defaultRequestHeaders()).map(x -> stringHeader(x)).forEach(x -> b.defaultRequestHeaders().setDefault(x));
+			stream(a.defaultResponseHeaders()).map(x -> stringHeader(x)).forEach(x -> b.defaultResponseHeaders().setDefault(x));
+			stream(a.defaultRequestAttributes()).map(x -> BasicNamedAttribute.ofPair(x)).forEach(x -> b.defaultRequestAttributes().add(x));
+			stream(a.defaultRequestQueryData()).map(x -> basicPart(x)).forEach(x -> b.defaultRequestQueryData().setDefault(x));
+			stream(a.defaultRequestFormData()).map(x -> basicPart(x)).forEach(x -> b.defaultRequestFormData().setDefault(x));
+			string(a.defaultAccept()).map(x -> accept(x)).ifPresent(x -> b.defaultRequestHeaders().setDefault(x));
+			string(a.defaultContentType()).map(x -> contentType(x)).ifPresent(x -> b.defaultRequestHeaders().setDefault(x));
+			b.converters().append(a.converters());
+			b.guards().append(a.guards());
+			b.matchers().append(a.matchers());
+			string(a.clientVersion()).ifPresent(x -> b.clientVersion(x));
+			string(a.defaultCharset()).map(Charset::forName).ifPresent(x -> b.defaultCharset(x));
+			string(a.maxInput()).ifPresent(x -> b.maxInput(x));
+			stream(a.path()).forEach(x -> b.path(x));
+			string(a.value()).ifPresent(x -> b.path(x));
+			cdl(a.rolesDeclared()).forEach(x -> b.rolesDeclared(x));
+			string(a.roleGuard()).ifPresent(x -> b.roleGuard(x));
+			string(a.debug()).map(Enablement::fromString).ifPresent(x -> b.debug(x));
+		}
+	}
+}
\ No newline at end of file
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/SerializedHttpEntity_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/SerializedHttpEntity_Test.java
index d25792fab..6a422970e 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/SerializedHttpEntity_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/SerializedHttpEntity_Test.java
@@ -96,17 +96,17 @@ public class SerializedHttpEntity_Test {
 
 	@Test
 	public void a09_chunked() throws Exception {
-		checkHeaderClient("Transfer-Encoding").post("/",serializedEntity(ABean.get(),null).chunked().build()).run().assertContent().is("['chunked']");
+		checkHeaderClient("Transfer-Encoding").post("/",serializedEntity(ABean.get(),null).chunked().build()).run().assertContent("['chunked']");
 	}
 
 	@Test
 	public void a10_contentEncoding() throws Exception {
-		checkHeaderClient("Content-Encoding").post("/",serializedEntity(ABean.get(),null).contentEncoding("identity").build()).run().assertContent().is("['identity']");
+		checkHeaderClient("Content-Encoding").post("/",serializedEntity(ABean.get(),null).contentEncoding("identity").build()).run().assertContent("['identity']");
 	}
 
 	@Test
 	public void a12_contentType() throws Exception {
-		checkHeaderClient("Content-Type").post("/",serializedEntity(reader("foo"),null).contentType("text/foo").build()).run().assertContent().is("['text/foo']");
+		checkHeaderClient("Content-Type").post("/",serializedEntity(reader("foo"),null).contentType("text/foo").build()).run().assertContent("['text/foo']");
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/AcceptCharset_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/AcceptCharset_Test.java
index ac08704ab..4c1492bf9 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/AcceptCharset_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/AcceptCharset_Test.java
@@ -52,10 +52,10 @@ public class AcceptCharset_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(acceptCharset(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(acceptCharset(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(acceptCharset(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(acceptCharset(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(acceptCharset(VALUE)).run().assertContent(VALUE);
+		c.get().header(acceptCharset(VALUE)).run().assertContent(VALUE);
+		c.get().header(acceptCharset(PARSED)).run().assertContent(VALUE);
+		c.get().header(acceptCharset(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(acceptCharset((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/AcceptEncoding_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/AcceptEncoding_Test.java
index 520c8f14d..d98959308 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/AcceptEncoding_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/AcceptEncoding_Test.java
@@ -52,15 +52,15 @@ public class AcceptEncoding_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(acceptEncoding(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(acceptEncoding(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(acceptEncoding(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(acceptEncoding(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(acceptEncoding(VALUE)).run().assertContent(VALUE);
+		c.get().header(acceptEncoding(VALUE)).run().assertContent(VALUE);
+		c.get().header(acceptEncoding(PARSED)).run().assertContent(VALUE);
+		c.get().header(acceptEncoding(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
-		c.get().header(acceptEncoding((String)null)).run().assertContent().is("gzip,deflate");
-		c.get().header(acceptEncoding((Supplier<StringRanges>)null)).run().assertContent().is("gzip,deflate");
-		c.get().header(acceptEncoding(()->null)).run().assertContent().is("gzip,deflate");
+		c.get().header(acceptEncoding((String)null)).run().assertContent("gzip,deflate");
+		c.get().header(acceptEncoding((Supplier<StringRanges>)null)).run().assertContent("gzip,deflate");
+		c.get().header(acceptEncoding(()->null)).run().assertContent("gzip,deflate");
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/AcceptLanguage_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/AcceptLanguage_Test.java
index e60546ad4..ff6635635 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/AcceptLanguage_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/AcceptLanguage_Test.java
@@ -52,10 +52,10 @@ public class AcceptLanguage_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(acceptLanguage(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(acceptLanguage(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(acceptLanguage(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(acceptLanguage(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(acceptLanguage(VALUE)).run().assertContent(VALUE);
+		c.get().header(acceptLanguage(VALUE)).run().assertContent(VALUE);
+		c.get().header(acceptLanguage(PARSED)).run().assertContent(VALUE);
+		c.get().header(acceptLanguage(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(acceptLanguage((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/AcceptRanges_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/AcceptRanges_Test.java
index 056bb1c45..b6d98fa94 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/AcceptRanges_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/AcceptRanges_Test.java
@@ -50,9 +50,9 @@ public class AcceptRanges_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(acceptRanges(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(acceptRanges(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(acceptRanges(()->VALUE)).run().assertContent().is(VALUE);
+		c.get().header(acceptRanges(VALUE)).run().assertContent(VALUE);
+		c.get().header(acceptRanges(VALUE)).run().assertContent(VALUE);
+		c.get().header(acceptRanges(()->VALUE)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(acceptRanges((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/Accept_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/Accept_Test.java
index d3a49a310..af28e1d57 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/Accept_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/Accept_Test.java
@@ -57,10 +57,10 @@ public class Accept_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(accept(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(accept(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(accept(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(accept(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(accept(VALUE)).run().assertContent(VALUE);
+		c.get().header(accept(VALUE)).run().assertContent(VALUE);
+		c.get().header(accept(PARSED)).run().assertContent(VALUE);
+		c.get().header(accept(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(accept((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/Age_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/Age_Test.java
index 0018434aa..1a2949135 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/Age_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/Age_Test.java
@@ -51,10 +51,10 @@ public class Age_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(age(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(age(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(age(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(age(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(age(VALUE)).run().assertContent(VALUE);
+		c.get().header(age(VALUE)).run().assertContent(VALUE);
+		c.get().header(age(PARSED)).run().assertContent(VALUE);
+		c.get().header(age(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(age((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/Allow_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/Allow_Test.java
index 734e5df27..820e5c6ca 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/Allow_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/Allow_Test.java
@@ -51,10 +51,10 @@ public class Allow_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(allow(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(allow(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(allow(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(allow(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(allow(VALUE)).run().assertContent(VALUE);
+		c.get().header(allow(VALUE)).run().assertContent(VALUE);
+		c.get().header(allow(PARSED)).run().assertContent(VALUE);
+		c.get().header(allow(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(allow((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/Authorization_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/Authorization_Test.java
index 52459b152..6a278b799 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/Authorization_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/Authorization_Test.java
@@ -50,9 +50,9 @@ public class Authorization_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(authorization(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(authorization(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(authorization(()->VALUE)).run().assertContent().is(VALUE);
+		c.get().header(authorization(VALUE)).run().assertContent(VALUE);
+		c.get().header(authorization(VALUE)).run().assertContent(VALUE);
+		c.get().header(authorization(()->VALUE)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(authorization((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicBooleanHeader_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicBooleanHeader_Test.java
index 8f56c7006..7d8696e99 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicBooleanHeader_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicBooleanHeader_Test.java
@@ -54,10 +54,10 @@ public class BasicBooleanHeader_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(booleanHeader(HEADER,VALUE)).run().assertContent().is(VALUE);
-		c.get().header(booleanHeader(HEADER,VALUE)).run().assertContent().is(VALUE);
-		c.get().header(booleanHeader(HEADER,PARSED)).run().assertContent().is(VALUE);
-		c.get().header(booleanHeader(HEADER,()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(booleanHeader(HEADER,VALUE)).run().assertContent(VALUE);
+		c.get().header(booleanHeader(HEADER,VALUE)).run().assertContent(VALUE);
+		c.get().header(booleanHeader(HEADER,PARSED)).run().assertContent(VALUE);
+		c.get().header(booleanHeader(HEADER,()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(booleanHeader(HEADER,(Supplier<Boolean>)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicCsvHeader_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicCsvHeader_Test.java
index 1490a330a..351bef350 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicCsvHeader_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicCsvHeader_Test.java
@@ -53,10 +53,10 @@ public class BasicCsvHeader_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(csvHeader(HEADER,VALUE)).run().assertContent().is(VALUE);
-		c.get().header(csvHeader(HEADER,VALUE)).run().assertContent().is(VALUE);
-		c.get().header(csvHeader(HEADER,PARSED)).run().assertContent().is(VALUE);
-		c.get().header(csvHeader(HEADER,()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(csvHeader(HEADER,VALUE)).run().assertContent(VALUE);
+		c.get().header(csvHeader(HEADER,VALUE)).run().assertContent(VALUE);
+		c.get().header(csvHeader(HEADER,PARSED)).run().assertContent(VALUE);
+		c.get().header(csvHeader(HEADER,()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(csvHeader(HEADER,(Supplier<String[]>)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicDateHeader_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicDateHeader_Test.java
index 065735476..28f57ff66 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicDateHeader_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicDateHeader_Test.java
@@ -57,10 +57,10 @@ public class BasicDateHeader_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(dateHeader(HEADER,VALUE)).run().assertContent().is(VALUE);
-		c.get().header(dateHeader(HEADER,VALUE)).run().assertContent().is(VALUE);
-		c.get().header(dateHeader(HEADER,PARSED)).run().assertContent().is(VALUE);
-		c.get().header(dateHeader(HEADER,()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(dateHeader(HEADER,VALUE)).run().assertContent(VALUE);
+		c.get().header(dateHeader(HEADER,VALUE)).run().assertContent(VALUE);
+		c.get().header(dateHeader(HEADER,PARSED)).run().assertContent(VALUE);
+		c.get().header(dateHeader(HEADER,()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(dateHeader(HEADER,(Supplier<ZonedDateTime>)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicEntityTagHeader_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicEntityTagHeader_Test.java
index 9e71c8964..3ab40576c 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicEntityTagHeader_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicEntityTagHeader_Test.java
@@ -52,10 +52,10 @@ public class BasicEntityTagHeader_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(entityTagHeader(HEADER,VALUE)).run().assertContent().is(VALUE);
-		c.get().header(entityTagHeader(HEADER,VALUE)).run().assertContent().is(VALUE);
-		c.get().header(entityTagHeader(HEADER,PARSED)).run().assertContent().is(VALUE);
-		c.get().header(entityTagHeader(HEADER,()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(entityTagHeader(HEADER,VALUE)).run().assertContent(VALUE);
+		c.get().header(entityTagHeader(HEADER,VALUE)).run().assertContent(VALUE);
+		c.get().header(entityTagHeader(HEADER,PARSED)).run().assertContent(VALUE);
+		c.get().header(entityTagHeader(HEADER,()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(entityTagHeader(HEADER,(String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicEntityTagsHeader_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicEntityTagsHeader_Test.java
index b2d073127..8b6338adb 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicEntityTagsHeader_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicEntityTagsHeader_Test.java
@@ -52,10 +52,10 @@ public class BasicEntityTagsHeader_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(entityTagsHeader(HEADER,VALUE)).run().assertContent().is(VALUE);
-		c.get().header(entityTagsHeader(HEADER,VALUE)).run().assertContent().is(VALUE);
-		c.get().header(entityTagsHeader(HEADER,PARSED)).run().assertContent().is(VALUE);
-		c.get().header(entityTagsHeader(HEADER,()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(entityTagsHeader(HEADER,VALUE)).run().assertContent(VALUE);
+		c.get().header(entityTagsHeader(HEADER,VALUE)).run().assertContent(VALUE);
+		c.get().header(entityTagsHeader(HEADER,PARSED)).run().assertContent(VALUE);
+		c.get().header(entityTagsHeader(HEADER,()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(entityTagsHeader(HEADER,(Supplier<EntityTags>)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicIntegerHeader_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicIntegerHeader_Test.java
index 595a56995..4cac65e5d 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicIntegerHeader_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicIntegerHeader_Test.java
@@ -54,10 +54,10 @@ public class BasicIntegerHeader_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(integerHeader(HEADER,VALUE)).run().assertContent().is(VALUE);
-		c.get().header(integerHeader(HEADER,VALUE)).run().assertContent().is(VALUE);
-		c.get().header(integerHeader(HEADER,PARSED)).run().assertContent().is(VALUE);
-		c.get().header(integerHeader(HEADER,()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(integerHeader(HEADER,VALUE)).run().assertContent(VALUE);
+		c.get().header(integerHeader(HEADER,VALUE)).run().assertContent(VALUE);
+		c.get().header(integerHeader(HEADER,PARSED)).run().assertContent(VALUE);
+		c.get().header(integerHeader(HEADER,()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(integerHeader(HEADER,(Supplier<Integer>)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicLongHeader_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicLongHeader_Test.java
index a661b3934..c7e75f266 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicLongHeader_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicLongHeader_Test.java
@@ -54,10 +54,10 @@ public class BasicLongHeader_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(longHeader(HEADER,VALUE)).run().assertContent().is(VALUE);
-		c.get().header(longHeader(HEADER,VALUE)).run().assertContent().is(VALUE);
-		c.get().header(longHeader(HEADER,PARSED)).run().assertContent().is(VALUE);
-		c.get().header(longHeader(HEADER,()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(longHeader(HEADER,VALUE)).run().assertContent(VALUE);
+		c.get().header(longHeader(HEADER,VALUE)).run().assertContent(VALUE);
+		c.get().header(longHeader(HEADER,PARSED)).run().assertContent(VALUE);
+		c.get().header(longHeader(HEADER,()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(longHeader(HEADER,(Supplier<Long>)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicMediaRangesHeader_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicMediaRangesHeader_Test.java
index 6f8ea0702..8504ff9cd 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicMediaRangesHeader_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicMediaRangesHeader_Test.java
@@ -56,10 +56,10 @@ public class BasicMediaRangesHeader_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(mediaRangesHeader(HEADER,VALUE)).run().assertContent().is(VALUE);
-		c.get().header(mediaRangesHeader(HEADER,VALUE)).run().assertContent().is(VALUE);
-		c.get().header(mediaRangesHeader(HEADER,PARSED)).run().assertContent().is(VALUE);
-		c.get().header(mediaRangesHeader(HEADER,()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(mediaRangesHeader(HEADER,VALUE)).run().assertContent(VALUE);
+		c.get().header(mediaRangesHeader(HEADER,VALUE)).run().assertContent(VALUE);
+		c.get().header(mediaRangesHeader(HEADER,PARSED)).run().assertContent(VALUE);
+		c.get().header(mediaRangesHeader(HEADER,()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(mediaRangesHeader(HEADER,(Supplier<MediaRanges>)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicMediaTypeHeader_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicMediaTypeHeader_Test.java
index ba6e57439..235d5e5ab 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicMediaTypeHeader_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicMediaTypeHeader_Test.java
@@ -55,10 +55,10 @@ public class BasicMediaTypeHeader_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(mediaTypeHeader(HEADER,VALUE)).run().assertContent().is(VALUE);
-		c.get().header(mediaTypeHeader(HEADER,VALUE)).run().assertContent().is(VALUE);
-		c.get().header(mediaTypeHeader(HEADER,PARSED)).run().assertContent().is(VALUE);
-		c.get().header(mediaTypeHeader(HEADER,()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(mediaTypeHeader(HEADER,VALUE)).run().assertContent(VALUE);
+		c.get().header(mediaTypeHeader(HEADER,VALUE)).run().assertContent(VALUE);
+		c.get().header(mediaTypeHeader(HEADER,PARSED)).run().assertContent(VALUE);
+		c.get().header(mediaTypeHeader(HEADER,()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(mediaTypeHeader(HEADER,(Supplier<MediaType>)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicStringHeader_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicStringHeader_Test.java
index 880dcc297..eec75fb87 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicStringHeader_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicStringHeader_Test.java
@@ -52,10 +52,10 @@ public class BasicStringHeader_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(stringHeader(HEADER,VALUE)).run().assertContent().is(VALUE);
-		c.get().header(stringHeader(HEADER,VALUE)).run().assertContent().is(VALUE);
-		c.get().header(stringHeader(HEADER,PARSED)).run().assertContent().is(VALUE);
-		c.get().header(stringHeader(HEADER,()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(stringHeader(HEADER,VALUE)).run().assertContent(VALUE);
+		c.get().header(stringHeader(HEADER,VALUE)).run().assertContent(VALUE);
+		c.get().header(stringHeader(HEADER,PARSED)).run().assertContent(VALUE);
+		c.get().header(stringHeader(HEADER,()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(stringHeader(HEADER,(Supplier<String>)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicStringRangesHeader_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicStringRangesHeader_Test.java
index 443d50a0b..c474cc3ef 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicStringRangesHeader_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicStringRangesHeader_Test.java
@@ -55,10 +55,10 @@ public class BasicStringRangesHeader_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(stringRangesHeader(HEADER,VALUE)).run().assertContent().is(VALUE);
-		c.get().header(stringRangesHeader(HEADER,VALUE)).run().assertContent().is(VALUE);
-		c.get().header(stringRangesHeader(HEADER,PARSED)).run().assertContent().is(VALUE);
-		c.get().header(stringRangesHeader(HEADER,()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(stringRangesHeader(HEADER,VALUE)).run().assertContent(VALUE);
+		c.get().header(stringRangesHeader(HEADER,VALUE)).run().assertContent(VALUE);
+		c.get().header(stringRangesHeader(HEADER,PARSED)).run().assertContent(VALUE);
+		c.get().header(stringRangesHeader(HEADER,()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(stringRangesHeader(HEADER,(Supplier<StringRanges>)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicUriHeader_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicUriHeader_Test.java
index 8010ba628..2b0e0bbf3 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicUriHeader_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/BasicUriHeader_Test.java
@@ -56,10 +56,10 @@ public class BasicUriHeader_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(uriHeader(HEADER,VALUE)).run().assertContent().is(VALUE);
-		c.get().header(uriHeader(HEADER,VALUE)).run().assertContent().is(VALUE);
-		c.get().header(uriHeader(HEADER,PARSED)).run().assertContent().is(VALUE);
-		c.get().header(uriHeader(HEADER,()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(uriHeader(HEADER,VALUE)).run().assertContent(VALUE);
+		c.get().header(uriHeader(HEADER,VALUE)).run().assertContent(VALUE);
+		c.get().header(uriHeader(HEADER,PARSED)).run().assertContent(VALUE);
+		c.get().header(uriHeader(HEADER,()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(uriHeader(HEADER,(Supplier<URI>)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/CacheControl_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/CacheControl_Test.java
index 67bf70c63..5c977bbcc 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/CacheControl_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/CacheControl_Test.java
@@ -51,10 +51,10 @@ public class CacheControl_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(cacheControl(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(cacheControl(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(cacheControl(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(cacheControl(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(cacheControl(VALUE)).run().assertContent(VALUE);
+		c.get().header(cacheControl(VALUE)).run().assertContent(VALUE);
+		c.get().header(cacheControl(PARSED)).run().assertContent(VALUE);
+		c.get().header(cacheControl(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(cacheControl((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/ClientVersion_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/ClientVersion_Test.java
index b4ed89790..ab765f991 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/ClientVersion_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/ClientVersion_Test.java
@@ -52,10 +52,10 @@ public class ClientVersion_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(clientVersion(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(clientVersion(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(clientVersion(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(clientVersion(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(clientVersion(VALUE)).run().assertContent(VALUE);
+		c.get().header(clientVersion(VALUE)).run().assertContent(VALUE);
+		c.get().header(clientVersion(PARSED)).run().assertContent(VALUE);
+		c.get().header(clientVersion(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(clientVersion((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/Connection_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/Connection_Test.java
index 2f5f7f286..a9b96b4aa 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/Connection_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/Connection_Test.java
@@ -52,15 +52,15 @@ public class Connection_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(connection(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(connection(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(connection(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(connection(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(connection(VALUE)).run().assertContent(VALUE);
+		c.get().header(connection(VALUE)).run().assertContent(VALUE);
+		c.get().header(connection(PARSED)).run().assertContent(VALUE);
+		c.get().header(connection(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
-		c.get().header(connection((String)null)).run().assertContent().is("Keep-Alive");
-		c.get().header(connection((Supplier<String>)null)).run().assertContent().is("Keep-Alive");
-		c.get().header(connection(()->null)).run().assertContent().is("Keep-Alive");
+		c.get().header(connection((String)null)).run().assertContent("Keep-Alive");
+		c.get().header(connection((Supplier<String>)null)).run().assertContent("Keep-Alive");
+		c.get().header(connection(()->null)).run().assertContent("Keep-Alive");
 	}
 
 	@Test
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/ContentDisposition_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/ContentDisposition_Test.java
index e90db2fe9..041513be5 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/ContentDisposition_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/ContentDisposition_Test.java
@@ -52,10 +52,10 @@ public class ContentDisposition_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(contentDisposition(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(contentDisposition(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(contentDisposition(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(contentDisposition(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(contentDisposition(VALUE)).run().assertContent(VALUE);
+		c.get().header(contentDisposition(VALUE)).run().assertContent(VALUE);
+		c.get().header(contentDisposition(PARSED)).run().assertContent(VALUE);
+		c.get().header(contentDisposition(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(contentDisposition((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/ContentEncoding_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/ContentEncoding_Test.java
index 4dc393b2f..34dee80fd 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/ContentEncoding_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/ContentEncoding_Test.java
@@ -51,10 +51,10 @@ public class ContentEncoding_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(contentEncoding(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(contentEncoding(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(contentEncoding(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(contentEncoding(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(contentEncoding(VALUE)).run().assertContent(VALUE);
+		c.get().header(contentEncoding(VALUE)).run().assertContent(VALUE);
+		c.get().header(contentEncoding(PARSED)).run().assertContent(VALUE);
+		c.get().header(contentEncoding(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(contentEncoding((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/ContentLanguage_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/ContentLanguage_Test.java
index 1d2ad0198..df2aded11 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/ContentLanguage_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/ContentLanguage_Test.java
@@ -51,10 +51,10 @@ public class ContentLanguage_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(contentLanguage(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(contentLanguage(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(contentLanguage(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(contentLanguage(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(contentLanguage(VALUE)).run().assertContent(VALUE);
+		c.get().header(contentLanguage(VALUE)).run().assertContent(VALUE);
+		c.get().header(contentLanguage(PARSED)).run().assertContent(VALUE);
+		c.get().header(contentLanguage(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(contentLanguage((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/ContentLength_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/ContentLength_Test.java
index 8b248dd58..c92145611 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/ContentLength_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/ContentLength_Test.java
@@ -51,10 +51,10 @@ public class ContentLength_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(contentLength(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(contentLength(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(contentLength(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(contentLength(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(contentLength(VALUE)).run().assertContent(VALUE);
+		c.get().header(contentLength(VALUE)).run().assertContent(VALUE);
+		c.get().header(contentLength(PARSED)).run().assertContent(VALUE);
+		c.get().header(contentLength(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(contentLength((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/ContentLocation_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/ContentLocation_Test.java
index 00714b7c5..2f307aed1 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/ContentLocation_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/ContentLocation_Test.java
@@ -52,10 +52,10 @@ public class ContentLocation_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(contentLocation(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(contentLocation(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(contentLocation(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(contentLocation(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(contentLocation(VALUE)).run().assertContent(VALUE);
+		c.get().header(contentLocation(VALUE)).run().assertContent(VALUE);
+		c.get().header(contentLocation(PARSED)).run().assertContent(VALUE);
+		c.get().header(contentLocation(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(contentLocation((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/ContentRange_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/ContentRange_Test.java
index 1d7a0a4e2..5cd09acc3 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/ContentRange_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/ContentRange_Test.java
@@ -51,10 +51,10 @@ public class ContentRange_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(contentRange(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(contentRange(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(contentRange(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(contentRange(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(contentRange(VALUE)).run().assertContent(VALUE);
+		c.get().header(contentRange(VALUE)).run().assertContent(VALUE);
+		c.get().header(contentRange(PARSED)).run().assertContent(VALUE);
+		c.get().header(contentRange(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(contentRange((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/ContentType_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/ContentType_Test.java
index 42e6e36d0..658d53fdb 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/ContentType_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/ContentType_Test.java
@@ -53,10 +53,10 @@ public class ContentType_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(contentType(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(contentType(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(contentType(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(contentType(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(contentType(VALUE)).run().assertContent(VALUE);
+		c.get().header(contentType(VALUE)).run().assertContent(VALUE);
+		c.get().header(contentType(PARSED)).run().assertContent(VALUE);
+		c.get().header(contentType(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(contentType((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/Date_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/Date_Test.java
index deecfc044..7ed787ce0 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/Date_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/Date_Test.java
@@ -54,10 +54,10 @@ public class Date_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(date(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(date(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(date(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(date(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(date(VALUE)).run().assertContent(VALUE);
+		c.get().header(date(VALUE)).run().assertContent(VALUE);
+		c.get().header(date(PARSED)).run().assertContent(VALUE);
+		c.get().header(date(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(date((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/ETag_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/ETag_Test.java
index 25a95a926..0dc9f5962 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/ETag_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/ETag_Test.java
@@ -52,10 +52,10 @@ public class ETag_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(eTag(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(eTag(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(eTag(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(eTag(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(eTag(VALUE)).run().assertContent(VALUE);
+		c.get().header(eTag(VALUE)).run().assertContent(VALUE);
+		c.get().header(eTag(PARSED)).run().assertContent(VALUE);
+		c.get().header(eTag(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(eTag((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/Expect_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/Expect_Test.java
index d9ea1c7cb..e82583e10 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/Expect_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/Expect_Test.java
@@ -51,10 +51,10 @@ public class Expect_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(expect(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(expect(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(expect(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(expect(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(expect(VALUE)).run().assertContent(VALUE);
+		c.get().header(expect(VALUE)).run().assertContent(VALUE);
+		c.get().header(expect(PARSED)).run().assertContent(VALUE);
+		c.get().header(expect(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(expect((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/Expires_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/Expires_Test.java
index 35d7c6b73..c7ad735f4 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/Expires_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/Expires_Test.java
@@ -54,14 +54,14 @@ public class Expires_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(expires(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(expires(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(expires(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(expires(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(expires(VALUE)).run().assertContent(VALUE);
+		c.get().header(expires(VALUE)).run().assertContent(VALUE);
+		c.get().header(expires(PARSED)).run().assertContent(VALUE);
+		c.get().header(expires(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
-		c.get().header(expires((String)null)).run().assertContent().is("");
-		c.get().header(expires((Supplier<ZonedDateTime>)null)).run().assertContent().is("");
+		c.get().header(expires((String)null)).run().assertContent("");
+		c.get().header(expires((Supplier<ZonedDateTime>)null)).run().assertContent("");
 		c.get().header(expires(()->null)).run().assertContent().isEmpty();
 	}
 
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/Forwarded_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/Forwarded_Test.java
index 5b8ffe985..ea1d01be6 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/Forwarded_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/Forwarded_Test.java
@@ -51,10 +51,10 @@ public class Forwarded_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(forwarded(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(forwarded(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(forwarded(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(forwarded(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(forwarded(VALUE)).run().assertContent(VALUE);
+		c.get().header(forwarded(VALUE)).run().assertContent(VALUE);
+		c.get().header(forwarded(PARSED)).run().assertContent(VALUE);
+		c.get().header(forwarded(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(forwarded((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/From_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/From_Test.java
index 51d9ddb37..800114646 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/From_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/From_Test.java
@@ -51,10 +51,10 @@ public class From_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(from(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(from(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(from(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(from(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(from(VALUE)).run().assertContent(VALUE);
+		c.get().header(from(VALUE)).run().assertContent(VALUE);
+		c.get().header(from(PARSED)).run().assertContent(VALUE);
+		c.get().header(from(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(from((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/Host_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/Host_Test.java
index f76fe0841..2e5260a60 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/Host_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/Host_Test.java
@@ -51,15 +51,15 @@ public class Host_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(host(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(host(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(host(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(host(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(host(VALUE)).run().assertContent(VALUE);
+		c.get().header(host(VALUE)).run().assertContent(VALUE);
+		c.get().header(host(PARSED)).run().assertContent(VALUE);
+		c.get().header(host(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
-		c.get().header(host((String)null)).run().assertContent().is("localhost");
-		c.get().header(host((Supplier<String>)null)).run().assertContent().is("localhost");
-		c.get().header(host(()->null)).run().assertContent().is("localhost");
+		c.get().header(host((String)null)).run().assertContent("localhost");
+		c.get().header(host((Supplier<String>)null)).run().assertContent("localhost");
+		c.get().header(host(()->null)).run().assertContent("localhost");
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/IfMatch_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/IfMatch_Test.java
index 8a1b1b618..75e5d9fad 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/IfMatch_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/IfMatch_Test.java
@@ -51,10 +51,10 @@ public class IfMatch_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(ifMatch(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(ifMatch(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(ifMatch(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(ifMatch(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(ifMatch(VALUE)).run().assertContent(VALUE);
+		c.get().header(ifMatch(VALUE)).run().assertContent(VALUE);
+		c.get().header(ifMatch(PARSED)).run().assertContent(VALUE);
+		c.get().header(ifMatch(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(ifMatch((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/IfModifiedSince_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/IfModifiedSince_Test.java
index 03e30da7c..c50f4de00 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/IfModifiedSince_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/IfModifiedSince_Test.java
@@ -54,14 +54,14 @@ public class IfModifiedSince_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(ifModifiedSince(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(ifModifiedSince(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(ifModifiedSince(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(ifModifiedSince(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(ifModifiedSince(VALUE)).run().assertContent(VALUE);
+		c.get().header(ifModifiedSince(VALUE)).run().assertContent(VALUE);
+		c.get().header(ifModifiedSince(PARSED)).run().assertContent(VALUE);
+		c.get().header(ifModifiedSince(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
-		c.get().header(ifModifiedSince((String)null)).run().assertContent().is("");
-		c.get().header(ifModifiedSince((Supplier<ZonedDateTime>)null)).run().assertContent().is("");
+		c.get().header(ifModifiedSince((String)null)).run().assertContent("");
+		c.get().header(ifModifiedSince((Supplier<ZonedDateTime>)null)).run().assertContent("");
 		c.get().header(ifModifiedSince(()->null)).run().assertContent().isEmpty();
 	}
 
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/IfNoneMatch_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/IfNoneMatch_Test.java
index 974a643a4..ab2991538 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/IfNoneMatch_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/IfNoneMatch_Test.java
@@ -51,10 +51,10 @@ public class IfNoneMatch_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(ifNoneMatch(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(ifNoneMatch(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(ifNoneMatch(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(ifNoneMatch(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(ifNoneMatch(VALUE)).run().assertContent(VALUE);
+		c.get().header(ifNoneMatch(VALUE)).run().assertContent(VALUE);
+		c.get().header(ifNoneMatch(PARSED)).run().assertContent(VALUE);
+		c.get().header(ifNoneMatch(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(ifNoneMatch((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/IfRange_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/IfRange_Test.java
index faefc999b..b73f877c2 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/IfRange_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/IfRange_Test.java
@@ -59,20 +59,20 @@ public class IfRange_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(ifRange(VALUE1)).run().assertContent().is(VALUE1);
-		c.get().header(ifRange(VALUE1)).run().assertContent().is(VALUE1);
-		c.get().header(ifRange(PARSED1)).run().assertContent().is(VALUE1);
-		c.get().header(ifRange(()->PARSED1)).run().assertContent().is(VALUE1);
+		c.get().header(ifRange(VALUE1)).run().assertContent(VALUE1);
+		c.get().header(ifRange(VALUE1)).run().assertContent(VALUE1);
+		c.get().header(ifRange(PARSED1)).run().assertContent(VALUE1);
+		c.get().header(ifRange(()->PARSED1)).run().assertContent(VALUE1);
 
-		c.get().header(ifRange(VALUE2)).run().assertContent().is(VALUE2);
-		c.get().header(ifRange(VALUE2)).run().assertContent().is(VALUE2);
-		c.get().header(ifRange(PARSED2)).run().assertContent().is(VALUE2);
-		c.get().header(ifRange(()->PARSED2)).run().assertContent().is(VALUE2);
+		c.get().header(ifRange(VALUE2)).run().assertContent(VALUE2);
+		c.get().header(ifRange(VALUE2)).run().assertContent(VALUE2);
+		c.get().header(ifRange(PARSED2)).run().assertContent(VALUE2);
+		c.get().header(ifRange(()->PARSED2)).run().assertContent(VALUE2);
 
-		c.get().header(ifRange(VALUE3)).run().assertContent().is(VALUE3);
-		c.get().header(ifRange(VALUE3)).run().assertContent().is(VALUE3);
-		c.get().header(ifRange(PARSED3)).run().assertContent().is(VALUE3);
-		c.get().header(ifRange(()->PARSED3)).run().assertContent().is(VALUE3);
+		c.get().header(ifRange(VALUE3)).run().assertContent(VALUE3);
+		c.get().header(ifRange(VALUE3)).run().assertContent(VALUE3);
+		c.get().header(ifRange(PARSED3)).run().assertContent(VALUE3);
+		c.get().header(ifRange(()->PARSED3)).run().assertContent(VALUE3);
 
 		// Invalid usage.
 		c.get().header(ifRange((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/IfUnmodifiedSince_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/IfUnmodifiedSince_Test.java
index 176363599..9c25f29af 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/IfUnmodifiedSince_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/IfUnmodifiedSince_Test.java
@@ -54,10 +54,10 @@ public class IfUnmodifiedSince_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(ifUnmodifiedSince(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(ifUnmodifiedSince(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(ifUnmodifiedSince(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(ifUnmodifiedSince(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(ifUnmodifiedSince(VALUE)).run().assertContent(VALUE);
+		c.get().header(ifUnmodifiedSince(VALUE)).run().assertContent(VALUE);
+		c.get().header(ifUnmodifiedSince(PARSED)).run().assertContent(VALUE);
+		c.get().header(ifUnmodifiedSince(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(ifUnmodifiedSince((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/LastModified_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/LastModified_Test.java
index b7bc69218..38fead34c 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/LastModified_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/LastModified_Test.java
@@ -54,10 +54,10 @@ public class LastModified_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(lastModified(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(lastModified(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(lastModified(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(lastModified(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(lastModified(VALUE)).run().assertContent(VALUE);
+		c.get().header(lastModified(VALUE)).run().assertContent(VALUE);
+		c.get().header(lastModified(PARSED)).run().assertContent(VALUE);
+		c.get().header(lastModified(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(lastModified((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/Location_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/Location_Test.java
index 41e527f76..25a9ea1fd 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/Location_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/Location_Test.java
@@ -52,10 +52,10 @@ public class Location_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(location(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(location(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(location(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(location(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(location(VALUE)).run().assertContent(VALUE);
+		c.get().header(location(VALUE)).run().assertContent(VALUE);
+		c.get().header(location(PARSED)).run().assertContent(VALUE);
+		c.get().header(location(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(location((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/MaxForwards_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/MaxForwards_Test.java
index e34ea94a4..c13ef5401 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/MaxForwards_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/MaxForwards_Test.java
@@ -51,10 +51,10 @@ public class MaxForwards_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(maxForwards(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(maxForwards(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(maxForwards(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(maxForwards(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(maxForwards(VALUE)).run().assertContent(VALUE);
+		c.get().header(maxForwards(VALUE)).run().assertContent(VALUE);
+		c.get().header(maxForwards(PARSED)).run().assertContent(VALUE);
+		c.get().header(maxForwards(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(maxForwards((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/NoTrace_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/NoTrace_Test.java
index 247497b0c..18ae5fef8 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/NoTrace_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/NoTrace_Test.java
@@ -51,10 +51,10 @@ public class NoTrace_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(noTrace(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(noTrace(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(noTrace(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(noTrace(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(noTrace(VALUE)).run().assertContent(VALUE);
+		c.get().header(noTrace(VALUE)).run().assertContent(VALUE);
+		c.get().header(noTrace(PARSED)).run().assertContent(VALUE);
+		c.get().header(noTrace(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(noTrace((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/Origin_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/Origin_Test.java
index 67980eb88..fe9c5ccfa 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/Origin_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/Origin_Test.java
@@ -51,10 +51,10 @@ public class Origin_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(origin(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(origin(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(origin(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(origin(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(origin(VALUE)).run().assertContent(VALUE);
+		c.get().header(origin(VALUE)).run().assertContent(VALUE);
+		c.get().header(origin(PARSED)).run().assertContent(VALUE);
+		c.get().header(origin(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(origin((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/Pragma_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/Pragma_Test.java
index 5c3ebf888..b1bb92ae3 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/Pragma_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/Pragma_Test.java
@@ -51,10 +51,10 @@ public class Pragma_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(pragma(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(pragma(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(pragma(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(pragma(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(pragma(VALUE)).run().assertContent(VALUE);
+		c.get().header(pragma(VALUE)).run().assertContent(VALUE);
+		c.get().header(pragma(PARSED)).run().assertContent(VALUE);
+		c.get().header(pragma(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(pragma((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/ProxyAuthenticate_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/ProxyAuthenticate_Test.java
index 26ce74fd8..86864c924 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/ProxyAuthenticate_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/ProxyAuthenticate_Test.java
@@ -51,10 +51,10 @@ public class ProxyAuthenticate_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(proxyAuthenticate(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(proxyAuthenticate(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(proxyAuthenticate(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(proxyAuthenticate(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(proxyAuthenticate(VALUE)).run().assertContent(VALUE);
+		c.get().header(proxyAuthenticate(VALUE)).run().assertContent(VALUE);
+		c.get().header(proxyAuthenticate(PARSED)).run().assertContent(VALUE);
+		c.get().header(proxyAuthenticate(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(proxyAuthenticate((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/ProxyAuthorization_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/ProxyAuthorization_Test.java
index fc5b7b8ef..01e4cc79c 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/ProxyAuthorization_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/ProxyAuthorization_Test.java
@@ -51,10 +51,10 @@ public class ProxyAuthorization_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(proxyAuthorization(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(proxyAuthorization(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(proxyAuthorization(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(proxyAuthorization(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(proxyAuthorization(VALUE)).run().assertContent(VALUE);
+		c.get().header(proxyAuthorization(VALUE)).run().assertContent(VALUE);
+		c.get().header(proxyAuthorization(PARSED)).run().assertContent(VALUE);
+		c.get().header(proxyAuthorization(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(proxyAuthorization((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/Range_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/Range_Test.java
index da556110f..27480a864 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/Range_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/Range_Test.java
@@ -51,10 +51,10 @@ public class Range_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(range(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(range(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(range(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(range(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(range(VALUE)).run().assertContent(VALUE);
+		c.get().header(range(VALUE)).run().assertContent(VALUE);
+		c.get().header(range(PARSED)).run().assertContent(VALUE);
+		c.get().header(range(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(range((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/Referer_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/Referer_Test.java
index a1b797779..cb5071d7c 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/Referer_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/Referer_Test.java
@@ -52,10 +52,10 @@ public class Referer_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(referer(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(referer(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(referer(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(referer(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(referer(VALUE)).run().assertContent(VALUE);
+		c.get().header(referer(VALUE)).run().assertContent(VALUE);
+		c.get().header(referer(PARSED)).run().assertContent(VALUE);
+		c.get().header(referer(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(referer((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/RetryAfter_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/RetryAfter_Test.java
index 8420910af..0878d0d1e 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/RetryAfter_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/RetryAfter_Test.java
@@ -57,15 +57,15 @@ public class RetryAfter_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(retryAfter(VALUE1)).run().assertContent().is(VALUE1);
-		c.get().header(retryAfter(VALUE1)).run().assertContent().is(VALUE1);
-		c.get().header(retryAfter(PARSED1)).run().assertContent().is(VALUE1);
-		c.get().header(retryAfter(()->PARSED1)).run().assertContent().is(VALUE1);
+		c.get().header(retryAfter(VALUE1)).run().assertContent(VALUE1);
+		c.get().header(retryAfter(VALUE1)).run().assertContent(VALUE1);
+		c.get().header(retryAfter(PARSED1)).run().assertContent(VALUE1);
+		c.get().header(retryAfter(()->PARSED1)).run().assertContent(VALUE1);
 
-		c.get().header(retryAfter(VALUE2)).run().assertContent().is(VALUE2);
-		c.get().header(retryAfter(VALUE2)).run().assertContent().is(VALUE2);
-		c.get().header(retryAfter(PARSED2)).run().assertContent().is(VALUE2);
-		c.get().header(retryAfter(()->PARSED2)).run().assertContent().is(VALUE2);
+		c.get().header(retryAfter(VALUE2)).run().assertContent(VALUE2);
+		c.get().header(retryAfter(VALUE2)).run().assertContent(VALUE2);
+		c.get().header(retryAfter(PARSED2)).run().assertContent(VALUE2);
+		c.get().header(retryAfter(()->PARSED2)).run().assertContent(VALUE2);
 
 		// Invalid usage.
 		c.get().header(retryAfter((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/Server_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/Server_Test.java
index d3f199e3c..17f82c119 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/Server_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/Server_Test.java
@@ -51,10 +51,10 @@ public class Server_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(server(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(server(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(server(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(server(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(server(VALUE)).run().assertContent(VALUE);
+		c.get().header(server(VALUE)).run().assertContent(VALUE);
+		c.get().header(server(PARSED)).run().assertContent(VALUE);
+		c.get().header(server(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(server((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/TE_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/TE_Test.java
index 6bb6ace32..b7c4376b2 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/TE_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/TE_Test.java
@@ -52,10 +52,10 @@ public class TE_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(te(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(te(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(te(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(te(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(te(VALUE)).run().assertContent(VALUE);
+		c.get().header(te(VALUE)).run().assertContent(VALUE);
+		c.get().header(te(PARSED)).run().assertContent(VALUE);
+		c.get().header(te(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(te((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/Trailer_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/Trailer_Test.java
index 7d0d4f71c..047a7237e 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/Trailer_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/Trailer_Test.java
@@ -51,10 +51,10 @@ public class Trailer_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(trailer(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(trailer(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(trailer(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(trailer(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(trailer(VALUE)).run().assertContent(VALUE);
+		c.get().header(trailer(VALUE)).run().assertContent(VALUE);
+		c.get().header(trailer(PARSED)).run().assertContent(VALUE);
+		c.get().header(trailer(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(trailer((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/TransferEncoding_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/TransferEncoding_Test.java
index 24e5d66f8..5483f28a7 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/TransferEncoding_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/TransferEncoding_Test.java
@@ -51,10 +51,10 @@ public class TransferEncoding_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(transferEncoding(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(transferEncoding(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(transferEncoding(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(transferEncoding(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(transferEncoding(VALUE)).run().assertContent(VALUE);
+		c.get().header(transferEncoding(VALUE)).run().assertContent(VALUE);
+		c.get().header(transferEncoding(PARSED)).run().assertContent(VALUE);
+		c.get().header(transferEncoding(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(transferEncoding((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/Upgrade_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/Upgrade_Test.java
index 1fa442436..863ee0de9 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/Upgrade_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/Upgrade_Test.java
@@ -50,10 +50,10 @@ public class Upgrade_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(upgrade(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(upgrade(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(upgrade(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(upgrade(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(upgrade(VALUE)).run().assertContent(VALUE);
+		c.get().header(upgrade(VALUE)).run().assertContent(VALUE);
+		c.get().header(upgrade(PARSED)).run().assertContent(VALUE);
+		c.get().header(upgrade(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(upgrade((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/UserAgent_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/UserAgent_Test.java
index 22b90f828..44ec0eacd 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/UserAgent_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/UserAgent_Test.java
@@ -51,10 +51,10 @@ public class UserAgent_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(userAgent(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(userAgent(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(userAgent(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(userAgent(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(userAgent(VALUE)).run().assertContent(VALUE);
+		c.get().header(userAgent(VALUE)).run().assertContent(VALUE);
+		c.get().header(userAgent(PARSED)).run().assertContent(VALUE);
+		c.get().header(userAgent(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(userAgent((String)null)).run().assertContent().isContains("Apache");
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/Vary_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/Vary_Test.java
index bba773172..fbb23861f 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/Vary_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/Vary_Test.java
@@ -51,10 +51,10 @@ public class Vary_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(vary(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(vary(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(vary(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(vary(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(vary(VALUE)).run().assertContent(VALUE);
+		c.get().header(vary(VALUE)).run().assertContent(VALUE);
+		c.get().header(vary(PARSED)).run().assertContent(VALUE);
+		c.get().header(vary(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(vary((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/Via_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/Via_Test.java
index 76ea43c33..49bc18a40 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/Via_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/Via_Test.java
@@ -51,10 +51,10 @@ public class Via_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(via(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(via(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(via(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(via(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(via(VALUE)).run().assertContent(VALUE);
+		c.get().header(via(VALUE)).run().assertContent(VALUE);
+		c.get().header(via(PARSED)).run().assertContent(VALUE);
+		c.get().header(via(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(via((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/Warning_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/Warning_Test.java
index b6c11eb34..b2600aa23 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/Warning_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/Warning_Test.java
@@ -51,10 +51,10 @@ public class Warning_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(warning(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(warning(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(warning(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(warning(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(warning(VALUE)).run().assertContent(VALUE);
+		c.get().header(warning(VALUE)).run().assertContent(VALUE);
+		c.get().header(warning(PARSED)).run().assertContent(VALUE);
+		c.get().header(warning(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(warning((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/header/WwwAuthenticate_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/header/WwwAuthenticate_Test.java
index fee349df4..6b3913681 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/header/WwwAuthenticate_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/header/WwwAuthenticate_Test.java
@@ -51,10 +51,10 @@ public class WwwAuthenticate_Test {
 		RestClient c = client().build();
 
 		// Normal usage.
-		c.get().header(wwwAuthenticate(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(wwwAuthenticate(VALUE)).run().assertContent().is(VALUE);
-		c.get().header(wwwAuthenticate(PARSED)).run().assertContent().is(VALUE);
-		c.get().header(wwwAuthenticate(()->PARSED)).run().assertContent().is(VALUE);
+		c.get().header(wwwAuthenticate(VALUE)).run().assertContent(VALUE);
+		c.get().header(wwwAuthenticate(VALUE)).run().assertContent(VALUE);
+		c.get().header(wwwAuthenticate(PARSED)).run().assertContent(VALUE);
+		c.get().header(wwwAuthenticate(()->PARSED)).run().assertContent(VALUE);
 
 		// Invalid usage.
 		c.get().header(wwwAuthenticate((String)null)).run().assertContent().isEmpty();
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/Accepted_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/Accepted_Test.java
index ea981044e..c52566205 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/Accepted_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/Accepted_Test.java
@@ -35,15 +35,15 @@ public class Accepted_Test {
 
 		client.get("/a1")
 			.run()
-			.assertCode().is(202)
-			.assertContent().is("Accepted");
+			.assertStatus(202)
+			.assertContent("Accepted");
 		client.get("/a2")
 			.run()
-			.assertCode().is(202)
-			.assertContent().is("foo");
+			.assertStatus(202)
+			.assertContent("foo");
 		client.get("/a3")
 			.run()
-			.assertCode().is(202)
+			.assertStatus(202)
 			.assertHeader("Foo").is("bar");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/AlreadyReported_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/AlreadyReported_Test.java
index 4cbb194c4..21725f959 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/AlreadyReported_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/AlreadyReported_Test.java
@@ -35,15 +35,15 @@ public class AlreadyReported_Test {
 
 		client.get("/a1")
 			.run()
-			.assertCode().is(208)
-			.assertContent().is("Already Reported");
+			.assertStatus(208)
+			.assertContent("Already Reported");
 		client.get("/a2")
 			.run()
-			.assertCode().is(208)
-			.assertContent().is("foo");
+			.assertStatus(208)
+			.assertContent("foo");
 		client.get("/a3")
 			.run()
-			.assertCode().is(208)
+			.assertStatus(208)
 			.assertHeader("Foo").is("bar");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/BadRequest_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/BadRequest_Test.java
index 793953eb6..8649843b7 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/BadRequest_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/BadRequest_Test.java
@@ -58,22 +58,22 @@ public class BadRequest_Test {
 
 		c.get("/f1").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE);
+			.assertContent(REASON_PHRASE);
 		c.get("/f2").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f3").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("baz");
+			.assertContent("baz");
 		c.get("/f4").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f5").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE)
+			.assertContent(REASON_PHRASE)
 			.assertHeader("Foo").is("bar");
 		c.get("/f6").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo");
+			.assertContent("foo");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/Conflict_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/Conflict_Test.java
index 7ff9fa122..5ad08f7e9 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/Conflict_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/Conflict_Test.java
@@ -58,22 +58,22 @@ public class Conflict_Test {
 
 		c.get("/f1").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE);
+			.assertContent(REASON_PHRASE);
 		c.get("/f2").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f3").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("baz");
+			.assertContent("baz");
 		c.get("/f4").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f5").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE)
+			.assertContent(REASON_PHRASE)
 			.assertHeader("A").is("bar");
 		c.get("/f6").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo");
+			.assertContent("foo");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/Continue_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/Continue_Test.java
index b4b5dcb01..6d56bed1b 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/Continue_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/Continue_Test.java
@@ -35,15 +35,15 @@ public class Continue_Test {
 
 		client.get("/a1")
 			.run()
-			.assertCode().is(1100)
-			.assertContent().is("Continue");
+			.assertStatus(1100)
+			.assertContent("Continue");
 		client.get("/a2")
 			.run()
-			.assertCode().is(1100)
-			.assertContent().is("foo");
+			.assertStatus(1100)
+			.assertContent("foo");
 		client.get("/a3")
 			.run()
-			.assertCode().is(1100)
+			.assertStatus(1100)
 			.assertHeader("A").is("bar");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/Created_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/Created_Test.java
index 078d1c63d..000813443 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/Created_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/Created_Test.java
@@ -35,15 +35,15 @@ public class Created_Test {
 
 		client.get("/a1")
 			.run()
-			.assertCode().is(201)
-			.assertContent().is("Created");
+			.assertStatus(201)
+			.assertContent("Created");
 		client.get("/a2")
 			.run()
-			.assertCode().is(201)
-			.assertContent().is("foo");
+			.assertStatus(201)
+			.assertContent("foo");
 		client.get("/a3")
 			.run()
-			.assertCode().is(201)
+			.assertStatus(201)
 			.assertHeader("A").is("bar");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/EarlyHints_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/EarlyHints_Test.java
index 9c8e37325..d757aa623 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/EarlyHints_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/EarlyHints_Test.java
@@ -35,15 +35,15 @@ public class EarlyHints_Test {
 
 		client.get("/a1")
 			.run()
-			.assertCode().is(1103)
-			.assertContent().is("Early Hints");
+			.assertStatus(1103)
+			.assertContent("Early Hints");
 		client.get("/a2")
 			.run()
-			.assertCode().is(1103)
-			.assertContent().is("foo");
+			.assertStatus(1103)
+			.assertContent("foo");
 		client.get("/a3")
 			.run()
-			.assertCode().is(1103)
+			.assertStatus(1103)
 			.assertHeader("Foo").is("bar");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/ExpectationFailed_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/ExpectationFailed_Test.java
index 8280bf468..ac035eb07 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/ExpectationFailed_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/ExpectationFailed_Test.java
@@ -58,22 +58,22 @@ public class ExpectationFailed_Test {
 
 		c.get("/f1").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE);
+			.assertContent(REASON_PHRASE);
 		c.get("/f2").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f3").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("baz");
+			.assertContent("baz");
 		c.get("/f4").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f5").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE)
+			.assertContent(REASON_PHRASE)
 			.assertHeader("Foo").is("bar");
 		c.get("/f6").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo");
+			.assertContent("foo");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/FailedDependency_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/FailedDependency_Test.java
index 18e9cd2e0..87fccceeb 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/FailedDependency_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/FailedDependency_Test.java
@@ -58,22 +58,22 @@ public class FailedDependency_Test {
 
 		c.get("/f1").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE);
+			.assertContent(REASON_PHRASE);
 		c.get("/f2").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f3").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("baz");
+			.assertContent("baz");
 		c.get("/f4").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f5").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE)
+			.assertContent(REASON_PHRASE)
 			.assertHeader("Foo").is("bar");
 		c.get("/f6").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo");
+			.assertContent("foo");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/Forbidden_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/Forbidden_Test.java
index 8cf4f506c..00c900fb7 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/Forbidden_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/Forbidden_Test.java
@@ -58,22 +58,22 @@ public class Forbidden_Test {
 
 		c.get("/f1").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE);
+			.assertContent(REASON_PHRASE);
 		c.get("/f2").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f3").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("baz");
+			.assertContent("baz");
 		c.get("/f4").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f5").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE)
+			.assertContent(REASON_PHRASE)
 			.assertHeader("Foo").is("bar");
 		c.get("/f6").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo");
+			.assertContent("foo");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/Found_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/Found_Test.java
index 1c6fec27f..a68fa08d4 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/Found_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/Found_Test.java
@@ -36,19 +36,19 @@ public class Found_Test {
 
 		client.get("/a1")
 			.run()
-			.assertCode().is(302)
-			.assertContent().is("Found");
+			.assertStatus(302)
+			.assertContent("Found");
 		client.get("/a2")
 			.run()
-			.assertCode().is(302)
-			.assertContent().is("foo");
+			.assertStatus(302)
+			.assertContent("foo");
 		client.get("/a3")
 			.run()
-			.assertCode().is(302)
+			.assertStatus(302)
 			.assertHeader("Location").is("/foo");
 		client.get("/a4")
 			.run()
-			.assertCode().is(302)
+			.assertStatus(302)
 			.assertHeader("Foo").is("bar");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/Gone_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/Gone_Test.java
index efcd0a23c..4b7f06d55 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/Gone_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/Gone_Test.java
@@ -58,22 +58,22 @@ public class Gone_Test {
 
 		c.get("/f1").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE);
+			.assertContent(REASON_PHRASE);
 		c.get("/f2").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f3").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("baz");
+			.assertContent("baz");
 		c.get("/f4").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f5").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE)
+			.assertContent(REASON_PHRASE)
 			.assertHeader("Foo").is("bar");
 		c.get("/f6").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo");
+			.assertContent("foo");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/HttpException_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/HttpException_Test.java
index 2e90099de..64c9ff982 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/HttpException_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/HttpException_Test.java
@@ -56,19 +56,19 @@ public class HttpException_Test {
 
 		c.get("/f1").run()
 			.assertStatus().asCode().is(225)
-			.assertContent().is("bar baz");
+			.assertContent("bar baz");
 		c.get("/f2").run()
 			.assertStatus().asCode().is(225)
-			.assertContent().is("foo");
+			.assertContent("foo");
 		c.get("/f3").run()
 			.assertStatus().asCode().is(225)
-			.assertContent().is("baz");
+			.assertContent("baz");
 		c.get("/f4").run()
 			.assertStatus().asCode().is(225)
-			.assertContent().is("bar baz");
+			.assertContent("bar baz");
 		c.get("/f5").run()
 			.assertStatus().asCode().is(225)
-			.assertContent().is("")
+			.assertContent("")
 			.assertHeader("Foo").is("bar");
 	}
 
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/HttpVersionNotSupported_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/HttpVersionNotSupported_Test.java
index f22b13cd4..55b6dd98c 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/HttpVersionNotSupported_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/HttpVersionNotSupported_Test.java
@@ -58,22 +58,22 @@ public class HttpVersionNotSupported_Test {
 
 		c.get("/f1").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE);
+			.assertContent(REASON_PHRASE);
 		c.get("/f2").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f3").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("baz");
+			.assertContent("baz");
 		c.get("/f4").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f5").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE)
+			.assertContent(REASON_PHRASE)
 			.assertHeader("Foo").is("bar");
 		c.get("/f6").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo");
+			.assertContent("foo");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/IMUsed_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/IMUsed_Test.java
index 9f6defabb..ef7c57bd8 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/IMUsed_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/IMUsed_Test.java
@@ -35,15 +35,15 @@ public class IMUsed_Test {
 
 		client.get("/a1")
 			.run()
-			.assertCode().is(226)
-			.assertContent().is("IM Used");
+			.assertStatus(226)
+			.assertContent("IM Used");
 		client.get("/a2")
 			.run()
-			.assertCode().is(226)
-			.assertContent().is("foo");
+			.assertStatus(226)
+			.assertContent("foo");
 		client.get("/a3")
 			.run()
-			.assertCode().is(226)
+			.assertStatus(226)
 			.assertHeader("Foo").is("bar");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/InsufficentStorage_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/InsufficentStorage_Test.java
index a89eb0de1..f3b5a0161 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/InsufficentStorage_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/InsufficentStorage_Test.java
@@ -58,22 +58,22 @@ public class InsufficentStorage_Test {
 
 		c.get("/f1").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE);
+			.assertContent(REASON_PHRASE);
 		c.get("/f2").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f3").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("baz");
+			.assertContent("baz");
 		c.get("/f4").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f5").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE)
+			.assertContent(REASON_PHRASE)
 			.assertHeader("Foo").is("bar");
 		c.get("/f6").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo");
+			.assertContent("foo");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/InternalServerError_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/InternalServerError_Test.java
index 4bc3ffc40..b57846dd5 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/InternalServerError_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/InternalServerError_Test.java
@@ -58,22 +58,22 @@ public class InternalServerError_Test {
 
 		c.get("/f1").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE);
+			.assertContent(REASON_PHRASE);
 		c.get("/f2").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f3").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("baz");
+			.assertContent("baz");
 		c.get("/f4").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f5").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE)
+			.assertContent(REASON_PHRASE)
 			.assertHeader("Foo").is("bar");
 		c.get("/f6").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo");
+			.assertContent("foo");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/LengthRequired_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/LengthRequired_Test.java
index 3b4f147ea..090c6da8e 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/LengthRequired_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/LengthRequired_Test.java
@@ -58,22 +58,22 @@ public class LengthRequired_Test {
 
 		c.get("/f1").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE);
+			.assertContent(REASON_PHRASE);
 		c.get("/f2").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f3").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("baz");
+			.assertContent("baz");
 		c.get("/f4").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f5").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE)
+			.assertContent(REASON_PHRASE)
 			.assertHeader("Foo").is("bar");
 		c.get("/f6").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo");
+			.assertContent("foo");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/Locked_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/Locked_Test.java
index f73abc3e6..a43b7d6d5 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/Locked_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/Locked_Test.java
@@ -58,22 +58,22 @@ public class Locked_Test {
 
 		c.get("/f1").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE);
+			.assertContent(REASON_PHRASE);
 		c.get("/f2").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f3").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("baz");
+			.assertContent("baz");
 		c.get("/f4").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f5").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE)
+			.assertContent(REASON_PHRASE)
 			.assertHeader("Foo").is("bar");
 		c.get("/f6").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo");
+			.assertContent("foo");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/LoopDetected_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/LoopDetected_Test.java
index 507538886..44b52fe53 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/LoopDetected_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/LoopDetected_Test.java
@@ -58,22 +58,22 @@ public class LoopDetected_Test {
 
 		c.get("/f1").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE);
+			.assertContent(REASON_PHRASE);
 		c.get("/f2").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f3").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("baz");
+			.assertContent("baz");
 		c.get("/f4").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f5").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE)
+			.assertContent(REASON_PHRASE)
 			.assertHeader("Foo").is("bar");
 		c.get("/f6").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo");
+			.assertContent("foo");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/MethodNotAllowed_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/MethodNotAllowed_Test.java
index 2b7813e82..5a1195e53 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/MethodNotAllowed_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/MethodNotAllowed_Test.java
@@ -58,22 +58,22 @@ public class MethodNotAllowed_Test {
 
 		c.get("/f1").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE);
+			.assertContent(REASON_PHRASE);
 		c.get("/f2").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f3").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("baz");
+			.assertContent("baz");
 		c.get("/f4").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f5").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE)
+			.assertContent(REASON_PHRASE)
 			.assertHeader("Foo").is("bar");
 		c.get("/f6").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo");
+			.assertContent("foo");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/MisdirectedRequest_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/MisdirectedRequest_Test.java
index 62c10086e..ec43cb9e9 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/MisdirectedRequest_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/MisdirectedRequest_Test.java
@@ -58,22 +58,22 @@ public class MisdirectedRequest_Test {
 
 		c.get("/f1").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE);
+			.assertContent(REASON_PHRASE);
 		c.get("/f2").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f3").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("baz");
+			.assertContent("baz");
 		c.get("/f4").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f5").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE)
+			.assertContent(REASON_PHRASE)
 			.assertHeader("Foo").is("bar");
 		c.get("/f6").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo");
+			.assertContent("foo");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/MovedPermanently_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/MovedPermanently_Test.java
index e797c13b6..50bbf0d23 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/MovedPermanently_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/MovedPermanently_Test.java
@@ -36,19 +36,19 @@ public class MovedPermanently_Test {
 
 		client.get("/a1")
 			.run()
-			.assertCode().is(301)
-			.assertContent().is("Moved Permanently");
+			.assertStatus(301)
+			.assertContent("Moved Permanently");
 		client.get("/a2")
 			.run()
-			.assertCode().is(301)
-			.assertContent().is("foo");
+			.assertStatus(301)
+			.assertContent("foo");
 		client.get("/a3")
 			.run()
-			.assertCode().is(301)
+			.assertStatus(301)
 			.assertHeader("Location").is("/foo");
 		client.get("/a4")
 			.run()
-			.assertCode().is(301)
+			.assertStatus(301)
 			.assertHeader("Foo").is("bar");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/MultiStatus_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/MultiStatus_Test.java
index 00df6b1d9..0af767c9d 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/MultiStatus_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/MultiStatus_Test.java
@@ -35,15 +35,15 @@ public class MultiStatus_Test {
 
 		client.get("/a1")
 			.run()
-			.assertCode().is(207)
-			.assertContent().is("Multi-Status");
+			.assertStatus(207)
+			.assertContent("Multi-Status");
 		client.get("/a2")
 			.run()
-			.assertCode().is(207)
-			.assertContent().is("foo");
+			.assertStatus(207)
+			.assertContent("foo");
 		client.get("/a3")
 			.run()
-			.assertCode().is(207)
+			.assertStatus(207)
 			.assertHeader("Foo").is("bar");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/MultipleChoices_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/MultipleChoices_Test.java
index 18411bf25..70ffb1074 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/MultipleChoices_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/MultipleChoices_Test.java
@@ -35,15 +35,15 @@ public class MultipleChoices_Test {
 
 		client.get("/a1")
 			.run()
-			.assertCode().is(300)
-			.assertContent().is("Multiple Choices");
+			.assertStatus(300)
+			.assertContent("Multiple Choices");
 		client.get("/a2")
 			.run()
-			.assertCode().is(300)
-			.assertContent().is("foo");
+			.assertStatus(300)
+			.assertContent("foo");
 		client.get("/a3")
 			.run()
-			.assertCode().is(300)
+			.assertStatus(300)
 			.assertHeader("Foo").is("bar");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/NetworkAuthenticationRequired_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/NetworkAuthenticationRequired_Test.java
index 5d12b4d1e..630c9486c 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/NetworkAuthenticationRequired_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/NetworkAuthenticationRequired_Test.java
@@ -58,22 +58,22 @@ public class NetworkAuthenticationRequired_Test {
 
 		c.get("/f1").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE);
+			.assertContent(REASON_PHRASE);
 		c.get("/f2").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f3").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("baz");
+			.assertContent("baz");
 		c.get("/f4").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f5").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE)
+			.assertContent(REASON_PHRASE)
 			.assertHeader("Foo").is("bar");
 		c.get("/f6").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo");
+			.assertContent("foo");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/NoContent_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/NoContent_Test.java
index 32f3e01a2..35a2588a7 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/NoContent_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/NoContent_Test.java
@@ -35,13 +35,13 @@ public class NoContent_Test {
 
 		client.get("/a1")
 			.run()
-			.assertCode().is(204);
+			.assertStatus(204);
 		client.get("/a2")
 			.run()
-			.assertCode().is(204);
+			.assertStatus(204);
 		client.get("/a3")
 			.run()
-			.assertCode().is(204)
+			.assertStatus(204)
 			.assertHeader("Foo").is("bar");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/NonAuthoritativeInformation_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/NonAuthoritativeInformation_Test.java
index 2330f6d2b..1c12ff571 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/NonAuthoritativeInformation_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/NonAuthoritativeInformation_Test.java
@@ -35,15 +35,15 @@ public class NonAuthoritativeInformation_Test {
 
 		client.get("/a1")
 			.run()
-			.assertCode().is(203)
-			.assertContent().is("Non-Authoritative Information");
+			.assertStatus(203)
+			.assertContent("Non-Authoritative Information");
 		client.get("/a2")
 			.run()
-			.assertCode().is(203)
-			.assertContent().is("foo");
+			.assertStatus(203)
+			.assertContent("foo");
 		client.get("/a3")
 			.run()
-			.assertCode().is(203)
+			.assertStatus(203)
 			.assertHeader("Foo").is("bar");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/NotAcceptable_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/NotAcceptable_Test.java
index 079cd205b..260684245 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/NotAcceptable_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/NotAcceptable_Test.java
@@ -58,22 +58,22 @@ public class NotAcceptable_Test {
 
 		c.get("/f1").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE);
+			.assertContent(REASON_PHRASE);
 		c.get("/f2").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f3").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("baz");
+			.assertContent("baz");
 		c.get("/f4").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f5").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE)
+			.assertContent(REASON_PHRASE)
 			.assertHeader("Foo").is("bar");
 		c.get("/f6").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo");
+			.assertContent("foo");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/NotExtended_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/NotExtended_Test.java
index 1e24bdc12..03eb09bad 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/NotExtended_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/NotExtended_Test.java
@@ -58,22 +58,22 @@ public class NotExtended_Test {
 
 		c.get("/f1").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE);
+			.assertContent(REASON_PHRASE);
 		c.get("/f2").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f3").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("baz");
+			.assertContent("baz");
 		c.get("/f4").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f5").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE)
+			.assertContent(REASON_PHRASE)
 			.assertHeader("Foo").is("bar");
 		c.get("/f6").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo");
+			.assertContent("foo");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/NotFound_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/NotFound_Test.java
index 3644b49fa..d298079b1 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/NotFound_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/NotFound_Test.java
@@ -58,22 +58,22 @@ public class NotFound_Test {
 
 		c.get("/f1").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE);
+			.assertContent(REASON_PHRASE);
 		c.get("/f2").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f3").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("baz");
+			.assertContent("baz");
 		c.get("/f4").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f5").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE)
+			.assertContent(REASON_PHRASE)
 			.assertHeader("Foo").is("bar");
 		c.get("/f6").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo");
+			.assertContent("foo");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/NotImplemented_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/NotImplemented_Test.java
index 19179b14d..089484268 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/NotImplemented_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/NotImplemented_Test.java
@@ -58,22 +58,22 @@ public class NotImplemented_Test {
 
 		c.get("/f1").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE);
+			.assertContent(REASON_PHRASE);
 		c.get("/f2").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f3").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("baz");
+			.assertContent("baz");
 		c.get("/f4").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f5").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE)
+			.assertContent(REASON_PHRASE)
 			.assertHeader("Foo").is("bar");
 		c.get("/f6").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo");
+			.assertContent("foo");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/NotModified_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/NotModified_Test.java
index 06c1029db..1f715b90c 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/NotModified_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/NotModified_Test.java
@@ -35,13 +35,13 @@ public class NotModified_Test {
 
 		client.get("/a1")
 			.run()
-			.assertCode().is(304);
+			.assertStatus(304);
 		client.get("/a2")
 			.run()
-			.assertCode().is(304);
+			.assertStatus(304);
 		client.get("/a3")
 			.run()
-			.assertCode().is(304)
+			.assertStatus(304)
 			.assertHeader("Foo").is("bar");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/Ok_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/Ok_Test.java
index ff58f057a..3f14e463f 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/Ok_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/Ok_Test.java
@@ -35,15 +35,15 @@ public class Ok_Test {
 
 		client.get("/a1")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("OK");
+			.assertStatus(200)
+			.assertContent("OK");
 		client.get("/a2")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("foo");
+			.assertStatus(200)
+			.assertContent("foo");
 		client.get("/a3")
 			.run()
-			.assertCode().is(200)
+			.assertStatus(200)
 			.assertHeader("Foo").is("bar");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/PartialContent_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/PartialContent_Test.java
index d8dab126d..6d94384a7 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/PartialContent_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/PartialContent_Test.java
@@ -35,15 +35,15 @@ public class PartialContent_Test {
 
 		client.get("/a1")
 			.run()
-			.assertCode().is(206)
-			.assertContent().is("Partial Content");
+			.assertStatus(206)
+			.assertContent("Partial Content");
 		client.get("/a2")
 			.run()
-			.assertCode().is(206)
-			.assertContent().is("foo");
+			.assertStatus(206)
+			.assertContent("foo");
 		client.get("/a3")
 			.run()
-			.assertCode().is(206)
+			.assertStatus(206)
 			.assertHeader("Foo").is("bar");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/PayloadTooLarge_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/PayloadTooLarge_Test.java
index 3f57237d6..28a7f1b8d 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/PayloadTooLarge_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/PayloadTooLarge_Test.java
@@ -58,22 +58,22 @@ public class PayloadTooLarge_Test {
 
 		c.get("/f1").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE);
+			.assertContent(REASON_PHRASE);
 		c.get("/f2").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f3").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("baz");
+			.assertContent("baz");
 		c.get("/f4").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f5").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE)
+			.assertContent(REASON_PHRASE)
 			.assertHeader("Foo").is("bar");
 		c.get("/f6").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo");
+			.assertContent("foo");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/PermanentRedirect_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/PermanentRedirect_Test.java
index 30418d8a4..198dcc63b 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/PermanentRedirect_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/PermanentRedirect_Test.java
@@ -36,19 +36,19 @@ public class PermanentRedirect_Test {
 
 		client.get("/a1")
 			.run()
-			.assertCode().is(308)
-			.assertContent().is("Permanent Redirect");
+			.assertStatus(308)
+			.assertContent("Permanent Redirect");
 		client.get("/a2")
 			.run()
-			.assertCode().is(308)
-			.assertContent().is("foo");
+			.assertStatus(308)
+			.assertContent("foo");
 		client.get("/a3")
 			.run()
-			.assertCode().is(308)
+			.assertStatus(308)
 			.assertHeader("Location").is("/foo");
 		client.get("/a4")
 			.run()
-			.assertCode().is(308)
+			.assertStatus(308)
 			.assertHeader("Foo").is("bar");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/PreconditionFailed_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/PreconditionFailed_Test.java
index e571285e0..43bcadb0b 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/PreconditionFailed_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/PreconditionFailed_Test.java
@@ -58,22 +58,22 @@ public class PreconditionFailed_Test {
 
 		c.get("/f1").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE);
+			.assertContent(REASON_PHRASE);
 		c.get("/f2").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f3").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("baz");
+			.assertContent("baz");
 		c.get("/f4").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f5").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE)
+			.assertContent(REASON_PHRASE)
 			.assertHeader("Foo").is("bar");
 		c.get("/f6").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo");
+			.assertContent("foo");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/PreconditionRequired_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/PreconditionRequired_Test.java
index 4c905b72b..2a032d90f 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/PreconditionRequired_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/PreconditionRequired_Test.java
@@ -58,22 +58,22 @@ public class PreconditionRequired_Test {
 
 		c.get("/f1").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE);
+			.assertContent(REASON_PHRASE);
 		c.get("/f2").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f3").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("baz");
+			.assertContent("baz");
 		c.get("/f4").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f5").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE)
+			.assertContent(REASON_PHRASE)
 			.assertHeader("Foo").is("bar");
 		c.get("/f6").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo");
+			.assertContent("foo");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/Processing_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/Processing_Test.java
index 5e97df4ad..9b4616de9 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/Processing_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/Processing_Test.java
@@ -35,15 +35,15 @@ public class Processing_Test {
 
 		client.get("/a1")
 			.run()
-			.assertCode().is(1102)
-			.assertContent().is("Processing");
+			.assertStatus(1102)
+			.assertContent("Processing");
 		client.get("/a2")
 			.run()
-			.assertCode().is(1102)
-			.assertContent().is("foo");
+			.assertStatus(1102)
+			.assertContent("foo");
 		client.get("/a3")
 			.run()
-			.assertCode().is(1102)
+			.assertStatus(1102)
 			.assertHeader("Foo").is("bar");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/RangeNotSatisfiable_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/RangeNotSatisfiable_Test.java
index da0c6e0dc..86b521f75 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/RangeNotSatisfiable_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/RangeNotSatisfiable_Test.java
@@ -58,22 +58,22 @@ public class RangeNotSatisfiable_Test {
 
 		c.get("/f1").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE);
+			.assertContent(REASON_PHRASE);
 		c.get("/f2").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f3").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("baz");
+			.assertContent("baz");
 		c.get("/f4").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f5").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE)
+			.assertContent(REASON_PHRASE)
 			.assertHeader("Foo").is("bar");
 		c.get("/f6").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo");
+			.assertContent("foo");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/RequestHeaderFieldsTooLarge_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/RequestHeaderFieldsTooLarge_Test.java
index f790a5d75..8b60ed7a4 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/RequestHeaderFieldsTooLarge_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/RequestHeaderFieldsTooLarge_Test.java
@@ -58,22 +58,22 @@ public class RequestHeaderFieldsTooLarge_Test {
 
 		c.get("/f1").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE);
+			.assertContent(REASON_PHRASE);
 		c.get("/f2").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f3").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("baz");
+			.assertContent("baz");
 		c.get("/f4").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f5").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE)
+			.assertContent(REASON_PHRASE)
 			.assertHeader("Foo").is("bar");
 		c.get("/f6").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo");
+			.assertContent("foo");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/ResetContent_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/ResetContent_Test.java
index 80170df5f..1a355d7cc 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/ResetContent_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/ResetContent_Test.java
@@ -35,13 +35,13 @@ public class ResetContent_Test {
 
 		client.get("/a1")
 			.run()
-			.assertCode().is(205);
+			.assertStatus(205);
 		client.get("/a2")
 			.run()
-			.assertCode().is(205);
+			.assertStatus(205);
 		client.get("/a3")
 			.run()
-			.assertCode().is(205)
+			.assertStatus(205)
 			.assertHeader("Foo").is("bar");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/SeeOther_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/SeeOther_Test.java
index 62a5cd957..ec027d3c6 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/SeeOther_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/SeeOther_Test.java
@@ -36,19 +36,19 @@ public class SeeOther_Test {
 
 		client.get("/a1")
 			.run()
-			.assertCode().is(303)
-			.assertContent().is("See Other");
+			.assertStatus(303)
+			.assertContent("See Other");
 		client.get("/a2")
 			.run()
-			.assertCode().is(303)
-			.assertContent().is("foo");
+			.assertStatus(303)
+			.assertContent("foo");
 		client.get("/a3")
 			.run()
-			.assertCode().is(303)
+			.assertStatus(303)
 			.assertHeader("Location").is("/foo");
 		client.get("/a4")
 			.run()
-			.assertCode().is(303)
+			.assertStatus(303)
 			.assertHeader("Foo").is("bar");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/ServiceUnavailable_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/ServiceUnavailable_Test.java
index f76b59a39..154780253 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/ServiceUnavailable_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/ServiceUnavailable_Test.java
@@ -58,22 +58,22 @@ public class ServiceUnavailable_Test {
 
 		c.get("/f1").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE);
+			.assertContent(REASON_PHRASE);
 		c.get("/f2").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f3").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("baz");
+			.assertContent("baz");
 		c.get("/f4").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f5").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE)
+			.assertContent(REASON_PHRASE)
 			.assertHeader("Foo").is("bar");
 		c.get("/f6").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo");
+			.assertContent("foo");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/SwitchingProtocols_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/SwitchingProtocols_Test.java
index b4667bd19..e33995f7f 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/SwitchingProtocols_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/SwitchingProtocols_Test.java
@@ -35,15 +35,15 @@ public class SwitchingProtocols_Test {
 
 		client.get("/a1")
 			.run()
-			.assertCode().is(1101)
-			.assertContent().is("Switching Protocols");
+			.assertStatus(1101)
+			.assertContent("Switching Protocols");
 		client.get("/a2")
 			.run()
-			.assertCode().is(1101)
-			.assertContent().is("foo");
+			.assertStatus(1101)
+			.assertContent("foo");
 		client.get("/a3")
 			.run()
-			.assertCode().is(1101)
+			.assertStatus(1101)
 			.assertHeader("Foo").is("bar");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/TemporaryRedirect_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/TemporaryRedirect_Test.java
index bf19ea60f..ca1f5dfe2 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/TemporaryRedirect_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/TemporaryRedirect_Test.java
@@ -36,19 +36,19 @@ public class TemporaryRedirect_Test {
 
 		client.get("/a1")
 			.run()
-			.assertCode().is(307)
-			.assertContent().is("Temporary Redirect");
+			.assertStatus(307)
+			.assertContent("Temporary Redirect");
 		client.get("/a2")
 			.run()
-			.assertCode().is(307)
-			.assertContent().is("foo");
+			.assertStatus(307)
+			.assertContent("foo");
 		client.get("/a3")
 			.run()
-			.assertCode().is(307)
+			.assertStatus(307)
 			.assertHeader("Location").is("/foo");
 		client.get("/a4")
 			.run()
-			.assertCode().is(307)
+			.assertStatus(307)
 			.assertHeader("Foo").is("bar");
 	}
 }
\ No newline at end of file
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/TooManyRequests_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/TooManyRequests_Test.java
index 14070f0cd..4676b8c27 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/TooManyRequests_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/TooManyRequests_Test.java
@@ -58,22 +58,22 @@ public class TooManyRequests_Test {
 
 		c.get("/f1").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE);
+			.assertContent(REASON_PHRASE);
 		c.get("/f2").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f3").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("baz");
+			.assertContent("baz");
 		c.get("/f4").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f5").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE)
+			.assertContent(REASON_PHRASE)
 			.assertHeader("Foo").is("bar");
 		c.get("/f6").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo");
+			.assertContent("foo");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/Unauthorized_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/Unauthorized_Test.java
index 11806cfc7..68789df67 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/Unauthorized_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/Unauthorized_Test.java
@@ -58,22 +58,22 @@ public class Unauthorized_Test {
 
 		c.get("/f1").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE);
+			.assertContent(REASON_PHRASE);
 		c.get("/f2").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f3").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("baz");
+			.assertContent("baz");
 		c.get("/f4").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f5").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE)
+			.assertContent(REASON_PHRASE)
 			.assertHeader("Foo").is("bar");
 		c.get("/f6").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo");
+			.assertContent("foo");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/UnavailableForLegalReasons_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/UnavailableForLegalReasons_Test.java
index 0f30edb8f..a35bd2134 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/UnavailableForLegalReasons_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/UnavailableForLegalReasons_Test.java
@@ -58,22 +58,22 @@ public class UnavailableForLegalReasons_Test {
 
 		c.get("/f1").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE);
+			.assertContent(REASON_PHRASE);
 		c.get("/f2").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f3").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("baz");
+			.assertContent("baz");
 		c.get("/f4").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f5").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE)
+			.assertContent(REASON_PHRASE)
 			.assertHeader("Foo").is("bar");
 		c.get("/f6").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo");
+			.assertContent("foo");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/UnprocessableEntity_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/UnprocessableEntity_Test.java
index cc022ca53..30d5b78ae 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/UnprocessableEntity_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/UnprocessableEntity_Test.java
@@ -58,22 +58,22 @@ public class UnprocessableEntity_Test {
 
 		c.get("/f1").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE);
+			.assertContent(REASON_PHRASE);
 		c.get("/f2").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f3").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("baz");
+			.assertContent("baz");
 		c.get("/f4").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f5").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE)
+			.assertContent(REASON_PHRASE)
 			.assertHeader("Foo").is("bar");
 		c.get("/f6").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo");
+			.assertContent("foo");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/UnsupportedMediaType_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/UnsupportedMediaType_Test.java
index 5b543d97b..c6f18ce2e 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/UnsupportedMediaType_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/UnsupportedMediaType_Test.java
@@ -58,22 +58,22 @@ public class UnsupportedMediaType_Test {
 
 		c.get("/f1").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE);
+			.assertContent(REASON_PHRASE);
 		c.get("/f2").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f3").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("baz");
+			.assertContent("baz");
 		c.get("/f4").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f5").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE)
+			.assertContent(REASON_PHRASE)
 			.assertHeader("Foo").is("bar");
 		c.get("/f6").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo");
+			.assertContent("foo");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/UpgradeRequired_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/UpgradeRequired_Test.java
index 795ad2da2..481e7f08d 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/UpgradeRequired_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/UpgradeRequired_Test.java
@@ -58,22 +58,22 @@ public class UpgradeRequired_Test {
 
 		c.get("/f1").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE);
+			.assertContent(REASON_PHRASE);
 		c.get("/f2").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f3").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("baz");
+			.assertContent("baz");
 		c.get("/f4").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f5").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE)
+			.assertContent(REASON_PHRASE)
 			.assertHeader("Foo").is("bar");
 		c.get("/f6").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo");
+			.assertContent("foo");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/UriTooLong_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/UriTooLong_Test.java
index 5077dc738..341d8a231 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/UriTooLong_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/UriTooLong_Test.java
@@ -58,22 +58,22 @@ public class UriTooLong_Test {
 
 		c.get("/f1").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE);
+			.assertContent(REASON_PHRASE);
 		c.get("/f2").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f3").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("baz");
+			.assertContent("baz");
 		c.get("/f4").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f5").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE)
+			.assertContent(REASON_PHRASE)
 			.assertHeader("Foo").is("bar");
 		c.get("/f6").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo");
+			.assertContent("foo");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/UseProxy_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/UseProxy_Test.java
index 591f10a26..5d3918469 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/UseProxy_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/UseProxy_Test.java
@@ -35,15 +35,15 @@ public class UseProxy_Test {
 
 		client.get("/a1")
 			.run()
-			.assertCode().is(305)
-			.assertContent().is("Use Proxy");
+			.assertStatus(305)
+			.assertContent("Use Proxy");
 		client.get("/a2")
 			.run()
-			.assertCode().is(305)
-			.assertContent().is("foo");
+			.assertStatus(305)
+			.assertContent("foo");
 		client.get("/a3")
 			.run()
-			.assertCode().is(305)
+			.assertStatus(305)
 			.assertHeader("Foo").is("bar");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/http/response/VariantAlsoNegotiates_Test.java b/juneau-utest/src/test/java/org/apache/juneau/http/response/VariantAlsoNegotiates_Test.java
index 228fdd6df..968b4d6b8 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/response/VariantAlsoNegotiates_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/response/VariantAlsoNegotiates_Test.java
@@ -58,22 +58,22 @@ public class VariantAlsoNegotiates_Test {
 
 		c.get("/f1").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE);
+			.assertContent(REASON_PHRASE);
 		c.get("/f2").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f3").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("baz");
+			.assertContent("baz");
 		c.get("/f4").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo bar");
+			.assertContent("foo bar");
 		c.get("/f5").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is(REASON_PHRASE)
+			.assertContent(REASON_PHRASE)
 			.assertHeader("Foo").is("bar");
 		c.get("/f6").run()
 			.assertStatus().asCode().is(STATUS_CODE)
-			.assertContent().is("foo");
+			.assertContent("foo");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/rest/Header_AcceptCharset_Test.java b/juneau-utest/src/test/java/org/apache/juneau/rest/Header_AcceptCharset_Test.java
index 492db12c2..37a01a0a3 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/Header_AcceptCharset_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/Header_AcceptCharset_Test.java
@@ -81,12 +81,12 @@ public class Header_AcceptCharset_Test {
 	@Test
 	public void b01_charsetOnResponse() throws Exception {
 		RestClient b = MockRestClient.buildLax(B.class);
-		b.put("/a", null).plainText().run().assertContent().is("UTF-8/UTF-8");
-		b.put("/a", null).plainText().acceptCharset("Shift_JIS").run().assertContent().is("UTF-8/Shift_JIS");
-		b.put("/a?noTrace=true", null).plainText().acceptCharset("BAD").run().assertCode().is(406).assertContent().isContains("No supported charsets in header 'Accept-Charset': 'BAD'");
-		b.put("/a", null).plainText().acceptCharset("UTF-8").run().assertContent().is("UTF-8/UTF-8");
-		b.put("/a", null).plainText().acceptCharset("bad,iso-8859-1").run().assertContent().is("UTF-8/ISO-8859-1");
-		b.put("/a", null).plainText().acceptCharset("bad;q=0.9,iso-8859-1;q=0.1").run().assertContent().is("UTF-8/ISO-8859-1");
-		b.put("/a", null).plainText().acceptCharset("bad;q=0.1,iso-8859-1;q=0.9").run().assertContent().is("UTF-8/ISO-8859-1");
+		b.put("/a", null).plainText().run().assertContent("UTF-8/UTF-8");
+		b.put("/a", null).plainText().acceptCharset("Shift_JIS").run().assertContent("UTF-8/Shift_JIS");
+		b.put("/a?noTrace=true", null).plainText().acceptCharset("BAD").run().assertStatus(406).assertContent().isContains("No supported charsets in header 'Accept-Charset': 'BAD'");
+		b.put("/a", null).plainText().acceptCharset("UTF-8").run().assertContent("UTF-8/UTF-8");
+		b.put("/a", null).plainText().acceptCharset("bad,iso-8859-1").run().assertContent("UTF-8/ISO-8859-1");
+		b.put("/a", null).plainText().acceptCharset("bad;q=0.9,iso-8859-1;q=0.1").run().assertContent("UTF-8/ISO-8859-1");
+		b.put("/a", null).plainText().acceptCharset("bad;q=0.1,iso-8859-1;q=0.9").run().assertContent("UTF-8/ISO-8859-1");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/rest/Header_AcceptEncoding_Test.java b/juneau-utest/src/test/java/org/apache/juneau/rest/Header_AcceptEncoding_Test.java
index 4b36ad533..17d87798d 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/Header_AcceptEncoding_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/Header_AcceptEncoding_Test.java
@@ -43,50 +43,50 @@ public class Header_AcceptEncoding_Test {
 	@Test
 	public void a01_noCompression() throws Exception {
 		RestClient a = MockRestClient.buildLax(A.class);
-		a.get("/").run().assertContent().is("foo");
-		a.get("/").header(AcceptEncoding.of("")).run().assertContent().is("foo");
-		a.get("/").header(AcceptEncoding.of("*")).run().assertContent().is("foo");
-		a.get("/").header(AcceptEncoding.of("identity")).run().assertContent().is("foo");
+		a.get("/").run().assertContent("foo");
+		a.get("/").header(AcceptEncoding.of("")).run().assertContent("foo");
+		a.get("/").header(AcceptEncoding.of("*")).run().assertContent("foo");
+		a.get("/").header(AcceptEncoding.of("identity")).run().assertContent("foo");
 
 		// The following should all match identity.
-		a.get("/").header(AcceptEncoding.of("mycoding")).run().assertContent().is("foo");
-		a.get("/").header(AcceptEncoding.of("identity;q=0.8,mycoding;q=0.6")).run().assertContent().is("foo");
-		a.get("/").header(AcceptEncoding.of("mycoding;q=0.8,identity;q=0.6")).run().assertContent().is("foo");
-		a.get("/").header(AcceptEncoding.of("mycoding;q=0.8,*;q=0.6")).run().assertContent().is("foo");
-		a.get("/").header(AcceptEncoding.of("*;q=0.8,myencoding;q=0.6")).run().assertContent().is("foo");
+		a.get("/").header(AcceptEncoding.of("mycoding")).run().assertContent("foo");
+		a.get("/").header(AcceptEncoding.of("identity;q=0.8,mycoding;q=0.6")).run().assertContent("foo");
+		a.get("/").header(AcceptEncoding.of("mycoding;q=0.8,identity;q=0.6")).run().assertContent("foo");
+		a.get("/").header(AcceptEncoding.of("mycoding;q=0.8,*;q=0.6")).run().assertContent("foo");
+		a.get("/").header(AcceptEncoding.of("*;q=0.8,myencoding;q=0.6")).run().assertContent("foo");
 
 		a.get("?noTrace=true").header(AcceptEncoding.of("mycoding,identity;q=0")).run()
-			.assertCode().is(406)
+			.assertStatus(406)
 			.assertContent().isContains(
 				"Unsupported encoding in request header 'Accept-Encoding': 'mycoding,identity;q=0'",
 				"Supported codings: ['identity']"
 			);
 		a.get("?noTrace=true").header(AcceptEncoding.of("mycoding,*;q=0")).run()
-			.assertCode().is(406)
+			.assertStatus(406)
 			.assertContent().isContains(
 				"Unsupported encoding in request header 'Accept-Encoding': 'mycoding,*;q=0'",
 				"Supported codings: ['identity']"
 			);
 		a.get("?noTrace=true").header(AcceptEncoding.of("identity;q=0")).run()
-			.assertCode().is(406)
+			.assertStatus(406)
 			.assertContent().isContains(
 				"Unsupported encoding in request header 'Accept-Encoding': 'identity;q=0'",
 				"Supported codings: ['identity']"
 			);
 		a.get("?noTrace=true").header(AcceptEncoding.of("identity;q=0.0")).run()
-			.assertCode().is(406)
+			.assertStatus(406)
 			.assertContent().isContains(
 				"Unsupported encoding in request header 'Accept-Encoding': 'identity;q=0.0'",
 				"Supported codings: ['identity']"
 			);
 		a.get("?noTrace=true").header(AcceptEncoding.of("*;q=0")).run()
-			.assertCode().is(406)
+			.assertStatus(406)
 			.assertContent().isContains(
 				"Unsupported encoding in request header 'Accept-Encoding': '*;q=0'",
 				"Supported codings: ['identity']"
 			);
 		a.get("?noTrace=true").header(AcceptEncoding.of("*;q=0.0")).run()
-			.assertCode().is(406)
+			.assertStatus(406)
 			.assertContent().isContains(
 				"Unsupported encoding in request header 'Accept-Encoding': '*;q=0.0'",
 				"Supported codings: ['identity']"
@@ -108,10 +108,10 @@ public class Header_AcceptEncoding_Test {
 	@Test
 	public void b01_withCompression() throws Exception {
 		RestClient b = MockRestClient.buildLax(B.class);
-		b.get("/").run().assertContent().is("foo");
-		b.get("/").header(AcceptEncoding.of("")).run().assertContent().is("foo");
-		b.get("/").header(AcceptEncoding.of("identity")).run().assertContent().is("foo");
-		b.get("/").header(AcceptEncoding.of("identity;q=0.8,mycoding;q=0.6")).run().assertContent().is("foo");
+		b.get("/").run().assertContent("foo");
+		b.get("/").header(AcceptEncoding.of("")).run().assertContent("foo");
+		b.get("/").header(AcceptEncoding.of("identity")).run().assertContent("foo");
+		b.get("/").header(AcceptEncoding.of("identity;q=0.8,mycoding;q=0.6")).run().assertContent("foo");
 
 		assertEquals("foo", StringUtils.decompress(b.get("/").header(AcceptEncoding.of("*")).run().getContent().asBytes()));
 		assertEquals("foo", StringUtils.decompress(b.get("/").header(AcceptEncoding.of("mycoding")).run().getContent().asBytes()));
@@ -122,25 +122,25 @@ public class Header_AcceptEncoding_Test {
 		assertEquals("foo", StringUtils.decompress(b.get("/").header(AcceptEncoding.of("mycoding;q=0.8,*;q=0.6")).run().getContent().asBytes()));
 
 		b.get("?noTrace=true").header(AcceptEncoding.of("identity;q=0")).run()
-			.assertCode().is(406)
+			.assertStatus(406)
 			.assertContent().isContains(
 				"Unsupported encoding in request header 'Accept-Encoding': 'identity;q=0'",
 				"Supported codings: ['mycoding','identity']"
 			);
 		b.get("?noTrace=true").header(AcceptEncoding.of("identity;q=0.0")).run()
-			.assertCode().is(406)
+			.assertStatus(406)
 			.assertContent().isContains(
 				"Unsupported encoding in request header 'Accept-Encoding': 'identity;q=0.0'",
 				"Supported codings: ['mycoding','identity']"
 			);
 		b.get("?noTrace=true").header(AcceptEncoding.of("*;q=0")).run()
-			.assertCode().is(406)
+			.assertStatus(406)
 			.assertContent().isContains(
 				"Unsupported encoding in request header 'Accept-Encoding': '*;q=0'",
 				"Supported codings: ['mycoding','identity']"
 			);
 		b.get("?noTrace=true").header(AcceptEncoding.of("*;q=0.0")).run()
-			.assertCode().is(406)
+			.assertStatus(406)
 			.assertContent().isContains(
 				"Unsupported encoding in request header 'Accept-Encoding': '*;q=0.0'",
 				"Supported codings: ['mycoding','identity']"
@@ -197,24 +197,24 @@ public class Header_AcceptEncoding_Test {
 			.run()
 			.assertHeader("Content-Encoding").isNull() // Should not be set
 			.assertHeader("Content-Type").is("text/direct")
-			.assertContent().is("foo");
+			.assertContent("foo");
 		c.get("/a")
 			.header(AcceptEncoding.of("*"))
 			.run()
 			.assertHeader("Content-Encoding").isNull() // Should not be set
 			.assertHeader("Content-Type").is("text/direct")
-			.assertContent().is("foo");
+			.assertContent("foo");
 
 		c.get("/b")
 			.header(AcceptEncoding.of("mycoding"))
 			.run()
 			.assertHeader("Content-Encoding").isNull() // Should not be set
-			.assertContent().is("foo");
+			.assertContent("foo");
 		c.get("/b")
 			.header(AcceptEncoding.of("*"))
 			.run()
 			.assertHeader("Content-Encoding").isNull() // Should not be set
-			.assertContent().is("foo");
+			.assertContent("foo");
 
 		byte[] body;
 		body = c.get("/c")
@@ -234,12 +234,12 @@ public class Header_AcceptEncoding_Test {
 			.header(AcceptEncoding.of("mycoding"))
 			.run()
 			.assertHeader("Content-Encoding").isNull() // Should not be set
-			.assertContent().is("foo");
+			.assertContent("foo");
 		c.get("/d")
 			.header(AcceptEncoding.of("*"))
 			.run()
 			.assertHeader("Content-Encoding").isNull() // Should not be set
-			.assertContent().is("foo");
+			.assertContent("foo");
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
diff --git a/juneau-utest/src/test/java/org/apache/juneau/rest/Header_Accept_Test.java b/juneau-utest/src/test/java/org/apache/juneau/rest/Header_Accept_Test.java
index 76d8707f9..fcfaea7a1 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/Header_Accept_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/Header_Accept_Test.java
@@ -65,19 +65,19 @@ public class Header_Accept_Test {
 		RestClient a = MockRestClient.buildLax(A.class);
 		a.put("/", null)
 			.run()
-			.assertContent().is("s2");
+			.assertContent("s2");
 		a.put("/", null)
 			.accept("text/s1")
 			.run()
-			.assertContent().is("s1");
+			.assertContent("s1");
 		a.put("/", null)
 			.accept("text/s2")
 			.run()
-			.assertContent().is("s2");
+			.assertContent("s2");
 		a.put("?noTrace=true", null)
 			.accept("text/s3")
 			.run()
-			.assertCode().is(406)
+			.assertStatus(406)
 			.assertContent().isContains("Unsupported media-type in request header 'Accept': 'text/s3'");
 	}
 
@@ -100,11 +100,11 @@ public class Header_Accept_Test {
 	@Test
 	public void b01_restMethodWithParsersSerializers() throws Exception {
 		RestClient b = MockRestClient.buildLax(B.class);
-		b.put("/", null).accept("text/s3").run().assertContent().is("s3");
+		b.put("/", null).accept("text/s3").run().assertContent("s3");
 		b.put("?noTrace=true", null)
 			.accept("text/s4")
 			.run()
-			.assertCode().is(406)
+			.assertStatus(406)
 			.assertContent().isContains(
 				"Unsupported media-type in request header 'Accept': 'text/s4'",
 				"Supported media-types: ['text/s3']"
@@ -132,23 +132,23 @@ public class Header_Accept_Test {
 		RestClient c = MockRestClient.buildLax(C.class);
 		c.put("/", null)
 			.run()
-			.assertContent().is("s2");
+			.assertContent("s2");
 		c.put("/", null)
 			.accept("text/s1")
 			.run()
-			.assertContent().is("s1");
+			.assertContent("s1");
 		c.put("/", null)
 			.accept("text/s2")
 			.run()
-			.assertContent().is("s2");
+			.assertContent("s2");
 		c.put("/", null)
 			.accept("text/s3")
 			.run()
-			.assertContent().is("s3");
+			.assertContent("s3");
 		c.put("?noTrace=true", null)
 			.accept("text/s4")
 			.run()
-			.assertCode().is(406)
+			.assertStatus(406)
 			.assertContent().isContains(
 				"Unsupported media-type in request header 'Accept': 'text/s4'",
 				"Supported media-types: ['text/s3','text/s1','text/s2']"
@@ -174,17 +174,17 @@ public class Header_Accept_Test {
 	public void d01_accept_valid() throws Exception {
 		RestClient d = MockRestClient.buildLax(D.class);
 		// "*/*" should match the first serializer, not the default serializer.
-		d.put("/", null).accept("*/*").run().assertContent().is("s1");
+		d.put("/", null).accept("*/*").run().assertContent("s1");
 		// "text/*" should match the first serializer, not the default serializer.
-		d.put("/", null).accept("text/*").run().assertContent().is("s1");
-		d.put("/", null).accept("bad/*,text/*").run().assertContent().is("s1");
-		d.put("/", null).accept("text/*,bad/*").run().assertContent().is("s1");
-		d.put("/", null).accept("text/s1;q=0.5,text/s2").run().assertContent().is("s2");
-		d.put("/", null).accept("text/s1,text/s2;q=0.5").run().assertContent().is("s1");
+		d.put("/", null).accept("text/*").run().assertContent("s1");
+		d.put("/", null).accept("bad/*,text/*").run().assertContent("s1");
+		d.put("/", null).accept("text/*,bad/*").run().assertContent("s1");
+		d.put("/", null).accept("text/s1;q=0.5,text/s2").run().assertContent("s2");
+		d.put("/", null).accept("text/s1,text/s2;q=0.5").run().assertContent("s1");
 		d.put("?noTrace=true", null)
 			.accept("bad/*")
 			.run()
-			.assertCode().is(406)
+			.assertStatus(406)
 			.assertContent().isContains(
 				"Unsupported media-type in request header 'Accept': 'bad/*'",
 				"Supported media-types: ['text/s1','text/s2']"
@@ -210,18 +210,18 @@ public class Header_Accept_Test {
 	@Test
 	public void e01_restMethodParserSerializerAnnotations() throws Exception {
 		RestClient e = MockRestClient.buildLax(E.class);
-		e.put("/", null).run().assertContent().is("s3");
-		e.put("/", null).accept("text/s3").run().assertContent().is("s3");
+		e.put("/", null).run().assertContent("s3");
+		e.put("/", null).accept("text/s3").run().assertContent("s3");
 		e.put("?noTrace=true", null)
 			.accept("text/s1")
 			.run()
-			.assertCode().is(406)
+			.assertStatus(406)
 			.assertContent().isContains(
 				"Unsupported media-type in request header 'Accept': 'text/s1'",
 				"Supported media-types: ['text/s3']"
 			);
 		e.put("?noTrace=true", null).accept("text/s2").run()
-			.assertCode().is(406)
+			.assertStatus(406)
 			.assertContent().isContains(
 				"Unsupported media-type in request header 'Accept': 'text/s2'",
 				"Supported media-types: ['text/s3']"
@@ -247,9 +247,9 @@ public class Header_Accept_Test {
 	@Test
 	public void f01_restMethodAddParsersSerializersAnnotations() throws Exception {
 		RestClient f = MockRestClient.build(F.class);
-		f.put("/", null).run().assertContent().is("s3");
-		f.put("/", null).accept("text/s1").run().assertContent().is("s1");
-		f.put("/", null).accept("text/s2").run().assertContent().is("s2");
-		f.put("/", null).accept("text/s3").run().assertContent().is("s3");
+		f.put("/", null).run().assertContent("s3");
+		f.put("/", null).accept("text/s1").run().assertContent("s1");
+		f.put("/", null).accept("text/s2").run().assertContent("s2");
+		f.put("/", null).accept("text/s3").run().assertContent("s3");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/rest/Header_ContentType_Test.java b/juneau-utest/src/test/java/org/apache/juneau/rest/Header_ContentType_Test.java
index 9360d62af..bfcfc1083 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/Header_ContentType_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/Header_ContentType_Test.java
@@ -45,16 +45,16 @@ public class Header_ContentType_Test {
 		RestClient a = MockRestClient.buildLax(A.class);
 		a.put("/a", null, ContentType.of(""))
 			.run()
-			.assertContent().is("p2");
+			.assertContent("p2");
 		a.put("/a", null, ContentType.of("text/p1"))
 			.run()
-			.assertContent().is("p1");
+			.assertContent("p1");
 		a.put("/a", null, ContentType.of("text/p2"))
 			.run()
-			.assertContent().is("p2");
+			.assertContent("p2");
 		a.put("/a?noTrace=true", null, ContentType.of("text/p3"))
 			.run()
-			.assertCode().is(415)
+			.assertStatus(415)
 			.assertContent().isContains("Unsupported media-type in request header 'Content-Type': 'text/p3'");
 	}
 
@@ -77,24 +77,24 @@ public class Header_ContentType_Test {
 	@Test
 	public void b01_restMethodWithParsersSerializers() throws Exception {
 		RestClient b = MockRestClient.buildLax(B.class);
-		b.put("/a", null).contentType("text/p3").run().assertContent().is("p3");
+		b.put("/a", null).contentType("text/p3").run().assertContent("p3");
 		b.put("/a?noTrace=true", null, ContentType.of(""))
 			.run()
-			.assertCode().is(415)
+			.assertStatus(415)
 			.assertContent().isContains(
 				"Unsupported media-type in request header 'Content-Type': 'text/p2'",
 				"Supported media-types: ['text/p3']"
 			);
 		b.put("/a?noTrace=true", null, ContentType.of("text/p1"))
 			.run()
-			.assertCode().is(415)
+			.assertStatus(415)
 			.assertContent().isContains(
 				"Unsupported media-type in request header 'Content-Type': 'text/p1'",
 				"Supported media-types: ['text/p3']"
 			);
 		b.put("/a?noTrace=true", null, ContentType.of("text/p2"))
 			.run()
-			.assertCode().is(415)
+			.assertStatus(415)
 			.assertContent().isContains(
 				"Unsupported media-type in request header 'Content-Type': 'text/p2'",
 				"Supported media-types: ['text/p3']"
@@ -120,13 +120,13 @@ public class Header_ContentType_Test {
 	@Test
 	public void c01_restMethodAddParsersSerializersInherit() throws Exception {
 		RestClient c = MockRestClient.buildLax(C.class);
-		c.put("/a", null, ContentType.of("")).run().assertContent().is("p2");
-		c.put("/a", null, ContentType.of("text/p1")).run().assertContent().is("p1");
-		c.put("/a", null, ContentType.of("text/p2")).run().assertContent().is("p2");
-		c.put("/a", null, ContentType.of("text/p3")).run().assertContent().is("p3");
+		c.put("/a", null, ContentType.of("")).run().assertContent("p2");
+		c.put("/a", null, ContentType.of("text/p1")).run().assertContent("p1");
+		c.put("/a", null, ContentType.of("text/p2")).run().assertContent("p2");
+		c.put("/a", null, ContentType.of("text/p3")).run().assertContent("p3");
 		c.put("/a?noTrace=true", null).contentType("text/p4")
 			.run()
-			.assertCode().is(415)
+			.assertStatus(415)
 			.assertContent().isContains(
 				"Unsupported media-type in request header 'Content-Type': 'text/p4'",
 				"Supported media-types: ['text/p3','text/p1','text/p2']"
@@ -154,20 +154,20 @@ public class Header_ContentType_Test {
 		RestClient d = MockRestClient.buildLax(D.class);
 		d.put("/a", null, ContentType.of(""))
 			.run()
-			.assertContent().is("p3");
+			.assertContent("p3");
 		d.put("/a", null, ContentType.of("text/p3"))
 			.run()
-			.assertContent().is("p3");
+			.assertContent("p3");
 		d.put("/a?noTrace=true", null, ContentType.of("text/p1"))
 			.run()
-			.assertCode().is(415)
+			.assertStatus(415)
 			.assertContent().isContains(
 				"Unsupported media-type in request header 'Content-Type': 'text/p1'",
 				"Supported media-types: ['text/p3']"
 			);
 		d.put("/a?noTrace=true", null, ContentType.of("text/p2"))
 			.run()
-			.assertCode().is(415)
+			.assertStatus(415)
 			.assertContent().isContains(
 				"Unsupported media-type in request header 'Content-Type': 'text/p2'",
 				"Supported media-types: ['text/p3']"
@@ -195,16 +195,16 @@ public class Header_ContentType_Test {
 		RestClient e = MockRestClient.build(E.class);
 		e.put("/a", null, ContentType.of(""))
 			.run()
-			.assertContent().is("p3");
+			.assertContent("p3");
 		e.put("/a", null, ContentType.of("text/p1"))
 			.run()
-			.assertContent().is("p1");
+			.assertContent("p1");
 		e.put("/a", null, ContentType.of("text/p2"))
 			.run()
-			.assertContent().is("p2");
+			.assertContent("p2");
 		e.put("/a", null, ContentType.of("text/p3"))
 			.run()
-			.assertContent().is("p3");
+			.assertContent("p3");
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
diff --git a/juneau-utest/src/test/java/org/apache/juneau/rest/Nls_Test.java b/juneau-utest/src/test/java/org/apache/juneau/rest/Nls_Test.java
index 6fa056758..5d198a1aa 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/Nls_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/Nls_Test.java
@@ -59,8 +59,8 @@ public class Nls_Test {
 	@Test
 	public void a01_basic() throws Exception {
 		RestClient a = MockRestClient.build(A.class);
-		a.get("/a").run().assertContent().is("value1");
-		a.get("/b").run().assertContent().is("value2");
+		a.get("/a").run().assertContent("value1");
+		a.get("/b").run().assertContent("value2");
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -98,6 +98,6 @@ public class Nls_Test {
 	@Test
 	public void c01_missingResourceBundle() throws Exception {
 		MockRestClient c = MockRestClient.build(C.class);
-		c.get("/a").run().assertContent().is("{!bad}");
+		c.get("/a").run().assertContent("{!bad}");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/rest/RestContext_Builder_Test.java b/juneau-utest/src/test/java/org/apache/juneau/rest/RestContext_Builder_Test.java
index f918414ea..0e89a99b1 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/RestContext_Builder_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/RestContext_Builder_Test.java
@@ -128,13 +128,13 @@ public class RestContext_Builder_Test {
 
 	@Test
 	public void b01_RestBean_fields() throws Exception {
-		b1b.get("/a1").run().assertContent().is("{id:1}");
-		b1b.get("/a2").run().assertContent().is("{id:2}");
-		b1b.get("/a3").run().assertContent().is("{id:1}");
-		b1b.get("/a4").run().assertContent().is("{id:2}");
-		b1b.get("/a5").run().assertContent().is("{id:1}");
-		b1b.get("/a6").run().assertContent().is("{id:2}");
-		b1b.get("/a7").run().assertContent().is("{id:1}");
-		b1b.get("/a8").run().assertContent().is("{id:2}");
+		b1b.get("/a1").run().assertContent("{id:1}");
+		b1b.get("/a2").run().assertContent("{id:2}");
+		b1b.get("/a3").run().assertContent("{id:1}");
+		b1b.get("/a4").run().assertContent("{id:2}");
+		b1b.get("/a5").run().assertContent("{id:1}");
+		b1b.get("/a6").run().assertContent("{id:2}");
+		b1b.get("/a7").run().assertContent("{id:1}");
+		b1b.get("/a8").run().assertContent("{id:2}");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/rest/RestOp_Params_Test.java b/juneau-utest/src/test/java/org/apache/juneau/rest/RestOp_Params_Test.java
index 751a87c7a..0fbc727ec 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/RestOp_Params_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/RestOp_Params_Test.java
@@ -126,22 +126,22 @@ public class RestOp_Params_Test {
 	@Test
 	public void a01_params() throws Exception {
 		RestClient a = MockRestClient.build(A.class);
-		a.post("/c", "foo").run().assertContent().is("foo");
-		a.post("/d", "foo").run().assertContent().is("foo");
-		a.post("/e", "foo").run().assertContent().is("foo");
-		a.get("/f").run().assertContent().is("OK");
-		a.get("/g").run().assertContent().is("OK");
-		a.get("/h").run().assertContent().is("OK");
-		a.get("/i").run().assertContent().is("true");
-		a.get("/j").run().assertContent().is("true");
-		a.get("/k").run().assertContent().is("true");
-		a.get("/l").run().assertContent().is("GET");
-		a.get("/n").run().assertContent().is("true");
-		a.get("/o").contentType("application/json").run().assertContent().is("org.apache.juneau.json.JsonParser");
-		a.get("/q").run().assertContent().is("true");
-		a.get("/r").run().assertContent().is("true");
-		a.get("/s").run().assertContent().is("true");
-		a.get("/t").run().assertContent().is("true");
+		a.post("/c", "foo").run().assertContent("foo");
+		a.post("/d", "foo").run().assertContent("foo");
+		a.post("/e", "foo").run().assertContent("foo");
+		a.get("/f").run().assertContent("OK");
+		a.get("/g").run().assertContent("OK");
+		a.get("/h").run().assertContent("OK");
+		a.get("/i").run().assertContent("true");
+		a.get("/j").run().assertContent("true");
+		a.get("/k").run().assertContent("true");
+		a.get("/l").run().assertContent("GET");
+		a.get("/n").run().assertContent("true");
+		a.get("/o").contentType("application/json").run().assertContent("org.apache.juneau.json.JsonParser");
+		a.get("/q").run().assertContent("true");
+		a.get("/r").run().assertContent("true");
+		a.get("/s").run().assertContent("true");
+		a.get("/t").run().assertContent("true");
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -289,42 +289,42 @@ public class RestOp_Params_Test {
 	public void b01_headers() throws Exception {
 		RestClient b = MockRestClient.build(B1.class);
 
-		b.get("/accept").accept("text/foo").run().assertContent().is("text/foo");
-		b.get("/accept").accept("text/foo+bar").run().assertContent().is("text/foo+bar");
-		b.get("/accept").accept("text/*").run().assertContent().is("text/*");
-		b.get("/accept").accept("*/foo").run().assertContent().is("*/foo");
-		b.get("/accept").accept("text/foo;q=1.0").run().assertContent().is("text/foo;q=1.0");
-		b.get("/accept").accept("text/foo;q=0.9").run().assertContent().is("text/foo;q=0.9");
-		b.get("/accept").accept("text/foo;x=X;q=0.9;y=Y").run().assertContent().is("text/foo;x=X;q=0.9;y=Y");
-		b.get("/accept?Accept=text/foo").run().assertContent().is("text/foo");
-		b.get("/acceptCharset").acceptCharset("UTF-8").run().assertContent().is("UTF-8");
-		b.get("/acceptCharset?Accept-Charset=UTF-8").run().assertContent().is("UTF-8");
-		b.get("/acceptEncoding?Accept-Encoding=*").run().assertContent().is("*");
-		b.get("/authorization?Authorization=foo").run().assertContent().is("foo");
-		b.get("/cacheControl?Cache-Control=foo").run().assertContent().is("foo");
-		b.get("/connection?Connection=foo").run().assertContent().is("foo");
-		b.get("/contentLength?Content-Length=0").run().assertContent().is("0");
-		b.get("/contentType").contentType("text/foo").run().assertContent().is("text/foo");
-		b.get("/contentType?Content-Type=text/foo").run().assertContent().is("text/foo");
-		b.get("/date?Date=Mon, 3 Dec 2007 10:15:30 GMT").run().assertContent().is("Mon, 3 Dec 2007 10:15:30 GMT");
-		b.get("/expect?Expect=100-continue").run().assertContent().is("100-continue");
-		b.get("/from?From=foo").run().assertContent().is("foo");
-		b.get("/host").uriHost("localhost").run().assertContent().is("localhost");
-		b.get("/host?Host=localhost").run().assertContent().is("localhost");
-		b.get("/ifMatch?If-Match=\"foo\"").run().assertContent().is("\"foo\"");
-		b.get("/ifModifiedSince?If-Modified-Since=Mon, 3 Dec 2007 10:15:30 GMT").run().assertContent().is("Mon, 3 Dec 2007 10:15:30 GMT");
-		b.get("/ifNoneMatch?If-None-Match=\"foo\"").run().assertContent().is("\"foo\"");
-		b.get("/ifRange?If-Range=\"foo\"").run().assertContent().is("\"foo\"");
-		b.get("/ifUnmodifiedSince?If-Unmodified-Since=Mon, 3 Dec 2007 10:15:30 GMT").run().assertContent().is("Mon, 3 Dec 2007 10:15:30 GMT");
-		b.get("/maxForwards?Max-Forwards=123").run().assertContent().is("123");
-		b.get("/pragma?Pragma=foo").run().assertContent().is("foo");
-		b.get("/proxyAuthorization?Proxy-Authorization=foo").run().assertContent().is("foo");
-		b.get("/range?Range=foo").run().assertContent().is("foo");
-		b.get("/referer?Referer=foo").run().assertContent().is("foo");
-		b.get("/te?TE=foo").run().assertContent().is("foo");
-		b.get("/upgrade?Upgrade=foo").run().assertContent().is("foo");
-		b.get("/userAgent?User-Agent=foo").run().assertContent().is("foo");
-		b.get("/warning?Warning=foo").run().assertContent().is("foo");
+		b.get("/accept").accept("text/foo").run().assertContent("text/foo");
+		b.get("/accept").accept("text/foo+bar").run().assertContent("text/foo+bar");
+		b.get("/accept").accept("text/*").run().assertContent("text/*");
+		b.get("/accept").accept("*/foo").run().assertContent("*/foo");
+		b.get("/accept").accept("text/foo;q=1.0").run().assertContent("text/foo;q=1.0");
+		b.get("/accept").accept("text/foo;q=0.9").run().assertContent("text/foo;q=0.9");
+		b.get("/accept").accept("text/foo;x=X;q=0.9;y=Y").run().assertContent("text/foo;x=X;q=0.9;y=Y");
+		b.get("/accept?Accept=text/foo").run().assertContent("text/foo");
+		b.get("/acceptCharset").acceptCharset("UTF-8").run().assertContent("UTF-8");
+		b.get("/acceptCharset?Accept-Charset=UTF-8").run().assertContent("UTF-8");
+		b.get("/acceptEncoding?Accept-Encoding=*").run().assertContent("*");
+		b.get("/authorization?Authorization=foo").run().assertContent("foo");
+		b.get("/cacheControl?Cache-Control=foo").run().assertContent("foo");
+		b.get("/connection?Connection=foo").run().assertContent("foo");
+		b.get("/contentLength?Content-Length=0").run().assertContent("0");
+		b.get("/contentType").contentType("text/foo").run().assertContent("text/foo");
+		b.get("/contentType?Content-Type=text/foo").run().assertContent("text/foo");
+		b.get("/date?Date=Mon, 3 Dec 2007 10:15:30 GMT").run().assertContent("Mon, 3 Dec 2007 10:15:30 GMT");
+		b.get("/expect?Expect=100-continue").run().assertContent("100-continue");
+		b.get("/from?From=foo").run().assertContent("foo");
+		b.get("/host").uriHost("localhost").run().assertContent("localhost");
+		b.get("/host?Host=localhost").run().assertContent("localhost");
+		b.get("/ifMatch?If-Match=\"foo\"").run().assertContent("\"foo\"");
+		b.get("/ifModifiedSince?If-Modified-Since=Mon, 3 Dec 2007 10:15:30 GMT").run().assertContent("Mon, 3 Dec 2007 10:15:30 GMT");
+		b.get("/ifNoneMatch?If-None-Match=\"foo\"").run().assertContent("\"foo\"");
+		b.get("/ifRange?If-Range=\"foo\"").run().assertContent("\"foo\"");
+		b.get("/ifUnmodifiedSince?If-Unmodified-Since=Mon, 3 Dec 2007 10:15:30 GMT").run().assertContent("Mon, 3 Dec 2007 10:15:30 GMT");
+		b.get("/maxForwards?Max-Forwards=123").run().assertContent("123");
+		b.get("/pragma?Pragma=foo").run().assertContent("foo");
+		b.get("/proxyAuthorization?Proxy-Authorization=foo").run().assertContent("foo");
+		b.get("/range?Range=foo").run().assertContent("foo");
+		b.get("/referer?Referer=foo").run().assertContent("foo");
+		b.get("/te?TE=foo").run().assertContent("foo");
+		b.get("/upgrade?Upgrade=foo").run().assertContent("foo");
+		b.get("/userAgent?User-Agent=foo").run().assertContent("foo");
+		b.get("/warning?Warning=foo").run().assertContent("foo");
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -370,7 +370,7 @@ public class RestOp_Params_Test {
 	@Test
 	public void b02_customHeader() throws Exception {
 		RestClient b = MockRestClient.build(B2.class);
-		b.get("/a").header("Custom", "foo").run().assertContent().is("foo");
-		b.get("/a?Custom=foo").run().assertContent().is("foo");
+		b.get("/a").header("Custom", "foo").run().assertContent("foo");
+		b.get("/a?Custom=foo").run().assertContent("foo");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/rest/RestOp_Returns_Test.java b/juneau-utest/src/test/java/org/apache/juneau/rest/RestOp_Returns_Test.java
index 3b5577cd8..2b247e534 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/RestOp_Returns_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/RestOp_Returns_Test.java
@@ -65,28 +65,28 @@ public class RestOp_Returns_Test {
 	@Test
 	public void a01_responseBeans() throws Exception {
 		RestClient c = client(A.class);
-		c.get("/accepted").run().assertStatus().asCode().is(Accepted.STATUS_CODE).assertContent().is(Accepted.REASON_PHRASE);
-		c.get("/alreadyReported").run().assertStatus().asCode().is(AlreadyReported.STATUS_CODE).assertContent().is(AlreadyReported.REASON_PHRASE);
-		c.get("/continue").run().assertStatus().asCode().is(Continue.STATUS_CODE + 1000).assertContent().is(Continue.REASON_PHRASE);
-		c.get("/created").run().assertStatus().asCode().is(Created.STATUS_CODE).assertContent().is(Created.REASON_PHRASE);
-		c.get("/earlyHints").run().assertStatus().asCode().is(EarlyHints.STATUS_CODE + 1000).assertContent().is(EarlyHints.REASON_PHRASE);
-		c.get("/found").run().assertStatus().asCode().is(Found.STATUS_CODE).assertContent().is(Found.REASON_PHRASE);
-		c.get("/imUsed").run().assertStatus().asCode().is(IMUsed.STATUS_CODE).assertContent().is(IMUsed.REASON_PHRASE);
-		c.get("/movedPermanently").run().assertStatus().asCode().is(MovedPermanently.STATUS_CODE).assertContent().is(MovedPermanently.REASON_PHRASE);
-		c.get("/multipleChoices").run().assertStatus().asCode().is(MultipleChoices.STATUS_CODE).assertContent().is(MultipleChoices.REASON_PHRASE);
-		c.get("/multiStatus").run().assertStatus().asCode().is(MultiStatus.STATUS_CODE).assertContent().is(MultiStatus.REASON_PHRASE);
+		c.get("/accepted").run().assertStatus().asCode().is(Accepted.STATUS_CODE).assertContent(Accepted.REASON_PHRASE);
+		c.get("/alreadyReported").run().assertStatus().asCode().is(AlreadyReported.STATUS_CODE).assertContent(AlreadyReported.REASON_PHRASE);
+		c.get("/continue").run().assertStatus().asCode().is(Continue.STATUS_CODE + 1000).assertContent(Continue.REASON_PHRASE);
+		c.get("/created").run().assertStatus().asCode().is(Created.STATUS_CODE).assertContent(Created.REASON_PHRASE);
+		c.get("/earlyHints").run().assertStatus().asCode().is(EarlyHints.STATUS_CODE + 1000).assertContent(EarlyHints.REASON_PHRASE);
+		c.get("/found").run().assertStatus().asCode().is(Found.STATUS_CODE).assertContent(Found.REASON_PHRASE);
+		c.get("/imUsed").run().assertStatus().asCode().is(IMUsed.STATUS_CODE).assertContent(IMUsed.REASON_PHRASE);
+		c.get("/movedPermanently").run().assertStatus().asCode().is(MovedPermanently.STATUS_CODE).assertContent(MovedPermanently.REASON_PHRASE);
+		c.get("/multipleChoices").run().assertStatus().asCode().is(MultipleChoices.STATUS_CODE).assertContent(MultipleChoices.REASON_PHRASE);
+		c.get("/multiStatus").run().assertStatus().asCode().is(MultiStatus.STATUS_CODE).assertContent(MultiStatus.REASON_PHRASE);
 		c.get("/noContent").run().assertStatus().asCode().is(NoContent.STATUS_CODE).assertContent().isEmpty();
-		c.get("/nonAuthoritiveInformation").run().assertStatus().asCode().is(NonAuthoritiveInformation.STATUS_CODE).assertContent().is(NonAuthoritiveInformation.REASON_PHRASE);
+		c.get("/nonAuthoritiveInformation").run().assertStatus().asCode().is(NonAuthoritiveInformation.STATUS_CODE).assertContent(NonAuthoritiveInformation.REASON_PHRASE);
 		c.get("/notModified").run().assertStatus().asCode().is(NotModified.STATUS_CODE).assertContent().isEmpty();
-		c.get("/ok").run().assertStatus().asCode().is(Ok.STATUS_CODE).assertContent().is(Ok.REASON_PHRASE);
-		c.get("/partialContent").run().assertStatus().asCode().is(PartialContent.STATUS_CODE).assertContent().is(PartialContent.REASON_PHRASE);
-		c.get("/permanentRedirect").run().assertStatus().asCode().is(PermanentRedirect.STATUS_CODE).assertContent().is(PermanentRedirect.REASON_PHRASE);
-		c.get("/processing").run().assertStatus().asCode().is(Processing.STATUS_CODE + 1000).assertContent().is(Processing.REASON_PHRASE);
+		c.get("/ok").run().assertStatus().asCode().is(Ok.STATUS_CODE).assertContent(Ok.REASON_PHRASE);
+		c.get("/partialContent").run().assertStatus().asCode().is(PartialContent.STATUS_CODE).assertContent(PartialContent.REASON_PHRASE);
+		c.get("/permanentRedirect").run().assertStatus().asCode().is(PermanentRedirect.STATUS_CODE).assertContent(PermanentRedirect.REASON_PHRASE);
+		c.get("/processing").run().assertStatus().asCode().is(Processing.STATUS_CODE + 1000).assertContent(Processing.REASON_PHRASE);
 		c.get("/resetContent").run().assertStatus().asCode().is(ResetContent.STATUS_CODE).assertContent().isEmpty();
-		c.get("/seeOther").run().assertStatus().asCode().is(SeeOther.STATUS_CODE).assertContent().is(SeeOther.REASON_PHRASE);
-		c.get("/switchingProtocols").run().assertStatus().asCode().is(SwitchingProtocols.STATUS_CODE + 1000).assertContent().is(SwitchingProtocols.REASON_PHRASE);
-		c.get("/temporaryRedirect").run().assertStatus().asCode().is(TemporaryRedirect.STATUS_CODE).assertContent().is(TemporaryRedirect.REASON_PHRASE);
-		c.get("/useProxy").run().assertStatus().asCode().is(UseProxy.STATUS_CODE).assertContent().is(UseProxy.REASON_PHRASE);
+		c.get("/seeOther").run().assertStatus().asCode().is(SeeOther.STATUS_CODE).assertContent(SeeOther.REASON_PHRASE);
+		c.get("/switchingProtocols").run().assertStatus().asCode().is(SwitchingProtocols.STATUS_CODE + 1000).assertContent(SwitchingProtocols.REASON_PHRASE);
+		c.get("/temporaryRedirect").run().assertStatus().asCode().is(TemporaryRedirect.STATUS_CODE).assertContent(TemporaryRedirect.REASON_PHRASE);
+		c.get("/useProxy").run().assertStatus().asCode().is(UseProxy.STATUS_CODE).assertContent(UseProxy.REASON_PHRASE);
 	}
 
 	@Test
@@ -153,7 +153,7 @@ public class RestOp_Returns_Test {
 		RestClient b = MockRestClient.build(B.class);
 		b.get("/a")
 			.run()
-			.assertContent().is("foo");
+			.assertContent("foo");
 		b.get("/b")
 			.run()
 			.assertHeader("Foo").is("Bar");
@@ -162,13 +162,13 @@ public class RestOp_Returns_Test {
 			.assertHeader("Content-Type").is("application/json");
 		b.get("/d?foo=bar")
 			.run()
-			.assertContent().is("bar");
+			.assertContent("bar");
 		b.get("/e")
 			.run()
-			.assertContent().is("foo");
+			.assertContent("foo");
 		b.get("/f")
 			.run()
-			.assertContent().is("foo");
+			.assertContent("foo");
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
diff --git a/juneau-utest/src/test/java/org/apache/juneau/rest/RestOp_Throws_Test.java b/juneau-utest/src/test/java/org/apache/juneau/rest/RestOp_Throws_Test.java
index fbc52c247..d7780eea4 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/RestOp_Throws_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/RestOp_Throws_Test.java
@@ -77,136 +77,136 @@ public class RestOp_Throws_Test {
 		RestClient a = MockRestClient.buildLax(A.class);
 		a.get("/badRequest")
 			.run()
-			.assertCode().is(400)
-			.assertContent().is("Bad Request");
+			.assertStatus(400)
+			.assertContent("Bad Request");
 		a.get("/conflict")
 			.run()
-			.assertCode().is(409)
-			.assertContent().is("Conflict");
+			.assertStatus(409)
+			.assertContent("Conflict");
 		a.get("/expectationFailed")
 			.run()
-			.assertCode().is(417)
-			.assertContent().is("Expectation Failed");
+			.assertStatus(417)
+			.assertContent("Expectation Failed");
 		a.get("/failedDependency")
 			.run()
-			.assertCode().is(424)
-			.assertContent().is("Failed Dependency");
+			.assertStatus(424)
+			.assertContent("Failed Dependency");
 		a.get("/forbidden")
 			.run()
-			.assertCode().is(403)
-			.assertContent().is("Forbidden");
+			.assertStatus(403)
+			.assertContent("Forbidden");
 		a.get("/gone")
 			.run()
-			.assertCode().is(410)
-			.assertContent().is("Gone");
+			.assertStatus(410)
+			.assertContent("Gone");
 		a.get("/httpVersionNotSupported")
 			.run()
-			.assertCode().is(505)
-			.assertContent().is("HTTP Version Not Supported");
+			.assertStatus(505)
+			.assertContent("HTTP Version Not Supported");
 		a.get("/insufficientStorage")
 			.run()
-			.assertCode().is(507)
-			.assertContent().is("Insufficient Storage");
+			.assertStatus(507)
+			.assertContent("Insufficient Storage");
 		a.get("/internalServerError")
 			.run()
-			.assertCode().is(500)
-			.assertContent().is("Internal Server Error");
+			.assertStatus(500)
+			.assertContent("Internal Server Error");
 		a.get("/lengthRequired")
 			.run()
-			.assertCode().is(411)
-			.assertContent().is("Length Required");
+			.assertStatus(411)
+			.assertContent("Length Required");
 		a.get("/locked")
 			.run()
-			.assertCode().is(423)
-			.assertContent().is("Locked");
+			.assertStatus(423)
+			.assertContent("Locked");
 		a.get("/loopDetected")
 			.run()
-			.assertCode().is(508)
-			.assertContent().is("Loop Detected");
+			.assertStatus(508)
+			.assertContent("Loop Detected");
 		a.get("/methodNotAllowed")
 			.run()
-			.assertCode().is(405)
-			.assertContent().is("Method Not Allowed");
+			.assertStatus(405)
+			.assertContent("Method Not Allowed");
 		a.get("/misdirectedRequest")
 			.run()
-			.assertCode().is(421)
-			.assertContent().is("Misdirected Request");
+			.assertStatus(421)
+			.assertContent("Misdirected Request");
 		a.get("/networkAuthenticationRequired")
 			.run()
-			.assertCode().is(511)
-			.assertContent().is("Network Authentication Required");
+			.assertStatus(511)
+			.assertContent("Network Authentication Required");
 		a.get("/notAcceptable")
 			.run()
-			.assertCode().is(406)
-			.assertContent().is("Not Acceptable");
+			.assertStatus(406)
+			.assertContent("Not Acceptable");
 		a.get("/notExtended")
 			.run()
-			.assertCode().is(510)
-			.assertContent().is("Not Extended");
+			.assertStatus(510)
+			.assertContent("Not Extended");
 		a.get("/notFound")
 			.run()
-			.assertCode().is(404)
-			.assertContent().is("Not Found");
+			.assertStatus(404)
+			.assertContent("Not Found");
 		a.get("/notImplemented")
 			.run()
-			.assertCode().is(501)
-			.assertContent().is("Not Implemented");
+			.assertStatus(501)
+			.assertContent("Not Implemented");
 		a.get("/payloadTooLarge")
 			.run()
-			.assertCode().is(413)
-			.assertContent().is("Payload Too Large");
+			.assertStatus(413)
+			.assertContent("Payload Too Large");
 		a.get("/preconditionFailed")
 			.run()
-			.assertCode().is(412)
-			.assertContent().is("Precondition Failed");
+			.assertStatus(412)
+			.assertContent("Precondition Failed");
 		a.get("/preconditionRequired")
 			.run()
-			.assertCode().is(428)
-			.assertContent().is("Precondition Required");
+			.assertStatus(428)
+			.assertContent("Precondition Required");
 		a.get("/rangeNotSatisfiable")
 			.run()
-			.assertCode().is(416)
-			.assertContent().is("Range Not Satisfiable");
+			.assertStatus(416)
+			.assertContent("Range Not Satisfiable");
 		a.get("/requestHeaderFieldsTooLarge")
 			.run()
-			.assertCode().is(431)
-			.assertContent().is("Request Header Fields Too Large");
+			.assertStatus(431)
+			.assertContent("Request Header Fields Too Large");
 		a.get("/serviceUnavailable")
 			.run()
-			.assertCode().is(503)
-			.assertContent().is("Service Unavailable");
+			.assertStatus(503)
+			.assertContent("Service Unavailable");
 		a.get("/tooManyRequests")
 			.run()
-			.assertCode().is(429)
-			.assertContent().is("Too Many Requests");
+			.assertStatus(429)
+			.assertContent("Too Many Requests");
 		a.get("/unauthorized")
 			.run()
-			.assertCode().is(401)
-			.assertContent().is("Unauthorized");
+			.assertStatus(401)
+			.assertContent("Unauthorized");
 		a.get("/unavailableForLegalReasons")
 			.run()
-			.assertCode().is(451)
-			.assertContent().is("Unavailable For Legal Reasons");
+			.assertStatus(451)
+			.assertContent("Unavailable For Legal Reasons");
 		a.get("/unprocessableEntity")
 			.run()
-			.assertCode().is(422)
-			.assertContent().is("Unprocessable Entity");
+			.assertStatus(422)
+			.assertContent("Unprocessable Entity");
 		a.get("/unsupportedMediaType")
 			.run()
-			.assertCode().is(415)
-			.assertContent().is("Unsupported Media Type");
+			.assertStatus(415)
+			.assertContent("Unsupported Media Type");
 		a.get("/upgradeRequired")
 			.run()
-			.assertCode().is(426)
-			.assertContent().is("Upgrade Required");
+			.assertStatus(426)
+			.assertContent("Upgrade Required");
 		a.get("/uriTooLong")
 			.run()
-			.assertCode().is(414)
-			.assertContent().is("URI Too Long");
+			.assertStatus(414)
+			.assertContent("URI Too Long");
 		a.get("/variantAlsoNegotiates")
 			.run()
-			.assertCode().is(506)
-			.assertContent().is("Variant Also Negotiates");
+			.assertStatus(506)
+			.assertContent("Variant Also Negotiates");
 	}
 
 	//-----------------------------------------------------------------------------------------------------------------
@@ -256,136 +256,136 @@ public class RestOp_Throws_Test {
 		RestClient b = MockRestClient.buildLax(B.class);
 		b.get("/badRequest")
 			.run()
-			.assertCode().is(400)
-			.assertContent().is("foo bar");
+			.assertStatus(400)
+			.assertContent("foo bar");
 		b.get("/conflict")
 			.run()
-			.assertCode().is(409)
-			.assertContent().is("foo bar");
+			.assertStatus(409)
+			.assertContent("foo bar");
 		b.get("/expectationFailed")
 			.run()
-			.assertCode().is(417)
-			.assertContent().is("foo bar");
+			.assertStatus(417)
+			.assertContent("foo bar");
 		b.get("/failedDependency")
 			.run()
-			.assertCode().is(424)
-			.assertContent().is("foo bar");
+			.assertStatus(424)
+			.assertContent("foo bar");
 		b.get("/forbidden")
 			.run()
-			.assertCode().is(403)
-			.assertContent().is("foo bar");
+			.assertStatus(403)
+			.assertContent("foo bar");
 		b.get("/gone")
 			.run()
-			.assertCode().is(410)
-			.assertContent().is("foo bar");
+			.assertStatus(410)
+			.assertContent("foo bar");
 		b.get("/httpVersionNotSupported")
 			.run()
-			.assertCode().is(505)
-			.assertContent().is("foo bar");
+			.assertStatus(505)
+			.assertContent("foo bar");
 		b.get("/insufficientStorage")
 			.run()
-			.assertCode().is(507)
-			.assertContent().is("foo bar");
+			.assertStatus(507)
+			.assertContent("foo bar");
 		b.get("/internalServerError")
 			.run()
-			.assertCode().is(500)
-			.assertContent().is("foo bar");
+			.assertStatus(500)
+			.assertContent("foo bar");
 		b.get("/lengthRequired")
 			.run()
-			.assertCode().is(411)
-			.assertContent().is("foo bar");
+			.assertStatus(411)
+			.assertContent("foo bar");
 		b.get("/locked")
 			.run()
-			.assertCode().is(423)
-			.assertContent().is("foo bar");
+			.assertStatus(423)
+			.assertContent("foo bar");
 		b.get("/loopDetected")
 			.run()
-			.assertCode().is(508)
-			.assertContent().is("foo bar");
+			.assertStatus(508)
+			.assertContent("foo bar");
 		b.get("/methodNotAllowed")
 			.run()
-			.assertCode().is(405)
-			.assertContent().is("foo bar");
+			.assertStatus(405)
+			.assertContent("foo bar");
 		b.get("/misdirectedRequest")
 			.run()
-			.assertCode().is(421)
-			.assertContent().is("foo bar");
+			.assertStatus(421)
+			.assertContent("foo bar");
 		b.get("/networkAuthenticationRequired")
 			.run()
-			.assertCode().is(511)
-			.assertContent().is("foo bar");
+			.assertStatus(511)
+			.assertContent("foo bar");
 		b.get("/notAcceptable")
 			.run()
-			.assertCode().is(406)
-			.assertContent().is("foo bar");
+			.assertStatus(406)
+			.assertContent("foo bar");
 		b.get("/notExtended")
 			.run()
-			.assertCode().is(510)
-			.assertContent().is("foo bar");
+			.assertStatus(510)
+			.assertContent("foo bar");
 		b.get("/notFound")
 			.run()
-			.assertCode().is(404)
-			.assertContent().is("foo bar");
+			.assertStatus(404)
+			.assertContent("foo bar");
 		b.get("/notImplemented")
 			.run()
-			.assertCode().is(501)
-			.assertContent().is("foo bar");
+			.assertStatus(501)
+			.assertContent("foo bar");
 		b.get("/payloadTooLarge")
 			.run()
-			.assertCode().is(413)
-			.assertContent().is("foo bar");
+			.assertStatus(413)
+			.assertContent("foo bar");
 		b.get("/preconditionFailed")
 			.run()
-			.assertCode().is(412)
-			.assertContent().is("foo bar");
+			.assertStatus(412)
+			.assertContent("foo bar");
 		b.get("/preconditionRequired")
 			.run()
-			.assertCode().is(428)
-			.assertContent().is("foo bar");
+			.assertStatus(428)
+			.assertContent("foo bar");
 		b.get("/rangeNotSatisfiable")
 			.run()
-			.assertCode().is(416)
-			.assertContent().is("foo bar");
+			.assertStatus(416)
+			.assertContent("foo bar");
 		b.get("/requestHeaderFieldsTooLarge")
 			.run()
-			.assertCode().is(431)
-			.assertContent().is("foo bar");
+			.assertStatus(431)
+			.assertContent("foo bar");
 		b.get("/serviceUnavailable")
 			.run()
-			.assertCode().is(503)
-			.assertContent().is("foo bar");
+			.assertStatus(503)
+			.assertContent("foo bar");
 		b.get("/tooManyRequests")
 			.run()
-			.assertCode().is(429)
-			.assertContent().is("foo bar");
+			.assertStatus(429)
+			.assertContent("foo bar");
 		b.get("/unauthorized")
 			.run()
-			.assertCode().is(401)
-			.assertContent().is("foo bar");
+			.assertStatus(401)
+			.assertContent("foo bar");
 		b.get("/unavailableForLegalReasons")
 			.run()
-			.assertCode().is(451)
-			.assertContent().is("foo bar");
+			.assertStatus(451)
+			.assertContent("foo bar");
 		b.get("/unprocessableEntity")
 			.run()
-			.assertCode().is(422)
-			.assertContent().is("foo bar");
+			.assertStatus(422)
+			.assertContent("foo bar");
 		b.get("/unsupportedMediaType")
 			.run()
-			.assertCode().is(415)
-			.assertContent().is("foo bar");
+			.assertStatus(415)
+			.assertContent("foo bar");
 		b.get("/upgradeRequired")
 			.run()
-			.assertCode().is(426)
-			.assertContent().is("foo bar");
+			.assertStatus(426)
+			.assertContent("foo bar");
 		b.get("/uriTooLong")
 			.run()
-			.assertCode().is(414)
-			.assertContent().is("foo bar");
+			.assertStatus(414)
+			.assertContent("foo bar");
 		b.get("/variantAlsoNegotiates")
 			.run()
-			.assertCode().is(506)
-			.assertContent().is("foo bar");
+			.assertStatus(506)
+			.assertContent("foo bar");
 	}
 
 	//-----------------------------------------------------------------------------------------------------------------
@@ -436,136 +436,136 @@ public class RestOp_Throws_Test {
 		RestClient c = MockRestClient.buildLax(C.class);
 		c.get("/badRequest")
 			.run()
-			.assertCode().is(400)
-			.assertContent().is("foo");
+			.assertStatus(400)
+			.assertContent("foo");
 		c.get("/conflict")
 			.run()
-			.assertCode().is(409)
-			.assertContent().is("foo");
+			.assertStatus(409)
+			.assertContent("foo");
 		c.get("/expectationFailed")
 			.run()
-			.assertCode().is(417)
-			.assertContent().is("foo");
+			.assertStatus(417)
+			.assertContent("foo");
 		c.get("/failedDependency")
 			.run()
-			.assertCode().is(424)
-			.assertContent().is("foo");
+			.assertStatus(424)
+			.assertContent("foo");
 		c.get("/forbidden")
 			.run()
-			.assertCode().is(403)
-			.assertContent().is("foo");
+			.assertStatus(403)
+			.assertContent("foo");
 		c.get("/gone")
 			.run()
-			.assertCode().is(410)
-			.assertContent().is("foo");
+			.assertStatus(410)
+			.assertContent("foo");
 		c.get("/httpVersionNotSupported")
 			.run()
-			.assertCode().is(505)
-			.assertContent().is("foo");
+			.assertStatus(505)
+			.assertContent("foo");
 		c.get("/insufficientStorage")
 			.run()
-			.assertCode().is(507)
-			.assertContent().is("foo");
+			.assertStatus(507)
+			.assertContent("foo");
 		c.get("/internalServerError")
 			.run()
-			.assertCode().is(500)
-			.assertContent().is("foo");
+			.assertStatus(500)
+			.assertContent("foo");
 		c.get("/lengthRequired")
 			.run()
-			.assertCode().is(411)
-			.assertContent().is("foo");
+			.assertStatus(411)
+			.assertContent("foo");
 		c.get("/locked")
 			.run()
-			.assertCode().is(423)
-			.assertContent().is("foo");
+			.assertStatus(423)
+			.assertContent("foo");
 		c.get("/loopDetected")
 			.run()
-			.assertCode().is(508)
-			.assertContent().is("foo");
+			.assertStatus(508)
+			.assertContent("foo");
 		c.get("/methodNotAllowed")
 			.run()
-			.assertCode().is(405)
-			.assertContent().is("foo");
+			.assertStatus(405)
+			.assertContent("foo");
 		c.get("/misdirectedRequest")
 			.run()
-			.assertCode().is(421)
-			.assertContent().is("foo");
+			.assertStatus(421)
+			.assertContent("foo");
 		c.get("/networkAuthenticationRequired")
 			.run()
-			.assertCode().is(511)
-			.assertContent().is("foo");
+			.assertStatus(511)
+			.assertContent("foo");
 		c.get("/notAcceptable")
 			.run()
-			.assertCode().is(406)
-			.assertContent().is("foo");
+			.assertStatus(406)
+			.assertContent("foo");
 		c.get("/notExtended")
 			.run()
-			.assertCode().is(510)
-			.assertContent().is("foo");
+			.assertStatus(510)
+			.assertContent("foo");
 		c.get("/notFound")
 			.run()
-			.assertCode().is(404)
-			.assertContent().is("foo");
+			.assertStatus(404)
+			.assertContent("foo");
 		c.get("/notImplemented")
 			.run()
-			.assertCode().is(501)
-			.assertContent().is("foo");
+			.assertStatus(501)
+			.assertContent("foo");
 		c.get("/payloadTooLarge")
 			.run()
-			.assertCode().is(413)
-			.assertContent().is("foo");
+			.assertStatus(413)
+			.assertContent("foo");
 		c.get("/preconditionFailed").
 			run()
-			.assertCode().is(412)
-			.assertContent().is("foo");
+			.assertStatus(412)
+			.assertContent("foo");
 		c.get("/preconditionRequired")
 			.run()
-			.assertCode().is(428)
-			.assertContent().is("foo");
+			.assertStatus(428)
+			.assertContent("foo");
 		c.get("/rangeNotSatisfiable")
 			.run()
-			.assertCode().is(416)
-			.assertContent().is("foo");
+			.assertStatus(416)
+			.assertContent("foo");
 		c.get("/requestHeaderFieldsTooLarge")
 			.run()
-			.assertCode().is(431)
-			.assertContent().is("foo");
+			.assertStatus(431)
+			.assertContent("foo");
 		c.get("/serviceUnavailable")
 			.run()
-			.assertCode().is(503)
-			.assertContent().is("foo");
+			.assertStatus(503)
+			.assertContent("foo");
 		c.get("/tooManyRequests")
 			.run()
-			.assertCode().is(429)
-			.assertContent().is("foo");
+			.assertStatus(429)
+			.assertContent("foo");
 		c.get("/unauthorized")
 			.run()
-			.assertCode().is(401)
-			.assertContent().is("foo");
+			.assertStatus(401)
+			.assertContent("foo");
 		c.get("/unavailableForLegalReasons")
 			.run()
-			.assertCode().is(451)
-			.assertContent().is("foo");
+			.assertStatus(451)
+			.assertContent("foo");
 		c.get("/unprocessableEntity")
 			.run()
-			.assertCode().is(422)
-			.assertContent().is("foo");
+			.assertStatus(422)
+			.assertContent("foo");
 		c.get("/unsupportedMediaType")
 			.run()
-			.assertCode().is(415)
-			.assertContent().is("foo");
+			.assertStatus(415)
+			.assertContent("foo");
 		c.get("/upgradeRequired")
 			.run()
-			.assertCode().is(426)
-			.assertContent().is("foo");
+			.assertStatus(426)
+			.assertContent("foo");
 		c.get("/uriTooLong")
 			.run()
-			.assertCode().is(414)
-			.assertContent().is("foo");
+			.assertStatus(414)
+			.assertContent("foo");
 		c.get("/variantAlsoNegotiates")
 			.run()
-			.assertCode().is(506)
-			.assertContent().is("foo");
+			.assertStatus(506)
+			.assertContent("foo");
 	}
 
 	//-----------------------------------------------------------------------------------------------------------------
@@ -614,136 +614,136 @@ public class RestOp_Throws_Test {
 		RestClient d = MockRestClient.buildLax(D.class);
 		d.get("/badRequest")
 			.run()
-			.assertCode().is(400)
-			.assertContent().is("foo bar");
+			.assertStatus(400)
+			.assertContent("foo bar");
 		d.get("/conflict")
 			.run()
-			.assertCode().is(409)
-			.assertContent().is("foo bar");
+			.assertStatus(409)
+			.assertContent("foo bar");
 		d.get("/expectationFailed")
 			.run()
-			.assertCode().is(417)
-			.assertContent().is("foo bar");
+			.assertStatus(417)
+			.assertContent("foo bar");
 		d.get("/failedDependency")
 			.run()
-			.assertCode().is(424)
-			.assertContent().is("foo bar");
+			.assertStatus(424)
+			.assertContent("foo bar");
 		d.get("/forbidden")
 			.run()
-			.assertCode().is(403)
-			.assertContent().is("foo bar");
+			.assertStatus(403)
+			.assertContent("foo bar");
 		d.get("/gone")
 			.run()
-			.assertCode().is(410)
-			.assertContent().is("foo bar");
+			.assertStatus(410)
+			.assertContent("foo bar");
 		d.get("/httpVersionNotSupported")
 			.run()
-			.assertCode().is(505)
-			.assertContent().is("foo bar");
+			.assertStatus(505)
+			.assertContent("foo bar");
 		d.get("/insufficientStorage")
 			.run()
-			.assertCode().is(507)
-			.assertContent().is("foo bar");
+			.assertStatus(507)
+			.assertContent("foo bar");
 		d.get("/internalServerError")
 			.run()
-			.assertCode().is(500)
-			.assertContent().is("foo bar");
+			.assertStatus(500)
+			.assertContent("foo bar");
 		d.get("/lengthRequired")
 			.run()
-			.assertCode().is(411)
-			.assertContent().is("foo bar");
+			.assertStatus(411)
+			.assertContent("foo bar");
 		d.get("/locked")
 			.run()
-			.assertCode().is(423)
-			.assertContent().is("foo bar");
+			.assertStatus(423)
+			.assertContent("foo bar");
 		d.get("/loopDetected")
 			.run()
-			.assertCode().is(508)
-			.assertContent().is("foo bar");
+			.assertStatus(508)
+			.assertContent("foo bar");
 		d.get("/methodNotAllowed")
 			.run()
-			.assertCode().is(405)
-			.assertContent().is("foo bar");
+			.assertStatus(405)
+			.assertContent("foo bar");
 		d.get("/misdirectedRequest")
 			.run()
-			.assertCode().is(421)
-			.assertContent().is("foo bar");
+			.assertStatus(421)
+			.assertContent("foo bar");
 		d.get("/networkAuthenticationRequired")
 			.run()
-			.assertCode().is(511)
-			.assertContent().is("foo bar");
+			.assertStatus(511)
+			.assertContent("foo bar");
 		d.get("/notAcceptable")
 			.run()
-			.assertCode().is(406)
-			.assertContent().is("foo bar");
+			.assertStatus(406)
+			.assertContent("foo bar");
 		d.get("/notExtended")
 			.run()
-			.assertCode().is(510)
-			.assertContent().is("foo bar");
+			.assertStatus(510)
+			.assertContent("foo bar");
 		d.get("/notFound")
 			.run()
-			.assertCode().is(404)
-			.assertContent().is("foo bar");
+			.assertStatus(404)
+			.assertContent("foo bar");
 		d.get("/notImplemented")
 			.run()
-			.assertCode().is(501)
-			.assertContent().is("foo bar");
+			.assertStatus(501)
+			.assertContent("foo bar");
 		d.get("/payloadTooLarge")
 			.run()
-			.assertCode().is(413)
-			.assertContent().is("foo bar");
+			.assertStatus(413)
+			.assertContent("foo bar");
 		d.get("/preconditionFailed")
 			.run()
-			.assertCode().is(412)
-			.assertContent().is("foo bar");
+			.assertStatus(412)
+			.assertContent("foo bar");
 		d.get("/preconditionRequired")
 			.run()
-			.assertCode().is(428)
-			.assertContent().is("foo bar");
+			.assertStatus(428)
+			.assertContent("foo bar");
 		d.get("/rangeNotSatisfiable")
 			.run()
-			.assertCode().is(416)
-			.assertContent().is("foo bar");
+			.assertStatus(416)
+			.assertContent("foo bar");
 		d.get("/requestHeaderFieldsTooLarge")
 			.run()
-			.assertCode().is(431)
-			.assertContent().is("foo bar");
+			.assertStatus(431)
+			.assertContent("foo bar");
 		d.get("/serviceUnavailable")
 			.run()
-			.assertCode().is(503)
-			.assertContent().is("foo bar");
+			.assertStatus(503)
+			.assertContent("foo bar");
 		d.get("/tooManyRequests")
 			.run()
-			.assertCode().is(429)
-			.assertContent().is("foo bar");
+			.assertStatus(429)
+			.assertContent("foo bar");
 		d.get("/unauthorized")
 			.run()
-			.assertCode().is(401)
-			.assertContent().is("foo bar");
+			.assertStatus(401)
+			.assertContent("foo bar");
 		d.get("/unavailableForLegalReasons")
 			.run()
-			.assertCode().is(451)
-			.assertContent().is("foo bar");
+			.assertStatus(451)
+			.assertContent("foo bar");
 		d.get("/unprocessableEntity")
 			.run()
-			.assertCode().is(422)
-			.assertContent().is("foo bar");
+			.assertStatus(422)
+			.assertContent("foo bar");
 		d.get("/unsupportedMediaType")
 			.run()
-			.assertCode().is(415)
-			.assertContent().is("foo bar");
+			.assertStatus(415)
+			.assertContent("foo bar");
 		d.get("/upgradeRequired")
 			.run()
-			.assertCode().is(426)
-			.assertContent().is("foo bar");
+			.assertStatus(426)
+			.assertContent("foo bar");
 		d.get("/uriTooLong")
 			.run()
-			.assertCode().is(414)
-			.assertContent().is("foo bar");
+			.assertStatus(414)
+			.assertContent("foo bar");
 		d.get("/variantAlsoNegotiates")
 			.run()
-			.assertCode().is(506)
-			.assertContent().is("foo bar");
+			.assertStatus(506)
+			.assertContent("foo bar");
 	}
 
 	//-----------------------------------------------------------------------------------------------------------------
@@ -761,8 +761,8 @@ public class RestOp_Throws_Test {
 		e.get("/badRequest")
 			.json()
 			.run()
-			.assertCode().is(400)
-			.assertContent().is("foo bar");
+			.assertStatus(400)
+			.assertContent("foo bar");
 	}
 
 	//-----------------------------------------------------------------------------------------------------------------
@@ -860,7 +860,7 @@ public class RestOp_Throws_Test {
 		RestClient g = MockRestClient.buildLax(G.class);
 		g.get("/a")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 	}
 
 	//-----------------------------------------------------------------------------------------------------------------
@@ -880,6 +880,6 @@ public class RestOp_Throws_Test {
 		RestClient h = MockRestClient.buildLax(H.class);
 		h.get("/a")
 			.run()
-			.assertCode().is(400);
+			.assertStatus(400);
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/rest/Rest_PredefinedStatusCodes_Test.java b/juneau-utest/src/test/java/org/apache/juneau/rest/Rest_PredefinedStatusCodes_Test.java
index 050339087..fea2de5cf 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/Rest_PredefinedStatusCodes_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/Rest_PredefinedStatusCodes_Test.java
@@ -50,7 +50,7 @@ public class Rest_PredefinedStatusCodes_Test {
 		RestClient a = MockRestClient.build(A.class);
 		a.put("/a", "foo")
 			.run()
-			.assertCode().is(200);
+			.assertStatus(200);
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -117,62 +117,62 @@ public class Rest_PredefinedStatusCodes_Test {
 		RestClient b = MockRestClient.buildLax(B.class);
 		b.put("/a?noTrace=true", "{f2:'foo'}", APPLICATION_JSON)
 			.run()
-			.assertCode().is(400)
+			.assertStatus(400)
 			.assertContent().isContains(
 				"Unknown property 'f2' encountered while trying to parse into class"
 			);
 		b.put("/a?noTrace=true", "{f1:'foo', f2:'foo'}", APPLICATION_JSON)
 			.run()
-			.assertCode().is(400)
+			.assertStatus(400)
 			.assertContent().isContains(
 				"Unknown property 'f2' encountered while trying to parse into class"
 			);
 		b.put("/b?noTrace=true", "{f1:'foo'}", APPLICATION_JSON)
 			.run()
-			.assertCode().is(400)
+			.assertStatus(400)
 			.assertContent().isContains(
 				"NumberFormatException"
 			);
 		b.put("/c?noTrace=true", "{f1:1}", APPLICATION_JSON)
 			.run()
-			.assertCode().is(400)
+			.assertStatus(400)
 			.assertContent().isContains(
 				"could not be instantiated"
 			);
 		b.put("/d?noTrace=true", "{f1:1}", APPLICATION_JSON)
 			.run()
-			.assertCode().is(400)
+			.assertStatus(400)
 			.assertContent().isContains(
 				"could not be instantiated"
 			);
 		b.put("/e?noTrace=true", "{f1:1}", APPLICATION_JSON)
 			.run()
-			.assertCode().is(400)
+			.assertStatus(400)
 			.assertContent().isContains(
 				"Class is not public"
 			);
 		b.put("/f?noTrace=true", "'foo'", APPLICATION_JSON)
 			.run()
-			.assertCode().is(400)
+			.assertStatus(400)
 			.assertContent().isContains(
 				"Test error"
 			);
 		b.put("/g/123?noTrace=true&p1=foo", "'foo'", APPLICATION_JSON)
 			.run()
-			.assertCode().is(400)
+			.assertStatus(400)
 			.assertContent().isContains(
 				"Could not parse query parameter 'p1'."
 			);
 		b.put("/g/foo?noTrace=true&p1=1", "'foo'", APPLICATION_JSON)
 			.run()
-			.assertCode().is(400)
+			.assertStatus(400)
 			.assertContent().isContains(
 				"Could not parse path parameter 'a1'."
 			);
 		b.put("/g/123?noTrace=true&p1=1", "'foo'", APPLICATION_JSON)
 			.header("h1", "foo")
 			.run()
-			.assertCode().is(400)
+			.assertStatus(400)
 			.assertContent().isContains(
 				"Could not parse header parameter 'h1'."
 			);
@@ -195,7 +195,7 @@ public class Rest_PredefinedStatusCodes_Test {
 	public void c01_badPath() throws Exception {
 		c.get("/bad?noTrace=true")
 			.run()
-			.assertCode().is(404)
+			.assertStatus(404)
 			.assertContent().isContains(
 				"Method 'GET' not found on resource with matching pattern on path '/bad'"
 			);
@@ -203,7 +203,7 @@ public class Rest_PredefinedStatusCodes_Test {
 	public void c02_badMethod() throws Exception {
 		c.put("?noTrace=true", null)
 			.run()
-			.assertCode().is(405)
+			.assertStatus(405)
 			.assertContent().isContains(
 				"Method 'PUT' not found on resource."
 			);
@@ -232,7 +232,7 @@ public class Rest_PredefinedStatusCodes_Test {
 	public void d01() throws Exception {
 		d.get("/d?noTrace=true")
 			.run()
-			.assertCode().is(412)
+			.assertStatus(412)
 			.assertContent().isContains(
 				"Method 'GET' not found on resource on path '/d' with matching matcher."
 			);
diff --git a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/BeanConfig_Swaps_Test.java b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/BeanConfig_Swaps_Test.java
index 106a46cd3..e0779f6fe 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/BeanConfig_Swaps_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/BeanConfig_Swaps_Test.java
@@ -123,11 +123,11 @@ public class BeanConfig_Swaps_Test {
 	@Test
 	public void a01_swaps() throws Exception {
 		RestClient a = MockRestClient.build(A1.class);
-		a.get("/a").json().run().assertContent().is("'A2-0'");
-		a.put("/b", "'A2-1'", APPLICATION_JSON).run().assertContent().is("'A2-1'");
-		a.put("/c/A2-2", null, APPLICATION_JSON).run().assertContent().is("'A2-2'");
-		a.get("/d").json().run().assertContent().is("'A3-0'");
-		a.put("/e", "'A3-1'", APPLICATION_JSON).run().assertContent().is("'A3-1'");
-		a.put("/f/A3-2", null, APPLICATION_JSON).run().assertContent().is("'A3-2'");
+		a.get("/a").json().run().assertContent("'A2-0'");
+		a.put("/b", "'A2-1'", APPLICATION_JSON).run().assertContent("'A2-1'");
+		a.put("/c/A2-2", null, APPLICATION_JSON).run().assertContent("'A2-2'");
+		a.get("/d").json().run().assertContent("'A3-0'");
+		a.put("/e", "'A3-1'", APPLICATION_JSON).run().assertContent("'A3-1'");
+		a.put("/f/A3-2", null, APPLICATION_JSON).run().assertContent("'A3-2'");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/Content_Test.java b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/Content_Test.java
index b47f18257..4eca9e942 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/Content_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/Content_Test.java
@@ -129,262 +129,262 @@ public class Content_Test {
 		a.put("/String", "foo")
 			.json()
 			.run()
-			.assertContent().is("'foo'");
+			.assertContent("'foo'");
 		// If no Content-Type specified, should be treated as plain-text.
 		a.put("/String", "'foo'")
 			.run()
-			.assertContent().is("'\\'foo\\''");
+			.assertContent("'\\'foo\\''");
 		// If Content-Type not matched, should be treated as plain-text.
 		a.put("/String", "'foo'").contentType("")
 			.run()
-			.assertContent().is("'\\'foo\\''");
+			.assertContent("'\\'foo\\''");
 		a.put("/String", "'foo'").contentType("text/plain")
 			.run()
-			.assertContent().is("'\\'foo\\''");
+			.assertContent("'\\'foo\\''");
 		a.put("/String?content=foo", null)
 			.run()
-			.assertContent().is("'foo'");
+			.assertContent("'foo'");
 		a.put("/String?content=null", null)
 			.run()
-			.assertContent().is("null");
+			.assertContent("null");
 		a.put("/String?content=", null)
 			.run()
-			.assertContent().is("''");
+			.assertContent("''");
 
 		a.put("/Integer", "123").json()
 			.run()
-			.assertContent().is("123");
+			.assertContent("123");
 		// Integer takes in a String arg, so it can be parsed without Content-Type.
 		a.put("/Integer", "123")
 			.run()
-			.assertContent().is("123");
+			.assertContent("123");
 		a.put("/Integer?content=123", null)
 			.run()
-			.assertContent().is("123");
+			.assertContent("123");
 		a.put("/Integer?content=-123", null)
 			.run()
-			.assertContent().is("-123");
+			.assertContent("-123");
 		a.put("/Integer?content=null", null)
 			.run()
-			.assertContent().is("null");
+			.assertContent("null");
 		a.put("/Integer?content=", null)
 			.run()
-			.assertContent().is("null");
+			.assertContent("null");
 		a.put("/Integer?content=bad&noTrace=true", null)
 			.run()
-			.assertCode().is(400);
+			.assertStatus(400);
 
 		a.put("/int", "123").json()
 			.run()
-			.assertContent().is("123");
+			.assertContent("123");
 		a.put("/int", "123")
 			.run()
-			.assertContent().is("123"); // Uses part parser.
+			.assertContent("123"); // Uses part parser.
 		a.put("/int?content=123", null)
 			.run()
-			.assertContent().is("123");
+			.assertContent("123");
 		a.put("/int?content=-123", null)
 			.run()
-			.assertContent().is("-123");
+			.assertContent("-123");
 		a.put("/int?content=null", null)
 			.run()
-			.assertContent().is("0");
+			.assertContent("0");
 		a.put("/int?content=", null)
 			.run()
-			.assertContent().is("0");
+			.assertContent("0");
 		a.put("/int?content=bad&noTrace=true", null)
 			.run()
-			.assertCode().is(400);
+			.assertStatus(400);
 
 		a.put("/Boolean", "true").json()
 			.run()
-			.assertContent().is("true");
+			.assertContent("true");
 		// Boolean takes in a String arg, so it can be parsed without Content-Type.
 		a.put("/Boolean", "true")
 			.run()
-			.assertContent().is("true");
+			.assertContent("true");
 		a.put("/Boolean?content=true", null)
 			.run()
-			.assertContent().is("true");
+			.assertContent("true");
 		a.put("/Boolean?content=false", null)
 			.run()
-			.assertContent().is("false");
+			.assertContent("false");
 		a.put("/Boolean?content=null", null)
 			.run()
-			.assertContent().is("null");
+			.assertContent("null");
 		a.put("/Boolean?content=", null)
 			.run()
-			.assertContent().is("null");
+			.assertContent("null");
 		a.put("/Boolean?content=bad&noTrace=true", null)
 			.run()
-			.assertCode().is(400);
+			.assertStatus(400);
 
 		a.put("/boolean", "true").json()
 			.run()
-			.assertContent().is("true");
+			.assertContent("true");
 		a.put("/boolean", "true")
 			.run()
-			.assertContent().is("true"); // Uses part parser.
+			.assertContent("true"); // Uses part parser.
 		a.put("/boolean?content=true", null)
 			.run()
-			.assertContent().is("true");
+			.assertContent("true");
 		a.put("/boolean?content=false", null)
 			.run()
-			.assertContent().is("false");
+			.assertContent("false");
 		a.put("/boolean?content=null", null)
 			.run()
-			.assertContent().is("false");
+			.assertContent("false");
 		a.put("/boolean?content=", null)
 			.run()
-			.assertContent().is("false");
+			.assertContent("false");
 		a.put("/boolean?content=bad&noTrace=true", null)
 			.run()
-			.assertCode().is(400);
+			.assertStatus(400);
 
 		a.put("/float", "1.23").json()
 			.run()
-			.assertContent().is("1.23");
+			.assertContent("1.23");
 		a.put("/float", "1.23")
 			.run()
-			.assertContent().is("1.23");  // Uses part parser.
+			.assertContent("1.23");  // Uses part parser.
 		a.put("/float?content=1.23", null)
 			.run()
-			.assertContent().is("1.23");
+			.assertContent("1.23");
 		a.put("/float?content=-1.23", null)
 			.run()
-			.assertContent().is("-1.23");
+			.assertContent("-1.23");
 		a.put("/float?content=null", null)
 			.run()
-			.assertContent().is("0.0");
+			.assertContent("0.0");
 		a.put("/float?content=", null)
 			.run()
-			.assertContent().is("0.0");
+			.assertContent("0.0");
 		a.put("/float?content=bad&noTrace=true", null)
 			.run()
-			.assertCode().is(400);
+			.assertStatus(400);
 
 		a.put("/Float", "1.23").json()
 			.run()
-			.assertContent().is("1.23");
+			.assertContent("1.23");
 		// Float takes in a String arg, so it can be parsed without Content-Type.
 		a.put("/Float", "1.23")
 			.run()
-			.assertContent().is("1.23");
+			.assertContent("1.23");
 		a.put("/Float?content=1.23", null)
 			.run()
-			.assertContent().is("1.23");
+			.assertContent("1.23");
 		a.put("/Float?content=-1.23", null)
 			.run()
-			.assertContent().is("-1.23");
+			.assertContent("-1.23");
 		a.put("/Float?content=null", null)
 			.run()
-			.assertContent().is("null");
+			.assertContent("null");
 		a.put("/Float?content=", null)
 			.run()
-			.assertContent().is("null");
+			.assertContent("null");
 		a.put("/Float?content=bad&noTrace=true", null)
 			.run()
-			.assertCode().is(400);
+			.assertStatus(400);
 
 		a.put("/Map", "{foo:123}", APPLICATION_JSON)
 			.run()
-			.assertContent().is("{foo:123}");
+			.assertContent("{foo:123}");
 		a.put("/Map", "(foo=123)", TEXT_OPENAPI)
 			.run()
-			.assertCode().is(415);
+			.assertStatus(415);
 		a.put("/Map?content=(foo=123)", null)
 			.run()
-			.assertContent().is("{foo:123}");
+			.assertContent("{foo:123}");
 		a.put("/Map?content=()", null)
 			.run()
-			.assertContent().is("{}");
+			.assertContent("{}");
 		a.put("/Map?content=null", null)
 			.run()
-			.assertContent().is("null");
+			.assertContent("null");
 		a.put("/Map?content=", null)
 			.run()
-			.assertContent().is("null");
+			.assertContent("null");
 		a.put("/Map?content=bad&noTrace=true", null)
 			.run()
-			.assertCode().is(400);
+			.assertStatus(400);
 
 		a.put("/enum", "'ONE'", APPLICATION_JSON)
 			.run()
-			.assertContent().is("'ONE'");
+			.assertContent("'ONE'");
 		a.put("/enum", "ONE")
 			.run()
-			.assertContent().is("'ONE'");
+			.assertContent("'ONE'");
 		a.put("/enum?content=ONE", null)
 			.run()
-			.assertContent().is("'ONE'");
+			.assertContent("'ONE'");
 		a.put("/enum?content=TWO", null)
 			.run()
-			.assertContent().is("'TWO'");
+			.assertContent("'TWO'");
 		a.put("/enum?content=null", null)
 			.run()
-			.assertContent().is("null");
+			.assertContent("null");
 		a.put("/enum?content=", null)
 			.run()
-			.assertContent().is("null");
+			.assertContent("null");
 		a.put("/enum?content=bad&noTrace=true", null)
 			.run()
-			.assertCode().is(400);
+			.assertStatus(400);
 
 		a.put("/Bean", "{f1:'a'}", APPLICATION_JSON)
 			.run()
-			.assertContent().is("{f1:'a'}");
+			.assertContent("{f1:'a'}");
 		a.put("/Bean", "(f1=a)", TEXT_OPENAPI)
 			.run()
-			.assertCode().is(415);
+			.assertStatus(415);
 		a.put("/Bean?content=(f1=a)", null)
 			.run()
-			.assertContent().is("{f1:'a'}");
+			.assertContent("{f1:'a'}");
 		a.put("/Bean?content=()", null)
 			.run()
-			.assertContent().is("{}");
+			.assertContent("{}");
 		a.put("/Bean?content=null", null)
 			.run()
-			.assertContent().is("null");
+			.assertContent("null");
 		a.put("/Bean?content=", null)
 			.run()
-			.assertContent().is("null");
+			.assertContent("null");
 		a.put("/Bean?content=bad&noTrace=true", null)
 			.run()
-			.assertCode().is(400);
+			.assertStatus(400);
 
 		// Content-Type should always be ignored.
 		a.put("/InputStream", "'a'", APPLICATION_JSON)
 			.run()
-			.assertContent().is("'\\'a\\''");
+			.assertContent("'\\'a\\''");
 		a.put("/InputStream", "'a'")
 			.run()
-			.assertContent().is("'\\'a\\''");
+			.assertContent("'\\'a\\''");
 		a.put("/InputStream?content=a", null)
 			.run()
-			.assertContent().is("'a'");
+			.assertContent("'a'");
 		a.put("/InputStream?content=null", null)
 			.run()
-			.assertContent().is("'null'");
+			.assertContent("'null'");
 		a.put("/InputStream?content=", null)
 			.run()
-			.assertContent().is("''");
+			.assertContent("''");
 
 		// Content-Type should always be ignored.
 		a.put("/Reader", "'a'", APPLICATION_JSON)
 			.run()
-			.assertContent().is("'\\'a\\''");
+			.assertContent("'\\'a\\''");
 		a.put("/Reader", "'a'")
 			.run()
-			.assertContent().is("'\\'a\\''");
+			.assertContent("'\\'a\\''");
 		a.put("/Reader?content=a", null)
 			.run()
-			.assertContent().is("'a'");
+			.assertContent("'a'");
 		a.put("/Reader?content=null", null)
 			.run()
-			.assertContent().is("'null'");
+			.assertContent("'null'");
 		a.put("/Reader?content=", null)
 			.run()
-			.assertContent().is("''");
+			.assertContent("''");
 
 		// It's not currently possible to pass in a &body parameter for InputStream/Reader transforms.
 
@@ -394,7 +394,7 @@ public class Content_Test {
 			.assertContent().isContains("Bad Request");
 		a.put("/InputStreamTransform", "'a'")
 			.run()
-			.assertContent().is("'\\'a\\''");
+			.assertContent("'\\'a\\''");
 
 		// Reader transform requests must not specify Content-Type or else gets resolved as POJO.
 		a.put("/ReaderTransform?noTrace=true", "'a'", APPLICATION_JSON)
@@ -402,16 +402,16 @@ public class Content_Test {
 			.assertContent().isContains("Bad Request");
 		a.put("/ReaderTransform", "'a'")
 			.run()
-			.assertContent().is("'\\'a\\''");
+			.assertContent("'\\'a\\''");
 
 		// When Content-Type specified and matched, treated as a parsed POJO.
 		a.put("/StringTransform", "'a'", APPLICATION_JSON)
 			.run()
-			.assertContent().is("'a'");
+			.assertContent("'a'");
 		// When Content-Type not matched, treated as plain text.
 		a.put("/StringTransform", "'a'")
 			.run()
-			.assertContent().is("'\\'a\\''");
+			.assertContent("'\\'a\\''");
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -472,33 +472,33 @@ public class Content_Test {
 		RestClient b = MockRestClient.buildLax(B.class);
 		b.put("/StringTransform", "'foo'", APPLICATION_JSON)
 			.run()
-			.assertContent().is("'foo'");
+			.assertContent("'foo'");
 		// When Content-Type not matched, treated as plain text.
 		b.put("/StringTransform", "'foo'")
 			.run()
-			.assertContent().is("'\\'foo\\''");
+			.assertContent("'\\'foo\\''");
 		b.put("/Bean", "{f1:'a'}", APPLICATION_JSON)
 			.run()
-			.assertContent().is("{f1:'a'}");
+			.assertContent("{f1:'a'}");
 		b.put("/Bean", "(f1=a)", TEXT_OPENAPI)
 			.run()
-			.assertCode().is(415);
+			.assertStatus(415);
 		b.put("/BeanList", "[{f1:'a'}]", APPLICATION_JSON)
 			.run()
-			.assertContent().is("[{f1:'a'}]");
+			.assertContent("[{f1:'a'}]");
 		b.put("/BeanList", "(f1=a)", TEXT_OPENAPI)
 			.run()
-			.assertCode().is(415);
+			.assertStatus(415);
 		b.put("/InputStreamTransform", "a")
 			.run()
-			.assertContent().is("'a'");
+			.assertContent("'a'");
 		// When Content-Type matched, treated as parsed POJO.
 		b.put("/InputStreamTransform?noTrace=true", "a", APPLICATION_JSON)
 			.run()
 			.assertContent().isContains("Bad Request");
 		b.put("/ReaderTransform", "a")
 			.run()
-			.assertContent().is("'a'");
+			.assertContent("'a'");
 		// When Content-Type matched, treated as parsed POJO.
 		b.put("/ReaderTransform?noTrace=true", "a", APPLICATION_JSON)
 			.run()
@@ -588,58 +588,58 @@ public class Content_Test {
 		RestClient d = MockRestClient.buildLax(D.class);
 		d.put("/String", "a")
 			.run()
-			.assertContent().is("a");
+			.assertContent("a");
 		d.put("/String", "a", APPLICATION_JSON)
 			.run()
-			.assertContent().is("a");
+			.assertContent("a");
 		d.put("/InputStream", "a")
 			.run()
-			.assertContent().is("a");
+			.assertContent("a");
 		d.put("/InputStream", "a", APPLICATION_JSON)
 			.run()
-			.assertContent().is("a");
+			.assertContent("a");
 		d.put("/Reader", "a")
 			.run()
-			.assertContent().is("a");
+			.assertContent("a");
 		d.put("/Reader", "a", APPLICATION_JSON)
 			.run()
-			.assertContent().is("a");
+			.assertContent("a");
 		d.put("/StringTransform", "a")
 			.run()
-			.assertContent().is("a");
+			.assertContent("a");
 		d.put("/StringTransform?noTrace=true", "a", APPLICATION_JSON)
 			.run()
-			.assertCode().is(415);
+			.assertStatus(415);
 		d.put("/InputStreamTransform", "a")
 			.run()
-			.assertContent().is("a");
+			.assertContent("a");
 		d.put("/InputStreamTransform", "a", APPLICATION_JSON)
 			.run()
-			.assertContent().is("a");
+			.assertContent("a");
 		d.put("/ReaderTransform", "a")
 			.run()
-			.assertContent().is("a");
+			.assertContent("a");
 		d.put("/ReaderTransform", "a", APPLICATION_JSON)
 			.run()
-			.assertContent().is("a");
+			.assertContent("a");
 		d.put("/StringTransformBodyOnPojo", "a")
 			.run()
-			.assertContent().is("a");
+			.assertContent("a");
 		d.put("/StringTransformBodyOnPojo?noTrace=true", "a", APPLICATION_JSON)
 			.run()
-			.assertCode().is(415);
+			.assertStatus(415);
 		d.put("/InputStreamTransformBodyOnPojo", "a")
 			.run()
-			.assertContent().is("a");
+			.assertContent("a");
 		d.put("/InputStreamTransformBodyOnPojo", "a", APPLICATION_JSON)
 			.run()
-			.assertContent().is("a");
+			.assertContent("a");
 		d.put("/ReaderTransformBodyOnPojo", "a")
 			.run()
-			.assertContent().is("a");
+			.assertContent("a");
 		d.put("/ReaderTransformBodyOnPojo", "a", APPLICATION_JSON)
 			.run()
-			.assertContent().is("a");
+			.assertContent("a");
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -666,22 +666,22 @@ public class Content_Test {
 		expected = "{f01:['a','b'],f02:['c','d'],f03:[1,2],f04:[3,4],f05:[['e','f'],['g','h']],f06:[['i','j'],['k','l']],f07:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f08:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f09:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[ [...]
 		e.put("/B", SimpleJsonSerializer.DEFAULT.toString(XBeans.XB.INSTANCE), APPLICATION_JSON)
 			.run()
-			.assertContent().is(expected);
+			.assertContent(expected);
 
 		expected = "{f01:['a','b'],f02:['c','d'],f03:[1,2],f04:[3,4],f05:[['e','f'],['g','h']],f06:[['i','j'],['k','l']],f07:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f08:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f09:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[ [...]
 		e.put("/B?content=" + UonSerializer.DEFAULT.serialize(XBeans.XB.INSTANCE), "a")
 			.run()
-			.assertContent().is(expected);
+			.assertContent(expected);
 
 		expected = "{f01:['a','b'],f02:['c','d'],f03:[1,2],f04:[3,4],f05:[['e','f'],['g','h']],f06:[['i','j'],['k','l']],f07:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f08:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f09:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[ [...]
 		e.put("/C", SimpleJsonSerializer.DEFAULT.toString(XBeans.XB.INSTANCE), APPLICATION_JSON)
 			.run()
-			.assertContent().is(expected);
+			.assertContent(expected);
 
 		expected = "{f01:['a','b'],f02:['c','d'],f03:[1,2],f04:[3,4],f05:[['e','f'],['g','h']],f06:[['i','j'],['k','l']],f07:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f08:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f09:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[ [...]
 		e.put("/C?content=" + UonSerializer.DEFAULT.serialize(XBeans.XB.INSTANCE), "a")
 			.run()
-			.assertContent().is(expected);
+			.assertContent(expected);
 	}
 
 	@Rest(serializers=SimpleJsonSerializer.class, parsers=JsonParser.class, defaultAccept="application/json")
@@ -706,22 +706,22 @@ public class Content_Test {
 		expected = "{f01:['a','b'],f02:['c','d'],f03:[1,2],f04:[3,4],f05:[['e','f'],['g','h']],f06:[['i','j'],['k','l']],f07:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f08:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f09:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[ [...]
 		e2.put("/B", SimpleJsonSerializer.DEFAULT.copy().applyAnnotations(XBeans.Annotations.class).build().toString(XBeans.XE.INSTANCE), APPLICATION_JSON)
 			.run()
-			.assertContent().is(expected);
+			.assertContent(expected);
 
 		expected = "{f01:['a','b'],f02:['c','d'],f03:[1,2],f04:[3,4],f05:[['e','f'],['g','h']],f06:[['i','j'],['k','l']],f07:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f08:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f09:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[ [...]
 		e2.put("/B?content=" + UonSerializer.DEFAULT.copy().applyAnnotations(XBeans.Annotations.class).build().serialize(XBeans.XE.INSTANCE), "a")
 			.run()
-			.assertContent().is(expected);
+			.assertContent(expected);
 
 		expected = "{f01:['a','b'],f02:['c','d'],f03:[1,2],f04:[3,4],f05:[['e','f'],['g','h']],f06:[['i','j'],['k','l']],f07:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f08:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f09:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[ [...]
 		e2.put("/C", SimpleJsonSerializer.DEFAULT.copy().applyAnnotations(XBeans.Annotations.class).build().toString(XBeans.XE.INSTANCE), APPLICATION_JSON)
 			.run()
-			.assertContent().is(expected);
+			.assertContent(expected);
 
 		expected = "{f01:['a','b'],f02:['c','d'],f03:[1,2],f04:[3,4],f05:[['e','f'],['g','h']],f06:[['i','j'],['k','l']],f07:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f08:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f09:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f10:[[{a:'a',b:1,c:true}],[{a:'a',b:1,c:true}]],f11:['a','b'],f12:['c','d'],f13:[1,2],f14:[3,4],f15:[['e','f'],['g','h']],f16:[['i','j'],['k','l']],f17:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f18:[{a:'a',b:1,c:true},{a:'a',b:1,c:true}],f19:[ [...]
 		e2.put("/C?content=" + UonSerializer.DEFAULT.copy().applyAnnotations(XBeans.Annotations.class).build().serialize(XBeans.XE.INSTANCE), "a")
 			.run()
-			.assertContent().is(expected);
+			.assertContent(expected);
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -748,16 +748,16 @@ public class Content_Test {
 		RestClient f = MockRestClient.build(F.class);
 		f.post("/", "{p1:'p1',p2:2}", APPLICATION_JSON)
 			.run()
-			.assertContent().is("bean=[{p1:'p1',p2:2}],qp1=[null],qp2=[0],hqp1=[false],hqp2=[false]");
+			.assertContent("bean=[{p1:'p1',p2:2}],qp1=[null],qp2=[0],hqp1=[false],hqp2=[false]");
 		f.post("/", "{}", APPLICATION_JSON)
 			.run()
-			.assertContent().is("bean=[{p2:0}],qp1=[null],qp2=[0],hqp1=[false],hqp2=[false]");
+			.assertContent("bean=[{p2:0}],qp1=[null],qp2=[0],hqp1=[false],hqp2=[false]");
 		f.post("?p1=p3&p2=4", "{p1:'p1',p2:2}", APPLICATION_JSON)
 			.run()
-			.assertContent().is("bean=[{p1:'p1',p2:2}],qp1=[p3],qp2=[4],hqp1=[true],hqp2=[true]");
+			.assertContent("bean=[{p1:'p1',p2:2}],qp1=[p3],qp2=[4],hqp1=[true],hqp2=[true]");
 		f.post("?p1=p3&p2=4", "{}", APPLICATION_JSON)
 			.run()
-			.assertContent().is("bean=[{p2:0}],qp1=[p3],qp2=[4],hqp1=[true],hqp2=[true]");
+			.assertContent("bean=[{p2:0}],qp1=[p3],qp2=[4],hqp1=[true],hqp2=[true]");
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -800,7 +800,7 @@ public class Content_Test {
 			+ "&f20=@((a=a,b=1,c=true))&f20=@((a=b,b=2,c=false))";
 		g.post("/", in, APPLICATION_FORM_URLENCODED)
 			.run()
-			.assertContent().is(in);
+			.assertContent(in);
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -844,7 +844,7 @@ public class Content_Test {
 			+ "&f20=@((a=a,b=1,c=true))&f20=@((a=b,b=2,c=false))";
 		h.post("/", in, APPLICATION_FORM_URLENCODED)
 			.run()
-			.assertContent().is(in);
+			.assertContent(in);
 	}
 
 	@Rest(serializers=UrlEncodingSerializer.class,parsers=UrlEncodingParser.class)
@@ -884,7 +884,7 @@ public class Content_Test {
 			+ "&f20=@((a=a,b=1,c=true))&f20=@((a=b,b=2,c=false))";
 		h2.post("/", in, APPLICATION_FORM_URLENCODED)
 			.run()
-			.assertContent().is(in);
+			.assertContent(in);
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -911,19 +911,19 @@ public class Content_Test {
 
 		i.post("/a", "", APPLICATION_JSON)
 			.run()
-			.assertCode().is(400)
+			.assertStatus(400)
 			.assertContent().isContains("Required value not provided.");
 		i.post("/a", "{}", APPLICATION_JSON)
 			.run()
-			.assertCode().is(200);
+			.assertStatus(200);
 
 		i.post("/b", "", APPLICATION_JSON)
 			.run()
-			.assertCode().is(400)
+			.assertStatus(400)
 			.assertContent().isContains("Required value not provided.");
 		i.post("/b", "{}", APPLICATION_JSON)
 			.run()
-			.assertCode().is(200);
+			.assertStatus(200);
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -958,40 +958,40 @@ public class Content_Test {
 		RestClient j = MockRestClient.buildJson(J.class);
 		j.post("/a", 123)
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("123");
+			.assertStatus(200)
+			.assertContent("123");
 		j.post("/a", null)
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("null");
+			.assertStatus(200)
+			.assertContent("null");
 
 		j.post("/b", ABean.get())
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("{a:1,b:'foo'}");
+			.assertStatus(200)
+			.assertContent("{a:1,b:'foo'}");
 		j.post("/b", null)
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("null");
+			.assertStatus(200)
+			.assertContent("null");
 
 		String body1 = SimpleJson.of(list(ABean.get()));
 		j.post("/c", body1, APPLICATION_JSON)
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("[{a:1,b:'foo'}]");
+			.assertStatus(200)
+			.assertContent("[{a:1,b:'foo'}]");
 		j.post("/c", null)
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("null");
+			.assertStatus(200)
+			.assertContent("null");
 
 		String body2 = SimpleJson.of(list(optional(ABean.get())));
 		j.post("/d", body2, APPLICATION_JSON)
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("[{a:1,b:'foo'}]");
+			.assertStatus(200)
+			.assertContent("[{a:1,b:'foo'}]");
 		j.post("/d", null)
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("null");
+			.assertStatus(200)
+			.assertContent("null");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/FormData_Test.java b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/FormData_Test.java
index d5a572046..4628da59f 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/FormData_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/FormData_Test.java
@@ -48,18 +48,18 @@ public class FormData_Test {
 	@Test
 	public void a01_basic() throws Exception {
 		RestClient a = MockRestClient.build(A.class);
-		a.post("/a", "p1=p1&p2=2").contentType("application/x-www-form-urlencoded").run().assertContent().is("p1=[p1,p1,p1],p2=[2,2,2]");
-		a.post("/a", "p1&p2").contentType("application/x-www-form-urlencoded").run().assertContent().is("p1=[null,null,null],p2=[0,null,0]");
-		a.post("/a", "p1=&p2=").contentType("application/x-www-form-urlencoded").run().assertContent().is("p1=[,,],p2=[0,,0]");
-		a.post("/a", "").contentType("application/x-www-form-urlencoded").run().assertContent().is("p1=[null,null,null],p2=[0,null,0]");
-		a.post("/a", "p1").contentType("application/x-www-form-urlencoded").run().assertContent().is("p1=[null,null,null],p2=[0,null,0]");
-		a.post("/a", "p1=").contentType("application/x-www-form-urlencoded").run().assertContent().is("p1=[,,],p2=[0,null,0]");
-		a.post("/a", "p2").contentType("application/x-www-form-urlencoded").run().assertContent().is("p1=[null,null,null],p2=[0,null,0]");
-		a.post("/a", "p2=").contentType("application/x-www-form-urlencoded").run().assertContent().is("p1=[null,null,null],p2=[0,,0]");
-		a.post("/a", "p1=foo&p2").contentType("application/x-www-form-urlencoded").run().assertContent().is("p1=[foo,foo,foo],p2=[0,null,0]");
-		a.post("/a", "p1&p2=1").contentType("application/x-www-form-urlencoded").run().assertContent().is("p1=[null,null,null],p2=[1,1,1]");
+		a.post("/a", "p1=p1&p2=2").contentType("application/x-www-form-urlencoded").run().assertContent("p1=[p1,p1,p1],p2=[2,2,2]");
+		a.post("/a", "p1&p2").contentType("application/x-www-form-urlencoded").run().assertContent("p1=[null,null,null],p2=[0,null,0]");
+		a.post("/a", "p1=&p2=").contentType("application/x-www-form-urlencoded").run().assertContent("p1=[,,],p2=[0,,0]");
+		a.post("/a", "").contentType("application/x-www-form-urlencoded").run().assertContent("p1=[null,null,null],p2=[0,null,0]");
+		a.post("/a", "p1").contentType("application/x-www-form-urlencoded").run().assertContent("p1=[null,null,null],p2=[0,null,0]");
+		a.post("/a", "p1=").contentType("application/x-www-form-urlencoded").run().assertContent("p1=[,,],p2=[0,null,0]");
+		a.post("/a", "p2").contentType("application/x-www-form-urlencoded").run().assertContent("p1=[null,null,null],p2=[0,null,0]");
+		a.post("/a", "p2=").contentType("application/x-www-form-urlencoded").run().assertContent("p1=[null,null,null],p2=[0,,0]");
+		a.post("/a", "p1=foo&p2").contentType("application/x-www-form-urlencoded").run().assertContent("p1=[foo,foo,foo],p2=[0,null,0]");
+		a.post("/a", "p1&p2=1").contentType("application/x-www-form-urlencoded").run().assertContent("p1=[null,null,null],p2=[1,1,1]");
 		String x = "a%2Fb%25c%3Dd+e"; // [x/y%z=a+b]
-		a.post("/a", "p1="+x+"&p2=1").contentType("application/x-www-form-urlencoded").run().assertContent().is("p1=[a/b%c=d e,a/b%c=d e,a/b%c=d e],p2=[1,1,1]");
+		a.post("/a", "p1="+x+"&p2=1").contentType("application/x-www-form-urlencoded").run().assertContent("p1=[a/b%c=d e,a/b%c=d e,a/b%c=d e],p2=[1,1,1]");
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -84,11 +84,11 @@ public class FormData_Test {
 	public void b01_uonParameters() throws Exception {
 		RestClient b = MockRestClient.build(B.class);
 
-		b.post("/a", "p1=p1").contentType("application/x-www-form-urlencoded").run().assertContent().is("p1=[p1,p1,p1]");
-		b.post("/a", "p1='p1'").contentType("application/x-www-form-urlencoded").run().assertContent().is("p1=['p1','p1','p1']");
+		b.post("/a", "p1=p1").contentType("application/x-www-form-urlencoded").run().assertContent("p1=[p1,p1,p1]");
+		b.post("/a", "p1='p1'").contentType("application/x-www-form-urlencoded").run().assertContent("p1=['p1','p1','p1']");
 
-		b.post("/b", "p1=p1").contentType("application/x-www-form-urlencoded").run().assertContent().is("p1=[p1,p1,p1]");
-		b.post("/b", "p1='p1'").contentType("application/x-www-form-urlencoded").run().assertContent().is("p1=[p1,'p1','p1']");
+		b.post("/b", "p1=p1").contentType("application/x-www-form-urlencoded").run().assertContent("p1=[p1,p1,p1]");
+		b.post("/b", "p1='p1'").contentType("application/x-www-form-urlencoded").run().assertContent("p1=[p1,'p1','p1']");
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -131,17 +131,17 @@ public class FormData_Test {
 	public void c01_defaultFormData() throws Exception {
 		RestClient c = MockRestClient.build(C.class);
 
-		c.post("/a").contentType("application/x-www-form-urlencoded").run().assertContent().is("{f1:'1',f2:'2',f3:'3'}");
-		c.post("/a").contentType("application/x-www-form-urlencoded").formData("f1",4).formData("f2",5).formData("f3",6).run().assertContent().is("{f1:'4',f2:'5',f3:'6'}");
+		c.post("/a").contentType("application/x-www-form-urlencoded").run().assertContent("{f1:'1',f2:'2',f3:'3'}");
+		c.post("/a").contentType("application/x-www-form-urlencoded").formData("f1",4).formData("f2",5).formData("f3",6).run().assertContent("{f1:'4',f2:'5',f3:'6'}");
 
-		c.post("/b").contentType("application/x-www-form-urlencoded").run().assertContent().is("{f1:null,f2:null,f3:null}");
-		c.post("/b").contentType("application/x-www-form-urlencoded").formData("f1",4).formData("f2",5).formData("f3",6).run().assertContent().is("{f1:'4',f2:'5',f3:'6'}");
+		c.post("/b").contentType("application/x-www-form-urlencoded").run().assertContent("{f1:null,f2:null,f3:null}");
+		c.post("/b").contentType("application/x-www-form-urlencoded").formData("f1",4).formData("f2",5).formData("f3",6).run().assertContent("{f1:'4',f2:'5',f3:'6'}");
 
-		c.post("/c").contentType("application/x-www-form-urlencoded").run().assertContent().is("{f1:'1',f2:'2',f3:'3'}");
-		c.post("/c").contentType("application/x-www-form-urlencoded").formData("f1",4).formData("f2",5).formData("f3",6).run().assertContent().is("{f1:'4',f2:'5',f3:'6'}");
+		c.post("/c").contentType("application/x-www-form-urlencoded").run().assertContent("{f1:'1',f2:'2',f3:'3'}");
+		c.post("/c").contentType("application/x-www-form-urlencoded").formData("f1",4).formData("f2",5).formData("f3",6).run().assertContent("{f1:'4',f2:'5',f3:'6'}");
 
-		c.post("/d").contentType("application/x-www-form-urlencoded").run().assertContent().is("{f1:'4',f2:'5',f3:'6'}");
-		c.post("/d").contentType("application/x-www-form-urlencoded").formData("f1",7).formData("f2",8).formData("f3",9).run().assertContent().is("{f1:'7',f2:'8',f3:'9'}");
+		c.post("/d").contentType("application/x-www-form-urlencoded").run().assertContent("{f1:'4',f2:'5',f3:'6'}");
+		c.post("/d").contentType("application/x-www-form-urlencoded").formData("f1",7).formData("f2",8).formData("f3",9).run().assertContent("{f1:'7',f2:'8',f3:'9'}");
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -177,39 +177,39 @@ public class FormData_Test {
 
 		d.post("/a", "f1=123")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("123");
+			.assertStatus(200)
+			.assertContent("123");
 		d.post("/a", "null")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("null");
+			.assertStatus(200)
+			.assertContent("null");
 
 		d.post("/b", "f1=a=1,b=foo")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("{a:1,b:'foo'}");
+			.assertStatus(200)
+			.assertContent("{a:1,b:'foo'}");
 		d.post("/b", "null")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("null");
+			.assertStatus(200)
+			.assertContent("null");
 
 		d.post("/c", "f1=@((a=1,b=foo))")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("[{a:1,b:'foo'}]");
+			.assertStatus(200)
+			.assertContent("[{a:1,b:'foo'}]");
 		d.post("/c", "null")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("null");
+			.assertStatus(200)
+			.assertContent("null");
 
 		d.post("/d", "f1=@((a=1,b=foo))")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("[{a:1,b:'foo'}]");
+			.assertStatus(200)
+			.assertContent("[{a:1,b:'foo'}]");
 		d.post("/d", "null")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("null");
+			.assertStatus(200)
+			.assertContent("null");
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -260,63 +260,63 @@ public class FormData_Test {
 
 		f.post("/a1", "f1=123")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("123");
+			.assertStatus(200)
+			.assertContent("123");
 		f.post("/a1", "")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("1");
+			.assertStatus(200)
+			.assertContent("1");
 		f.post("/a2", "f1=123")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("123");
+			.assertStatus(200)
+			.assertContent("123");
 		f.post("/a2", "")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("1");
+			.assertStatus(200)
+			.assertContent("1");
 
 		f.post("/b1", "f1=a=1,b=foo")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("{a:1,b:'foo'}");
+			.assertStatus(200)
+			.assertContent("{a:1,b:'foo'}");
 		f.post("/b1", "")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("{a:2,b:'bar'}");
+			.assertStatus(200)
+			.assertContent("{a:2,b:'bar'}");
 		f.post("/b2", "f1=a=1,b=foo")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("{a:1,b:'foo'}");
+			.assertStatus(200)
+			.assertContent("{a:1,b:'foo'}");
 		f.post("/b2", "")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("{a:2,b:'bar'}");
+			.assertStatus(200)
+			.assertContent("{a:2,b:'bar'}");
 
 		f.post("/c1", "f1=@((a=1,b=foo))")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("[{a:1,b:'foo'}]");
+			.assertStatus(200)
+			.assertContent("[{a:1,b:'foo'}]");
 		f.post("/c1", "null")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("[{a:2,b:'bar'}]");
+			.assertStatus(200)
+			.assertContent("[{a:2,b:'bar'}]");
 		f.post("/c2", "f1=@((a=1,b=foo))")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("[{a:1,b:'foo'}]");
+			.assertStatus(200)
+			.assertContent("[{a:1,b:'foo'}]");
 		f.post("/c2", "null")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("[{a:2,b:'bar'}]");
+			.assertStatus(200)
+			.assertContent("[{a:2,b:'bar'}]");
 
 
 		f.post("/d", "f1=@((a=1,b=foo))")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("[{a:1,b:'foo'}]");
+			.assertStatus(200)
+			.assertContent("[{a:1,b:'foo'}]");
 		f.post("/d", "null")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("[{a:2,b:'bar'}]");
+			.assertStatus(200)
+			.assertContent("[{a:2,b:'bar'}]");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/HasFormData_Test.java b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/HasFormData_Test.java
index 89bf26e99..7037e2ffc 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/HasFormData_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/HasFormData_Test.java
@@ -40,17 +40,17 @@ public class HasFormData_Test {
 	@Test
 	public void a01_basic() throws Exception {
 		RestClient a = MockRestClient.build(A.class);
-		a.post("/a", "p1=p1&p2=2").run().assertContent().is("p1=[true,true],p2=[true,true]");
-		a.post("/a", "p1&p2").run().assertContent().is("p1=[true,true],p2=[true,true]");
-		a.post("/a", "p1=&p2=").run().assertContent().is("p1=[true,true],p2=[true,true]");
-		a.post("/a", null).run().assertContent().is("p1=[false,false],p2=[false,false]");
-		a.post("/a", "p1").run().assertContent().is("p1=[true,true],p2=[false,false]");
-		a.post("/a", "p1=").run().assertContent().is("p1=[true,true],p2=[false,false]");
-		a.post("/a", "p2").run().assertContent().is("p1=[false,false],p2=[true,true]");
-		a.post("/a", "p2=").run().assertContent().is("p1=[false,false],p2=[true,true]");
-		a.post("/a", "p1=foo&p2").run().assertContent().is("p1=[true,true],p2=[true,true]");
-		a.post("/a", "p1&p2=1").run().assertContent().is("p1=[true,true],p2=[true,true]");
+		a.post("/a", "p1=p1&p2=2").run().assertContent("p1=[true,true],p2=[true,true]");
+		a.post("/a", "p1&p2").run().assertContent("p1=[true,true],p2=[true,true]");
+		a.post("/a", "p1=&p2=").run().assertContent("p1=[true,true],p2=[true,true]");
+		a.post("/a", null).run().assertContent("p1=[false,false],p2=[false,false]");
+		a.post("/a", "p1").run().assertContent("p1=[true,true],p2=[false,false]");
+		a.post("/a", "p1=").run().assertContent("p1=[true,true],p2=[false,false]");
+		a.post("/a", "p2").run().assertContent("p1=[false,false],p2=[true,true]");
+		a.post("/a", "p2=").run().assertContent("p1=[false,false],p2=[true,true]");
+		a.post("/a", "p1=foo&p2").run().assertContent("p1=[true,true],p2=[true,true]");
+		a.post("/a", "p1&p2=1").run().assertContent("p1=[true,true],p2=[true,true]");
 		String x = "a%2Fb%25c%3Dd+e"; // [x/y%z=a+b]
-		a.post("/a", "p1="+x+"&p2=1").run().assertContent().is("p1=[true,true],p2=[true,true]");
+		a.post("/a", "p1="+x+"&p2=1").run().assertContent("p1=[true,true],p2=[true,true]");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/HasQuery_Test.java b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/HasQuery_Test.java
index ea037eca4..94c1ce369 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/HasQuery_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/HasQuery_Test.java
@@ -46,30 +46,30 @@ public class HasQuery_Test {
 	public void a01_basic() throws Exception {
 		RestClient a = MockRestClient.build(A.class);
 
-		a.get("/a?p1=p1&p2=2").run().assertContent().is("p1=[true,true],p2=[true,true]");
-		a.get("/a?p1&p2").run().assertContent().is("p1=[true,true],p2=[true,true]");
-		a.get("/a?p1=&p2=").run().assertContent().is("p1=[true,true],p2=[true,true]");
-		a.get("/a").run().assertContent().is("p1=[false,false],p2=[false,false]");
-		a.get("/a?p1").run().assertContent().is("p1=[true,true],p2=[false,false]");
-		a.get("/a?p1=").run().assertContent().is("p1=[true,true],p2=[false,false]");
-		a.get("/a?p2").run().assertContent().is("p1=[false,false],p2=[true,true]");
-		a.get("/a?p2=").run().assertContent().is("p1=[false,false],p2=[true,true]");
-		a.get("/a?p1=foo&p2").run().assertContent().is("p1=[true,true],p2=[true,true]");
-		a.get("/a?p1&p2=1").run().assertContent().is("p1=[true,true],p2=[true,true]");
+		a.get("/a?p1=p1&p2=2").run().assertContent("p1=[true,true],p2=[true,true]");
+		a.get("/a?p1&p2").run().assertContent("p1=[true,true],p2=[true,true]");
+		a.get("/a?p1=&p2=").run().assertContent("p1=[true,true],p2=[true,true]");
+		a.get("/a").run().assertContent("p1=[false,false],p2=[false,false]");
+		a.get("/a?p1").run().assertContent("p1=[true,true],p2=[false,false]");
+		a.get("/a?p1=").run().assertContent("p1=[true,true],p2=[false,false]");
+		a.get("/a?p2").run().assertContent("p1=[false,false],p2=[true,true]");
+		a.get("/a?p2=").run().assertContent("p1=[false,false],p2=[true,true]");
+		a.get("/a?p1=foo&p2").run().assertContent("p1=[true,true],p2=[true,true]");
+		a.get("/a?p1&p2=1").run().assertContent("p1=[true,true],p2=[true,true]");
 		String x1 = "a%2Fb%25c%3Dd+e"; // [x/y%z=a+b]
-		a.get("/a?p1="+x1+"&p2=1").run().assertContent().is("p1=[true,true],p2=[true,true]");
+		a.get("/a?p1="+x1+"&p2=1").run().assertContent("p1=[true,true],p2=[true,true]");
 
-		a.post("/b?p1=p1&p2=2", null).run().assertContent().is("p1=[true,true],p2=[true,true]");
-		a.post("/b?p1&p2", null).run().assertContent().is("p1=[true,true],p2=[true,true]");
-		a.post("/b?p1=&p2=", null).run().assertContent().is("p1=[true,true],p2=[true,true]");
-		a.post("/b", null).run().assertContent().is("p1=[false,false],p2=[false,false]");
-		a.post("/b?p1", null).run().assertContent().is("p1=[true,true],p2=[false,false]");
-		a.post("/b?p1=", null).run().assertContent().is("p1=[true,true],p2=[false,false]");
-		a.post("/b?p2", null).run().assertContent().is("p1=[false,false],p2=[true,true]");
-		a.post("/b?p2=", null).run().assertContent().is("p1=[false,false],p2=[true,true]");
-		a.post("/b?p1=foo&p2", null).run().assertContent().is("p1=[true,true],p2=[true,true]");
-		a.post("/b?p1&p2=1", null).run().assertContent().is("p1=[true,true],p2=[true,true]");
+		a.post("/b?p1=p1&p2=2", null).run().assertContent("p1=[true,true],p2=[true,true]");
+		a.post("/b?p1&p2", null).run().assertContent("p1=[true,true],p2=[true,true]");
+		a.post("/b?p1=&p2=", null).run().assertContent("p1=[true,true],p2=[true,true]");
+		a.post("/b", null).run().assertContent("p1=[false,false],p2=[false,false]");
+		a.post("/b?p1", null).run().assertContent("p1=[true,true],p2=[false,false]");
+		a.post("/b?p1=", null).run().assertContent("p1=[true,true],p2=[false,false]");
+		a.post("/b?p2", null).run().assertContent("p1=[false,false],p2=[true,true]");
+		a.post("/b?p2=", null).run().assertContent("p1=[false,false],p2=[true,true]");
+		a.post("/b?p1=foo&p2", null).run().assertContent("p1=[true,true],p2=[true,true]");
+		a.post("/b?p1&p2=1", null).run().assertContent("p1=[true,true],p2=[true,true]");
 		String x2 = "a%2Fb%25c%3Dd+e"; // [x/y%z=a+b]
-		a.post("/b?p1="+x2+"&p2=1", null).run().assertContent().is("p1=[true,true],p2=[true,true]");
+		a.post("/b?p1="+x2+"&p2=1", null).run().assertContent("p1=[true,true],p2=[true,true]");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/Header_Test.java b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/Header_Test.java
index 082f789e6..e006dc859 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/Header_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/Header_Test.java
@@ -62,42 +62,42 @@ public class Header_Test {
 
 		a.get("/a").header("f1", 123)
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("123");
+			.assertStatus(200)
+			.assertContent("123");
 		a.get("/a")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("null");
+			.assertStatus(200)
+			.assertContent("null");
 
 		a.get("/b")
 			.header("f1", "a=1,b=foo")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("{a:1,b:'foo'}");
+			.assertStatus(200)
+			.assertContent("{a:1,b:'foo'}");
 		a.get("/b")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("null");
+			.assertStatus(200)
+			.assertContent("null");
 
 		a.get("/c")
 			.header("f1", "@((a=1,b=foo))")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("[{a:1,b:'foo'}]");
+			.assertStatus(200)
+			.assertContent("[{a:1,b:'foo'}]");
 		a.get("/c")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("null");
+			.assertStatus(200)
+			.assertContent("null");
 
 		a.get("/d")
 			.header("f1", "@((a=1,b=foo))")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("[{a:1,b:'foo'}]");
+			.assertStatus(200)
+			.assertContent("[{a:1,b:'foo'}]");
 		a.get("/d")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("null");
+			.assertStatus(200)
+			.assertContent("null");
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -118,9 +118,9 @@ public class Header_Test {
 	@Test
 	public void b01_annotatedHeaders() throws Exception {
 		RestClient b = MockRestClient.build(B.class);
-		b.get("/a").run().assertContent().is("{h1:null,h2:null,h3:null}");
-		b.get("/a").header("H1",4).header("H2",5).header("H3",6).run().assertContent().is("{h1:'4',h2:'5',h3:'6'}");
-		b.get("/a").header("h1",4).header("h2",5).header("h3",6).run().assertContent().is("{h1:'4',h2:'5',h3:'6'}");
+		b.get("/a").run().assertContent("{h1:null,h2:null,h3:null}");
+		b.get("/a").header("H1",4).header("H2",5).header("H3",6).run().assertContent("{h1:'4',h2:'5',h3:'6'}");
+		b.get("/a").header("h1",4).header("h2",5).header("h3",6).run().assertContent("{h1:'4',h2:'5',h3:'6'}");
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -141,9 +141,9 @@ public class Header_Test {
 	@Test
 	public void c01_annotatedHeadersCaseInsensitive() throws Exception {
 		RestClient c = MockRestClient.build(C.class);
-		c.get("/a").run().assertContent().is("{h1:null,h2:null,h3:null}");
-		c.get("/a").header("H1",4).header("H2",5).header("H3",6).run().assertContent().is("{h1:'4',h2:'5',h3:'6'}");
-		c.get("/a").header("h1",4).header("h2",5).header("h3",6).run().assertContent().is("{h1:'4',h2:'5',h3:'6'}");
+		c.get("/a").run().assertContent("{h1:null,h2:null,h3:null}");
+		c.get("/a").header("H1",4).header("H2",5).header("H3",6).run().assertContent("{h1:'4',h2:'5',h3:'6'}");
+		c.get("/a").header("h1",4).header("h2",5).header("h3",6).run().assertContent("{h1:'4',h2:'5',h3:'6'}");
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -164,9 +164,9 @@ public class Header_Test {
 	@Test
 	public void d01_annotatedHeadersDefault() throws Exception {
 		RestClient d1 = MockRestClient.build(D1.class);
-		d1.get("/a").run().assertContent().is("{h1:'1',h2:'2',h3:'3'}");
-		d1.get("/a").header("H1",4).header("H2",5).header("H3",6).run().assertContent().is("{h1:'4',h2:'5',h3:'6'}");
-		d1.get("/a").header("h1",4).header("h2",5).header("h3",6).run().assertContent().is("{h1:'4',h2:'5',h3:'6'}");
+		d1.get("/a").run().assertContent("{h1:'1',h2:'2',h3:'3'}");
+		d1.get("/a").header("H1",4).header("H2",5).header("H3",6).run().assertContent("{h1:'4',h2:'5',h3:'6'}");
+		d1.get("/a").header("h1",4).header("h2",5).header("h3",6).run().assertContent("{h1:'4',h2:'5',h3:'6'}");
 	}
 
 	@Rest
@@ -183,9 +183,9 @@ public class Header_Test {
 	@Test
 	public void d02_annotatedHeadersDefault() throws Exception {
 		RestClient d2 = MockRestClient.build(D2.class);
-		d2.get("/a").run().assertContent().is("{h1:'1',h2:'2',h3:'3'}");
-		d2.get("/a").header("H1",4).header("H2",5).header("H3",6).run().assertContent().is("{h1:'4',h2:'5',h3:'6'}");
-		d2.get("/a").header("h1",4).header("h2",5).header("h3",6).run().assertContent().is("{h1:'4',h2:'5',h3:'6'}");
+		d2.get("/a").run().assertContent("{h1:'1',h2:'2',h3:'3'}");
+		d2.get("/a").header("H1",4).header("H2",5).header("H3",6).run().assertContent("{h1:'4',h2:'5',h3:'6'}");
+		d2.get("/a").header("h1",4).header("h2",5).header("h3",6).run().assertContent("{h1:'4',h2:'5',h3:'6'}");
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -206,9 +206,9 @@ public class Header_Test {
 	@Test
 	public void e01_annotatedAndDefaultHeaders() throws Exception {
 		RestClient e = MockRestClient.build(E.class);
-		e.get("/a").run().assertContent().is("{h1:'4',h2:'5',h3:'6'}");
-		e.get("/a").header("H1",7).header("H2",8).header("H3",9).run().assertContent().is("{h1:'7',h2:'8',h3:'9'}");
-		e.get("/a").header("h1",7).header("h2",8).header("h3",9).run().assertContent().is("{h1:'7',h2:'8',h3:'9'}");
+		e.get("/a").run().assertContent("{h1:'4',h2:'5',h3:'6'}");
+		e.get("/a").header("H1",7).header("H2",8).header("H3",9).run().assertContent("{h1:'7',h2:'8',h3:'9'}");
+		e.get("/a").header("h1",7).header("h2",8).header("h3",9).run().assertContent("{h1:'7',h2:'8',h3:'9'}");
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -259,65 +259,65 @@ public class Header_Test {
 		f.get("/a1")
 			.header("f1","123")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("123");
+			.assertStatus(200)
+			.assertContent("123");
 		f.get("/a1")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("1");
+			.assertStatus(200)
+			.assertContent("1");
 		f.get("/a2")
 			.header("f1","123")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("123");
+			.assertStatus(200)
+			.assertContent("123");
 		f.get("/a2")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("1");
+			.assertStatus(200)
+			.assertContent("1");
 		f.get("/b1")
 			.header("f1","a=2,b=bar")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("{a:2,b:'bar'}");
+			.assertStatus(200)
+			.assertContent("{a:2,b:'bar'}");
 		f.get("/b1")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("{a:1,b:'foo'}");
+			.assertStatus(200)
+			.assertContent("{a:1,b:'foo'}");
 		f.get("/b2")
 			.header("f1","a=2,b=bar")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("{a:2,b:'bar'}");
+			.assertStatus(200)
+			.assertContent("{a:2,b:'bar'}");
 		f.get("/b2")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("{a:1,b:'foo'}");
+			.assertStatus(200)
+			.assertContent("{a:1,b:'foo'}");
 		f.get("/c1")
 			.header("f1","@((a=2,b=bar))")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("[{a:2,b:'bar'}]");
+			.assertStatus(200)
+			.assertContent("[{a:2,b:'bar'}]");
 		f.get("/c1")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("[{a:1,b:'foo'}]");
+			.assertStatus(200)
+			.assertContent("[{a:1,b:'foo'}]");
 		f.get("/c2")
 			.header("f1","@((a=2,b=bar))")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("[{a:2,b:'bar'}]");
+			.assertStatus(200)
+			.assertContent("[{a:2,b:'bar'}]");
 		f.get("/c2")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("[{a:1,b:'foo'}]");
+			.assertStatus(200)
+			.assertContent("[{a:1,b:'foo'}]");
 		f.get("/d")
 			.header("f1","@((a=2,b=bar))")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("[{a:2,b:'bar'}]");
+			.assertStatus(200)
+			.assertContent("[{a:2,b:'bar'}]");
 		f.get("/d")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("[{a:1,b:'foo'}]");
+			.assertStatus(200)
+			.assertContent("[{a:1,b:'foo'}]");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/PathRemainder_Test.java b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/PathRemainder_Test.java
index b6303855c..d328018df 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/PathRemainder_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/PathRemainder_Test.java
@@ -59,30 +59,30 @@ public class PathRemainder_Test {
 	public void a01_basic() throws Exception {
 		RestClient a = MockRestClient.build(A.class);
 
-		a.get("/a").run().assertContent().is("null");
-		a.get("/a/").run().assertContent().is("");
-		a.get("/a/foo").run().assertContent().is("foo");
-		a.get("/a/foo/bar").run().assertContent().is("foo/bar");
+		a.get("/a").run().assertContent("null");
+		a.get("/a/").run().assertContent("");
+		a.get("/a/foo").run().assertContent("foo");
+		a.get("/a/foo/bar").run().assertContent("foo/bar");
 
-		a.get("/b").run().assertContent().is("null");
-		a.get("/b/").run().assertContent().is("");
-		a.get("/b/foo").run().assertContent().is("foo");
-		a.get("/b/foo/bar").run().assertContent().is("foo/bar");
+		a.get("/b").run().assertContent("null");
+		a.get("/b/").run().assertContent("");
+		a.get("/b/foo").run().assertContent("foo");
+		a.get("/b/foo/bar").run().assertContent("foo/bar");
 
-		a.put("/c").run().assertContent().is("null");
-		a.put("/c/").run().assertContent().is("");
-		a.put("/c/foo").run().assertContent().is("foo");
-		a.put("/c/foo/bar").run().assertContent().is("foo/bar");
+		a.put("/c").run().assertContent("null");
+		a.put("/c/").run().assertContent("");
+		a.put("/c/foo").run().assertContent("foo");
+		a.put("/c/foo/bar").run().assertContent("foo/bar");
 
-		a.post("/d").run().assertContent().is("null");
-		a.post("/d/").run().assertContent().is("");
-		a.post("/d/foo").run().assertContent().is("foo");
-		a.post("/d/foo/bar").run().assertContent().is("foo/bar");
+		a.post("/d").run().assertContent("null");
+		a.post("/d/").run().assertContent("");
+		a.post("/d/foo").run().assertContent("foo");
+		a.post("/d/foo/bar").run().assertContent("foo/bar");
 
-		a.delete("/e").run().assertContent().is("null");
-		a.delete("/e/").run().assertContent().is("");
-		a.delete("/e/foo").run().assertContent().is("foo");
-		a.delete("/e/foo/bar").run().assertContent().is("foo/bar");
+		a.delete("/e").run().assertContent("null");
+		a.delete("/e/").run().assertContent("");
+		a.delete("/e/foo").run().assertContent("foo");
+		a.delete("/e/foo/bar").run().assertContent("foo/bar");
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -117,19 +117,19 @@ public class PathRemainder_Test {
 		RestClient b = MockRestClient.buildJson(B.class);
 		b.get("/a/123")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("123");
+			.assertStatus(200)
+			.assertContent("123");
 		b.put("/b/a=1,b=foo")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("{a:1,b:'foo'}");
+			.assertStatus(200)
+			.assertContent("{a:1,b:'foo'}");
 		b.post("/c/@((a=1,b=foo))")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("[{a:1,b:'foo'}]");
+			.assertStatus(200)
+			.assertContent("[{a:1,b:'foo'}]");
 		b.delete("/d/@((a=1,b=foo))")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("[{a:1,b:'foo'}]");
+			.assertStatus(200)
+			.assertContent("[{a:1,b:'foo'}]");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/Path_Test.java b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/Path_Test.java
index 296faa2f5..43db36a0e 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/Path_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/Path_Test.java
@@ -68,30 +68,30 @@ public class Path_Test {
 
 		a.get("/bad?noTrace=true")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 
 		a.get(null)
 			.run()
-			.assertContent().is("GET");
+			.assertContent("GET");
 		a.get()
 			.run()
-			.assertContent().is("GET");
+			.assertContent("GET");
 
 		a.get("/a")
 			.run()
-			.assertContent().is("GET /a");
+			.assertContent("GET /a");
 
 		a.get("/a/foo")
 			.run()
-			.assertContent().is("GET /a foo");
+			.assertContent("GET /a foo");
 
 		a.get("/a/foo/bar")
 			.run()
-			.assertContent().is("GET /a foo,bar");
+			.assertContent("GET /a foo,bar");
 
 		a.get("/a/foo/123/baz")
 			.run()
-			.assertContent().is("GET /a foo,123,r=baz");
+			.assertContent("GET /a foo,123,r=baz");
 
 		// URL-encoded part should not get decoded before finding method to invoke.
 		// This should match /get1/{foo} and not /get1/{foo}/{bar}
@@ -99,10 +99,10 @@ public class Path_Test {
 		// -Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true
 		a.get("/a/x%2Fy")
 			.run()
-			.assertContent().is("GET /a x/y");
+			.assertContent("GET /a x/y");
 		a.get("/a/x%2Fy/x%2Fy")
 			.run()
-			.assertContent().is("GET /a x/y,x/y");
+			.assertContent("GET /a x/y,x/y");
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -151,59 +151,59 @@ public class Path_Test {
 
 		b.get("/a/123/foo")
 			.run()
-			.assertContent().is("123");
+			.assertContent("123");
 		b.get("/a/bad/foo?noTrace=true")
 			.run()
-			.assertCode().is(400);
+			.assertStatus(400);
 
 		b.get("/b/123/foo")
 			.run()
-			.assertContent().is("123");
+			.assertContent("123");
 		b.get("/b/bad/foo?noTrace=true")
 			.run()
-			.assertCode().is(400);
+			.assertStatus(400);
 
 		b.get("/c/123/foo")
 			.run()
-			.assertContent().is("123");
+			.assertContent("123");
 		b.get("/c/bad/foo?noTrace=true")
 			.run()
-			.assertCode().is(400);
+			.assertStatus(400);
 
 		b.get("/d/c/foo")
 			.run()
-			.assertContent().is("c");
+			.assertContent("c");
 		b.get("/d/bad/foo?noTrace=true")
 			.run()
-			.assertCode().is(400);
+			.assertStatus(400);
 
 		b.get("/e/1.23/foo")
 			.run()
-			.assertContent().is("1.23");
+			.assertContent("1.23");
 		b.get("/e/bad/foo?noTrace=true")
 			.run()
-			.assertCode().is(400);
+			.assertStatus(400);
 
 		b.get("/f/1.23/foo")
 			.run()
-			.assertContent().is("1.23");
+			.assertContent("1.23");
 		b.get("/f/bad/foo?noTrace=true")
 			.run()
-			.assertCode().is(400);
+			.assertStatus(400);
 
 		b.get("/g/123/foo")
 			.run()
-			.assertContent().is("123");
+			.assertContent("123");
 		b.get("/g/bad/foo?noTrace=true")
 			.run()
-			.assertCode().is(400);
+			.assertStatus(400);
 
 		b.get("/h/true/foo")
 			.run()
-			.assertContent().is("true");
+			.assertContent("true");
 		b.get("/h/bad/foo?noTrace=true")
 			.run()
-			.assertCode().is(400);
+			.assertStatus(400);
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -252,59 +252,59 @@ public class Path_Test {
 
 		c.get("/a/123/foo")
 			.run()
-			.assertContent().is("123");
+			.assertContent("123");
 		c.get("/a/bad/foo?noTrace=true")
 			.run()
-			.assertCode().is(400);
+			.assertStatus(400);
 
 		c.get("/b/123/foo")
 			.run()
-			.assertContent().is("123");
+			.assertContent("123");
 		c.get("/b/bad/foo?noTrace=true")
 			.run()
-			.assertCode().is(400);
+			.assertStatus(400);
 
 		c.get("/c/123/foo")
 			.run()
-			.assertContent().is("123");
+			.assertContent("123");
 		c.get("/c/bad/foo?noTrace=true")
 			.run()
-			.assertCode().is(400);
+			.assertStatus(400);
 
 		c.get("/d/c/foo")
 			.run()
-			.assertContent().is("c");
+			.assertContent("c");
 		c.get("/d/bad/foo?noTrace=true")
 			.run()
-			.assertCode().is(400);
+			.assertStatus(400);
 
 		c.get("/e/1.23/foo")
 			.run()
-			.assertContent().is("1.23");
+			.assertContent("1.23");
 		c.get("/e/bad/foo?noTrace=true")
 			.run()
-			.assertCode().is(400);
+			.assertStatus(400);
 
 		c.get("/f/1.23/foo")
 			.run()
-			.assertContent().is("1.23");
+			.assertContent("1.23");
 		c.get("/f/bad/foo?noTrace=true")
 			.run()
-			.assertCode().is(400);
+			.assertStatus(400);
 
 		c.get("/g/123/foo")
 			.run()
-			.assertContent().is("123");
+			.assertContent("123");
 		c.get("/g/bad/foo?noTrace=true")
 			.run()
-			.assertCode().is(400);
+			.assertStatus(400);
 
 		c.get("/h/true/foo")
 			.run()
-			.assertContent().is("true");
+			.assertContent("true");
 		c.get("/h/bad/foo?noTrace=true")
 			.run()
-			.assertCode().is(400);
+			.assertStatus(400);
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -327,7 +327,7 @@ public class Path_Test {
 		UUID uuid = UUID.randomUUID();
 		d.get("/a/" + uuid)
 			.run()
-			.assertContent().is(uuid.toString());
+			.assertContent(uuid.toString());
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -363,19 +363,19 @@ public class Path_Test {
 		RestClient e = MockRestClient.build(E.class);
 		e.get("/x/x1/x2")
 			.run()
-			.assertContent().is("{m:'normal1',foo:'x1',bar:'x2'}");
+			.assertContent("{m:'normal1',foo:'x1',bar:'x2'}");
 		e.get("/x/x1/x/x2/x")
 			.run()
-			.assertContent().is("{m:'normal2',foo:'x1',bar:'x2'}");
+			.assertContent("{m:'normal2',foo:'x1',bar:'x2'}");
 		e.get("/y/y1/y2")
 			.run()
-			.assertContent().is("{m:'numbers1','0':'y1','1':'y2'}");
+			.assertContent("{m:'numbers1','0':'y1','1':'y2'}");
 		e.get("/y/y1/y/y2/y")
 			.run()
-			.assertContent().is("{m:'numbers2','0':'y1','1':'y2'}");
+			.assertContent("{m:'numbers2','0':'y1','1':'y2'}");
 		e.get("/z/z1/z/z2/z")
 			.run()
-			.assertContent().is("{m:'numbers3','0':'z2','1':'z1'}");
+			.assertContent("{m:'numbers3','0':'z2','1':'z1'}");
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -418,76 +418,76 @@ public class Path_Test {
 		RestClient f = MockRestClient.createLax(F.class).servletPath("/f").defaultRequestConfig(RequestConfig.custom().setNormalizeUri(false).build()).build();
 		f.get("http://localhost/f/x1/x2")
 			.run()
-			.assertContent().is("a: {a:'x1',b:'x2'}");
+			.assertContent("a: {a:'x1',b:'x2'}");
 		f.get("http://localhost/f/x1")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		f.get("http://localhost/f")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		f.get("http://localhost/f//")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		f.get("http://localhost/f/x/")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		f.get("http://localhost/f//x")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		f.get("http://localhost/f/x1/x2/foo")
 			.run()
-			.assertContent().is("b: {'/*':'foo','/**':'foo',a:'x1',b:'x2'}");
+			.assertContent("b: {'/*':'foo','/**':'foo',a:'x1',b:'x2'}");
 		f.get("http://localhost/f///foo")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		f.get("http://localhost/f/x1//foo")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		f.get("http://localhost/f//x2/foo")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		f.get("http://localhost/f/x1/x2/fc")
 			.run()
-			.assertContent().is("c: {a:'x1',b:'x2'}");
+			.assertContent("c: {a:'x1',b:'x2'}");
 		f.get("http://localhost/f///a")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		f.get("http://localhost/f/x1//a")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		f.get("http://localhost/f//x2/a")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		f.get("http://localhost/f/x1/x2/fd/x3/x4")
 			.run()
-			.assertContent().is("d: {a:'x1',b:'x2',c:'x3',d:'x4'}");
+			.assertContent("d: {a:'x1',b:'x2',c:'x3',d:'x4'}");
 		f.get("http://localhost/f//x2/b/x3/x4")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		f.get("http://localhost/f/x1//b/x3/x4")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		f.get("http://localhost/f/x1/x2/b//x4")
 			.run()
-			.assertCode().is(200);
+			.assertStatus(200);
 		f.get("http://localhost/f/x1/x2/b/x3/")
 			.run()
-			.assertCode().is(200);
+			.assertStatus(200);
 		f.get("http://localhost/f///b//")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		f.get("http://localhost/f/x1/x2/fe/x3/x4")
 			.run()
-			.assertContent().is("e: {a:'x3',b:'x4'}");
+			.assertContent("e: {a:'x3',b:'x4'}");
 		f.get("http://localhost/f/x1/x2/ff/x3/x4")
 			.run()
-			.assertContent().is("f: {a:'x1',b:'x2',c:'x3',d:'x4'}");
+			.assertContent("f: {a:'x1',b:'x2',c:'x3',d:'x4'}");
 		f.get("http://localhost/f/x1/x2/ff/x3/x4/")
 			.run()
-			.assertContent().is("f: {'/*':'','/**':'',a:'x1',b:'x2',c:'x3',d:'x4'}");
+			.assertContent("f: {'/*':'','/**':'',a:'x1',b:'x2',c:'x3',d:'x4'}");
 		f.get("http://localhost/f/x1/x2/ff/x3/x4/foo/bar")
 			.run()
-			.assertContent().is("f: {'/*':'foo/bar','/**':'foo/bar',a:'x1',b:'x2',c:'x3',d:'x4'}");
+			.assertContent("f: {'/*':'foo/bar','/**':'foo/bar',a:'x1',b:'x2',c:'x3',d:'x4'}");
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -503,64 +503,64 @@ public class Path_Test {
 		RestClient g = MockRestClient.createLax(G.class).defaultRequestConfig(RequestConfig.custom().setNormalizeUri(false).build()).build();
 		g.get("http://localhost/f/x1/x2")
 			.run()
-			.assertContent().is("a: {a:'x1',b:'x2'}");
+			.assertContent("a: {a:'x1',b:'x2'}");
 		g.get("http://localhost/f/x1")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		g.get("http://localhost/f")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		g.get("http://localhost/f//")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		g.get("http://localhost/f/x1/")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		g.get("http://localhost/f//x2")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		g.get("http://localhost/f/x1/x2/fc")
 			.run()
-			.assertContent().is("c: {a:'x1',b:'x2'}");
+			.assertContent("c: {a:'x1',b:'x2'}");
 		g.get("http://localhost/f///a")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		g.get("http://localhost/f/x1//a")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		g.get("http://localhost/f//x2/a")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		g.get("http://localhost/f/x1/x2/fd/x3/x4")
 			.run()
-			.assertContent().is("d: {a:'x1',b:'x2',c:'x3',d:'x4'}");
+			.assertContent("d: {a:'x1',b:'x2',c:'x3',d:'x4'}");
 		g.get("http://localhost/f//x2/b/x3/x4")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		g.get("http://localhost/f/x1//b/x3/x4")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		g.get("http://localhost/f/x1/x2/b//x4")
 			.run()
-			.assertCode().is(200);
+			.assertStatus(200);
 		g.get("http://localhost/f/x1/x2/b/x3/")
 			.run()
-			.assertCode().is(200);
+			.assertStatus(200);
 		g.get("http://localhost/f///b//")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		g.get("http://localhost/f/x1/x2/fe/x3/x4")
 			.run()
-			.assertContent().is("e: {a:'x3',b:'x4'}");
+			.assertContent("e: {a:'x3',b:'x4'}");
 		g.get("http://localhost/f/x1/x2/ff/x3/x4")
 			.run()
-			.assertContent().is("f: {a:'x1',b:'x2',c:'x3',d:'x4'}");
+			.assertContent("f: {a:'x1',b:'x2',c:'x3',d:'x4'}");
 		g.get("http://localhost/f/x1/x2/ff/x3/x4/")
 			.run()
-			.assertContent().is("f: {'/*':'','/**':'',a:'x1',b:'x2',c:'x3',d:'x4'}");
+			.assertContent("f: {'/*':'','/**':'',a:'x1',b:'x2',c:'x3',d:'x4'}");
 		g.get("http://localhost/f/x1/x2/ff/x3/x4/foo/bar")
 			.run()
-			.assertContent().is("f: {'/*':'foo/bar','/**':'foo/bar',a:'x1',b:'x2',c:'x3',d:'x4'}");
+			.assertContent("f: {'/*':'foo/bar','/**':'foo/bar',a:'x1',b:'x2',c:'x3',d:'x4'}");
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -575,89 +575,89 @@ public class Path_Test {
 		RestClient h = MockRestClient.createLax(H.class).servletPath("/h").defaultRequestConfig(RequestConfig.custom().setNormalizeUri(false).build()).build();
 		h.get("http://localhost/h/ha1/hb1/f/x1/x2")
 			.run()
-			.assertContent().is("a: {a:'x1',b:'x2',ha:'ha1',hb:'hb1'}");
+			.assertContent("a: {a:'x1',b:'x2',ha:'ha1',hb:'hb1'}");
 		// These are 405 instead of 404 because when children don't match, we try to find a matching Java method.
 		h.get("http://localhost/h/ha1/hb1/f/x1")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		h.get("http://localhost/h/ha1/hb1/f")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		h.get("http://localhost/h/ha1/hb1")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		h.get("http://localhost/h/ha1")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		h.get("http://localhost/h")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		h.get("http://localhost/h//hb1/f/x1/x2")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		h.get("http://localhost/h/ha1//f/x1/x2")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		h.get("http://localhost/h/ha1/hb1/f//x2")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		h.get("http://localhost/h/ha1/hb1/f/x1/")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		h.get("http://localhost/h///f//")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		h.get("http://localhost/h/ha1/hb1/f/x1/x2/foo")
 			.run()
-			.assertContent().is("b: {'/*':'foo','/**':'foo',a:'x1',b:'x2',ha:'ha1',hb:'hb1'}");
+			.assertContent("b: {'/*':'foo','/**':'foo',a:'x1',b:'x2',ha:'ha1',hb:'hb1'}");
 		h.get("http://localhost/h//hb1/f/x1/x2/foo")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		h.get("http://localhost/h/ha1//f/x1/x2/foo")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		h.get("http://localhost/h/ha1/hb1/f//x2/foo")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		h.get("http://localhost/h/ha1/hb1/f/x1//foo")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		h.get("http://localhost/h///f///foo")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		h.get("http://localhost/h/ha1/hb1/f/x1/x2/fc")
 			.run()
-			.assertContent().is("c: {a:'x1',b:'x2',ha:'ha1',hb:'hb1'}");
+			.assertContent("c: {a:'x1',b:'x2',ha:'ha1',hb:'hb1'}");
 		h.get("http://localhost/h//hb1/f/x1/x2/a")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		h.get("http://localhost/h/ha1//f/x1/x2/a")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		h.get("http://localhost/h/ha1/hb1/f//x2/a")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		h.get("http://localhost/h/ha1/hb1/f/x1//a")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		h.get("http://localhost/h///f///a")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		h.get("http://localhost/h/ha1/hb1/f/x1/x2/fd/x3/x4")
 			.run()
-			.assertContent().is("d: {a:'x1',b:'x2',c:'x3',d:'x4',ha:'ha1',hb:'hb1'}");
+			.assertContent("d: {a:'x1',b:'x2',c:'x3',d:'x4',ha:'ha1',hb:'hb1'}");
 		h.get("http://localhost/h/ha1/hb1/f/x1/x2/fe/x3/x4")
 			.run()
-			.assertContent().is("e: {a:'x3',b:'x4',ha:'ha1',hb:'hb1'}");
+			.assertContent("e: {a:'x3',b:'x4',ha:'ha1',hb:'hb1'}");
 		h.get("http://localhost/h/ha1/hb1/f/x1/x2/ff/x3/x4")
 			.run()
-			.assertContent().is("f: {a:'x1',b:'x2',c:'x3',d:'x4',ha:'ha1',hb:'hb1'}");
+			.assertContent("f: {a:'x1',b:'x2',c:'x3',d:'x4',ha:'ha1',hb:'hb1'}");
 		h.get("http://localhost/h/ha1/hb1/f/x1/x2/ff/x3/x4/")
 			.run()
-			.assertContent().is("f: {'/*':'','/**':'',a:'x1',b:'x2',c:'x3',d:'x4',ha:'ha1',hb:'hb1'}");
+			.assertContent("f: {'/*':'','/**':'',a:'x1',b:'x2',c:'x3',d:'x4',ha:'ha1',hb:'hb1'}");
 		h.get("http://localhost/h/ha1/hb1/f/x1/x2/ff/x3/x4/foo/bar")
 			.run()
-			.assertContent().is("f: {'/*':'foo/bar','/**':'foo/bar',a:'x1',b:'x2',c:'x3',d:'x4',ha:'ha1',hb:'hb1'}");
+			.assertContent("f: {'/*':'foo/bar','/**':'foo/bar',a:'x1',b:'x2',c:'x3',d:'x4',ha:'ha1',hb:'hb1'}");
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -672,73 +672,73 @@ public class Path_Test {
 		RestClient i = MockRestClient.createLax(I.class).servletPath("/i").build();
 		i.get("http://localhost/i/ia1/ib1/h/ha1/hb1/f/x1/x2")
 			.run()
-			.assertContent().is("a: {a:'x1',b:'x2',ha:'ha1',hb:'hb1',ia:'ia1',ib:'ib1'}");
+			.assertContent("a: {a:'x1',b:'x2',ha:'ha1',hb:'hb1',ia:'ia1',ib:'ib1'}");
 		i.get("http://localhost/i/ia1/ib1/h/ha1/hb1/f/x1")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		i.get("http://localhost/i/ia1/ib1/h/ha1/hb1/f")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		i.get("http://localhost/i/ia1/ib1/h/ha1/hb1")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		i.get("http://localhost/i/ia1/ib1/h/ha1")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		i.get("http://localhost/i/ia1/ib1/h")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		i.get("http://localhost/i/ia1/ib1")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		i.get("http://localhost/i/ia1")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		i.get("http://localhost/i")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		i.get("http://localhost/i//ib1/h/ha1/hb1/f/x1/x2")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		i.get("http://localhost/i/ia1//h/ha1/hb1/f/x1/x2")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		i.get("http://localhost/i/ia1/ib1/h//hb1/f/x1/x2")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		i.get("http://localhost/i/ia1/ib1/h/ha1//f/x1/x2")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		i.get("http://localhost/i/ia1/ib1/h/ha1/hb1/f//x2")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		i.get("http://localhost/i/ia1/ib1/h/ha1/hb1/f/x1/")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		i.get("http://localhost/i///h///f//")
 			.run()
-			.assertCode().is(404);
+			.assertStatus(404);
 		i.get("http://localhost/i/ia1/ib1/h/ha1/hb1/f/x1/x2/foo")
 			.run()
-			.assertContent().is("b: {'/*':'foo','/**':'foo',a:'x1',b:'x2',ha:'ha1',hb:'hb1',ia:'ia1',ib:'ib1'}");
+			.assertContent("b: {'/*':'foo','/**':'foo',a:'x1',b:'x2',ha:'ha1',hb:'hb1',ia:'ia1',ib:'ib1'}");
 		i.get("http://localhost/i/ia1/ib1/h/ha1/hb1/f/x1/x2/fc")
 			.run()
-			.assertContent().is("c: {a:'x1',b:'x2',ha:'ha1',hb:'hb1',ia:'ia1',ib:'ib1'}");
+			.assertContent("c: {a:'x1',b:'x2',ha:'ha1',hb:'hb1',ia:'ia1',ib:'ib1'}");
 		i.get("http://localhost/i/ia1/ib1/h/ha1/hb1/f/x1/x2/fd/x3/x4")
 			.run()
-			.assertContent().is("d: {a:'x1',b:'x2',c:'x3',d:'x4',ha:'ha1',hb:'hb1',ia:'ia1',ib:'ib1'}");
+			.assertContent("d: {a:'x1',b:'x2',c:'x3',d:'x4',ha:'ha1',hb:'hb1',ia:'ia1',ib:'ib1'}");
 		i.get("http://localhost/i/ia1/ib1/h/ha1/hb1/f/x1/x2/fe/x3/x4")
 			.run()
-			.assertContent().is("e: {a:'x3',b:'x4',ha:'ha1',hb:'hb1',ia:'ia1',ib:'ib1'}");
+			.assertContent("e: {a:'x3',b:'x4',ha:'ha1',hb:'hb1',ia:'ia1',ib:'ib1'}");
 		i.get("http://localhost/i/ia1/ib1/h/ha1/hb1/f/x1/x2/ff/x3/x4")
 			.run()
-			.assertContent().is("f: {a:'x1',b:'x2',c:'x3',d:'x4',ha:'ha1',hb:'hb1',ia:'ia1',ib:'ib1'}");
+			.assertContent("f: {a:'x1',b:'x2',c:'x3',d:'x4',ha:'ha1',hb:'hb1',ia:'ia1',ib:'ib1'}");
 		i.get("http://localhost/i/ia1/ib1/h/ha1/hb1/f/x1/x2/ff/x3/x4/")
 			.run()
-			.assertContent().is("f: {'/*':'','/**':'',a:'x1',b:'x2',c:'x3',d:'x4',ha:'ha1',hb:'hb1',ia:'ia1',ib:'ib1'}");
+			.assertContent("f: {'/*':'','/**':'',a:'x1',b:'x2',c:'x3',d:'x4',ha:'ha1',hb:'hb1',ia:'ia1',ib:'ib1'}");
 		i.get("http://localhost/i/ia1/ib1/h/ha1/hb1/f/x1/x2/ff/x3/x4/foo/bar")
 			.run()
-			.assertContent().is("f: {'/*':'foo/bar','/**':'foo/bar',a:'x1',b:'x2',c:'x3',d:'x4',ha:'ha1',hb:'hb1',ia:'ia1',ib:'ib1'}");
+			.assertContent("f: {'/*':'foo/bar','/**':'foo/bar',a:'x1',b:'x2',c:'x3',d:'x4',ha:'ha1',hb:'hb1',ia:'ia1',ib:'ib1'}");
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -773,20 +773,20 @@ public class Path_Test {
 		RestClient j = MockRestClient.buildJson(J.class);
 		j.get("/a/123")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("123");
+			.assertStatus(200)
+			.assertContent("123");
 		j.get("/b/a=1,b=foo")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("{a:1,b:'foo'}");
+			.assertStatus(200)
+			.assertContent("{a:1,b:'foo'}");
 		j.get("/c/@((a=1,b=foo))")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("[{a:1,b:'foo'}]");
+			.assertStatus(200)
+			.assertContent("[{a:1,b:'foo'}]");
 		j.get("/d/@((a=1,b=foo))")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("[{a:1,b:'foo'}]");
+			.assertStatus(200)
+			.assertContent("[{a:1,b:'foo'}]");
 	}
 
 
@@ -816,20 +816,20 @@ public class Path_Test {
 
 		k1.get("http://localhost/k1/foo/k2")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("foo");
+			.assertStatus(200)
+			.assertContent("foo");
 		k1.get("http://localhost/k1/foo/k2/foo/xxx")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("foo,xxx");
+			.assertStatus(200)
+			.assertContent("foo,xxx");
 		k2.get("/")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("nil");
+			.assertStatus(200)
+			.assertContent("nil");
 		k2.get("/foo/xxx")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("nil,xxx");
+			.assertStatus(200)
+			.assertContent("nil,xxx");
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -858,35 +858,35 @@ public class Path_Test {
 
 		l1.get("http://localhost/l1/l1foo/l2")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("1,l1foo,nil");
+			.assertStatus(200)
+			.assertContent("1,l1foo,nil");
 		l1.get("http://localhost/l1/l1foo/l2/l2foo")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("1,l1foo,l2foo");
+			.assertStatus(200)
+			.assertContent("1,l1foo,l2foo");
 		l1.get("http://localhost/l1/l1foo/l2/foo")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("2,l1foo,nil");
+			.assertStatus(200)
+			.assertContent("2,l1foo,nil");
 		l1.get("http://localhost/l1/l1foo/l2/foo/l2foo")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("2,l1foo,l2foo");
+			.assertStatus(200)
+			.assertContent("2,l1foo,l2foo");
 		l2.get("http://localhost/l2")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("1,nil,nil");
+			.assertStatus(200)
+			.assertContent("1,nil,nil");
 		l2.get("http://localhost/l2/l2foo")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("1,nil,l2foo");
+			.assertStatus(200)
+			.assertContent("1,nil,l2foo");
 		l2.get("http://localhost/l2/foo")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("2,nil,nil");
+			.assertStatus(200)
+			.assertContent("2,nil,nil");
 		l2.get("http://localhost/l2/foo/l2foo")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("2,nil,l2foo");
+			.assertStatus(200)
+			.assertContent("2,nil,l2foo");
 	}
 }
\ No newline at end of file
diff --git a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/Query_Test.java b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/Query_Test.java
index 170332cc2..0132cd83d 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/Query_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/Query_Test.java
@@ -53,31 +53,31 @@ public class Query_Test {
 	public void a01_basic() throws Exception {
 		RestClient a = MockRestClient.build(A.class);
 
-		a.get("/a?p1=p1&p2=2").run().assertContent().is("p1=[p1,p1,p1],p2=[2,2,2]");
-		a.get("/a?p1&p2").run().assertContent().is("p1=[null,null,null],p2=[0,null,0]");
-		a.get("/a?p1=&p2=").run().assertContent().is("p1=[,,],p2=[0,,0]");
-		a.get("/a").run().assertContent().is("p1=[null,null,null],p2=[0,null,0]");
-		a.get("/a?p1").run().assertContent().is("p1=[null,null,null],p2=[0,null,0]");
-		a.get("/a?p1=").run().assertContent().is("p1=[,,],p2=[0,null,0]");
-		a.get("/a?p2").run().assertContent().is("p1=[null,null,null],p2=[0,null,0]");
-		a.get("/a?p2=").run().assertContent().is("p1=[null,null,null],p2=[0,,0]");
-		a.get("/a?p1=foo&p2").run().assertContent().is("p1=[foo,foo,foo],p2=[0,null,0]");
-		a.get("/a?p1&p2=1").run().assertContent().is("p1=[null,null,null],p2=[1,1,1]");
+		a.get("/a?p1=p1&p2=2").run().assertContent("p1=[p1,p1,p1],p2=[2,2,2]");
+		a.get("/a?p1&p2").run().assertContent("p1=[null,null,null],p2=[0,null,0]");
+		a.get("/a?p1=&p2=").run().assertContent("p1=[,,],p2=[0,,0]");
+		a.get("/a").run().assertContent("p1=[null,null,null],p2=[0,null,0]");
+		a.get("/a?p1").run().assertContent("p1=[null,null,null],p2=[0,null,0]");
+		a.get("/a?p1=").run().assertContent("p1=[,,],p2=[0,null,0]");
+		a.get("/a?p2").run().assertContent("p1=[null,null,null],p2=[0,null,0]");
+		a.get("/a?p2=").run().assertContent("p1=[null,null,null],p2=[0,,0]");
+		a.get("/a?p1=foo&p2").run().assertContent("p1=[foo,foo,foo],p2=[0,null,0]");
+		a.get("/a?p1&p2=1").run().assertContent("p1=[null,null,null],p2=[1,1,1]");
 		String x1 = "a%2Fb%25c%3Dd+e"; // [x/y%z=a+b]
-		a.get("/a?p1="+x1+"&p2=1").run().assertContent().is("p1=[a/b%c=d e,a/b%c=d e,a/b%c=d e],p2=[1,1,1]");
+		a.get("/a?p1="+x1+"&p2=1").run().assertContent("p1=[a/b%c=d e,a/b%c=d e,a/b%c=d e],p2=[1,1,1]");
 
-		a.post("/b?p1=p1&p2=2", null).run().assertContent().is("p1=[p1,p1,p1],p2=[2,2,2]");
-		a.post("/b?p1&p2", null).run().assertContent().is("p1=[null,null,null],p2=[0,null,0]");
-		a.post("/b?p1=&p2=", null).run().assertContent().is("p1=[,,],p2=[0,,0]");
-		a.post("/b", null).run().assertContent().is("p1=[null,null,null],p2=[0,null,0]");
-		a.post("/b?p1", null).run().assertContent().is("p1=[null,null,null],p2=[0,null,0]");
-		a.post("/b?p1=", null).run().assertContent().is("p1=[,,],p2=[0,null,0]");
-		a.post("/b?p2", null).run().assertContent().is("p1=[null,null,null],p2=[0,null,0]");
-		a.post("/b?p2=", null).run().assertContent().is("p1=[null,null,null],p2=[0,,0]");
-		a.post("/b?p1=foo&p2", null).run().assertContent().is("p1=[foo,foo,foo],p2=[0,null,0]");
-		a.post("/b?p1&p2=1", null).run().assertContent().is("p1=[null,null,null],p2=[1,1,1]");
+		a.post("/b?p1=p1&p2=2", null).run().assertContent("p1=[p1,p1,p1],p2=[2,2,2]");
+		a.post("/b?p1&p2", null).run().assertContent("p1=[null,null,null],p2=[0,null,0]");
+		a.post("/b?p1=&p2=", null).run().assertContent("p1=[,,],p2=[0,,0]");
+		a.post("/b", null).run().assertContent("p1=[null,null,null],p2=[0,null,0]");
+		a.post("/b?p1", null).run().assertContent("p1=[null,null,null],p2=[0,null,0]");
+		a.post("/b?p1=", null).run().assertContent("p1=[,,],p2=[0,null,0]");
+		a.post("/b?p2", null).run().assertContent("p1=[null,null,null],p2=[0,null,0]");
+		a.post("/b?p2=", null).run().assertContent("p1=[null,null,null],p2=[0,,0]");
+		a.post("/b?p1=foo&p2", null).run().assertContent("p1=[foo,foo,foo],p2=[0,null,0]");
+		a.post("/b?p1&p2=1", null).run().assertContent("p1=[null,null,null],p2=[1,1,1]");
 		String x2 = "a%2Fb%25c%3Dd+e"; // [x/y%z=a+b]
-		a.post("/b?p1="+x2+"&p2=1", null).run().assertContent().is("p1=[a/b%c=d e,a/b%c=d e,a/b%c=d e],p2=[1,1,1]");
+		a.post("/b?p1="+x2+"&p2=1", null).run().assertContent("p1=[a/b%c=d e,a/b%c=d e,a/b%c=d e],p2=[1,1,1]");
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -111,14 +111,14 @@ public class Query_Test {
 	@Test
 	public void b01_uonParameters() throws Exception {
 		RestClient b = MockRestClient.build(B.class);
-		b.get("/a?p1=p1").run().assertContent().is("p1=[p1,p1,p1]");
-		b.get("/a?p1='p1'").run().assertContent().is("p1=['p1','p1','p1']");
-		b.get("/b?p1=p1").run().assertContent().is("p1=[p1,p1,p1]");
-		b.get("/b?p1='p1'").run().assertContent().is("p1=[p1,'p1','p1']");
-		b.post("/c?p1=p1", null).run().assertContent().is("p1=[p1,p1,p1]");
-		b.post("/c?p1='p1'", null).run().assertContent().is("p1=['p1','p1','p1']");
-		b.post("/d?p1=p1", null).run().assertContent().is("p1=[p1,p1,p1]");
-		b.post("/d?p1='p1'", null).run().assertContent().is("p1=[p1,'p1','p1']");
+		b.get("/a?p1=p1").run().assertContent("p1=[p1,p1,p1]");
+		b.get("/a?p1='p1'").run().assertContent("p1=['p1','p1','p1']");
+		b.get("/b?p1=p1").run().assertContent("p1=[p1,p1,p1]");
+		b.get("/b?p1='p1'").run().assertContent("p1=[p1,'p1','p1']");
+		b.post("/c?p1=p1", null).run().assertContent("p1=[p1,p1,p1]");
+		b.post("/c?p1='p1'", null).run().assertContent("p1=['p1','p1','p1']");
+		b.post("/d?p1=p1", null).run().assertContent("p1=[p1,p1,p1]");
+		b.post("/d?p1='p1'", null).run().assertContent("p1=[p1,'p1','p1']");
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -162,18 +162,18 @@ public class Query_Test {
 	@Test
 	public void c01_multipartParams() throws Exception {
 		RestClient c = MockRestClient.build(C.class);
-		c.get("/a?x=a").run().assertContent().is("['a']");
-		c.get("/a?x=a&x=b").run().assertContent().is("['a','b']");
-		c.get("/b?x=1").run().assertContent().is("[1]");
-		c.get("/b?x=1&x=2").run().assertContent().is("[1,2]");
-		c.get("/c?x=a").run().assertContent().is("['a']");
-		c.get("/c?x=a&x=b").run().assertContent().is("['a','b']");
-		c.get("/d?x=1").run().assertContent().is("[1]");
-		c.get("/d?x=1&x=2").run().assertContent().is("[1,2]");
-		c.get("/e?x=a=1,b=2,c=false").run().assertContent().is("[{a:'1,b=2,c=false',b:0,c:false}]");
-		c.get("/e?x=a=1,b=2,c=false&x=a=3,b=4,c=true").run().assertContent().is("[{a:'1,b=2,c=false',b:0,c:false},{a:'3,b=4,c=true',b:0,c:false}]");
-		c.get("/f?x=a=1,b=2,c=false").run().assertContent().is("[{a:'1,b=2,c=false',b:0,c:false}]");
-		c.get("/f?x=a=1,b=2,c=false&x=a=3,b=4,c=true").run().assertContent().is("[{a:'1,b=2,c=false',b:0,c:false},{a:'3,b=4,c=true',b:0,c:false}]");
+		c.get("/a?x=a").run().assertContent("['a']");
+		c.get("/a?x=a&x=b").run().assertContent("['a','b']");
+		c.get("/b?x=1").run().assertContent("[1]");
+		c.get("/b?x=1&x=2").run().assertContent("[1,2]");
+		c.get("/c?x=a").run().assertContent("['a']");
+		c.get("/c?x=a&x=b").run().assertContent("['a','b']");
+		c.get("/d?x=1").run().assertContent("[1]");
+		c.get("/d?x=1&x=2").run().assertContent("[1,2]");
+		c.get("/e?x=a=1,b=2,c=false").run().assertContent("[{a:'1,b=2,c=false',b:0,c:false}]");
+		c.get("/e?x=a=1,b=2,c=false&x=a=3,b=4,c=true").run().assertContent("[{a:'1,b=2,c=false',b:0,c:false},{a:'3,b=4,c=true',b:0,c:false}]");
+		c.get("/f?x=a=1,b=2,c=false").run().assertContent("[{a:'1,b=2,c=false',b:0,c:false}]");
+		c.get("/f?x=a=1,b=2,c=false&x=a=3,b=4,c=true").run().assertContent("[{a:'1,b=2,c=false',b:0,c:false},{a:'3,b=4,c=true',b:0,c:false}]");
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -215,14 +215,14 @@ public class Query_Test {
 	@Test
 	public void d01_defaultValues() throws Exception {
 		RestClient d = MockRestClient.build(D.class);
-		d.get("/a").run().assertContent().is("{f1:'1',f2:'2',f3:'3'}");
-		d.get("/a").queryData("f1",4).queryData("f2",5).queryData("f3",6).run().assertContent().is("{f1:'4',f2:'5',f3:'6'}");
-		d.get("/b").run().assertContent().is("{f1:null,f2:null,f3:null}");
-		d.get("/b").queryData("f1",4).queryData("f2",5).queryData("f3",6).run().assertContent().is("{f1:'4',f2:'5',f3:'6'}");
-		d.get("/c").run().assertContent().is("{f1:'1',f2:'2',f3:'3'}");
-		d.get("/c").queryData("f1",4).queryData("f2",5).queryData("f3",6).run().assertContent().is("{f1:'4',f2:'5',f3:'6'}");
-		d.get("/d").run().assertContent().is("{f1:'4',f2:'5',f3:'6'}");
-		d.get("/d").queryData("f1",7).queryData("f2",8).queryData("f3",9).run().assertContent().is("{f1:'7',f2:'8',f3:'9'}");
+		d.get("/a").run().assertContent("{f1:'1',f2:'2',f3:'3'}");
+		d.get("/a").queryData("f1",4).queryData("f2",5).queryData("f3",6).run().assertContent("{f1:'4',f2:'5',f3:'6'}");
+		d.get("/b").run().assertContent("{f1:null,f2:null,f3:null}");
+		d.get("/b").queryData("f1",4).queryData("f2",5).queryData("f3",6).run().assertContent("{f1:'4',f2:'5',f3:'6'}");
+		d.get("/c").run().assertContent("{f1:'1',f2:'2',f3:'3'}");
+		d.get("/c").queryData("f1",4).queryData("f2",5).queryData("f3",6).run().assertContent("{f1:'4',f2:'5',f3:'6'}");
+		d.get("/d").run().assertContent("{f1:'4',f2:'5',f3:'6'}");
+		d.get("/d").queryData("f1",7).queryData("f2",8).queryData("f3",9).run().assertContent("{f1:'7',f2:'8',f3:'9'}");
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -257,36 +257,36 @@ public class Query_Test {
 		RestClient e = MockRestClient.buildJson(E.class);
 		e.get("/a?f1=123")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("123");
+			.assertStatus(200)
+			.assertContent("123");
 		e.get("/a")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("null");
+			.assertStatus(200)
+			.assertContent("null");
 		e.get("/b?f1=a=1,b=foo")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("{a:1,b:'foo'}");
+			.assertStatus(200)
+			.assertContent("{a:1,b:'foo'}");
 		e.get("/b")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("null");
+			.assertStatus(200)
+			.assertContent("null");
 		e.get("/c?f1=@((a=1,b=foo))")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("[{a:1,b:'foo'}]");
+			.assertStatus(200)
+			.assertContent("[{a:1,b:'foo'}]");
 		e.get("/c")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("null");
+			.assertStatus(200)
+			.assertContent("null");
 		e.get("/d?f1=@((a=1,b=foo))")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("[{a:1,b:'foo'}]");
+			.assertStatus(200)
+			.assertContent("[{a:1,b:'foo'}]");
 		e.get("/d")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("null");
+			.assertStatus(200)
+			.assertContent("null");
 	}
 
 	//------------------------------------------------------------------------------------------------------------------
@@ -336,59 +336,59 @@ public class Query_Test {
 		RestClient f = MockRestClient.buildJson(F.class);
 		f.get("/a1?f1=123")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("123");
+			.assertStatus(200)
+			.assertContent("123");
 		f.get("/a1")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("1");
+			.assertStatus(200)
+			.assertContent("1");
 		f.get("/a2?f1=123")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("123");
+			.assertStatus(200)
+			.assertContent("123");
 		f.get("/a2")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("1");
+			.assertStatus(200)
+			.assertContent("1");
 		f.get("/b1?f1=a=2,b=bar")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("{a:2,b:'bar'}");
+			.assertStatus(200)
+			.assertContent("{a:2,b:'bar'}");
 		f.get("/b1")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("{a:1,b:'foo'}");
+			.assertStatus(200)
+			.assertContent("{a:1,b:'foo'}");
 		f.get("/b2?f1=a=2,b=bar")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("{a:2,b:'bar'}");
+			.assertStatus(200)
+			.assertContent("{a:2,b:'bar'}");
 		f.get("/b2")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("{a:1,b:'foo'}");
+			.assertStatus(200)
+			.assertContent("{a:1,b:'foo'}");
 		f.get("/c1?f1=@((a=2,b=bar))")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("[{a:2,b:'bar'}]");
+			.assertStatus(200)
+			.assertContent("[{a:2,b:'bar'}]");
 		f.get("/c1")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("[{a:1,b:'foo'}]");
+			.assertStatus(200)
+			.assertContent("[{a:1,b:'foo'}]");
 		f.get("/c2?f1=@((a=2,b=bar))")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("[{a:2,b:'bar'}]");
+			.assertStatus(200)
+			.assertContent("[{a:2,b:'bar'}]");
 		f.get("/c2")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("[{a:1,b:'foo'}]");
+			.assertStatus(200)
+			.assertContent("[{a:1,b:'foo'}]");
 		f.get("/d?f1=@((a=2,b=bar))")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("[{a:2,b:'bar'}]");
+			.assertStatus(200)
+			.assertContent("[{a:2,b:'bar'}]");
 		f.get("/d")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("[{a:1,b:'foo'}]");
+			.assertStatus(200)
+			.assertContent("[{a:1,b:'foo'}]");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/ResponseHeader_Test.java b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/ResponseHeader_Test.java
index 01b47cab2..dd5f85a64 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/ResponseHeader_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/ResponseHeader_Test.java
@@ -58,15 +58,15 @@ public class ResponseHeader_Test {
 		RestClient a = MockRestClient.build(A.class);
 		a.get("/a")
 			.run()
-			.assertCode().is(200)
+			.assertStatus(200)
 			.assertHeader("Foo").is("foo");
 		a.get("/b")
 			.run()
-			.assertCode().is(200)
+			.assertStatus(200)
 			.assertHeader("Foo").is("foo");
 		a.get("/c")
 			.run()
-			.assertCode().is(200)
+			.assertStatus(200)
 			.assertHeader("Bar").is("foo");
 	}
 
diff --git a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/ResponseStatus_Test.java b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/ResponseStatus_Test.java
index 9adebad85..3b49aa262 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/ResponseStatus_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/ResponseStatus_Test.java
@@ -36,6 +36,6 @@ public class ResponseStatus_Test {
 		RestClient a = MockRestClient.build(A.class);
 		a.get("/a")
 			.run()
-			.assertCode().is(202);
+			.assertStatus(202);
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/Response_Test.java b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/Response_Test.java
index 9bcca785e..748bfac9f 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/Response_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/Response_Test.java
@@ -63,11 +63,11 @@ public class Response_Test {
 		RestClient a = MockRestClient.buildLax(A.class);
 		a.get("/a")
 			.run()
-			.assertCode().is(201)
-			.assertContent().is("foo");
+			.assertStatus(201)
+			.assertContent("foo");
 		a.get("/b")
 			.run()
-			.assertCode().is(501);
+			.assertStatus(501);
 	}
 
 	//-----------------------------------------------------------------------------------------------------------------
@@ -112,20 +112,20 @@ public class Response_Test {
 		RestClient b = MockRestClient.buildLax(B.class);
 		b.get("/a")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("foo");
+			.assertStatus(200)
+			.assertContent("foo");
 		b.get("/b")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("foo");
+			.assertStatus(200)
+			.assertContent("foo");
 		b.get("/c")
 			.run()
-			.assertCode().is(500)
-			.assertContent().is("foo");
+			.assertStatus(500)
+			.assertContent("foo");
 		b.get("/d")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("foo");
+			.assertStatus(200)
+			.assertContent("foo");
 	}
 
 	//-----------------------------------------------------------------------------------------------------------------
@@ -203,36 +203,36 @@ public class Response_Test {
 		RestClient d = MockRestClient.buildLax(D.class);
 		d.get("/a")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("foo|bar");
+			.assertStatus(200)
+			.assertContent("foo|bar");
 		d.get("/b")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("Zm9v");
+			.assertStatus(200)
+			.assertContent("Zm9v");
 		d.get("/c")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("foo|bar");
+			.assertStatus(200)
+			.assertContent("foo|bar");
 		d.get("/d")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("Zm9v");
+			.assertStatus(200)
+			.assertContent("Zm9v");
 		d.get("/e")
 			.run()
-			.assertCode().is(500)
-			.assertContent().is("foo|bar");
+			.assertStatus(500)
+			.assertContent("foo|bar");
 		d.get("/f")
 			.run()
-			.assertCode().is(500)
-			.assertContent().is("Zm9v");
+			.assertStatus(500)
+			.assertContent("Zm9v");
 		d.get("/g")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("foo|bar");
+			.assertStatus(200)
+			.assertContent("foo|bar");
 		d.get("/h")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("Zm9v");
+			.assertStatus(200)
+			.assertContent("Zm9v");
 	}
 
 	//-----------------------------------------------------------------------------------------------------------------
@@ -276,20 +276,20 @@ public class Response_Test {
 		RestClient e = MockRestClient.build(E.class);
 		e.get("/a")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("foo");
+			.assertStatus(200)
+			.assertContent("foo");
 		e.get("/b")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("foo");
+			.assertStatus(200)
+			.assertContent("foo");
 		e.get("/c")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("foo");
+			.assertStatus(200)
+			.assertContent("foo");
 		e.get("/d")
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("foo");
+			.assertStatus(200)
+			.assertContent("foo");
 	}
 
 	//-----------------------------------------------------------------------------------------------------------------
@@ -330,19 +330,19 @@ public class Response_Test {
 		RestClient g = MockRestClient.build(G.class);
 		g.get("/a").json()
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("[1,2]");
+			.assertStatus(200)
+			.assertContent("[1,2]");
 		g.get("/b").json()
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("[1,2]");
+			.assertStatus(200)
+			.assertContent("[1,2]");
 		g.get("/c").json()
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("[1,2]");
+			.assertStatus(200)
+			.assertContent("[1,2]");
 		g.get("/d").json()
 			.run()
-			.assertCode().is(200)
-			.assertContent().is("[1,2]");
+			.assertStatus(200)
+			.assertContent("[1,2]");
 	}
 }
diff --git a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestInit_Test.java b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestInit_Test.java
index f572ac1f9..3a4454416 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestInit_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestInit_Test.java
... 4631 lines suppressed ...