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/06/19 10:27:39 UTC

[juneau] branch master updated (c752ee25e -> ef0fcb45f)

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

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


    from c752ee25e Javadocs
     new 48332c872 Javadocs
     new ef0fcb45f Javadocs

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../org/apache/juneau/BasicRuntimeException.java   |  11 +-
 juneau-doc/docs/ReleaseNotes/6.3.0.html            |   2 +-
 .../01.jm.org.apache.juneau.http.html              |   2 +-
 .../02.jrs.HttpPartAnnotations.html                |   8 +-
 .../24.jrs.ResponseProcessors.html                 |   2 +-
 .../01.jrss.Overview.html                          |   4 +-
 juneau-doc/docs/Topics/10.juneau-rest-client.html  |   4 +-
 .../03.jrc.RequestContent.html                     |  10 +-
 .../04.jrc.ResponseStatus.html                     |   6 +-
 .../05.jrc.ResponseHeaders.html                    |  77 ++--
 .../06.jrc.ResponseContent.html                    |   9 +-
 .../07.jrc.CustomCallHandlers.html                 |   5 +-
 .../10.juneau-rest-client/08.jrc.Interceptors.html |   2 +-
 .../10.juneau-rest-client/09.jrc.Proxies.html      |   4 +-
 .../09.jrc.Proxies/01.jrc.Remote.html              |  19 +-
 .../09.jrc.Proxies/02.jrc.RemoteMethod.html        |   2 +-
 .../09.jrc.Proxies/03.jrc.Content.html             |   4 +-
 .../09.jrc.Proxies/04.jrc.FormData.html            |   8 +-
 .../09.jrc.Proxies/05.jrc.Query.html               |  10 +-
 .../09.jrc.Proxies/06.jrc.Header.html              |  10 +-
 .../09.jrc.Proxies/07.jrc.Path.html                |  10 +-
 .../09.jrc.Proxies/08.jrc.Request.html             |  36 +-
 .../09.jrc.Proxies/09.jrc.Response.html            |   2 +-
 .../10.jrc.DualPurposeInterfaces.html              |   2 +-
 .../10.jrc.LoggingAndDebugging.html                |   4 +-
 .../11.jrc.CustomizingHttpClient.html              |   4 +-
 .../12.jrc.ExtendingRestClient.html                |   2 +-
 .../13.jrc.Authentication.html                     |   2 +-
 .../01.jrc.AuthenticationBASIC.html                |   2 +-
 .../02.jrc.AuthenticationForm.html                 |   2 +-
 .../03.jrc.AuthenticationOIDC.html                 |   2 +-
 juneau-doc/docs/Topics/11.juneau-rest-mock.html    |   2 +-
 .../11.juneau-rest-mock/01.jrm.MockRestClient.html |  16 +-
 .../docs/Topics/15.my-springboot-microservice.html |   2 +-
 .../01.msm.Installing.html                         |   2 +-
 .../02.msm.Running.html                            |   2 +-
 .../03.msm.Building.html                           |   2 +-
 .../docs/Topics/16.juneau-examples-core.html       |  27 --
 ...uneau-petstore.html => 16.juneau-petstore.html} |   0
 .../01.jp.Installing.html                          |   0
 .../02.jp.Running.html                             |   0
 .../03.jp.Building.html                            |   0
 .../04.jp.App.html                                 |   0
 .../{20.Glossaries.html => 17.Glossaries.html}     |   0
 .../01.g.LanguageSupport.html                      |   0
 .../02.g.Annotations.html                          |   0
 .../docs/Topics/17.juneau-examples-rest.html       |  51 ---
 .../Topics/{21.Security.html => 18.Security.html}  |   0
 .../01.s.Marshall.html                             |   0
 .../{21.Security => 18.Security}/02.s.Svl.html     |   0
 .../{21.Security => 18.Security}/03.s.Rest.html    |   0
 .../docs/Topics/18.juneau-examples-rest-jetty.html |  33 --
 juneau-doc/src/main/javadoc/overview.html          | 489 +++++++++------------
 juneau-doc/src/main/javadoc/resources/docs.txt     |   3 -
 .../src/main/javadoc/resources/fragments/toc.html  |  63 ++-
 .../apache/juneau/rest/client/ResponseContent.java |  42 ++
 .../apache/juneau/rest/client/ResponseHeader.java  |  66 ++-
 .../org/apache/juneau/rest/client/RestRequest.java |   6 +-
 .../assertion/FluentResponseBodyAssertion.java     |   3 +-
 .../apache/juneau/rest/mock/MockRestClient.java    |   2 +-
 .../juneau/rest/mock/MockServletRequest.java       |  24 +-
 61 files changed, 485 insertions(+), 617 deletions(-)
 delete mode 100644 juneau-doc/docs/Topics/16.juneau-examples-core.html
 rename juneau-doc/docs/Topics/{19.juneau-petstore.html => 16.juneau-petstore.html} (100%)
 rename juneau-doc/docs/Topics/{19.juneau-petstore => 16.juneau-petstore}/01.jp.Installing.html (100%)
 rename juneau-doc/docs/Topics/{19.juneau-petstore => 16.juneau-petstore}/02.jp.Running.html (100%)
 rename juneau-doc/docs/Topics/{19.juneau-petstore => 16.juneau-petstore}/03.jp.Building.html (100%)
 rename juneau-doc/docs/Topics/{19.juneau-petstore => 16.juneau-petstore}/04.jp.App.html (100%)
 rename juneau-doc/docs/Topics/{20.Glossaries.html => 17.Glossaries.html} (100%)
 rename juneau-doc/docs/Topics/{20.Glossaries => 17.Glossaries}/01.g.LanguageSupport.html (100%)
 rename juneau-doc/docs/Topics/{20.Glossaries => 17.Glossaries}/02.g.Annotations.html (100%)
 delete mode 100644 juneau-doc/docs/Topics/17.juneau-examples-rest.html
 rename juneau-doc/docs/Topics/{21.Security.html => 18.Security.html} (100%)
 rename juneau-doc/docs/Topics/{21.Security => 18.Security}/01.s.Marshall.html (100%)
 rename juneau-doc/docs/Topics/{21.Security => 18.Security}/02.s.Svl.html (100%)
 rename juneau-doc/docs/Topics/{21.Security => 18.Security}/03.s.Rest.html (100%)
 delete mode 100644 juneau-doc/docs/Topics/18.juneau-examples-rest-jetty.html


[juneau] 02/02: Javadocs

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit ef0fcb45f9bab1fc92a0035a7a589ad86d63c320
Author: JamesBognar <ja...@salesforce.com>
AuthorDate: Sun Jun 19 06:27:19 2022 -0400

    Javadocs
---
 ...uneau-petstore.html => 16.juneau-petstore.html} |  0
 .../01.jp.Installing.html                          |  0
 .../02.jp.Running.html                             |  0
 .../03.jp.Building.html                            |  0
 .../04.jp.App.html                                 |  0
 .../{20.Glossaries.html => 17.Glossaries.html}     |  0
 .../01.g.LanguageSupport.html                      |  0
 .../02.g.Annotations.html                          |  0
 .../Topics/{21.Security.html => 18.Security.html}  |  0
 .../01.s.Marshall.html                             |  0
 .../{21.Security => 18.Security}/02.s.Svl.html     |  0
 .../{21.Security => 18.Security}/03.s.Rest.html    |  0
 juneau-doc/src/main/javadoc/resources/docs.txt     |  3 --
 .../src/main/javadoc/resources/fragments/toc.html  | 63 +++++++++++-----------
 14 files changed, 30 insertions(+), 36 deletions(-)

diff --git a/juneau-doc/docs/Topics/19.juneau-petstore.html b/juneau-doc/docs/Topics/16.juneau-petstore.html
similarity index 100%
rename from juneau-doc/docs/Topics/19.juneau-petstore.html
rename to juneau-doc/docs/Topics/16.juneau-petstore.html
diff --git a/juneau-doc/docs/Topics/19.juneau-petstore/01.jp.Installing.html b/juneau-doc/docs/Topics/16.juneau-petstore/01.jp.Installing.html
similarity index 100%
rename from juneau-doc/docs/Topics/19.juneau-petstore/01.jp.Installing.html
rename to juneau-doc/docs/Topics/16.juneau-petstore/01.jp.Installing.html
diff --git a/juneau-doc/docs/Topics/19.juneau-petstore/02.jp.Running.html b/juneau-doc/docs/Topics/16.juneau-petstore/02.jp.Running.html
similarity index 100%
rename from juneau-doc/docs/Topics/19.juneau-petstore/02.jp.Running.html
rename to juneau-doc/docs/Topics/16.juneau-petstore/02.jp.Running.html
diff --git a/juneau-doc/docs/Topics/19.juneau-petstore/03.jp.Building.html b/juneau-doc/docs/Topics/16.juneau-petstore/03.jp.Building.html
similarity index 100%
rename from juneau-doc/docs/Topics/19.juneau-petstore/03.jp.Building.html
rename to juneau-doc/docs/Topics/16.juneau-petstore/03.jp.Building.html
diff --git a/juneau-doc/docs/Topics/19.juneau-petstore/04.jp.App.html b/juneau-doc/docs/Topics/16.juneau-petstore/04.jp.App.html
similarity index 100%
rename from juneau-doc/docs/Topics/19.juneau-petstore/04.jp.App.html
rename to juneau-doc/docs/Topics/16.juneau-petstore/04.jp.App.html
diff --git a/juneau-doc/docs/Topics/20.Glossaries.html b/juneau-doc/docs/Topics/17.Glossaries.html
similarity index 100%
rename from juneau-doc/docs/Topics/20.Glossaries.html
rename to juneau-doc/docs/Topics/17.Glossaries.html
diff --git a/juneau-doc/docs/Topics/20.Glossaries/01.g.LanguageSupport.html b/juneau-doc/docs/Topics/17.Glossaries/01.g.LanguageSupport.html
similarity index 100%
rename from juneau-doc/docs/Topics/20.Glossaries/01.g.LanguageSupport.html
rename to juneau-doc/docs/Topics/17.Glossaries/01.g.LanguageSupport.html
diff --git a/juneau-doc/docs/Topics/20.Glossaries/02.g.Annotations.html b/juneau-doc/docs/Topics/17.Glossaries/02.g.Annotations.html
similarity index 100%
rename from juneau-doc/docs/Topics/20.Glossaries/02.g.Annotations.html
rename to juneau-doc/docs/Topics/17.Glossaries/02.g.Annotations.html
diff --git a/juneau-doc/docs/Topics/21.Security.html b/juneau-doc/docs/Topics/18.Security.html
similarity index 100%
rename from juneau-doc/docs/Topics/21.Security.html
rename to juneau-doc/docs/Topics/18.Security.html
diff --git a/juneau-doc/docs/Topics/21.Security/01.s.Marshall.html b/juneau-doc/docs/Topics/18.Security/01.s.Marshall.html
similarity index 100%
rename from juneau-doc/docs/Topics/21.Security/01.s.Marshall.html
rename to juneau-doc/docs/Topics/18.Security/01.s.Marshall.html
diff --git a/juneau-doc/docs/Topics/21.Security/02.s.Svl.html b/juneau-doc/docs/Topics/18.Security/02.s.Svl.html
similarity index 100%
rename from juneau-doc/docs/Topics/21.Security/02.s.Svl.html
rename to juneau-doc/docs/Topics/18.Security/02.s.Svl.html
diff --git a/juneau-doc/docs/Topics/21.Security/03.s.Rest.html b/juneau-doc/docs/Topics/18.Security/03.s.Rest.html
similarity index 100%
rename from juneau-doc/docs/Topics/21.Security/03.s.Rest.html
rename to juneau-doc/docs/Topics/18.Security/03.s.Rest.html
diff --git a/juneau-doc/src/main/javadoc/resources/docs.txt b/juneau-doc/src/main/javadoc/resources/docs.txt
index 1ad21923b..17f2de699 100644
--- a/juneau-doc/src/main/javadoc/resources/docs.txt
+++ b/juneau-doc/src/main/javadoc/resources/docs.txt
@@ -300,9 +300,6 @@ jrsj.BaseProvider = #juneau-rest-server-jaxrs.jrsj.BaseProvider, Overview > june
 jrss.Overview = #juneau-rest-server-springboot.jrss.Overview, Overview > juneau-rest-server-springboot > Overview
 juneau-config = #juneau-config, Overview > juneau-config
 juneau-dto = #juneau-dto, Overview > juneau-dto
-juneau-examples-core = #juneau-examples-core, Overview > juneau-examples-core
-juneau-examples-rest = #juneau-examples-rest, Overview > juneau-examples-rest
-juneau-examples-rest-jetty = #juneau-examples-rest-jetty, Overview > juneau-examples-rest-jetty
 juneau-marshall = #juneau-marshall, Overview > juneau-marshall
 juneau-marshall-rdf = #juneau-marshall-rdf, Overview > juneau-marshall-rdf
 juneau-microservice-core = #juneau-microservice-core, Overview > juneau-microservice-core
diff --git a/juneau-doc/src/main/javadoc/resources/fragments/toc.html b/juneau-doc/src/main/javadoc/resources/fragments/toc.html
index 05e1bf60a..b507228ef 100644
--- a/juneau-doc/src/main/javadoc/resources/fragments/toc.html
+++ b/juneau-doc/src/main/javadoc/resources/fragments/toc.html
@@ -291,38 +291,38 @@
 	<ol>
 		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.PojoMarshalling'>POJO Marshalling</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></p>
 		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.RequestParts'>Request Parts</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></p>
-		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.RequestContent'>Request Content</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></p>
-		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.ResponseStatus'>Response Status</a><span class='update'>created: 8.1.0, <b><red>todo</red></b></span></p>
-		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.ResponseHeaders'>Response Headers</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></p>
-		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.ResponseContent'>Response Content</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></p>
-		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.CustomCallHandlers'>Custom Call Handlers</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></p>
-		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.Interceptors'>Interceptors</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></p>
-		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.Proxies'>REST Proxies</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></p>
+		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.RequestContent'>Request Content</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></p>
+		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.ResponseStatus'>Response Status</a><span class='update'>created: 8.1.0, updated: <b>9.0.0</b></span></p>
+		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.ResponseHeaders'>Response Headers</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></p>
+		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.ResponseContent'>Response Content</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></p>
+		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.CustomCallHandlers'>Custom Call Handlers</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></p>
+		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.Interceptors'>Interceptors</a><span class='update'>created: 8.2.0</span></p>
+		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.Proxies'>REST Proxies</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></p>
 		<ol>
-			<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.Proxies.jrc.Remote'>@Remote</a><span class='update'>updated: 8.1.2,8.2.0, <b><red>todo</red></b></span></p>
-			<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.Proxies.jrc.RemoteMethod'>@RemoteOp</a><span class='update'>updated: 8.2.0, <b><red>todo</red></b></span></p>
-			<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.Proxies.jrc.Content'>@Content</a><span class='update'>updated: 8.2.0, <b><red>todo</red></b></span></p>
-			<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.Proxies.jrc.FormData'>@FormData</a><span class='update'>updated: 8.2.0, <b><red>todo</red></b></span></p>
-			<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.Proxies.jrc.Query'>@Query</a><span class='update'>updated: 8.2.0, <b><red>todo</red></b></span></p>
-			<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.Proxies.jrc.Header'>@Header</a><span class='update'>updated: 8.2.0, <b><red>todo</red></b></span></p>
-			<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.Proxies.jrc.Path'>@Path</a><span class='update'>updated: 8.2.0, <b><red>todo</red></b></span></p>
-			<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.Proxies.jrc.Request'>@Request</a><span class='update'><b><red>todo</red></b></span></p>
-			<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.Proxies.jrc.Response'>@Response</a><span class='update'><b><red>todo</red></b></span></p>
-			<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.Proxies.jrc.DualPurposeInterfaces'>Dual-purpose (end-to-end) interfaces</a><span class='update'>created: 8.0.0, <b><red>todo</red></b></span></p>
+			<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.Proxies.jrc.Remote'>@Remote</a><span class='update'>updated: <b>9.0.0</b></span></p>
+			<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.Proxies.jrc.RemoteMethod'>@RemoteOp</a><span class='update'>updated: <b>9.0.0</b></span></p>
+			<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.Proxies.jrc.Content'>@Content</a><span class='update'>updated: <b>9.0.0</b></span></p>
+			<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.Proxies.jrc.FormData'>@FormData</a><span class='update'>updated: <b>9.0.0</b></span></p>
+			<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.Proxies.jrc.Query'>@Query</a><span class='update'>updated: <b>9.0.0</b></span></p>
+			<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.Proxies.jrc.Header'>@Header</a><span class='update'>updated: <b>9.0.0</b></span></p>
+			<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.Proxies.jrc.Path'>@Path</a><span class='update'>updated: <b>9.0.0</b></span></p>
+			<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.Proxies.jrc.Request'>@Request</a><span class='update'>updated: <b>9.0.0</b></span></p>
+			<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.Proxies.jrc.Response'>@Response</a><span class='update'>updated: <b>9.0.0</b></span></p>
+			<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.Proxies.jrc.DualPurposeInterfaces'>Dual-purpose (end-to-end) interfaces</a><span class='update'>created: 8.0.0</span></p>
 		</ol>
-		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.LoggingAndDebugging'>Logging and Debugging</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></p>
-		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.CustomizingHttpClient'>Customizing HttpClient</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></p>
-		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.ExtendingRestClient'>Extending RestClient</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></p>
-		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.Authentication'>Authentication</a><span class='update'>updated: 8.2.0, <b><red>todo</red></b></span></p>
+		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.LoggingAndDebugging'>Logging and Debugging</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></p>
+		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.CustomizingHttpClient'>Customizing HttpClient</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></p>
+		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.ExtendingRestClient'>Extending RestClient</a><span class='update'>created: 8.2.0</span></p>
+		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.Authentication'>Authentication</a><span class='update'>updated: 8.2.0</span></p>
 		<ol>
-			<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.Authentication.jrc.AuthenticationBASIC'>BASIC Authentication</a><span class='update'><b><red>todo</red></b></span></p>
-			<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.Authentication.jrc.AuthenticationForm'>FORM-based Authentication</a><span class='update'><b><red>todo</red></b></span></p>
-			<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.Authentication.jrc.AuthenticationOIDC'>OIDC Authentication</a><span class='update'><b><red>todo</red></b></span></p>
+			<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.Authentication.jrc.AuthenticationBASIC'>BASIC Authentication</a></p>
+			<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.Authentication.jrc.AuthenticationForm'>FORM-based Authentication</a></p>
+			<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.jrc.Authentication.jrc.AuthenticationOIDC'>OIDC Authentication</a></p>
 		</ol>
 	</ol>
-	<li><p class='toc2'><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-mock'>juneau-rest-mock</a><span class='update'>created: 8.1.0, updated: 8.2.0, <b><red>todo</red></b></span></p>
+	<li><p class='toc2'><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-mock'>juneau-rest-mock</a><span class='update'>created: 8.1.0, updated: 8.2.0</span></p>
 	<ol>
-		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-mock.jrm.MockRestClient'>MockRestClient</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></p>
+		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-mock.jrm.MockRestClient'>MockRestClient</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></p>
 	</ol>
 	<li><p class='toc2'><a class='doclink' href='{OVERVIEW_URL}#juneau-microservice-core'>juneau-microservice-core</a><span class='update'>created: 8.1.0, deprecated: 8.1.2</span></p>
 	<ol>
@@ -353,15 +353,12 @@
 		<li><p><a class='doclink' href='{OVERVIEW_URL}#my-jetty-microservice.mjm.Running'>Running in Eclipse</a><span class='update'>created: 8.0.0, deprecated: 8.1.2</span></p>
 		<li><p><a class='doclink' href='{OVERVIEW_URL}#my-jetty-microservice.mjm.Building'>Building and Running from Command-Line</a><span class='update'>created: 8.0.0, deprecated: 8.1.2</span></p>
 	</ol>
-	<li><p class='toc2'><a class='doclink' href='{OVERVIEW_URL}#my-springboot-microservice'>my-springboot-microservice</a><span class='update'>created: 8.0.0, <b><red>todo</red></b></span></p>
+	<li><p class='toc2'><a class='doclink' href='{OVERVIEW_URL}#my-springboot-microservice'>my-springboot-microservice</a><span class='update'>created: 8.0.0</span></p>
 	<ol>
-		<li><p><a class='doclink' href='{OVERVIEW_URL}#my-springboot-microservice.msm.Installing'>Installing in Eclipse</a><span class='update'>created: 8.0.0, <b><red>todo</red></b></span></p>
-		<li><p><a class='doclink' href='{OVERVIEW_URL}#my-springboot-microservice.msm.Running'>Running in Eclipse</a><span class='update'>created: 8.0.0, <b><red>todo</red></b></span></p>
-		<li><p><a class='doclink' href='{OVERVIEW_URL}#my-springboot-microservice.msm.Building'>Building and Running from Command-Line</a><span class='update'>created: 8.0.0, <b><red>todo</red></b></span></p>
+		<li><p><a class='doclink' href='{OVERVIEW_URL}#my-springboot-microservice.msm.Installing'>Installing in Eclipse</a><span class='update'>created: 8.0.0</span></p>
+		<li><p><a class='doclink' href='{OVERVIEW_URL}#my-springboot-microservice.msm.Running'>Running in Eclipse</a><span class='update'>created: 8.0.0</span></p>
+		<li><p><a class='doclink' href='{OVERVIEW_URL}#my-springboot-microservice.msm.Building'>Building and Running from Command-Line</a><span class='update'>created: 8.0.0</span></p>
 	</ol>
-	<li><p class='toc2'><a class='doclink' href='{OVERVIEW_URL}#juneau-examples-core'>juneau-examples-core</a><span class='update'>updated: 8.0.0</span></p>
-	<li><p class='toc2'><a class='doclink' href='{OVERVIEW_URL}#juneau-examples-rest'>juneau-examples-rest</a><span class='update'>updated: 8.0.0, <b><red>todo</red></b></span></p>
-	<li><p class='toc2'><a class='doclink' href='{OVERVIEW_URL}#juneau-examples-rest-jetty'>juneau-examples-rest-jetty</a><span class='update'>created: 8.0.0, deprecated: 8.1.2</span></p>
 	<li><p class='toc2'><a class='doclink' href='{OVERVIEW_URL}#juneau-petstore'>juneau-pestore</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></p>
 	<ol>
 		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-petstore.jp.Installing'>Installing in Eclipse</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></p>


[juneau] 01/02: Javadocs

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 48332c8724a7c9e22f2a7aafa784693e1b13a262
Author: JamesBognar <ja...@salesforce.com>
AuthorDate: Sun Jun 19 06:27:03 2022 -0400

    Javadocs
---
 .../org/apache/juneau/BasicRuntimeException.java   |  11 +-
 juneau-doc/docs/ReleaseNotes/6.3.0.html            |   2 +-
 .../01.jm.org.apache.juneau.http.html              |   2 +-
 .../02.jrs.HttpPartAnnotations.html                |   8 +-
 .../24.jrs.ResponseProcessors.html                 |   2 +-
 .../01.jrss.Overview.html                          |   4 +-
 juneau-doc/docs/Topics/10.juneau-rest-client.html  |   4 +-
 .../03.jrc.RequestContent.html                     |  10 +-
 .../04.jrc.ResponseStatus.html                     |   6 +-
 .../05.jrc.ResponseHeaders.html                    |  77 ++--
 .../06.jrc.ResponseContent.html                    |   9 +-
 .../07.jrc.CustomCallHandlers.html                 |   5 +-
 .../10.juneau-rest-client/08.jrc.Interceptors.html |   2 +-
 .../10.juneau-rest-client/09.jrc.Proxies.html      |   4 +-
 .../09.jrc.Proxies/01.jrc.Remote.html              |  19 +-
 .../09.jrc.Proxies/02.jrc.RemoteMethod.html        |   2 +-
 .../09.jrc.Proxies/03.jrc.Content.html             |   4 +-
 .../09.jrc.Proxies/04.jrc.FormData.html            |   8 +-
 .../09.jrc.Proxies/05.jrc.Query.html               |  10 +-
 .../09.jrc.Proxies/06.jrc.Header.html              |  10 +-
 .../09.jrc.Proxies/07.jrc.Path.html                |  10 +-
 .../09.jrc.Proxies/08.jrc.Request.html             |  36 +-
 .../09.jrc.Proxies/09.jrc.Response.html            |   2 +-
 .../10.jrc.DualPurposeInterfaces.html              |   2 +-
 .../10.jrc.LoggingAndDebugging.html                |   4 +-
 .../11.jrc.CustomizingHttpClient.html              |   4 +-
 .../12.jrc.ExtendingRestClient.html                |   2 +-
 .../13.jrc.Authentication.html                     |   2 +-
 .../01.jrc.AuthenticationBASIC.html                |   2 +-
 .../02.jrc.AuthenticationForm.html                 |   2 +-
 .../03.jrc.AuthenticationOIDC.html                 |   2 +-
 juneau-doc/docs/Topics/11.juneau-rest-mock.html    |   2 +-
 .../11.juneau-rest-mock/01.jrm.MockRestClient.html |  16 +-
 .../docs/Topics/15.my-springboot-microservice.html |   2 +-
 .../01.msm.Installing.html                         |   2 +-
 .../02.msm.Running.html                            |   2 +-
 .../03.msm.Building.html                           |   2 +-
 .../docs/Topics/16.juneau-examples-core.html       |  27 --
 .../docs/Topics/17.juneau-examples-rest.html       |  51 ---
 .../docs/Topics/18.juneau-examples-rest-jetty.html |  33 --
 juneau-doc/src/main/javadoc/overview.html          | 489 +++++++++------------
 .../apache/juneau/rest/client/ResponseContent.java |  42 ++
 .../apache/juneau/rest/client/ResponseHeader.java  |  66 ++-
 .../org/apache/juneau/rest/client/RestRequest.java |   6 +-
 .../assertion/FluentResponseBodyAssertion.java     |   3 +-
 .../apache/juneau/rest/mock/MockRestClient.java    |   2 +-
 .../juneau/rest/mock/MockServletRequest.java       |  24 +-
 47 files changed, 455 insertions(+), 581 deletions(-)

diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BasicRuntimeException.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BasicRuntimeException.java
index 18d3f556b..731fffce9 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BasicRuntimeException.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BasicRuntimeException.java
@@ -27,7 +27,7 @@ import org.apache.juneau.internal.*;
  *
  * @serial exclude
  */
-public abstract class BasicRuntimeException extends RuntimeException {
+public class BasicRuntimeException extends RuntimeException {
 
 	//-----------------------------------------------------------------------------------------------------------------
 	// Static
@@ -111,6 +111,15 @@ public abstract class BasicRuntimeException extends RuntimeException {
 			return this;
 		}
 
+		/**
+		 * Instantiates the exception.
+		 *
+		 * @return A new exception.
+		 */
+		public BasicRuntimeException build() {
+			return new BasicRuntimeException(this);
+		}
+
 		// <FluentSetters>
 
 		// </FluentSetters>
diff --git a/juneau-doc/docs/ReleaseNotes/6.3.0.html b/juneau-doc/docs/ReleaseNotes/6.3.0.html
index ce879a272..41a3a8769 100644
--- a/juneau-doc/docs/ReleaseNotes/6.3.0.html
+++ b/juneau-doc/docs/ReleaseNotes/6.3.0.html
@@ -183,7 +183,7 @@
 			The {@link oajr.RestRequest} class functionality has been broken up into the following
 			functional pieces to reduce its complexity:
 			<ul>
-				<li>{@link oajr.RestRequest#getBody()} - The request body.
+				<li>{@del oajr.RestRequest#getBody()} - The request body.
 				<li>{@link oajr.RestRequest#getHeaders()} - The request headers.
 				<li>{@del RestRequest#getQuery()} - The request query parameters.
 				<li>{@del RestRequest#getFormData()} - The request form data parameters.
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/24.jm.HttpParts/01.jm.org.apache.juneau.http.html b/juneau-doc/docs/Topics/02.juneau-marshall/24.jm.HttpParts/01.jm.org.apache.juneau.http.html
index 7c2a8f1e5..4da507cce 100644
--- a/juneau-doc/docs/Topics/02.juneau-marshall/24.jm.HttpParts/01.jm.org.apache.juneau.http.html
+++ b/juneau-doc/docs/Topics/02.juneau-marshall/24.jm.HttpParts/01.jm.org.apache.juneau.http.html
@@ -291,7 +291,7 @@
 		|	<jk>public</jk> Ok doDelete(...) <jk>throws</jk> Unauthorized {
 		|		<jk>if</jk> (<jc>/* user not authorized*/</jc>)
 		|			<jk>throw</jk> <jsm>unauthorized</jsm>().build();
-		|		<jk>return</jk> <jsm>ok</jsm>().body(<js>"OK"</js>).header(<jsm>contentType</jsm>(<js>"text/plain"</js>)).build();
+		|		<jk>return</jk> <jsm>ok</jsm>().content(<js>"OK"</js>).header(<jsm>contentType</jsm>(<js>"text/plain"</js>)).build();
 		|	}
 	</p>
 </div>
\ No newline at end of file
diff --git a/juneau-doc/docs/Topics/06.juneau-rest-server/04.jrs.HttpParts/02.jrs.HttpPartAnnotations.html b/juneau-doc/docs/Topics/06.juneau-rest-server/04.jrs.HttpParts/02.jrs.HttpPartAnnotations.html
index 1f8b3a10d..3285962f4 100644
--- a/juneau-doc/docs/Topics/06.juneau-rest-server/04.jrs.HttpParts/02.jrs.HttpPartAnnotations.html
+++ b/juneau-doc/docs/Topics/06.juneau-rest-server/04.jrs.HttpParts/02.jrs.HttpPartAnnotations.html
@@ -424,7 +424,7 @@
 		|			minLength=1,
 		|			maxLength=10
 		|		)
-		|		Long[][] <jv>body</jv>
+		|		Long[][] <jv>content</jv>
 		|	) {...}
 	</p>
 	<p>
@@ -434,7 +434,7 @@
 	<p class='bjava'>
 		|	<jc>// Content is a 2-dimensional array of POJOs convertible from Longs:</jc>
 		|	<ja>@RestPost</ja>(<js>"/example1"</js>)	
-		|	<jk>public void</jk> testContent(<ja>@Content</ja>(...) MyPojo1[][] <jv>body</jv>) {...}
+		|	<jk>public void</jk> testContent(<ja>@Content</ja>(...) MyPojo1[][] <jv>content</jv>) {...}
 		|	
 		|	<jk>public class</jk> MyPojo1 {
 		|		<jk>public</jk> MyPojo1(Long <jv>input</jv>) {...}
@@ -443,7 +443,7 @@
 	<p class='bjava'>
 		|	<jc>// Content is a POJO that takes in a Long array:</jc>
 		|	<ja>@RestPost</ja>(<js>"/example2"</js>)	
-		|	<jk>public void</jk> testContent(<ja>@Content</ja>(...) MyPojo2[] <jv>body</jv>) {...}
+		|	<jk>public void</jk> testContent(<ja>@Content</ja>(...) MyPojo2[] <jv>content</jv>) {...}
 		|	
 		|	<jk>public class</jk> MyPojo2 {
 		|		<jk>public</jk> MyPojo2(Long[] <jv>input</jv>) {...}
@@ -452,7 +452,7 @@
 	<p class='bjava'>
 		|	<jc>// Content is a POJO that takes in the whole 2-dimensional array:</jc>
 		|	<ja>@RestPost</ja>(<js>"/example3"</js>)	
-		|	<jk>public void</jk>testContent<ja>@Content</ja>(...) MyPojo3 <jv>body</jv>) {...}
+		|	<jk>public void</jk>testContent<ja>@Content</ja>(...) MyPojo3 <jv>content</jv>) {...}
 		|	
 		|	<jk>public class</jk> MyPojo3 {
 		|		<jk>public</jk> MyPojo3(Long[][] <jv>input</jv>) {...}
diff --git a/juneau-doc/docs/Topics/06.juneau-rest-server/24.jrs.ResponseProcessors.html b/juneau-doc/docs/Topics/06.juneau-rest-server/24.jrs.ResponseProcessors.html
index 22649edc9..456d02c09 100644
--- a/juneau-doc/docs/Topics/06.juneau-rest-server/24.jrs.ResponseProcessors.html
+++ b/juneau-doc/docs/Topics/06.juneau-rest-server/24.jrs.ResponseProcessors.html
@@ -39,7 +39,7 @@
 	</p>
 	<ul>
 		<li class='ja'>{@link oajr.annotation.Rest#responseProcessors}
-		<li class='jm'>{@link org.apache.juneau.rest.RestContext.Builder#responseProcessors()}
+		<li class='jm'>{@link oajr.RestContext.Builder#responseProcessors()}
 	</ul>
 	
 	<p>
diff --git a/juneau-doc/docs/Topics/09.juneau-rest-server-springboot/01.jrss.Overview.html b/juneau-doc/docs/Topics/09.juneau-rest-server-springboot/01.jrss.Overview.html
index 8060d5e3d..62cde9e86 100644
--- a/juneau-doc/docs/Topics/09.juneau-rest-server-springboot/01.jrss.Overview.html
+++ b/juneau-doc/docs/Topics/09.juneau-rest-server-springboot/01.jrss.Overview.html
@@ -33,7 +33,7 @@
 		configuration classes).
 	</p>
 	<p>
-		The {@link org.apache.juneau.examples.rest.springboot} package and {@link org.apache.juneau.examples.rest.springboot.App} 
+		The {@link oaj.examples.rest.springboot} package and {@link oaj.examples.rest.springboot.App} 
 		application are a basic Spring Boot application that shows off simple Juneau examples including injection beans.
 	</p>	
 	<p class='bjava'>
@@ -127,7 +127,7 @@
 	<img class='bordered w800' src='doc-files/jrss.Overview.RootResources.json.png'>
 	
 	<p>
-		The {@link org.apache.juneau.examples.rest.springboot.HelloWorldResource} class shows an example of a child resource
+		The {@link oaj.examples.rest.springboot.HelloWorldResource} class shows an example of a child resource
 		defined as an injected bean.
 	</p>
 	<p class='bjava'>
diff --git a/juneau-doc/docs/Topics/10.juneau-rest-client.html b/juneau-doc/docs/Topics/10.juneau-rest-client.html
index 9561cb3ab..cbb24575b 100644
--- a/juneau-doc/docs/Topics/10.juneau-rest-client.html
+++ b/juneau-doc/docs/Topics/10.juneau-rest-client.html
@@ -123,7 +123,7 @@ specific language governing permissions and limitations under the License.
 		|	RestClient <jv>client</jv> = RestClient.<jsm>create</jsm>().json().rootUri(<js>"http://localhost:10000"</js>).build();
 		|
 		|	<jc>// Use relative paths.</jc>
-		|	String <jv>body</jv> = <jv>client</jv>.get(<js>"/subpath"</js>).run().getContent().asString();
+		|	String <jv>content</jv> = <jv>client</jv>.get(<js>"/subpath"</js>).run().getContent().asString();
 	</p>
 	
 	<p>
@@ -173,7 +173,7 @@ specific language governing permissions and limitations under the License.
 	
 	<p class='bjava'>
 		|	<jc>// Consuming the response, so use run().</jc>
-		|	String <jv>body</jv> = <jv>client</jv>.get(<jsf>URI</jsf>).run().getContent().asString();
+		|	String <jv>content</jv> = <jv>client</jv>.get(<jsf>URI</jsf>).run().getContent().asString();
 		|
 		|	<jc>// Only interested in response status code, so use complete().</jc>
 		|	<jk>int</jk> <jv>status</jv> = <jv>client</jv>.get(<jsf>URI</jsf>).complete().getStatusCode();
diff --git a/juneau-doc/docs/Topics/10.juneau-rest-client/03.jrc.RequestContent.html b/juneau-doc/docs/Topics/10.juneau-rest-client/03.jrc.RequestContent.html
index 8a93a664e..1b2481307 100644
--- a/juneau-doc/docs/Topics/10.juneau-rest-client/03.jrc.RequestContent.html
+++ b/juneau-doc/docs/Topics/10.juneau-rest-client/03.jrc.RequestContent.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{title:'Request Content', created:'8.2.0', flags:'todo'}
+{title:'Request Content', created:'8.2.0', updated:'9.0.0'}
 
 <div class='topic'>
 	<p>
@@ -41,7 +41,7 @@
 		<li class='jc'>
 			{@link org.apache.http.HttpEntity} - Bypass Juneau serialization and pass HttpEntity directly to HttpClient.
 		<li class='jc'>
-			{@link oaj.http.NameValuePairSupplier} - Converted to a URL-encoded FORM post.
+			{@link oaj.http.part.PartList} - Converted to a URL-encoded FORM post.
 		<li class='jc'>
 			{@link java.util.function.Supplier} - A supplier of anything on this list.
 	</ul>
@@ -54,21 +54,21 @@
 		|	<jc>// Post a JSON-serialized bean.</jc>
 		|	<jv>client</jv>
 		|		.post(<jsf>URI</jsf>)
-		|		.body(<jv>bean</jv>)
+		|		.content(<jv>bean</jv>)
 		|		.complete()
 		|		.assertStatus().asCode().is(200);
 		|	
 		|	<jc>// Post contents from a reader.</jc>
 		|	<jv>client</jv>
 		|		.post(<jsf>URI</jsf>)
-		|		.body(<jk>new</jk> FileReader(<js>"/tmp/foo.json"</js>))
+		|		.content(<jk>new</jk> FileReader(<js>"/tmp/foo.json"</js>))
 		|		.complete()
 		|		.assertStatus().asCode().is(200);
 		|	
 		|	<jc>// Post contents from an Apache HttpEntity object.</jc>
 		|	<jv>client</jv>
 		|		.post(<jsf>URI</jsf>)
-		|		.body(<jk>new</jk> StringEntity(<jv>jsonString</jv>, ContentType.<jsf>APPLICATION_JSON</jsf>))
+		|		.content(<jk>new</jk> StringEntity(<jv>jsonString</jv>, ContentType.<jsf>APPLICATION_JSON</jsf>))
 		|		.complete()
 		|		.assertStatus().asCode().is(200);
 	</p>
diff --git a/juneau-doc/docs/Topics/10.juneau-rest-client/04.jrc.ResponseStatus.html b/juneau-doc/docs/Topics/10.juneau-rest-client/04.jrc.ResponseStatus.html
index 8571fcabb..d782011b1 100644
--- a/juneau-doc/docs/Topics/10.juneau-rest-client/04.jrc.ResponseStatus.html
+++ b/juneau-doc/docs/Topics/10.juneau-rest-client/04.jrc.ResponseStatus.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{title:'Response Status', created:'8.1.0', flags:'todo'}
+{title:'Response Status', created:'8.1.0', updated:'9.0.0'}
 
 <div class='topic'>
 	<p>
@@ -63,13 +63,13 @@
 	<h5 class='figure'>Example:</h5>
 	<p class='bjava'>
 		|	<jc>// Status assertion using a static value.</jc>
-		|	String <jv>body1</jv> = <jv>client</jv>.get(<jsf>URI</jsf>)
+		|	String <jv>content1</jv> = <jv>client</jv>.get(<jsf>URI</jsf>)
 		|		.run()
 		|		.assertStatus().asCode().isBetween(200,399)
 		|		.getContent().asString();
 		|
 		|	<jc>// Status assertion using a predicate.</jc>
-		|	String <jv>body2</jv> = <jv>client</jv>.get(<jsf>URI</jsf>)
+		|	String <jv>content2</jv> = <jv>client</jv>.get(<jsf>URI</jsf>)
 		|		.run()
 		|		.assertStatus().asCode().is(<jv>x</jv> -> <jv>x</jv>&lt;400)
 		|		.getContent().asString();
diff --git a/juneau-doc/docs/Topics/10.juneau-rest-client/05.jrc.ResponseHeaders.html b/juneau-doc/docs/Topics/10.juneau-rest-client/05.jrc.ResponseHeaders.html
index 8b985613f..c52faa46f 100644
--- a/juneau-doc/docs/Topics/10.juneau-rest-client/05.jrc.ResponseHeaders.html
+++ b/juneau-doc/docs/Topics/10.juneau-rest-client/05.jrc.ResponseHeaders.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{title:'Response Headers', created:'8.2.0', flags:'todo'}
+{title:'Response Headers', created:'8.2.0', updated:'9.0.0'}
 
 <div class='topic'>
 	<p>
@@ -22,11 +22,11 @@
 	<ul class='javatree'>
 		<li class='jc'>{@link oajrc.RestResponse}
 		<ul>
-			<li class='jm'><c>{@link oajrc.RestResponse#getHeader(String) getHeader(String)} <jk>returns</jk> {@link oajrc.RestResponseHeader}</c>
-			<li class='jm'><c>{@link oajrc.RestResponse#getHeaders(String) getHeaders(String)} <jk>returns</jk> {@link oajrc.RestResponseHeader}[]</c>
-			<li class='jm'><c>{@link oajrc.RestResponse#getFirstHeader(String) getFirstHeader(String)} <jk>returns</jk> {@link oajrc.RestResponseHeader}</c>
-			<li class='jm'><c>{@link oajrc.RestResponse#getLastHeader(String) getLastHeader(String)} <jk>returns</jk> {@link oajrc.RestResponseHeader}</c>
-			<li class='jm'><c>{@link oajrc.RestResponse#getAllHeaders() getAllHeaders()} <jk>returns</jk> {@del oaj.client2.RestResponseHeader}[]</c>
+			<li class='jm'><c>{@link oajrc.RestResponse#getHeader(String) getHeader(String)} <jk>returns</jk> {@link oajrc.ResponseHeader}</c>
+			<li class='jm'><c>{@link oajrc.RestResponse#getHeaders(String) getHeaders(String)} <jk>returns</jk> {@link oajrc.ResponseHeader}[]</c>
+			<li class='jm'><c>{@link oajrc.RestResponse#getFirstHeader(String) getFirstHeader(String)} <jk>returns</jk> {@link oajrc.ResponseHeader}</c>
+			<li class='jm'><c>{@link oajrc.RestResponse#getLastHeader(String) getLastHeader(String)} <jk>returns</jk> {@link oajrc.ResponseHeader}</c>
+			<li class='jm'><c>{@link oajrc.RestResponse#getAllHeaders() getAllHeaders()} <jk>returns</jk> {@link oajrc.ResponseHeader}[]</c>
 			<li class='jm'><c>{@link oajrc.RestResponse#getStringHeader(String) getStringHeader(String)} <jk>returns</jk> String</c>
 			<li class='jm'><c>{@link oajrc.RestResponse#containsHeader(String) containsHeader(String)} <jk>returns</jk> <jk>boolean</jk></c>
 		</ul>
@@ -34,48 +34,53 @@
 	
 	<p>
 		Unlike {@link oajrc.RestResponse#getFirstHeader(String)} and {@link oajrc.RestResponse#getLastHeader(String)}, the {@link oajrc.RestResponse#getHeader(String)}
-		method returns an empty {@link oajrc.RestResponseHeader} object instead of returning <jk>null</jk>.
+		method returns an empty {@link oajrc.ResponseHeader} object instead of returning <jk>null</jk>.
 		This allows it to be used more easily in fluent calls.
 	</p>
 	
 	<h5 class='figure'>Example:</h5>
 	<p class='bjava'>
+		|	RestResponse <jv>res</jv> = <jv>client</jv>.get(<jsf>URI</jsf>).complete();
+		|	ResponseHeader <jv>header</jv> = <jv>res</jv>.getHeader(<js>"Location"</js>);
+		|
 		|	<jc>// See if response contains Location header.</jc>
-		|	<jk>boolean</jk> <jv>hasLocationHeader</jv> = <jv>client</jv>.get(<jsf>URI</jsf>).complete().getHeader(<js>"Location"</js>).exists();
+		|	<jk>boolean</jk> <jv>hasLocationHeader</jv> = <jv>header</jv>.isPresent();
+		|
+		|	<jc>// Get actual value if it exists.</jc>
+		|	<jk>String</jk> <jv>locationHeader1</jv> = <jv>header</jv>.orElse(<js>"http://localhost"</js>);
+		|
+		|	<jc>// Converted to object.</jc>
+		|	<jk>URI</jk> <jv>locationHeader2</jv> = <jv>header</jv>.as(URI.<jk>class</jk>).orElse(<jk>null</jk>);
 	</p>
 	
 	<p>
-		The {@link oajrc.RestResponseHeader} class extends from the HttpClient {@link org.apache.http.Header} class and provides several convenience
+		The {@link oajrc.ResponseHeader} class extends from the HttpClient {@link org.apache.http.Header} class and provides several convenience
 		methods:
 	</p>
 	
 	<ul class='javatree'>
-		<li class='jc'>{@link oajrc.RestResponseHeader}
+		<li class='jc'>{@link oajrc.ResponseHeader}
 		<ul>
-			<li class='jm'><c>{@link oajrc.RestResponseHeader#exists() exists()} <jk>returns</jk> <jk>boolean</jk></c>
-			<li class='jm'><c>{@link oajrc.RestResponseHeader#asString() asString()} <jk>returns</jk> String</c>
-			<li class='jm'><c>{@link oajrc.RestResponseHeader#asOptionalString() asOptionalString()} <jk>returns</jk> Optional&lt;String&gt;</c>
-			<li class='jm'><c>{@link oajrc.RestResponseHeader#asStringOrElse(String) asStringOrElse(String)} <jk>returns</jk> String</c>
-			<li class='jm'><c>{@link oajrc.RestResponseHeader#as(Type,Type...) as(Type,Type...)} <jk>returns</jk> T</c>
-			<li class='jm'><c>{@link oajrc.RestResponseHeader#as(Class) as(Class&lt;T&gt;)} <jk>returns</jk> T</c>
-			<li class='jm'><c>{@link oajrc.RestResponseHeader#asOptional(Type,Type...) asOptional(Type,Type...)} <jk>returns</jk> Optional&lt;T&gt;</c>
-			<li class='jm'><c>{@link oajrc.RestResponseHeader#asOptional(Class) asOptional(Class&lt;T&gt;)} <jk>returns</jk> Optional&lt;T&gt;</c>
-			<li class='jm'><c>{@link oajrc.RestResponseHeader#asMatcher(Pattern) asMatcher(Pattern)} <jk>returns</jk> {@link java.util.regex.Matcher}</c>
-			<li class='jm'><c>{@link oajrc.RestResponseHeader#asMatcher(String) asMatcher(String)} <jk>returns</jk> {@link java.util.regex.Matcher}</c>
-			<li class='jm'><c>{@link oajrc.RestResponseHeader#asHeader(Class) asHeader(Class&lt;T <jk>extends</jk> BasicHeader&gt; c)} <jk>returns</jk> {@link oaj.http.BasicHeader}</c>
-			<li class='jm'><c>{@link oajrc.RestResponseHeader#asStringHeader() asStringHeader()} <jk>returns</jk> {@link oaj.http.header.BasicIntegerHeader}</c>
-			<li class='jm'><c>{@link oajrc.RestResponseHeader#asIntegerHeader() asIntegerHeader()} <jk>returns</jk> {@link oaj.http.header.BasicStringHeader}</c>
-			<li class='jm'><c>{@link oajrc.RestResponseHeader#asLongHeader() asLongHeader()} <jk>returns</jk> {@link oaj.http.header.BasicLongHeader}</c>
-			<li class='jm'><c>{@link oajrc.RestResponseHeader#asDateHeader() asDateHeader()} <jk>returns</jk> {@link oaj.http.header.BasicDateHeader}</c>
-			<li class='jm'><c>{@link oajrc.RestResponseHeader#asCsvArrayHeader() asCsvArrayHeader()} <jk>returns</jk> {@link oaj.http.header.BasicCsvArrayHeader}</c>
-			<li class='jm'><c>{@link oajrc.RestResponseHeader#asEntityTagArrayHeader() asEntityTagArrayHeader()} <jk>returns</jk> {@link oaj.http.header.BasicEntityTagArrayHeader}</c>
-			<li class='jm'><c>{@link oajrc.RestResponseHeader#asStringRangeArrayHeader() asStringRangeArrayHeader()} <jk>returns</jk> {@link oaj.http.header.BasicStringRangeArrayHeader}</c>
-			<li class='jm'><c>{@link oajrc.RestResponseHeader#asUriHeader() asUriHeader()} <jk>returns</jk> {@link oaj.http.header.BasicUriHeader}</c>
+			<li class='jm'><c>{@link oajrc.ResponseHeader#isPresent() isPresent()} <jk>returns</jk> <jk>boolean</jk></c>
+			<li class='jm'><c>{@link oajrc.ResponseHeader#asString() asString()} <jk>returns</jk> String</c>
+			<li class='jm'><c>{@link oajrc.ResponseHeader#as(Type,Type...) as(Type,Type...)} <jk>returns</jk> T</c>
+			<li class='jm'><c>{@link oajrc.ResponseHeader#as(Class) as(Class&lt;T&gt;)} <jk>returns</jk> T</c>
+			<li class='jm'><c>{@link oajrc.ResponseHeader#asMatcher(Pattern) asMatcher(Pattern)} <jk>returns</jk> {@link java.util.regex.Matcher}</c>
+			<li class='jm'><c>{@link oajrc.ResponseHeader#asMatcher(String) asMatcher(String)} <jk>returns</jk> {@link java.util.regex.Matcher}</c>
+			<li class='jm'><c>{@link oajrc.ResponseHeader#asHeader(Class) asHeader(Class&lt;T <jk>extends</jk> BasicHeader&gt; c)} <jk>returns</jk> {@link oaj.http.BasicHeader}</c>
+			<li class='jm'><c>{@link oajrc.ResponseHeader#asStringHeader() asStringHeader()} <jk>returns</jk> {@link oaj.http.header.BasicIntegerHeader}</c>
+			<li class='jm'><c>{@link oajrc.ResponseHeader#asIntegerHeader() asIntegerHeader()} <jk>returns</jk> {@link oaj.http.header.BasicStringHeader}</c>
+			<li class='jm'><c>{@link oajrc.ResponseHeader#asLongHeader() asLongHeader()} <jk>returns</jk> {@link oaj.http.header.BasicLongHeader}</c>
+			<li class='jm'><c>{@link oajrc.ResponseHeader#asDateHeader() asDateHeader()} <jk>returns</jk> {@link oaj.http.header.BasicDateHeader}</c>
+			<li class='jm'><c>{@link oajrc.ResponseHeader#asCsvHeader() asCsvHeader()} <jk>returns</jk> {@link oaj.http.header.BasicCsvHeader}</c>
+			<li class='jm'><c>{@link oajrc.ResponseHeader#asEntityTagsHeader() asEntityTagsHeader()} <jk>returns</jk> {@link oaj.http.header.BasicEntityTagsHeader}</c>
+			<li class='jm'><c>{@link oajrc.ResponseHeader#asStringRangesHeader() asStringRangesHeader()} <jk>returns</jk> {@link oaj.http.header.BasicStringRangesHeader}</c>
+			<li class='jm'><c>{@link oajrc.ResponseHeader#asUriHeader() asUriHeader()} <jk>returns</jk> {@link oaj.http.header.BasicUriHeader}</c>
 		</ul>
 	</ul>
 	
 	<p>
-		The {@link oajrc.RestResponseHeader#schema(HttpPartSchema)} method allows you to perform parsing of OpenAPI formats for
+		The {@link oajrc.ResponseHeader#schema(HttpPartSchema)} method allows you to perform parsing of OpenAPI formats for
 		header parts.
 	</p>
 		
@@ -93,12 +98,12 @@
 	</p>
 	
 	<ul class='javatree'>
-		<li class='jc'>{@link oajrc.RestResponseHeader}
+		<li class='jc'>{@link oajrc.ResponseHeader}
 		<ul>
-			<li class='jm'><c>{@link oajrc.RestResponseHeader#assertString() assertString()} <jk>returns</jk> {@link oaj.assertions.FluentStringAssertion}</c>
-			<li class='jm'><c>{@link oajrc.RestResponseHeader#assertInteger() assertInteger()} <jk>returns</jk> {@link oaj.assertions.FluentIntegerAssertion}</c>
-			<li class='jm'><c>{@link oajrc.RestResponseHeader#assertLong() assertLong()} <jk>returns</jk> {@link oaj.assertions.FluentLongAssertion}</c>
-			<li class='jm'><c>{@link oajrc.RestResponseHeader#assertDate() assertDate()} <jk>returns</jk> {@link oaj.assertions.FluentDateAssertion}</c>
+			<li class='jm'><c>{@link oajrc.ResponseHeader#assertString() assertString()} <jk>returns</jk> {@link oaj.assertions.FluentStringAssertion}</c>
+			<li class='jm'><c>{@link oajrc.ResponseHeader#assertInteger() assertInteger()} <jk>returns</jk> {@link oaj.assertions.FluentIntegerAssertion}</c>
+			<li class='jm'><c>{@link oajrc.ResponseHeader#assertLong() assertLong()} <jk>returns</jk> {@link oaj.assertions.FluentLongAssertion}</c>
+			<li class='jm'><c>{@link oajrc.ResponseHeader#assertZonedDateTime() assertZonedDateTime()} <jk>returns</jk> {@link oaj.assertions.FluentZonedDateTimeAssertion}</c>
 		</ul>
 	</ul>
 	
@@ -110,7 +115,7 @@
 	<h5 class='figure'>Example:</h5>
 	<p class='bjava'>
 		|	<jc>// Assert the response content type is any sort of JSON.</jc>
-		|	String <jv>body</jv> = <jv>client</jv>.get(<jsf>URI</jsf>)
+		|	String <jv>content</jv> = <jv>client</jv>.get(<jsf>URI</jsf>)
 		|		.run()
 		|		.getHeader(<js>"Content-Type"</js>).assertString().matchesSimple(<js>"application/json*"</js>)
 		|		.getContent().asString();
diff --git a/juneau-doc/docs/Topics/10.juneau-rest-client/06.jrc.ResponseContent.html b/juneau-doc/docs/Topics/10.juneau-rest-client/06.jrc.ResponseContent.html
index 16babbf8f..19c368343 100644
--- a/juneau-doc/docs/Topics/10.juneau-rest-client/06.jrc.ResponseContent.html
+++ b/juneau-doc/docs/Topics/10.juneau-rest-client/06.jrc.ResponseContent.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{title:'Response Content', created:'8.2.0', flags:'todo'}
+{title:'Response Content', created:'8.2.0', updated:'9.0.0'}
 
 <div class='topic'>
 	<p>
@@ -47,8 +47,6 @@
 			<li class='jm'><c>{@link oajrc.ResponseContent#asString() asString()} <jk>returns</jk> String</c>
 			<li class='jm'><c>{@link oajrc.ResponseContent#asStringFuture() asStringFuture()} <jk>returns</jk> Future&lt;String&gt;</c>
 			<li class='jm'><c>{@link oajrc.ResponseContent#asAbbreviatedString(int) asAbbreviatedString(int)} <jk>returns</jk> String</c>
-			<li class='jm'><c>{@link oajrc.ResponseContent#asPojoRest(Class) asPojoRest(Class&lt;?&gt;)} <jk>returns</jk> {@link oaj.utils.PojoRest}</c>
-			<li class='jm'><c>{@link oajrc.ResponseContent#asPojoRest() asPojoRest()} <jk>returns</jk> {@link oaj.utils.PojoRest}</c>
 			<li class='jm'><c>{@link oajrc.ResponseContent#asMatcher(Pattern) asMatcher(Pattern)} <jk>returns</jk> {@link java.util.regex.Matcher}</c>
 			<li class='jm'><c>{@link oajrc.ResponseContent#asMatcher(String) asMatcher(String)} <jk>returns</jk> {@link java.util.regex.Matcher}</c>
 		</ul>
@@ -119,15 +117,16 @@
 		<li class='jc'>{@link oajrc.ResponseContent}
 		<ul>
 			<li class='jm'><c>{@link oajrc.ResponseContent#assertString() assertString()} <jk>returns</jk> {@link oaj.assertions.FluentStringAssertion}</c>
-			<li class='jm'><c>{@link oajrc.ResponseContent#assertObject(Class) assertObject(Class&lt;?&gt;)} <jk>returns</jk> {@link oaj.assertions.FluentObjectAssertion}</c>
 			<li class='jm'><c>{@link oajrc.ResponseContent#assertBytes() assertBytes()} <jk>returns</jk> {@link oaj.assertions.FluentByteArrayAssertion}</c>
+			<li class='jm'><c>{@link oajrc.ResponseContent#assertObject(Class) assertObject(Class)} <jk>returns</jk> {@link oaj.assertions.FluentObjectAssertion}</c>
+			<li class='jm'><c>{@link oajrc.ResponseContent#assertObject(Type,Type...) assertObject(Type,Type...)} <jk>returns</jk> {@link oaj.assertions.FluentObjectAssertion}</c>
 		</ul>
 	</ul>
 	
 	<h5 class='figure'>Example:</h5>
 	<p class='bjava'>
 		|	<jc>// Assert that the body contains the string "Success".</jc>
-		|	String <jv>body</jv> = <jv>client</jv>
+		|	String <jv>content</jv> = <jv>client</jv>
 		|		.get(<jsf>URI</jsf>)
 		|		.run()
 		|		.getContent().assertString().contains(<js>"Success"</js>)
diff --git a/juneau-doc/docs/Topics/10.juneau-rest-client/07.jrc.CustomCallHandlers.html b/juneau-doc/docs/Topics/10.juneau-rest-client/07.jrc.CustomCallHandlers.html
index bbe704e47..e9d6a4267 100644
--- a/juneau-doc/docs/Topics/10.juneau-rest-client/07.jrc.CustomCallHandlers.html
+++ b/juneau-doc/docs/Topics/10.juneau-rest-client/07.jrc.CustomCallHandlers.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{title:'Custom Call Handlers', created:'8.2.0', flags:'todo'}
+{title:'Custom Call Handlers', created:'8.2.0', updated:'9.0.0'}
 
 <div class='topic'>
 	<p>
@@ -24,7 +24,6 @@
 		<li class='jc'>{@link oajrc.RestClient.Builder}
 		<ul>
 			<li class='jm'>{@link oajrc.RestClient.Builder#callHandler(Class) callHandler(Class&lt;? extends RestCallHandler&gt;)}
-			<li class='jm'>{@link oajrc.RestClient.Builder#callHandler(RestCallHandler) callHandler(RestCallHandler)}
 		</ul>
 		<li class='jic'>{@link oajrc.RestCallHandler}
 		<ul>
@@ -63,7 +62,7 @@
 	 
 	<p>
 		Note that there are other ways of accomplishing this such as extending the {@link oajrc.RestClient} class and overriding
-		the {@del oaj.rest.client2.RestClient#run(HttpHost,HttpRequest,HttpContext)} method
+		the {@link oajrc.RestClient#run(HttpHost,HttpRequest,HttpContext)} method
 		or by defining your own {@link org.apache.http.protocol.HttpRequestExecutor}.  Using this interface is often simpler though.
 	</p>
 </div>
\ No newline at end of file
diff --git a/juneau-doc/docs/Topics/10.juneau-rest-client/08.jrc.Interceptors.html b/juneau-doc/docs/Topics/10.juneau-rest-client/08.jrc.Interceptors.html
index 1ed0ec950..e214dc56c 100644
--- a/juneau-doc/docs/Topics/10.juneau-rest-client/08.jrc.Interceptors.html
+++ b/juneau-doc/docs/Topics/10.juneau-rest-client/08.jrc.Interceptors.html
@@ -13,7 +13,7 @@ specific language governing permissions and limitations under the License.
  ***************************************************************************************************************************/
  -->
 
-{title:'Interceptors', created:'8.2.0', flags:'todo'}
+{title:'Interceptors', created:'8.2.0'}
 
 <div class='topic'>
 	<p>
diff --git a/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies.html b/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies.html
index 1cedd00e1..0b2e95e8a 100644
--- a/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies.html
+++ b/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{title:'REST Proxies', created:'8.2.0', flags:'todo'}
+{title:'REST Proxies', created:'8.2.0', updated:'9.0.0'}
 
 <div class='topic'>
 	<p>
@@ -45,7 +45,7 @@
 			<li class='ja'>{@link oaj.http.remote.RemoteOp} - Applied to interface methods.
 		</ul>
 		<li class='jp'>{@link oaj.http.annotation}
-		<ul>
+		<ul class='javatreec'>
 			<li class='ja'>{@link oaj.http.annotation.Content}
 			<li class='ja'>{@link oaj.http.annotation.Header}
 			<li class='ja'>{@link oaj.http.annotation.FormData}
diff --git a/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/01.jrc.Remote.html b/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/01.jrc.Remote.html
index 2042882ab..9f038501e 100644
--- a/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/01.jrc.Remote.html
+++ b/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/01.jrc.Remote.html
@@ -13,7 +13,7 @@ specific language governing permissions and limitations under the License.
  ***************************************************************************************************************************/
  -->
 
-{title:'@Remote', updated:'8.1.2,8.2.0', flags:'todo'}
+{title:'@Remote', updated:'8.1.2,8.2.0', updated:'9.0.0'}
 
 <div class='topic'>
 	<p>
@@ -105,9 +105,9 @@ specific language governing permissions and limitations under the License.
 	</p>
 	
 	
-	<h5 class='topic'>@Remote(headers/headerSupplier)</h5>
+	<h5 class='topic'>@Remote(headers/headerList)</h5>
 	<p>
-		The {@link oaj.http.remote.Remote#headers @Remote(headers)} and {@del @Remote(headerSupplier)} 
+		The {@link oaj.http.remote.Remote#headers @Remote(headers)} and {@link oaj.http.remote.Remote#headerList @Remote(headerList)} 
 		annotations are used to add headers on all requests.  
 	</p>
 	
@@ -119,21 +119,14 @@ specific language governing permissions and limitations under the License.
 		|			<js>"Foo: bar"</js>,
 		|			<js>"Baz: $S{bazProperty}"</js>
 		|		},
-		|		headerSupplier=MyDynamicHeaderSupplier.<jk>class</jk>
+		|		headerList=MyHeaderList.<jk>class</jk>
 		|	)
 		|	<jk>public interface</jk> PetStore {...}
 	</p>
 	<p class='bjava'>
 		|	<jc>// Our dynamic supplier.</jc>
-		|	<jk>public class</jk> MyHeaderSupplier <jk>extends</jk> HeaderSupplier {
-		|	
-		|		<jc>// Headers can be added here at runtime.</jc>
-		|		<jk>public static</jk> HeaderSupplier <jsf>DYNAMIC_HEADERS</jsf> = <jk>new</jk> HeaderSupplier();
-		|	
-		|		<jk>public</jk> MyHeaderSupplier() {
-		|			add(<js>"Qux"</js>,<js>"q2x"</js>);  
-		|			add(<jsf>DYNAMIC_HEADERS</jsf>);
-		|		}
+		|	<jk>public class</jk> MyHeaderList <jk>extends</jk> HeaderList {
+		|		...
 		|	}
 	</p>
 	
diff --git a/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/02.jrc.RemoteMethod.html b/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/02.jrc.RemoteMethod.html
index 0336c280b..44b52cf53 100644
--- a/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/02.jrc.RemoteMethod.html
+++ b/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/02.jrc.RemoteMethod.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{title:'@RemoteOp', updated:'8.2.0', flags:'todo'}
+{title:'@RemoteOp', updated:'8.2.0', updated:'9.0.0'}
 
 <div class='topic'>
 	<p>
diff --git a/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/03.jrc.Content.html b/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/03.jrc.Content.html
index a074f6dd6..bcd171d94 100644
--- a/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/03.jrc.Content.html
+++ b/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/03.jrc.Content.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{title:'@Content', updated:'8.2.0', flags:'todo'}
+{title:'@Content', updated:'8.2.0', updated:'9.0.0'}
 
 <div class='topic'>
 	<p>
@@ -65,7 +65,7 @@
 			{@link java.io.InputStream} - Raw contents of {@code InputStream} will be serialized to remote resource.
 			<br><c>Content-Type</c> is set to <js>"application/octet-stream"</js>.
 		<li>
-			{@link oaj.http.NameValuePairSupplier} - Converted to a URL-encoded FORM post.
+			{@link oaj.http.part.PartList} - Converted to a URL-encoded FORM post.
 			<br><c>Content-Type</c> is set to <js>"aplication/x-www-form-urlencoded"</js>.
 		<li>
 			<c>HttpEntity</c> - Bypass Juneau serialization and pass HttpEntity directly to HttpClient.
diff --git a/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/04.jrc.FormData.html b/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/04.jrc.FormData.html
index f87706a44..00f13ecd2 100644
--- a/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/04.jrc.FormData.html
+++ b/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/04.jrc.FormData.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{title:'@FormData', updated:'8.2.0', flags:'todo'}
+{title:'@FormData', updated:'8.2.0', updated:'9.0.0'}
 
 <div class='topic'>
 	<p>
@@ -40,10 +40,10 @@
 		|			<ja>@FormData</ja>(<js>"bar"</js>)</ja> MyPojo <jv>pojo</jv>
 		|		);
 		|
-		|		<jc>// Multiple values pulled from a NameValuePairSupplier object.</jc>
+		|		<jc>// Multiple values pulled from a PartList object.</jc>
 		|		<jc>// Name "*" is inferred.</jc>
 		|		<ja>@RemotePost</ja>
-		|		String postNameValuePairs(<ja>@FormData</ja> NameValuePairSupplier <jv>nameValuePairSupplier</jv>);
+		|		String postPartList(<ja>@FormData</ja> PartList <jv>partList</jv>);
 		|
 		|		<jc>// Multiple values pulled from a Map.</jc>
 		|		<ja>@RemotePost</ja>
@@ -80,7 +80,7 @@
 		<li>
 			{@link java.io.InputStream} - Raw contents of {@code InputStream} will be serialized to remote resource.
 		<li>
-			{@link oaj.http.NameValuePairSupplier} - Converted to a URL-encoded FORM post.
+			{@link oaj.http.part.PartList} - Converted to a URL-encoded FORM post.
 		<li>
 			<c>Map</c> - Converted to key-value pairs.
 				<br>Values serialized using the registered {@link oaj.httppart.HttpPartSerializer} ({@link oaj.oapi.OpenApiSerializer} by default).
diff --git a/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/05.jrc.Query.html b/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/05.jrc.Query.html
index ca3df8306..2cf9cb5d8 100644
--- a/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/05.jrc.Query.html
+++ b/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/05.jrc.Query.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{title:'@Query', updated:'8.2.0', flags:'todo'}
+{title:'@Query', updated:'8.2.0', updated:'9.0.0'}
 
 <div class='topic'>
 	<p>
@@ -23,7 +23,7 @@
 	<ul class='javatree'>
 		<li class='ja'>{@link oaj.http.annotation.Query}
 		<ul>
-			<li class='jf'>{@link oaj.http.annotation.Query#name() name}, {@del oaj.http.annotation.Query#n() n} - Query parameter name.
+			<li class='jf'>{@link oaj.http.annotation.Query#name() name} - Query parameter name.
 			<li class='jf'>{@link oaj.http.annotation.Query#serializer() serializer}  - Override the part serializer.
 		</ul>
 	</ul>
@@ -39,10 +39,10 @@
 		|			<ja>@Query</ja>(<js>"foo"</js>)</ja> String <jv>foo</jv>,
 		|			<ja>@Query</ja>(<js>"bar"</js>)</ja> MyPojo <jv>pojo</jv>);
 		|
-		|		<jc>// Multiple values pulled from a NameValuePairSupplier object.</jc>
+		|		<jc>// Multiple values pulled from a PartList object.</jc>
 		|		<jc>// Same as @Query("*").</jc>
 		|		<ja>@RemoteGet</ja>
-		|		String nameValuePairs(<ja>@Query</ja> NameValuePairSupplier <jv>nameValuePairSupplier</jv>);
+		|		String partList(<ja>@Query</ja> PartList <jv>partList</jv>);
 		|
 		|		<jc>// Multiple values pulled from a Map.</jc>
 		|		<jc>// Same as @Query("*").</jc>
@@ -82,7 +82,7 @@
 		<li>
 			{@link java.io.Reader} - Raw contents of {@code Reader} will be serialized directly a query string.
 		<li>
-			{@link oaj.http.NameValuePairSupplier} - Serialized as individual query parameters.
+			{@link oaj.http.part.PartList} - Serialized as individual query parameters.
 		<li>
 			<c>Map</c> - Converted to key-value pairs.
 				<br>Values serialized using the registered {@link oaj.httppart.HttpPartSerializer} ({@link oaj.oapi.OpenApiSerializer} by default).
diff --git a/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/06.jrc.Header.html b/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/06.jrc.Header.html
index 1e2af0e4d..b163e78f9 100644
--- a/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/06.jrc.Header.html
+++ b/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/06.jrc.Header.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{title:'@Header', updated:'8.2.0', flags:'todo'}
+{title:'@Header', updated:'8.2.0', updated:'9.0.0'}
 
 <div class='topic'>
 	<p>
@@ -23,7 +23,7 @@
 	<ul class='javatree'>
 		<li class='ja'>{@link oaj.http.annotation.Header}
 		<ul>
-			<li class='jf'>{@link oaj.http.annotation.Header#name() name}, {@del oaj.http.annotation.Header#n() n} - Header name.
+			<li class='jf'>{@link oaj.http.annotation.Header#name() name} - Header name.
 			<li class='jf'>{@link oaj.http.annotation.Header#serializer() serializer} - Override the part serializer.
 		</ul>
 	</ul>
@@ -39,10 +39,10 @@
 		|		String myProxyMethod1(<ja>@Header</ja>(<js>"Foo"</js>)</ja> String <jv>foo</jv>,
 		|			<ja>@Header</ja>(<js>"Bar"</js>)</ja> MyPojo <jv>pojo</jv>);
 		|
-		|		<jc>// Multiple values pulled from a HeaderSupplier object.</jc>
+		|		<jc>// Multiple values pulled from a HeaderList object.</jc>
 		|		<jc>// Same as @Header("*").</jc>
 		|		<ja>@RemoteGet</ja>(<js>"/mymethod2"</js>)
-		|		String myProxyMethod2(<ja>@Header</ja> HeaderSupplier <jv>headerSupplier</jv>);
+		|		String myProxyMethod2(<ja>@Header</ja> HeaderList <jv>headerList</jv>);
 		|
 		|		<jc>// Multiple values pulled from a Map.</jc>
 		|		<jc>// Same as @Header("*").</jc>
@@ -70,7 +70,7 @@
 	</p>
 	<ul class='spaced-list'>
 		<li>
-			{@link oaj.http.HeaderSupplier} - Serialized as individual headers.
+			{@link oaj.http.HeaderList} - Serialized as individual headers.
 		<li>
 			<c>Map</c> - Converted to key-value pairs.
 				<br>Values serialized using the registered {@link oaj.httppart.HttpPartSerializer} ({@link oaj.oapi.OpenApiSerializer} by default).
diff --git a/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/07.jrc.Path.html b/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/07.jrc.Path.html
index 6f5b547e8..85c7454db 100644
--- a/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/07.jrc.Path.html
+++ b/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/07.jrc.Path.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{title:'@Path', updated:'8.2.0', flags:'todo'}
+{title:'@Path', updated:'8.2.0', updated:'9.0.0'}
 
 <div class='topic'>
 	<p>
@@ -23,7 +23,7 @@
 	<ul class='javatree'>
 		<li class='ja'>{@link oaj.http.annotation.Path}
 		<ul>
-			<li class='jf'>{@link oaj.http.annotation.Path#name() name}, {@del oaj.http.annotation.Path#n() n} - Path variable name.
+			<li class='jf'>{@link oaj.http.annotation.Path#name() name} - Path variable name.
 			<li class='jf'>{@link oaj.http.annotation.Path#serializer() serializer} - Override the part serializer.
 		</ul>
 	</ul>
@@ -38,10 +38,10 @@
 		|		<ja>@RemoteGet</ja>(<js>"/mymethod1/{foo}/{bar}"</js>)
 		|		String myProxyMethod1(<ja>@Path</ja>(<js>"foo"</js>)</ja> String <jv>foo</jv>, <ja>@Path</ja>(<js>"bar"</js>)</ja> MyPojo <jv>pojo</jv>);
 		|
-		|		<jc>// Multiple values pulled from a NameValuePairSupplier object.</jc>
+		|		<jc>// Multiple values pulled from a PartList object.</jc>
 		|		<jc>// Same as @Path("*").</jc>
 		|		<ja>@RemoteGet</ja>(<js>"/mymethod2/{foo}/{bar}/{baz}"</js>)
-		|		String myProxyMethod2(<ja>@Path</ja> NameValuePairSupplier <jv>nameValuePairSupplier</jv>);
+		|		String myProxyMethod2(<ja>@Path</ja> PartList <jv>partList</jv>);
 		|
 		|		<jc>// Multiple values pulled from a Map.</jc>
 		|		<jc>// Same as @Path("*").</jc>
@@ -69,7 +69,7 @@
 	</p>
 	<ul class='spaced-list'>
 		<li>
-			{@link oaj.http.NameValuePairSupplier} - Serialized as individual path parameters.
+			{@link oaj.http.part.PartList} - Serialized as individual path parameters.
 		<li>
 			<c>Map</c> - Converted to key-value pairs.
 				<br>Values serialized using the registered {@link oaj.httppart.HttpPartSerializer} ({@link oaj.oapi.OpenApiSerializer} by default).
diff --git a/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/08.jrc.Request.html b/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/08.jrc.Request.html
index 0c35bea33..23b2a324c 100644
--- a/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/08.jrc.Request.html
+++ b/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/08.jrc.Request.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{title:'@Request', flags:'todo'}
+{title:'@Request', updated:'9.0.0'}
 
 <div class='topic'>
 	<p>
@@ -54,14 +54,14 @@
 		|		}
 		|	
 		|		<ja>@Query</ja>
-		|	<jk>public</jk> Map&lt;String,Object&gt; getQueryParams() {
-		|		<jk>return</jk> AMap.<jsm>of</jsm>(<js>"debug"</js>, <jk>true</jk>);
-		|	}
+		|		<jk>public</jk> Map&lt;String,Object&gt; getQueryParams() {
+		|			<jk>return</jk> AMap.<jsm>of</jsm>(<js>"debug"</js>, <jk>true</jk>);
+		|		}
 		|	
-		|	<ja>@Header</ja>(<js>"E-Tag"</js>)
-		|	<jk>public static</jk> UUID <jsm>getUUID</jsm>() {
-		|		<jk>return</jk> UUID.<jsm>generatedUUID</jsm>();
-		|	}
+		|		<ja>@Header</ja>(<js>"E-Tag"</js>)
+		|		<jk>public static</jk> UUID <jsm>getUUID</jsm>() {
+		|			<jk>return</jk> UUID.<jsm>generatedUUID</jsm>();
+		|		}
 		|	}
 	</p>
 	<p class='bjava'>
@@ -80,7 +80,7 @@
 	<p>
 		Any of the following annotations can be used on the methods:
 	</p>
-	<ul class='javatree'>
+	<ul class='javatreec'>
 		<li class='ja'>{@link oaj.http.annotation.Content}
 		<li class='ja'>{@link oaj.http.annotation.Header}
 		<li class='ja'>{@link oaj.http.annotation.FormData}
@@ -103,10 +103,10 @@
 		|		CreatePet getContent();
 		|	
 		|		<ja>@Query</ja>
-		|	Map&lt;String,Object&gt; getQueryParams();
+		|		Map&lt;String,Object&gt; getQueryParams();
 		|	
-		|	<ja>@Header</ja>(<js>"E-Tag"</js>)
-		|	UUID getUUID();
+		|		<ja>@Header</ja>(<js>"E-Tag"</js>)
+		|		UUID getUUID();
 		|	}
 	</p>
 	<p class='bjava'>
@@ -120,14 +120,14 @@
 		|		}
 		|	
 		|		<ja>@Override</ja>
-		|	<jk>public</jk> Map&lt;String,Object&gt; getQueryParams() {
-		|		<jk>return</jk> JsonMap.<jsm>of</jsm>(<js>"debug"</js>, <jk>true</jk>);
-		|	}
+		|		<jk>public</jk> Map&lt;String,Object&gt; getQueryParams() {
+		|			<jk>return</jk> JsonMap.<jsm>of</jsm>(<js>"debug"</js>, <jk>true</jk>);
+		|		}
 		|	
 		|		<ja>@Override</ja>
-		|	<jk>public</jk> UUID getUUID() {
-		|		<jk>return</jk> UUID.<jsm>generateUUID</jsm>();
-		|	}
+		|		<jk>public</jk> UUID getUUID() {
+		|			<jk>return</jk> UUID.<jsm>generateUUID</jsm>();
+		|		}
 		|	}
 	</p>
 </div>
\ No newline at end of file
diff --git a/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/09.jrc.Response.html b/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/09.jrc.Response.html
index 6618d0132..e7aaa1eb3 100644
--- a/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/09.jrc.Response.html
+++ b/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/09.jrc.Response.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{title:'@Response', flags:'todo'}
+{title:'@Response', updated:'9.0.0'}
 
 <div class='topic'>
 	<p>
diff --git a/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/10.jrc.DualPurposeInterfaces.html b/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/10.jrc.DualPurposeInterfaces.html
index 769fc04d7..728e62522 100644
--- a/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/10.jrc.DualPurposeInterfaces.html
+++ b/juneau-doc/docs/Topics/10.juneau-rest-client/09.jrc.Proxies/10.jrc.DualPurposeInterfaces.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{title:'Dual-purpose (end-to-end) interfaces', created:'8.0.0', flags:'todo'}
+{title:'Dual-purpose (end-to-end) interfaces', created:'8.0.0'}
 
 <div class='topic'>
 	<p>
diff --git a/juneau-doc/docs/Topics/10.juneau-rest-client/10.jrc.LoggingAndDebugging.html b/juneau-doc/docs/Topics/10.juneau-rest-client/10.jrc.LoggingAndDebugging.html
index 22e237e30..73ebe0c2a 100644
--- a/juneau-doc/docs/Topics/10.juneau-rest-client/10.jrc.LoggingAndDebugging.html
+++ b/juneau-doc/docs/Topics/10.juneau-rest-client/10.jrc.LoggingAndDebugging.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{title:'Logging and Debugging', created:'8.2.0', flags:'todo'}
+{title:'Logging and Debugging', created:'8.2.0', updated:'9.0.0'}
 
 <div class='topic'>
 	<p>
@@ -93,8 +93,6 @@
 	</p>
 	
 	<ul>
-		<li>{@del oaj.Context#CONTEXT_debug} is enabled.
-		<li>{@link oajrc.RestClient#RESTCLIENT_leakDetection} is enabled.
 		<li>{@link oajrc.RestClient.Builder#logToConsole()} is called.
 	</ul>
 </div>
\ No newline at end of file
diff --git a/juneau-doc/docs/Topics/10.juneau-rest-client/11.jrc.CustomizingHttpClient.html b/juneau-doc/docs/Topics/10.juneau-rest-client/11.jrc.CustomizingHttpClient.html
index 761b5f741..8bc61add5 100644
--- a/juneau-doc/docs/Topics/10.juneau-rest-client/11.jrc.CustomizingHttpClient.html
+++ b/juneau-doc/docs/Topics/10.juneau-rest-client/11.jrc.CustomizingHttpClient.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{title:'Customizing HttpClient', created:'8.2.0', flags:'todo'}
+{title:'Customizing HttpClient', created:'8.2.0', updated:'9.0.0'}
 
 <div class='topic'>
 	<p>
@@ -46,6 +46,6 @@
 	</p>
 	
 	<p>
-		Refer to the {@del org.apache.http.client.impl.HttpClientBuilder HttpClientBuilder} docs for more information.
+		Refer to the {@code org.apache.http.client.impl.HttpClientBuilder} docs for more information.
 	</p>
 </div>
\ No newline at end of file
diff --git a/juneau-doc/docs/Topics/10.juneau-rest-client/12.jrc.ExtendingRestClient.html b/juneau-doc/docs/Topics/10.juneau-rest-client/12.jrc.ExtendingRestClient.html
index 7f7d389ae..f58b9223f 100644
--- a/juneau-doc/docs/Topics/10.juneau-rest-client/12.jrc.ExtendingRestClient.html
+++ b/juneau-doc/docs/Topics/10.juneau-rest-client/12.jrc.ExtendingRestClient.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{title:'Extending RestClient', created:'8.2.0', flags:'todo'}
+{title:'Extending RestClient', created:'8.2.0'}
 
 <div class='topic'>
 	<p>
diff --git a/juneau-doc/docs/Topics/10.juneau-rest-client/13.jrc.Authentication.html b/juneau-doc/docs/Topics/10.juneau-rest-client/13.jrc.Authentication.html
index ad9746a6b..ef784c379 100644
--- a/juneau-doc/docs/Topics/10.juneau-rest-client/13.jrc.Authentication.html
+++ b/juneau-doc/docs/Topics/10.juneau-rest-client/13.jrc.Authentication.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{title:'Authentication', updated:'8.2.0', flags:'todo'}
+{title:'Authentication', updated:'8.2.0'}
 
 <div class='topic'>
 	<p>
diff --git a/juneau-doc/docs/Topics/10.juneau-rest-client/13.jrc.Authentication/01.jrc.AuthenticationBASIC.html b/juneau-doc/docs/Topics/10.juneau-rest-client/13.jrc.Authentication/01.jrc.AuthenticationBASIC.html
index 3d6829610..7c25d81d7 100644
--- a/juneau-doc/docs/Topics/10.juneau-rest-client/13.jrc.Authentication/01.jrc.AuthenticationBASIC.html
+++ b/juneau-doc/docs/Topics/10.juneau-rest-client/13.jrc.Authentication/01.jrc.AuthenticationBASIC.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{title:'BASIC Authentication', flags:'todo'}
+{title:'BASIC Authentication'}
 
 <div class='topic'>
 	<p>
diff --git a/juneau-doc/docs/Topics/10.juneau-rest-client/13.jrc.Authentication/02.jrc.AuthenticationForm.html b/juneau-doc/docs/Topics/10.juneau-rest-client/13.jrc.Authentication/02.jrc.AuthenticationForm.html
index efbefffd0..0720c9038 100644
--- a/juneau-doc/docs/Topics/10.juneau-rest-client/13.jrc.Authentication/02.jrc.AuthenticationForm.html
+++ b/juneau-doc/docs/Topics/10.juneau-rest-client/13.jrc.Authentication/02.jrc.AuthenticationForm.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{title:'FORM-based Authentication', flags:'todo'}
+{title:'FORM-based Authentication'}
 
 <div class='topic'>
 	<p>
diff --git a/juneau-doc/docs/Topics/10.juneau-rest-client/13.jrc.Authentication/03.jrc.AuthenticationOIDC.html b/juneau-doc/docs/Topics/10.juneau-rest-client/13.jrc.Authentication/03.jrc.AuthenticationOIDC.html
index 5679a1574..1cb67bce3 100644
--- a/juneau-doc/docs/Topics/10.juneau-rest-client/13.jrc.Authentication/03.jrc.AuthenticationOIDC.html
+++ b/juneau-doc/docs/Topics/10.juneau-rest-client/13.jrc.Authentication/03.jrc.AuthenticationOIDC.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{title:'OIDC Authentication', flags:'todo'}
+{title:'OIDC Authentication'}
 
 <div class='topic'>
 	<p>
diff --git a/juneau-doc/docs/Topics/11.juneau-rest-mock.html b/juneau-doc/docs/Topics/11.juneau-rest-mock.html
index 0d04099b1..a52aaf6ba 100644
--- a/juneau-doc/docs/Topics/11.juneau-rest-mock.html
+++ b/juneau-doc/docs/Topics/11.juneau-rest-mock.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{title:'juneau-rest-mock', created:'8.1.0', updated:'8.2.0', flags:'todo'}
+{title:'juneau-rest-mock', created:'8.1.0', updated:'8.2.0'}
 
 <div class='topic'>
 	<h5 class='figure'>Maven Dependency</h5>
diff --git a/juneau-doc/docs/Topics/11.juneau-rest-mock/01.jrm.MockRestClient.html b/juneau-doc/docs/Topics/11.juneau-rest-mock/01.jrm.MockRestClient.html
index 8a0752d70..ad0129628 100644
--- a/juneau-doc/docs/Topics/11.juneau-rest-mock/01.jrm.MockRestClient.html
+++ b/juneau-doc/docs/Topics/11.juneau-rest-mock/01.jrm.MockRestClient.html
@@ -13,15 +13,15 @@
  ***************************************************************************************************************************/
  -->
 
-{title:'MockRestClient', created:'8.2.0', flags:'todo'}
+{title:'MockRestClient', created:'8.2.0', updated:'9.0.0'}
 
 <div class='topic'>
 	<p>
-		The {@del oajr.mock2.MockRestClient} class is used for performing serverless unit testing of {@link oajr.annotation.Rest @Rest}-annotated
+		The {@link oajr.mock.MockRestClient} class is used for performing serverless unit testing of {@link oajr.annotation.Rest @Rest}-annotated
 		and {@link oaj.http.remote.Remote @Remote}-annotated classes.
 	</p>
 	<p>
-		The {@del oajr.mock2.MockRestClient} itself extends from {@link oajr.client.RestClient} providing it with the rich
+		The {@link oajr.mock.MockRestClient} itself extends from {@link oajr.client.RestClient} providing it with the rich
 		feature set of that API.
 		The following shows a simple example of invoking a PUT method on a simple REST interface and asserting
 		the correct status code and response body: 
@@ -93,8 +93,8 @@
 		|	}
 	</p>
 	<p>
-		The concept of the design is simple.  The {@del oajr.mock2.MockRestClient} class is used to create instances of {@del oajr.mock2.MockServletRequest}
-		and {@del oajr.mock2.MockServletResponse} which are passed directly to the call handler on the resource class {@del oajr.RestCallHandler#execute(HttpServletRequest,HttpServletResponse)}.
+		The concept of the design is simple.  The {@link oajr.mock.MockRestClient} class is used to create instances of {@link oajr.mock.MockServletRequest}
+		and {@link oajr.mock.MockServletResponse} which are passed directly to the call handler on the resource class {@link oajr.RestOpInvoker#invoke(RestOpSession)}.
 		In effect, you're fully testing your REST API as if it were running in a live servlet container, yet not
 		actually having to run in a servlet container.	
 		All aspects of the client and server side code are tested, yet no servlet container is required.  The actual
@@ -146,7 +146,7 @@
 	
 	<hr>
 	<p>
-		The {@del oajr.mock2.MockRestRequest} object has convenience methods provided to allow you to set properties
+		The {@link oajr.mock.MockRestRequest} object has convenience methods provided to allow you to set properties
 		directly on the underlying {@link javax.servlet.HttpServletRequest} object.  The following example shows how
 		this can be used to directly set roles on the request object to perform security testing.
 	</p>
@@ -171,7 +171,7 @@
 	</p>
 	<hr>
 	<p>
-		The {@del oajr.mock2.MockRestClient} class has a debug mode that will cause your HTTP requests and responses to
+		The {@link oajr.mock.MockRestClient} class has a debug mode that will cause your HTTP requests and responses to
 		be sent to the console:
 	</p>
 	<p class='bjava'>
@@ -183,7 +183,7 @@
 	</p>
 	<hr>
 	<p>
-		The {@del oajr.mock2.MockRestClient} class can also be used for testing of {@link oaj.http.remote.Remote}-annotated
+		The {@link oajr.mock.MockRestClient} class can also be used for testing of {@link oaj.http.remote.Remote}-annotated
 		interfaces against {@link oajr.annotation.Rest @Rest}-annotated resources.
 	</p>
 	<h5 class='figure'>Example:</h5>
diff --git a/juneau-doc/docs/Topics/15.my-springboot-microservice.html b/juneau-doc/docs/Topics/15.my-springboot-microservice.html
index f80960027..ade6da303 100644
--- a/juneau-doc/docs/Topics/15.my-springboot-microservice.html
+++ b/juneau-doc/docs/Topics/15.my-springboot-microservice.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{title:'my-springboot-microservice', created:'8.0.0', flags:'todo'}
+{title:'my-springboot-microservice', created:'8.0.0'}
 
 <div class='topic'>
 	<h5 class='figure'>Starter Project Zip</h5>
diff --git a/juneau-doc/docs/Topics/15.my-springboot-microservice/01.msm.Installing.html b/juneau-doc/docs/Topics/15.my-springboot-microservice/01.msm.Installing.html
index c70745bdd..91947cc51 100644
--- a/juneau-doc/docs/Topics/15.my-springboot-microservice/01.msm.Installing.html
+++ b/juneau-doc/docs/Topics/15.my-springboot-microservice/01.msm.Installing.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{title:'Installing in Eclipse', created:'8.0.0', flags:'todo'}
+{title:'Installing in Eclipse', created:'8.0.0'}
 
 <div class='topic'>
 	<p>
diff --git a/juneau-doc/docs/Topics/15.my-springboot-microservice/02.msm.Running.html b/juneau-doc/docs/Topics/15.my-springboot-microservice/02.msm.Running.html
index 2abb4e08d..dcf5f9c6f 100644
--- a/juneau-doc/docs/Topics/15.my-springboot-microservice/02.msm.Running.html
+++ b/juneau-doc/docs/Topics/15.my-springboot-microservice/02.msm.Running.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{title:'Running in Eclipse', created:'8.0.0', flags:'todo'}
+{title:'Running in Eclipse', created:'8.0.0'}
 
 <div class='topic'>
 	<p>
diff --git a/juneau-doc/docs/Topics/15.my-springboot-microservice/03.msm.Building.html b/juneau-doc/docs/Topics/15.my-springboot-microservice/03.msm.Building.html
index 628233ee6..383df3561 100644
--- a/juneau-doc/docs/Topics/15.my-springboot-microservice/03.msm.Building.html
+++ b/juneau-doc/docs/Topics/15.my-springboot-microservice/03.msm.Building.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{title:'Building and Running from Command-Line', created:'8.0.0', flags:'todo'}
+{title:'Building and Running from Command-Line', created:'8.0.0'}
 
 <div class='topic'>
 	<p>
diff --git a/juneau-doc/docs/Topics/16.juneau-examples-core.html b/juneau-doc/docs/Topics/16.juneau-examples-core.html
deleted file mode 100644
index e8223b179..000000000
--- a/juneau-doc/docs/Topics/16.juneau-examples-core.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!--
-/***************************************************************************************************************************
- * 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.
- ***************************************************************************************************************************/
- -->
-
-{title:'juneau-examples-core', updated:'8.0.0'}
-
-<div class='topic'>
-	<h5 class='figure'>Archive File</h5>
-	<p class='bcode w500'>
-		|	juneau-examples-core-{@property juneauVersion}.zip 
-	</p>	
-	
-	<p>
-		The <c>juneau-examples-core</c> project contains various code examples for using the core APIs. 
-	</p>
-</div>
\ No newline at end of file
diff --git a/juneau-doc/docs/Topics/17.juneau-examples-rest.html b/juneau-doc/docs/Topics/17.juneau-examples-rest.html
deleted file mode 100644
index 84604336b..000000000
--- a/juneau-doc/docs/Topics/17.juneau-examples-rest.html
+++ /dev/null
@@ -1,51 +0,0 @@
-<!--
-/***************************************************************************************************************************
- * 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.
- ***************************************************************************************************************************/
- -->
-
-{title:'juneau-examples-rest', updated:'8.0.0', flags:'todo'}
-
-<div class='topic'>
-	<h5 class='figure'>Maven Dependency</h5>
-	<p class='bxml w500'>
-		|	<xt>&lt;dependency&gt;</xt>
-		|		<xt>&lt;groupId&gt;</xt>org.apache.juneau<xt>&lt;/groupId&gt;</xt>
-		|		<xt>&lt;artifactId&gt;</xt>juneau-examples-rest<xt>&lt;/artifactId&gt;</xt>
-		|		<xt>&lt;version&gt;</xt>{@property juneauVersion}<xt>&lt;/version&gt;</xt>
-		|	<xt>&lt;/dependency&gt;</xt>
-	</p>	
-	
-	<h5 class='figure'>Java Library</h5>
-	<p class='bcode w500'>
-		|	juneau-examples-rest-{@property juneauVersion}.jar 
-	</p>	
-	
-	<h5 class='figure'>OSGi Module</h5>
-	<p class='bcode w500'>
-		|	org.apache.juneau.examples.rest_{@property juneauVersion}.jar 
-	</p>	
-	
-	<p>
-		The <c>juneau-examples-rest</c> project includes various examples of REST resources written
-		using Juneau.
-	</p>
-	<ul class='notes'>
-		<li class='note'>
-			These examples can be deployed as buildable Eclipse projects using Jetty or Spring Boot using instructions
-			in the following sections:
-	</ul>
-	<ul class='seealso'>
-		<li>{@doc juneau-examples-rest-jetty}
-		<li>{@doc juneau-examples-rest-springboot}
-	</ul>
-</div>
\ No newline at end of file
diff --git a/juneau-doc/docs/Topics/18.juneau-examples-rest-jetty.html b/juneau-doc/docs/Topics/18.juneau-examples-rest-jetty.html
deleted file mode 100644
index 8e5acd62a..000000000
--- a/juneau-doc/docs/Topics/18.juneau-examples-rest-jetty.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!--
-/***************************************************************************************************************************
- * 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.
- ***************************************************************************************************************************/
- -->
-
-{title:'juneau-examples-rest-jetty', created:'8.0.0', deprecated:'8.1.2'}
-
-<div class='topic'>
-	<div class='warn'>
-		The Juneau Microservice libraries are likely to be removed in Juneau 9.0 due to the popularity of the Spring Boot
-		framework for creating microservices and the ability for Juneau to be used within Spring Boot.
-	</div>
-	
-	<h5 class='figure'>Starter Project Zip</h5>
-	<p class='bcode w500'>
-		|	juneau-examples-rest-jetty-{@property juneauVersion}.zip 
-	</p>	
-	
-	<p>
-		The <c>juneau-examples-rest-jetty</c> project includes everything you need create a Samples REST 
-		microservice in an Eclipse workspace and build it as an executable jar.
-	</p>
-</div>
\ No newline at end of file
diff --git a/juneau-doc/src/main/javadoc/overview.html b/juneau-doc/src/main/javadoc/overview.html
index d7b7cfa68..cbb12975d 100644
--- a/juneau-doc/src/main/javadoc/overview.html
+++ b/juneau-doc/src/main/javadoc/overview.html
@@ -437,38 +437,38 @@
 	<ol>
 		<li><p><a class='doclink' href='#juneau-rest-client.jrc.PojoMarshalling'>POJO Marshalling</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></p>
 		<li><p><a class='doclink' href='#juneau-rest-client.jrc.RequestParts'>Request Parts</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></p>
-		<li><p><a class='doclink' href='#juneau-rest-client.jrc.RequestContent'>Request Content</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></p>
-		<li><p><a class='doclink' href='#juneau-rest-client.jrc.ResponseStatus'>Response Status</a><span class='update'>created: 8.1.0, <b><red>todo</red></b></span></p>
-		<li><p><a class='doclink' href='#juneau-rest-client.jrc.ResponseHeaders'>Response Headers</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></p>
-		<li><p><a class='doclink' href='#juneau-rest-client.jrc.ResponseContent'>Response Content</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></p>
-		<li><p><a class='doclink' href='#juneau-rest-client.jrc.CustomCallHandlers'>Custom Call Handlers</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></p>
-		<li><p><a class='doclink' href='#juneau-rest-client.jrc.Interceptors'>Interceptors</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></p>
-		<li><p><a class='doclink' href='#juneau-rest-client.jrc.Proxies'>REST Proxies</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></p>
+		<li><p><a class='doclink' href='#juneau-rest-client.jrc.RequestContent'>Request Content</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></p>
+		<li><p><a class='doclink' href='#juneau-rest-client.jrc.ResponseStatus'>Response Status</a><span class='update'>created: 8.1.0, updated: <b>9.0.0</b></span></p>
+		<li><p><a class='doclink' href='#juneau-rest-client.jrc.ResponseHeaders'>Response Headers</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></p>
+		<li><p><a class='doclink' href='#juneau-rest-client.jrc.ResponseContent'>Response Content</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></p>
+		<li><p><a class='doclink' href='#juneau-rest-client.jrc.CustomCallHandlers'>Custom Call Handlers</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></p>
+		<li><p><a class='doclink' href='#juneau-rest-client.jrc.Interceptors'>Interceptors</a><span class='update'>created: 8.2.0</span></p>
+		<li><p><a class='doclink' href='#juneau-rest-client.jrc.Proxies'>REST Proxies</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></p>
 		<ol>
-			<li><p><a class='doclink' href='#juneau-rest-client.jrc.Proxies.jrc.Remote'>@Remote</a><span class='update'>updated: 8.1.2,8.2.0, <b><red>todo</red></b></span></p>
-			<li><p><a class='doclink' href='#juneau-rest-client.jrc.Proxies.jrc.RemoteMethod'>@RemoteOp</a><span class='update'>updated: 8.2.0, <b><red>todo</red></b></span></p>
-			<li><p><a class='doclink' href='#juneau-rest-client.jrc.Proxies.jrc.Content'>@Content</a><span class='update'>updated: 8.2.0, <b><red>todo</red></b></span></p>
-			<li><p><a class='doclink' href='#juneau-rest-client.jrc.Proxies.jrc.FormData'>@FormData</a><span class='update'>updated: 8.2.0, <b><red>todo</red></b></span></p>
-			<li><p><a class='doclink' href='#juneau-rest-client.jrc.Proxies.jrc.Query'>@Query</a><span class='update'>updated: 8.2.0, <b><red>todo</red></b></span></p>
-			<li><p><a class='doclink' href='#juneau-rest-client.jrc.Proxies.jrc.Header'>@Header</a><span class='update'>updated: 8.2.0, <b><red>todo</red></b></span></p>
-			<li><p><a class='doclink' href='#juneau-rest-client.jrc.Proxies.jrc.Path'>@Path</a><span class='update'>updated: 8.2.0, <b><red>todo</red></b></span></p>
-			<li><p><a class='doclink' href='#juneau-rest-client.jrc.Proxies.jrc.Request'>@Request</a><span class='update'><b><red>todo</red></b></span></p>
-			<li><p><a class='doclink' href='#juneau-rest-client.jrc.Proxies.jrc.Response'>@Response</a><span class='update'><b><red>todo</red></b></span></p>
-			<li><p><a class='doclink' href='#juneau-rest-client.jrc.Proxies.jrc.DualPurposeInterfaces'>Dual-purpose (end-to-end) interfaces</a><span class='update'>created: 8.0.0, <b><red>todo</red></b></span></p>
+			<li><p><a class='doclink' href='#juneau-rest-client.jrc.Proxies.jrc.Remote'>@Remote</a><span class='update'>updated: <b>9.0.0</b></span></p>
+			<li><p><a class='doclink' href='#juneau-rest-client.jrc.Proxies.jrc.RemoteMethod'>@RemoteOp</a><span class='update'>updated: <b>9.0.0</b></span></p>
+			<li><p><a class='doclink' href='#juneau-rest-client.jrc.Proxies.jrc.Content'>@Content</a><span class='update'>updated: <b>9.0.0</b></span></p>
+			<li><p><a class='doclink' href='#juneau-rest-client.jrc.Proxies.jrc.FormData'>@FormData</a><span class='update'>updated: <b>9.0.0</b></span></p>
+			<li><p><a class='doclink' href='#juneau-rest-client.jrc.Proxies.jrc.Query'>@Query</a><span class='update'>updated: <b>9.0.0</b></span></p>
+			<li><p><a class='doclink' href='#juneau-rest-client.jrc.Proxies.jrc.Header'>@Header</a><span class='update'>updated: <b>9.0.0</b></span></p>
+			<li><p><a class='doclink' href='#juneau-rest-client.jrc.Proxies.jrc.Path'>@Path</a><span class='update'>updated: <b>9.0.0</b></span></p>
+			<li><p><a class='doclink' href='#juneau-rest-client.jrc.Proxies.jrc.Request'>@Request</a><span class='update'>updated: <b>9.0.0</b></span></p>
+			<li><p><a class='doclink' href='#juneau-rest-client.jrc.Proxies.jrc.Response'>@Response</a><span class='update'>updated: <b>9.0.0</b></span></p>
+			<li><p><a class='doclink' href='#juneau-rest-client.jrc.Proxies.jrc.DualPurposeInterfaces'>Dual-purpose (end-to-end) interfaces</a><span class='update'>created: 8.0.0</span></p>
 		</ol>
-		<li><p><a class='doclink' href='#juneau-rest-client.jrc.LoggingAndDebugging'>Logging and Debugging</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></p>
-		<li><p><a class='doclink' href='#juneau-rest-client.jrc.CustomizingHttpClient'>Customizing HttpClient</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></p>
-		<li><p><a class='doclink' href='#juneau-rest-client.jrc.ExtendingRestClient'>Extending RestClient</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></p>
-		<li><p><a class='doclink' href='#juneau-rest-client.jrc.Authentication'>Authentication</a><span class='update'>updated: 8.2.0, <b><red>todo</red></b></span></p>
+		<li><p><a class='doclink' href='#juneau-rest-client.jrc.LoggingAndDebugging'>Logging and Debugging</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></p>
+		<li><p><a class='doclink' href='#juneau-rest-client.jrc.CustomizingHttpClient'>Customizing HttpClient</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></p>
+		<li><p><a class='doclink' href='#juneau-rest-client.jrc.ExtendingRestClient'>Extending RestClient</a><span class='update'>created: 8.2.0</span></p>
+		<li><p><a class='doclink' href='#juneau-rest-client.jrc.Authentication'>Authentication</a><span class='update'>updated: 8.2.0</span></p>
 		<ol>
-			<li><p><a class='doclink' href='#juneau-rest-client.jrc.Authentication.jrc.AuthenticationBASIC'>BASIC Authentication</a><span class='update'><b><red>todo</red></b></span></p>
-			<li><p><a class='doclink' href='#juneau-rest-client.jrc.Authentication.jrc.AuthenticationForm'>FORM-based Authentication</a><span class='update'><b><red>todo</red></b></span></p>
-			<li><p><a class='doclink' href='#juneau-rest-client.jrc.Authentication.jrc.AuthenticationOIDC'>OIDC Authentication</a><span class='update'><b><red>todo</red></b></span></p>
+			<li><p><a class='doclink' href='#juneau-rest-client.jrc.Authentication.jrc.AuthenticationBASIC'>BASIC Authentication</a></p>
+			<li><p><a class='doclink' href='#juneau-rest-client.jrc.Authentication.jrc.AuthenticationForm'>FORM-based Authentication</a></p>
+			<li><p><a class='doclink' href='#juneau-rest-client.jrc.Authentication.jrc.AuthenticationOIDC'>OIDC Authentication</a></p>
 		</ol>
 	</ol>
-	<li><p class='toc2'><a class='doclink' href='#juneau-rest-mock'>juneau-rest-mock</a><span class='update'>created: 8.1.0, updated: 8.2.0, <b><red>todo</red></b></span></p>
+	<li><p class='toc2'><a class='doclink' href='#juneau-rest-mock'>juneau-rest-mock</a><span class='update'>created: 8.1.0, updated: 8.2.0</span></p>
 	<ol>
-		<li><p><a class='doclink' href='#juneau-rest-mock.jrm.MockRestClient'>MockRestClient</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></p>
+		<li><p><a class='doclink' href='#juneau-rest-mock.jrm.MockRestClient'>MockRestClient</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></p>
 	</ol>
 	<li><p class='toc2'><a class='doclink' href='#juneau-microservice-core'>juneau-microservice-core</a><span class='update'>created: 8.1.0, deprecated: 8.1.2</span></p>
 	<ol>
@@ -499,15 +499,12 @@
 		<li><p><a class='doclink' href='#my-jetty-microservice.mjm.Running'>Running in Eclipse</a><span class='update'>created: 8.0.0, deprecated: 8.1.2</span></p>
 		<li><p><a class='doclink' href='#my-jetty-microservice.mjm.Building'>Building and Running from Command-Line</a><span class='update'>created: 8.0.0, deprecated: 8.1.2</span></p>
 	</ol>
-	<li><p class='toc2'><a class='doclink' href='#my-springboot-microservice'>my-springboot-microservice</a><span class='update'>created: 8.0.0, <b><red>todo</red></b></span></p>
+	<li><p class='toc2'><a class='doclink' href='#my-springboot-microservice'>my-springboot-microservice</a><span class='update'>created: 8.0.0</span></p>
 	<ol>
-		<li><p><a class='doclink' href='#my-springboot-microservice.msm.Installing'>Installing in Eclipse</a><span class='update'>created: 8.0.0, <b><red>todo</red></b></span></p>
-		<li><p><a class='doclink' href='#my-springboot-microservice.msm.Running'>Running in Eclipse</a><span class='update'>created: 8.0.0, <b><red>todo</red></b></span></p>
-		<li><p><a class='doclink' href='#my-springboot-microservice.msm.Building'>Building and Running from Command-Line</a><span class='update'>created: 8.0.0, <b><red>todo</red></b></span></p>
+		<li><p><a class='doclink' href='#my-springboot-microservice.msm.Installing'>Installing in Eclipse</a><span class='update'>created: 8.0.0</span></p>
+		<li><p><a class='doclink' href='#my-springboot-microservice.msm.Running'>Running in Eclipse</a><span class='update'>created: 8.0.0</span></p>
+		<li><p><a class='doclink' href='#my-springboot-microservice.msm.Building'>Building and Running from Command-Line</a><span class='update'>created: 8.0.0</span></p>
 	</ol>
-	<li><p class='toc2'><a class='doclink' href='#juneau-examples-core'>juneau-examples-core</a><span class='update'>updated: 8.0.0</span></p>
-	<li><p class='toc2'><a class='doclink' href='#juneau-examples-rest'>juneau-examples-rest</a><span class='update'>updated: 8.0.0, <b><red>todo</red></b></span></p>
-	<li><p class='toc2'><a class='doclink' href='#juneau-examples-rest-jetty'>juneau-examples-rest-jetty</a><span class='update'>created: 8.0.0, deprecated: 8.1.2</span></p>
 	<li><p class='toc2'><a class='doclink' href='#juneau-petstore'>juneau-pestore</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></p>
 	<ol>
 		<li><p><a class='doclink' href='#juneau-petstore.jp.Installing'>Installing in Eclipse</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></p>
@@ -6532,7 +6529,7 @@
 	<jk>public</jk> Ok doDelete(...) <jk>throws</jk> Unauthorized {
 		<jk>if</jk> (<jc>/* user not authorized*/</jc>)
 			<jk>throw</jk> <jsm>unauthorized</jsm>().build();
-		<jk>return</jk> <jsm>ok</jsm>().body(<js>"OK"</js>).header(<jsm>contentType</jsm>(<js>"text/plain"</js>)).build();
+		<jk>return</jk> <jsm>ok</jsm>().content(<js>"OK"</js>).header(<jsm>contentType</jsm>(<js>"text/plain"</js>)).build();
 	}
 	</p>
 </div>
@@ -17942,7 +17939,7 @@
 			minLength=1,
 			maxLength=10
 		)
-		Long[][] <jv>body</jv>
+		Long[][] <jv>content</jv>
 	) {...}
 	</p>
 	<p>
@@ -17952,7 +17949,7 @@
 	<p class='bjava'>
 	<jc>// Content is a 2-dimensional array of POJOs convertible from Longs:</jc>
 	<ja>@RestPost</ja>(<js>"/example1"</js>)	
-	<jk>public void</jk> testContent(<ja>@Content</ja>(...) MyPojo1[][] <jv>body</jv>) {...}
+	<jk>public void</jk> testContent(<ja>@Content</ja>(...) MyPojo1[][] <jv>content</jv>) {...}
 	
 	<jk>public class</jk> MyPojo1 {
 		<jk>public</jk> MyPojo1(Long <jv>input</jv>) {...}
@@ -17961,7 +17958,7 @@
 	<p class='bjava'>
 	<jc>// Content is a POJO that takes in a Long array:</jc>
 	<ja>@RestPost</ja>(<js>"/example2"</js>)	
-	<jk>public void</jk> testContent(<ja>@Content</ja>(...) MyPojo2[] <jv>body</jv>) {...}
+	<jk>public void</jk> testContent(<ja>@Content</ja>(...) MyPojo2[] <jv>content</jv>) {...}
 	
 	<jk>public class</jk> MyPojo2 {
 		<jk>public</jk> MyPojo2(Long[] <jv>input</jv>) {...}
@@ -17970,7 +17967,7 @@
 	<p class='bjava'>
 	<jc>// Content is a POJO that takes in the whole 2-dimensional array:</jc>
 	<ja>@RestPost</ja>(<js>"/example3"</js>)	
-	<jk>public void</jk>testContent<ja>@Content</ja>(...) MyPojo3 <jv>body</jv>) {...}
+	<jk>public void</jk>testContent<ja>@Content</ja>(...) MyPojo3 <jv>content</jv>) {...}
 	
 	<jk>public class</jk> MyPojo3 {
 		<jk>public</jk> MyPojo3(Long[][] <jv>input</jv>) {...}
@@ -22864,7 +22861,7 @@
 	RestClient <jv>client</jv> = RestClient.<jsm>create</jsm>().json().rootUri(<js>"http://localhost:10000"</js>).build();
 
 	<jc>// Use relative paths.</jc>
-	String <jv>body</jv> = <jv>client</jv>.get(<js>"/subpath"</js>).run().getContent().asString();
+	String <jv>content</jv> = <jv>client</jv>.get(<js>"/subpath"</js>).run().getContent().asString();
 	</p>
 	
 	<p>
@@ -22914,7 +22911,7 @@
 	
 	<p class='bjava'>
 	<jc>// Consuming the response, so use run().</jc>
-	String <jv>body</jv> = <jv>client</jv>.get(<jsf>URI</jsf>).run().getContent().asString();
+	String <jv>content</jv> = <jv>client</jv>.get(<jsf>URI</jsf>).run().getContent().asString();
 
 	<jc>// Only interested in response status code, so use complete().</jc>
 	<jk>int</jk> <jv>status</jv> = <jv>client</jv>.get(<jsf>URI</jsf>).complete().getStatusCode();
@@ -23129,7 +23126,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.RequestContent' id='juneau-rest-client.jrc.RequestContent'>10.3 - Request Content</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></h3>
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.RequestContent' id='juneau-rest-client.jrc.RequestContent'>10.3 - Request Content</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></h3>
 <div class='topic'><!-- START: 10.3 - juneau-rest-client.jrc.RequestContent -->
 <div class='topic'>
 	<p>
@@ -23157,7 +23154,7 @@
 		<li class='jc'>
 			{@link org.apache.http.HttpEntity} - Bypass Juneau serialization and pass HttpEntity directly to HttpClient.
 		<li class='jc'>
-			{@link org.apache.juneau.http.NameValuePairSupplier} - Converted to a URL-encoded FORM post.
+			{@link org.apache.juneau.http.part.PartList} - Converted to a URL-encoded FORM post.
 		<li class='jc'>
 			{@link java.util.function.Supplier} - A supplier of anything on this list.
 	</ul>
@@ -23170,21 +23167,21 @@
 	<jc>// Post a JSON-serialized bean.</jc>
 	<jv>client</jv>
 		.post(<jsf>URI</jsf>)
-		.body(<jv>bean</jv>)
+		.content(<jv>bean</jv>)
 		.complete()
 		.assertStatus().asCode().is(200);
 	
 	<jc>// Post contents from a reader.</jc>
 	<jv>client</jv>
 		.post(<jsf>URI</jsf>)
-		.body(<jk>new</jk> FileReader(<js>"/tmp/foo.json"</js>))
+		.content(<jk>new</jk> FileReader(<js>"/tmp/foo.json"</js>))
 		.complete()
 		.assertStatus().asCode().is(200);
 	
 	<jc>// Post contents from an Apache HttpEntity object.</jc>
 	<jv>client</jv>
 		.post(<jsf>URI</jsf>)
-		.body(<jk>new</jk> StringEntity(<jv>jsonString</jv>, ContentType.<jsf>APPLICATION_JSON</jsf>))
+		.content(<jk>new</jk> StringEntity(<jv>jsonString</jv>, ContentType.<jsf>APPLICATION_JSON</jsf>))
 		.complete()
 		.assertStatus().asCode().is(200);
 	</p>
@@ -23199,7 +23196,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.ResponseStatus' id='juneau-rest-client.jrc.ResponseStatus'>10.4 - Response Status</a><span class='update'>created: 8.1.0, <b><red>todo</red></b></span></h3>
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.ResponseStatus' id='juneau-rest-client.jrc.ResponseStatus'>10.4 - Response Status</a><span class='update'>created: 8.1.0, updated: <b>9.0.0</b></span></h3>
 <div class='topic'><!-- START: 10.4 - juneau-rest-client.jrc.ResponseStatus -->
 <div class='topic'>
 	<p>
@@ -23249,13 +23246,13 @@
 	<h5 class='figure'>Example:</h5>
 	<p class='bjava'>
 	<jc>// Status assertion using a static value.</jc>
-	String <jv>body1</jv> = <jv>client</jv>.get(<jsf>URI</jsf>)
+	String <jv>content1</jv> = <jv>client</jv>.get(<jsf>URI</jsf>)
 		.run()
 		.assertStatus().asCode().isBetween(200,399)
 		.getContent().asString();
 
 	<jc>// Status assertion using a predicate.</jc>
-	String <jv>body2</jv> = <jv>client</jv>.get(<jsf>URI</jsf>)
+	String <jv>content2</jv> = <jv>client</jv>.get(<jsf>URI</jsf>)
 		.run()
 		.assertStatus().asCode().is(<jv>x</jv> -> <jv>x</jv>&lt;400)
 		.getContent().asString();
@@ -23265,7 +23262,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.ResponseHeaders' id='juneau-rest-client.jrc.ResponseHeaders'>10.5 - Response Headers</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></h3>
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.ResponseHeaders' id='juneau-rest-client.jrc.ResponseHeaders'>10.5 - Response Headers</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></h3>
 <div class='topic'><!-- START: 10.5 - juneau-rest-client.jrc.ResponseHeaders -->
 <div class='topic'>
 	<p>
@@ -23274,11 +23271,11 @@
 	<ul class='javatree'>
 		<li class='jc'>{@link org.apache.juneau.rest.client.RestResponse}
 		<ul>
-			<li class='jm'><c>{@link org.apache.juneau.rest.client.RestResponse#getHeader(String) getHeader(String)} <jk>returns</jk> {@link org.apache.juneau.rest.client.RestResponseHeader}</c>
-			<li class='jm'><c>{@link org.apache.juneau.rest.client.RestResponse#getHeaders(String) getHeaders(String)} <jk>returns</jk> {@link org.apache.juneau.rest.client.RestResponseHeader}[]</c>
-			<li class='jm'><c>{@link org.apache.juneau.rest.client.RestResponse#getFirstHeader(String) getFirstHeader(String)} <jk>returns</jk> {@link org.apache.juneau.rest.client.RestResponseHeader}</c>
-			<li class='jm'><c>{@link org.apache.juneau.rest.client.RestResponse#getLastHeader(String) getLastHeader(String)} <jk>returns</jk> {@link org.apache.juneau.rest.client.RestResponseHeader}</c>
-			<li class='jm'><c>{@link org.apache.juneau.rest.client.RestResponse#getAllHeaders() getAllHeaders()} <jk>returns</jk> {@del org.apache.juneau.client2.RestResponseHeader}[]</c>
+			<li class='jm'><c>{@link org.apache.juneau.rest.client.RestResponse#getHeader(String) getHeader(String)} <jk>returns</jk> {@link org.apache.juneau.rest.client.ResponseHeader}</c>
+			<li class='jm'><c>{@link org.apache.juneau.rest.client.RestResponse#getHeaders(String) getHeaders(String)} <jk>returns</jk> {@link org.apache.juneau.rest.client.ResponseHeader}[]</c>
+			<li class='jm'><c>{@link org.apache.juneau.rest.client.RestResponse#getFirstHeader(String) getFirstHeader(String)} <jk>returns</jk> {@link org.apache.juneau.rest.client.ResponseHeader}</c>
+			<li class='jm'><c>{@link org.apache.juneau.rest.client.RestResponse#getLastHeader(String) getLastHeader(String)} <jk>returns</jk> {@link org.apache.juneau.rest.client.ResponseHeader}</c>
+			<li class='jm'><c>{@link org.apache.juneau.rest.client.RestResponse#getAllHeaders() getAllHeaders()} <jk>returns</jk> {@link org.apache.juneau.rest.client.ResponseHeader}[]</c>
 			<li class='jm'><c>{@link org.apache.juneau.rest.client.RestResponse#getStringHeader(String) getStringHeader(String)} <jk>returns</jk> String</c>
 			<li class='jm'><c>{@link org.apache.juneau.rest.client.RestResponse#containsHeader(String) containsHeader(String)} <jk>returns</jk> <jk>boolean</jk></c>
 		</ul>
@@ -23286,48 +23283,53 @@
 	
 	<p>
 		Unlike {@link org.apache.juneau.rest.client.RestResponse#getFirstHeader(String)} and {@link org.apache.juneau.rest.client.RestResponse#getLastHeader(String)}, the {@link org.apache.juneau.rest.client.RestResponse#getHeader(String)}
-		method returns an empty {@link org.apache.juneau.rest.client.RestResponseHeader} object instead of returning <jk>null</jk>.
+		method returns an empty {@link org.apache.juneau.rest.client.ResponseHeader} object instead of returning <jk>null</jk>.
 		This allows it to be used more easily in fluent calls.
 	</p>
 	
 	<h5 class='figure'>Example:</h5>
 	<p class='bjava'>
+	RestResponse <jv>res</jv> = <jv>client</jv>.get(<jsf>URI</jsf>).complete();
+	ResponseHeader <jv>header</jv> = <jv>res</jv>.getHeader(<js>"Location"</js>);
+
 	<jc>// See if response contains Location header.</jc>
-	<jk>boolean</jk> <jv>hasLocationHeader</jv> = <jv>client</jv>.get(<jsf>URI</jsf>).complete().getHeader(<js>"Location"</js>).exists();
+	<jk>boolean</jk> <jv>hasLocationHeader</jv> = <jv>header</jv>.isPresent();
+
+	<jc>// Get actual value if it exists.</jc>
+	<jk>String</jk> <jv>locationHeader1</jv> = <jv>header</jv>.orElse(<js>"http://localhost"</js>);
+
+	<jc>// Converted to object.</jc>
+	<jk>URI</jk> <jv>locationHeader2</jv> = <jv>header</jv>.as(URI.<jk>class</jk>).orElse(<jk>null</jk>);
 	</p>
 	
 	<p>
-		The {@link org.apache.juneau.rest.client.RestResponseHeader} class extends from the HttpClient {@link org.apache.http.Header} class and provides several convenience
+		The {@link org.apache.juneau.rest.client.ResponseHeader} class extends from the HttpClient {@link org.apache.http.Header} class and provides several convenience
 		methods:
 	</p>
 	
 	<ul class='javatree'>
-		<li class='jc'>{@link org.apache.juneau.rest.client.RestResponseHeader}
+		<li class='jc'>{@link org.apache.juneau.rest.client.ResponseHeader}
 		<ul>
-			<li class='jm'><c>{@link org.apache.juneau.rest.client.RestResponseHeader#exists() exists()} <jk>returns</jk> <jk>boolean</jk></c>
-			<li class='jm'><c>{@link org.apache.juneau.rest.client.RestResponseHeader#asString() asString()} <jk>returns</jk> String</c>
-			<li class='jm'><c>{@link org.apache.juneau.rest.client.RestResponseHeader#asOptionalString() asOptionalString()} <jk>returns</jk> Optional&lt;String&gt;</c>
-			<li class='jm'><c>{@link org.apache.juneau.rest.client.RestResponseHeader#asStringOrElse(String) asStringOrElse(String)} <jk>returns</jk> String</c>
-			<li class='jm'><c>{@link org.apache.juneau.rest.client.RestResponseHeader#as(Type,Type...) as(Type,Type...)} <jk>returns</jk> T</c>
-			<li class='jm'><c>{@link org.apache.juneau.rest.client.RestResponseHeader#as(Class) as(Class&lt;T&gt;)} <jk>returns</jk> T</c>
-			<li class='jm'><c>{@link org.apache.juneau.rest.client.RestResponseHeader#asOptional(Type,Type...) asOptional(Type,Type...)} <jk>returns</jk> Optional&lt;T&gt;</c>
-			<li class='jm'><c>{@link org.apache.juneau.rest.client.RestResponseHeader#asOptional(Class) asOptional(Class&lt;T&gt;)} <jk>returns</jk> Optional&lt;T&gt;</c>
-			<li class='jm'><c>{@link org.apache.juneau.rest.client.RestResponseHeader#asMatcher(Pattern) asMatcher(Pattern)} <jk>returns</jk> {@link java.util.regex.Matcher}</c>
-			<li class='jm'><c>{@link org.apache.juneau.rest.client.RestResponseHeader#asMatcher(String) asMatcher(String)} <jk>returns</jk> {@link java.util.regex.Matcher}</c>
-			<li class='jm'><c>{@link org.apache.juneau.rest.client.RestResponseHeader#asHeader(Class) asHeader(Class&lt;T <jk>extends</jk> BasicHeader&gt; c)} <jk>returns</jk> {@link org.apache.juneau.http.BasicHeader}</c>
-			<li class='jm'><c>{@link org.apache.juneau.rest.client.RestResponseHeader#asStringHeader() asStringHeader()} <jk>returns</jk> {@link org.apache.juneau.http.header.BasicIntegerHeader}</c>
-			<li class='jm'><c>{@link org.apache.juneau.rest.client.RestResponseHeader#asIntegerHeader() asIntegerHeader()} <jk>returns</jk> {@link org.apache.juneau.http.header.BasicStringHeader}</c>
-			<li class='jm'><c>{@link org.apache.juneau.rest.client.RestResponseHeader#asLongHeader() asLongHeader()} <jk>returns</jk> {@link org.apache.juneau.http.header.BasicLongHeader}</c>
-			<li class='jm'><c>{@link org.apache.juneau.rest.client.RestResponseHeader#asDateHeader() asDateHeader()} <jk>returns</jk> {@link org.apache.juneau.http.header.BasicDateHeader}</c>
-			<li class='jm'><c>{@link org.apache.juneau.rest.client.RestResponseHeader#asCsvArrayHeader() asCsvArrayHeader()} <jk>returns</jk> {@link org.apache.juneau.http.header.BasicCsvArrayHeader}</c>
-			<li class='jm'><c>{@link org.apache.juneau.rest.client.RestResponseHeader#asEntityTagArrayHeader() asEntityTagArrayHeader()} <jk>returns</jk> {@link org.apache.juneau.http.header.BasicEntityTagArrayHeader}</c>
-			<li class='jm'><c>{@link org.apache.juneau.rest.client.RestResponseHeader#asStringRangeArrayHeader() asStringRangeArrayHeader()} <jk>returns</jk> {@link org.apache.juneau.http.header.BasicStringRangeArrayHeader}</c>
-			<li class='jm'><c>{@link org.apache.juneau.rest.client.RestResponseHeader#asUriHeader() asUriHeader()} <jk>returns</jk> {@link org.apache.juneau.http.header.BasicUriHeader}</c>
+			<li class='jm'><c>{@link org.apache.juneau.rest.client.ResponseHeader#isPresent() isPresent()} <jk>returns</jk> <jk>boolean</jk></c>
+			<li class='jm'><c>{@link org.apache.juneau.rest.client.ResponseHeader#asString() asString()} <jk>returns</jk> String</c>
+			<li class='jm'><c>{@link org.apache.juneau.rest.client.ResponseHeader#as(Type,Type...) as(Type,Type...)} <jk>returns</jk> T</c>
+			<li class='jm'><c>{@link org.apache.juneau.rest.client.ResponseHeader#as(Class) as(Class&lt;T&gt;)} <jk>returns</jk> T</c>
+			<li class='jm'><c>{@link org.apache.juneau.rest.client.ResponseHeader#asMatcher(Pattern) asMatcher(Pattern)} <jk>returns</jk> {@link java.util.regex.Matcher}</c>
+			<li class='jm'><c>{@link org.apache.juneau.rest.client.ResponseHeader#asMatcher(String) asMatcher(String)} <jk>returns</jk> {@link java.util.regex.Matcher}</c>
+			<li class='jm'><c>{@link org.apache.juneau.rest.client.ResponseHeader#asHeader(Class) asHeader(Class&lt;T <jk>extends</jk> BasicHeader&gt; c)} <jk>returns</jk> {@link org.apache.juneau.http.BasicHeader}</c>
+			<li class='jm'><c>{@link org.apache.juneau.rest.client.ResponseHeader#asStringHeader() asStringHeader()} <jk>returns</jk> {@link org.apache.juneau.http.header.BasicIntegerHeader}</c>
+			<li class='jm'><c>{@link org.apache.juneau.rest.client.ResponseHeader#asIntegerHeader() asIntegerHeader()} <jk>returns</jk> {@link org.apache.juneau.http.header.BasicStringHeader}</c>
+			<li class='jm'><c>{@link org.apache.juneau.rest.client.ResponseHeader#asLongHeader() asLongHeader()} <jk>returns</jk> {@link org.apache.juneau.http.header.BasicLongHeader}</c>
+			<li class='jm'><c>{@link org.apache.juneau.rest.client.ResponseHeader#asDateHeader() asDateHeader()} <jk>returns</jk> {@link org.apache.juneau.http.header.BasicDateHeader}</c>
+			<li class='jm'><c>{@link org.apache.juneau.rest.client.ResponseHeader#asCsvHeader() asCsvHeader()} <jk>returns</jk> {@link org.apache.juneau.http.header.BasicCsvHeader}</c>
+			<li class='jm'><c>{@link org.apache.juneau.rest.client.ResponseHeader#asEntityTagsHeader() asEntityTagsHeader()} <jk>returns</jk> {@link org.apache.juneau.http.header.BasicEntityTagsHeader}</c>
+			<li class='jm'><c>{@link org.apache.juneau.rest.client.ResponseHeader#asStringRangesHeader() asStringRangesHeader()} <jk>returns</jk> {@link org.apache.juneau.http.header.BasicStringRangesHeader}</c>
+			<li class='jm'><c>{@link org.apache.juneau.rest.client.ResponseHeader#asUriHeader() asUriHeader()} <jk>returns</jk> {@link org.apache.juneau.http.header.BasicUriHeader}</c>
 		</ul>
 	</ul>
 	
 	<p>
-		The {@link org.apache.juneau.rest.client.RestResponseHeader#schema(HttpPartSchema)} method allows you to perform parsing of OpenAPI formats for
+		The {@link org.apache.juneau.rest.client.ResponseHeader#schema(HttpPartSchema)} method allows you to perform parsing of OpenAPI formats for
 		header parts.
 	</p>
 		
@@ -23345,12 +23347,12 @@
 	</p>
 	
 	<ul class='javatree'>
-		<li class='jc'>{@link org.apache.juneau.rest.client.RestResponseHeader}
+		<li class='jc'>{@link org.apache.juneau.rest.client.ResponseHeader}
 		<ul>
-			<li class='jm'><c>{@link org.apache.juneau.rest.client.RestResponseHeader#assertString() assertString()} <jk>returns</jk> {@link org.apache.juneau.assertions.FluentStringAssertion}</c>
-			<li class='jm'><c>{@link org.apache.juneau.rest.client.RestResponseHeader#assertInteger() assertInteger()} <jk>returns</jk> {@link org.apache.juneau.assertions.FluentIntegerAssertion}</c>
-			<li class='jm'><c>{@link org.apache.juneau.rest.client.RestResponseHeader#assertLong() assertLong()} <jk>returns</jk> {@link org.apache.juneau.assertions.FluentLongAssertion}</c>
-			<li class='jm'><c>{@link org.apache.juneau.rest.client.RestResponseHeader#assertDate() assertDate()} <jk>returns</jk> {@link org.apache.juneau.assertions.FluentDateAssertion}</c>
+			<li class='jm'><c>{@link org.apache.juneau.rest.client.ResponseHeader#assertString() assertString()} <jk>returns</jk> {@link org.apache.juneau.assertions.FluentStringAssertion}</c>
+			<li class='jm'><c>{@link org.apache.juneau.rest.client.ResponseHeader#assertInteger() assertInteger()} <jk>returns</jk> {@link org.apache.juneau.assertions.FluentIntegerAssertion}</c>
+			<li class='jm'><c>{@link org.apache.juneau.rest.client.ResponseHeader#assertLong() assertLong()} <jk>returns</jk> {@link org.apache.juneau.assertions.FluentLongAssertion}</c>
+			<li class='jm'><c>{@link org.apache.juneau.rest.client.ResponseHeader#assertZonedDateTime() assertZonedDateTime()} <jk>returns</jk> {@link org.apache.juneau.assertions.FluentZonedDateTimeAssertion}</c>
 		</ul>
 	</ul>
 	
@@ -23362,7 +23364,7 @@
 	<h5 class='figure'>Example:</h5>
 	<p class='bjava'>
 	<jc>// Assert the response content type is any sort of JSON.</jc>
-	String <jv>body</jv> = <jv>client</jv>.get(<jsf>URI</jsf>)
+	String <jv>content</jv> = <jv>client</jv>.get(<jsf>URI</jsf>)
 		.run()
 		.getHeader(<js>"Content-Type"</js>).assertString().matchesSimple(<js>"application/json*"</js>)
 		.getContent().asString();
@@ -23372,7 +23374,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.ResponseContent' id='juneau-rest-client.jrc.ResponseContent'>10.6 - Response Content</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></h3>
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.ResponseContent' id='juneau-rest-client.jrc.ResponseContent'>10.6 - Response Content</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></h3>
 <div class='topic'><!-- START: 10.6 - juneau-rest-client.jrc.ResponseContent -->
 <div class='topic'>
 	<p>
@@ -23406,8 +23408,6 @@
 			<li class='jm'><c>{@link org.apache.juneau.rest.client.ResponseContent#asString() asString()} <jk>returns</jk> String</c>
 			<li class='jm'><c>{@link org.apache.juneau.rest.client.ResponseContent#asStringFuture() asStringFuture()} <jk>returns</jk> Future&lt;String&gt;</c>
 			<li class='jm'><c>{@link org.apache.juneau.rest.client.ResponseContent#asAbbreviatedString(int) asAbbreviatedString(int)} <jk>returns</jk> String</c>
-			<li class='jm'><c>{@link org.apache.juneau.rest.client.ResponseContent#asPojoRest(Class) asPojoRest(Class&lt;?&gt;)} <jk>returns</jk> {@link org.apache.juneau.utils.PojoRest}</c>
-			<li class='jm'><c>{@link org.apache.juneau.rest.client.ResponseContent#asPojoRest() asPojoRest()} <jk>returns</jk> {@link org.apache.juneau.utils.PojoRest}</c>
 			<li class='jm'><c>{@link org.apache.juneau.rest.client.ResponseContent#asMatcher(Pattern) asMatcher(Pattern)} <jk>returns</jk> {@link java.util.regex.Matcher}</c>
 			<li class='jm'><c>{@link org.apache.juneau.rest.client.ResponseContent#asMatcher(String) asMatcher(String)} <jk>returns</jk> {@link java.util.regex.Matcher}</c>
 		</ul>
@@ -23478,15 +23478,16 @@
 		<li class='jc'>{@link org.apache.juneau.rest.client.ResponseContent}
 		<ul>
 			<li class='jm'><c>{@link org.apache.juneau.rest.client.ResponseContent#assertString() assertString()} <jk>returns</jk> {@link org.apache.juneau.assertions.FluentStringAssertion}</c>
-			<li class='jm'><c>{@link org.apache.juneau.rest.client.ResponseContent#assertObject(Class) assertObject(Class&lt;?&gt;)} <jk>returns</jk> {@link org.apache.juneau.assertions.FluentObjectAssertion}</c>
 			<li class='jm'><c>{@link org.apache.juneau.rest.client.ResponseContent#assertBytes() assertBytes()} <jk>returns</jk> {@link org.apache.juneau.assertions.FluentByteArrayAssertion}</c>
+			<li class='jm'><c>{@link org.apache.juneau.rest.client.ResponseContent#assertObject(Class) assertObject(Class)} <jk>returns</jk> {@link org.apache.juneau.assertions.FluentObjectAssertion}</c>
+			<li class='jm'><c>{@link org.apache.juneau.rest.client.ResponseContent#assertObject(Type,Type...) assertObject(Type,Type...)} <jk>returns</jk> {@link org.apache.juneau.assertions.FluentObjectAssertion}</c>
 		</ul>
 	</ul>
 	
 	<h5 class='figure'>Example:</h5>
 	<p class='bjava'>
 	<jc>// Assert that the body contains the string "Success".</jc>
-	String <jv>body</jv> = <jv>client</jv>
+	String <jv>content</jv> = <jv>client</jv>
 		.get(<jsf>URI</jsf>)
 		.run()
 		.getContent().assertString().contains(<js>"Success"</js>)
@@ -23511,7 +23512,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.CustomCallHandlers' id='juneau-rest-client.jrc.CustomCallHandlers'>10.7 - Custom Call Handlers</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></h3>
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.CustomCallHandlers' id='juneau-rest-client.jrc.CustomCallHandlers'>10.7 - Custom Call Handlers</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></h3>
 <div class='topic'><!-- START: 10.7 - juneau-rest-client.jrc.CustomCallHandlers -->
 <div class='topic'>
 	<p>
@@ -23522,7 +23523,6 @@
 		<li class='jc'>{@link org.apache.juneau.rest.client.RestClient.Builder}
 		<ul>
 			<li class='jm'>{@link org.apache.juneau.rest.client.RestClient.Builder#callHandler(Class) callHandler(Class&lt;? extends RestCallHandler&gt;)}
-			<li class='jm'>{@link org.apache.juneau.rest.client.RestClient.Builder#callHandler(RestCallHandler) callHandler(RestCallHandler)}
 		</ul>
 		<li class='jic'>{@link org.apache.juneau.rest.client.RestCallHandler}
 		<ul>
@@ -23561,7 +23561,7 @@
 	 
 	<p>
 		Note that there are other ways of accomplishing this such as extending the {@link org.apache.juneau.rest.client.RestClient} class and overriding
-		the {@del org.apache.juneau.rest.client2.RestClient#run(HttpHost,HttpRequest,HttpContext)} method
+		the {@link org.apache.juneau.rest.client.RestClient#run(HttpHost,HttpRequest,HttpContext)} method
 		or by defining your own {@link org.apache.http.protocol.HttpRequestExecutor}.  Using this interface is often simpler though.
 	</p>
 </div>
@@ -23569,7 +23569,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.Interceptors' id='juneau-rest-client.jrc.Interceptors'>10.8 - Interceptors</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></h3>
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.Interceptors' id='juneau-rest-client.jrc.Interceptors'>10.8 - Interceptors</a><span class='update'>created: 8.2.0</span></h3>
 <div class='topic'><!-- START: 10.8 - juneau-rest-client.jrc.Interceptors -->
 <div class='topic'>
 	<p>
@@ -23626,7 +23626,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.Proxies' id='juneau-rest-client.jrc.Proxies'>10.9 - REST Proxies</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></h3>
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.Proxies' id='juneau-rest-client.jrc.Proxies'>10.9 - REST Proxies</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></h3>
 <div class='topic'><!-- START: 10.9 - juneau-rest-client.jrc.Proxies -->
 <div class='topic'>
 	<p>
@@ -23658,7 +23658,7 @@
 			<li class='ja'>{@link org.apache.juneau.http.remote.RemoteOp} - Applied to interface methods.
 		</ul>
 		<li class='jp'>{@link org.apache.juneau.http.annotation}
-		<ul>
+		<ul class='javatreec'>
 			<li class='ja'>{@link org.apache.juneau.http.annotation.Content}
 			<li class='ja'>{@link org.apache.juneau.http.annotation.Header}
 			<li class='ja'>{@link org.apache.juneau.http.annotation.FormData}
@@ -23729,7 +23729,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h5 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.Proxies.jrc.Remote' id='juneau-rest-client.jrc.Proxies.jrc.Remote'>10.9.1 - @Remote</a><span class='update'>updated: 8.1.2,8.2.0, <b><red>todo</red></b></span></h4>
+<h5 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.Proxies.jrc.Remote' id='juneau-rest-client.jrc.Proxies.jrc.Remote'>10.9.1 - @Remote</a><span class='update'>updated: <b>9.0.0</b></span></h4>
 <div class='topic'><!-- START: 10.9.1 - juneau-rest-client.jrc.Proxies.jrc.Remote -->
 <div class='topic'>
 	<p>
@@ -23821,9 +23821,9 @@
 	</p>
 	
 	
-	<h5 class='topic'>@Remote(headers/headerSupplier)</h5>
+	<h5 class='topic'>@Remote(headers/headerList)</h5>
 	<p>
-		The {@link org.apache.juneau.http.remote.Remote#headers @Remote(headers)} and {@del @Remote(headerSupplier)} 
+		The {@link org.apache.juneau.http.remote.Remote#headers @Remote(headers)} and {@link org.apache.juneau.http.remote.Remote#headerList @Remote(headerList)} 
 		annotations are used to add headers on all requests.  
 	</p>
 	
@@ -23835,21 +23835,14 @@
 			<js>"Foo: bar"</js>,
 			<js>"Baz: $S{bazProperty}"</js>
 		},
-		headerSupplier=MyDynamicHeaderSupplier.<jk>class</jk>
+		headerList=MyHeaderList.<jk>class</jk>
 	)
 	<jk>public interface</jk> PetStore {...}
 	</p>
 	<p class='bjava'>
 	<jc>// Our dynamic supplier.</jc>
-	<jk>public class</jk> MyHeaderSupplier <jk>extends</jk> HeaderSupplier {
-	
-		<jc>// Headers can be added here at runtime.</jc>
-		<jk>public static</jk> HeaderSupplier <jsf>DYNAMIC_HEADERS</jsf> = <jk>new</jk> HeaderSupplier();
-	
-		<jk>public</jk> MyHeaderSupplier() {
-			add(<js>"Qux"</js>,<js>"q2x"</js>);  
-			add(<jsf>DYNAMIC_HEADERS</jsf>);
-		}
+	<jk>public class</jk> MyHeaderList <jk>extends</jk> HeaderList {
+		...
 	}
 	</p>
 	
@@ -23895,7 +23888,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h5 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.Proxies.jrc.RemoteMethod' id='juneau-rest-client.jrc.Proxies.jrc.RemoteMethod'>10.9.2 - @RemoteOp</a><span class='update'>updated: 8.2.0, <b><red>todo</red></b></span></h4>
+<h5 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.Proxies.jrc.RemoteMethod' id='juneau-rest-client.jrc.Proxies.jrc.RemoteMethod'>10.9.2 - @RemoteOp</a><span class='update'>updated: <b>9.0.0</b></span></h4>
 <div class='topic'><!-- START: 10.9.2 - juneau-rest-client.jrc.Proxies.jrc.RemoteMethod -->
 <div class='topic'>
 	<p>
@@ -24055,7 +24048,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h5 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.Proxies.jrc.Content' id='juneau-rest-client.jrc.Proxies.jrc.Content'>10.9.3 - @Content</a><span class='update'>updated: 8.2.0, <b><red>todo</red></b></span></h4>
+<h5 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.Proxies.jrc.Content' id='juneau-rest-client.jrc.Proxies.jrc.Content'>10.9.3 - @Content</a><span class='update'>updated: <b>9.0.0</b></span></h4>
 <div class='topic'><!-- START: 10.9.3 - juneau-rest-client.jrc.Proxies.jrc.Content -->
 <div class='topic'>
 	<p>
@@ -24107,7 +24100,7 @@
 			{@link java.io.InputStream} - Raw contents of {@code InputStream} will be serialized to remote resource.
 			<br><c>Content-Type</c> is set to <js>"application/octet-stream"</js>.
 		<li>
-			{@link org.apache.juneau.http.NameValuePairSupplier} - Converted to a URL-encoded FORM post.
+			{@link org.apache.juneau.http.part.PartList} - Converted to a URL-encoded FORM post.
 			<br><c>Content-Type</c> is set to <js>"aplication/x-www-form-urlencoded"</js>.
 		<li>
 			<c>HttpEntity</c> - Bypass Juneau serialization and pass HttpEntity directly to HttpClient.
@@ -24166,7 +24159,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h5 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.Proxies.jrc.FormData' id='juneau-rest-client.jrc.Proxies.jrc.FormData'>10.9.4 - @FormData</a><span class='update'>updated: 8.2.0, <b><red>todo</red></b></span></h4>
+<h5 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.Proxies.jrc.FormData' id='juneau-rest-client.jrc.Proxies.jrc.FormData'>10.9.4 - @FormData</a><span class='update'>updated: <b>9.0.0</b></span></h4>
 <div class='topic'><!-- START: 10.9.4 - juneau-rest-client.jrc.Proxies.jrc.FormData -->
 <div class='topic'>
 	<p>
@@ -24193,10 +24186,10 @@
 			<ja>@FormData</ja>(<js>"bar"</js>)</ja> MyPojo <jv>pojo</jv>
 		);
 
-		<jc>// Multiple values pulled from a NameValuePairSupplier object.</jc>
+		<jc>// Multiple values pulled from a PartList object.</jc>
 		<jc>// Name "*" is inferred.</jc>
 		<ja>@RemotePost</ja>
-		String postNameValuePairs(<ja>@FormData</ja> NameValuePairSupplier <jv>nameValuePairSupplier</jv>);
+		String postPartList(<ja>@FormData</ja> PartList <jv>partList</jv>);
 
 		<jc>// Multiple values pulled from a Map.</jc>
 		<ja>@RemotePost</ja>
@@ -24233,7 +24226,7 @@
 		<li>
 			{@link java.io.InputStream} - Raw contents of {@code InputStream} will be serialized to remote resource.
 		<li>
-			{@link org.apache.juneau.http.NameValuePairSupplier} - Converted to a URL-encoded FORM post.
+			{@link org.apache.juneau.http.part.PartList} - Converted to a URL-encoded FORM post.
 		<li>
 			<c>Map</c> - Converted to key-value pairs.
 				<br>Values serialized using the registered {@link org.apache.juneau.httppart.HttpPartSerializer} ({@link org.apache.juneau.oapi.OpenApiSerializer} by default).
@@ -24255,7 +24248,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h5 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.Proxies.jrc.Query' id='juneau-rest-client.jrc.Proxies.jrc.Query'>10.9.5 - @Query</a><span class='update'>updated: 8.2.0, <b><red>todo</red></b></span></h4>
+<h5 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.Proxies.jrc.Query' id='juneau-rest-client.jrc.Proxies.jrc.Query'>10.9.5 - @Query</a><span class='update'>updated: <b>9.0.0</b></span></h4>
 <div class='topic'><!-- START: 10.9.5 - juneau-rest-client.jrc.Proxies.jrc.Query -->
 <div class='topic'>
 	<p>
@@ -24265,7 +24258,7 @@
 	<ul class='javatree'>
 		<li class='ja'>{@link org.apache.juneau.http.annotation.Query}
 		<ul>
-			<li class='jf'>{@link org.apache.juneau.http.annotation.Query#name() name}, {@del org.apache.juneau.http.annotation.Query#n() n} - Query parameter name.
+			<li class='jf'>{@link org.apache.juneau.http.annotation.Query#name() name} - Query parameter name.
 			<li class='jf'>{@link org.apache.juneau.http.annotation.Query#serializer() serializer}  - Override the part serializer.
 		</ul>
 	</ul>
@@ -24281,10 +24274,10 @@
 			<ja>@Query</ja>(<js>"foo"</js>)</ja> String <jv>foo</jv>,
 			<ja>@Query</ja>(<js>"bar"</js>)</ja> MyPojo <jv>pojo</jv>);
 
-		<jc>// Multiple values pulled from a NameValuePairSupplier object.</jc>
+		<jc>// Multiple values pulled from a PartList object.</jc>
 		<jc>// Same as @Query("*").</jc>
 		<ja>@RemoteGet</ja>
-		String nameValuePairs(<ja>@Query</ja> NameValuePairSupplier <jv>nameValuePairSupplier</jv>);
+		String partList(<ja>@Query</ja> PartList <jv>partList</jv>);
 
 		<jc>// Multiple values pulled from a Map.</jc>
 		<jc>// Same as @Query("*").</jc>
@@ -24324,7 +24317,7 @@
 		<li>
 			{@link java.io.Reader} - Raw contents of {@code Reader} will be serialized directly a query string.
 		<li>
-			{@link org.apache.juneau.http.NameValuePairSupplier} - Serialized as individual query parameters.
+			{@link org.apache.juneau.http.part.PartList} - Serialized as individual query parameters.
 		<li>
 			<c>Map</c> - Converted to key-value pairs.
 				<br>Values serialized using the registered {@link org.apache.juneau.httppart.HttpPartSerializer} ({@link org.apache.juneau.oapi.OpenApiSerializer} by default).
@@ -24347,7 +24340,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h5 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.Proxies.jrc.Header' id='juneau-rest-client.jrc.Proxies.jrc.Header'>10.9.6 - @Header</a><span class='update'>updated: 8.2.0, <b><red>todo</red></b></span></h4>
+<h5 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.Proxies.jrc.Header' id='juneau-rest-client.jrc.Proxies.jrc.Header'>10.9.6 - @Header</a><span class='update'>updated: <b>9.0.0</b></span></h4>
 <div class='topic'><!-- START: 10.9.6 - juneau-rest-client.jrc.Proxies.jrc.Header -->
 <div class='topic'>
 	<p>
@@ -24357,7 +24350,7 @@
 	<ul class='javatree'>
 		<li class='ja'>{@link org.apache.juneau.http.annotation.Header}
 		<ul>
-			<li class='jf'>{@link org.apache.juneau.http.annotation.Header#name() name}, {@del org.apache.juneau.http.annotation.Header#n() n} - Header name.
+			<li class='jf'>{@link org.apache.juneau.http.annotation.Header#name() name} - Header name.
 			<li class='jf'>{@link org.apache.juneau.http.annotation.Header#serializer() serializer} - Override the part serializer.
 		</ul>
 	</ul>
@@ -24373,10 +24366,10 @@
 		String myProxyMethod1(<ja>@Header</ja>(<js>"Foo"</js>)</ja> String <jv>foo</jv>,
 			<ja>@Header</ja>(<js>"Bar"</js>)</ja> MyPojo <jv>pojo</jv>);
 
-		<jc>// Multiple values pulled from a HeaderSupplier object.</jc>
+		<jc>// Multiple values pulled from a HeaderList object.</jc>
 		<jc>// Same as @Header("*").</jc>
 		<ja>@RemoteGet</ja>(<js>"/mymethod2"</js>)
-		String myProxyMethod2(<ja>@Header</ja> HeaderSupplier <jv>headerSupplier</jv>);
+		String myProxyMethod2(<ja>@Header</ja> HeaderList <jv>headerList</jv>);
 
 		<jc>// Multiple values pulled from a Map.</jc>
 		<jc>// Same as @Header("*").</jc>
@@ -24404,7 +24397,7 @@
 	</p>
 	<ul class='spaced-list'>
 		<li>
-			{@link org.apache.juneau.http.HeaderSupplier} - Serialized as individual headers.
+			{@link org.apache.juneau.http.HeaderList} - Serialized as individual headers.
 		<li>
 			<c>Map</c> - Converted to key-value pairs.
 				<br>Values serialized using the registered {@link org.apache.juneau.httppart.HttpPartSerializer} ({@link org.apache.juneau.oapi.OpenApiSerializer} by default).
@@ -24425,7 +24418,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h5 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.Proxies.jrc.Path' id='juneau-rest-client.jrc.Proxies.jrc.Path'>10.9.7 - @Path</a><span class='update'>updated: 8.2.0, <b><red>todo</red></b></span></h4>
+<h5 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.Proxies.jrc.Path' id='juneau-rest-client.jrc.Proxies.jrc.Path'>10.9.7 - @Path</a><span class='update'>updated: <b>9.0.0</b></span></h4>
 <div class='topic'><!-- START: 10.9.7 - juneau-rest-client.jrc.Proxies.jrc.Path -->
 <div class='topic'>
 	<p>
@@ -24435,7 +24428,7 @@
 	<ul class='javatree'>
 		<li class='ja'>{@link org.apache.juneau.http.annotation.Path}
 		<ul>
-			<li class='jf'>{@link org.apache.juneau.http.annotation.Path#name() name}, {@del org.apache.juneau.http.annotation.Path#n() n} - Path variable name.
+			<li class='jf'>{@link org.apache.juneau.http.annotation.Path#name() name} - Path variable name.
 			<li class='jf'>{@link org.apache.juneau.http.annotation.Path#serializer() serializer} - Override the part serializer.
 		</ul>
 	</ul>
@@ -24450,10 +24443,10 @@
 		<ja>@RemoteGet</ja>(<js>"/mymethod1/{foo}/{bar}"</js>)
 		String myProxyMethod1(<ja>@Path</ja>(<js>"foo"</js>)</ja> String <jv>foo</jv>, <ja>@Path</ja>(<js>"bar"</js>)</ja> MyPojo <jv>pojo</jv>);
 
-		<jc>// Multiple values pulled from a NameValuePairSupplier object.</jc>
+		<jc>// Multiple values pulled from a PartList object.</jc>
 		<jc>// Same as @Path("*").</jc>
 		<ja>@RemoteGet</ja>(<js>"/mymethod2/{foo}/{bar}/{baz}"</js>)
-		String myProxyMethod2(<ja>@Path</ja> NameValuePairSupplier <jv>nameValuePairSupplier</jv>);
+		String myProxyMethod2(<ja>@Path</ja> PartList <jv>partList</jv>);
 
 		<jc>// Multiple values pulled from a Map.</jc>
 		<jc>// Same as @Path("*").</jc>
@@ -24481,7 +24474,7 @@
 	</p>
 	<ul class='spaced-list'>
 		<li>
-			{@link org.apache.juneau.http.NameValuePairSupplier} - Serialized as individual path parameters.
+			{@link org.apache.juneau.http.part.PartList} - Serialized as individual path parameters.
 		<li>
 			<c>Map</c> - Converted to key-value pairs.
 				<br>Values serialized using the registered {@link org.apache.juneau.httppart.HttpPartSerializer} ({@link org.apache.juneau.oapi.OpenApiSerializer} by default).
@@ -24502,7 +24495,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h5 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.Proxies.jrc.Request' id='juneau-rest-client.jrc.Proxies.jrc.Request'>10.9.8 - @Request</a><span class='update'><b><red>todo</red></b></span></h4>
+<h5 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.Proxies.jrc.Request' id='juneau-rest-client.jrc.Proxies.jrc.Request'>10.9.8 - @Request</a><span class='update'>updated: <b>9.0.0</b></span></h4>
 <div class='topic'><!-- START: 10.9.8 - juneau-rest-client.jrc.Proxies.jrc.Request -->
 <div class='topic'>
 	<p>
@@ -24543,14 +24536,14 @@
 		}
 	
 		<ja>@Query</ja>
-	<jk>public</jk> Map&lt;String,Object&gt; getQueryParams() {
-		<jk>return</jk> AMap.<jsm>of</jsm>(<js>"debug"</js>, <jk>true</jk>);
-	}
+		<jk>public</jk> Map&lt;String,Object&gt; getQueryParams() {
+			<jk>return</jk> AMap.<jsm>of</jsm>(<js>"debug"</js>, <jk>true</jk>);
+		}
 	
-	<ja>@Header</ja>(<js>"E-Tag"</js>)
-	<jk>public static</jk> UUID <jsm>getUUID</jsm>() {
-		<jk>return</jk> UUID.<jsm>generatedUUID</jsm>();
-	}
+		<ja>@Header</ja>(<js>"E-Tag"</js>)
+		<jk>public static</jk> UUID <jsm>getUUID</jsm>() {
+			<jk>return</jk> UUID.<jsm>generatedUUID</jsm>();
+		}
 	}
 	</p>
 	<p class='bjava'>
@@ -24569,7 +24562,7 @@
 	<p>
 		Any of the following annotations can be used on the methods:
 	</p>
-	<ul class='javatree'>
+	<ul class='javatreec'>
 		<li class='ja'>{@link org.apache.juneau.http.annotation.Content}
 		<li class='ja'>{@link org.apache.juneau.http.annotation.Header}
 		<li class='ja'>{@link org.apache.juneau.http.annotation.FormData}
@@ -24592,10 +24585,10 @@
 		CreatePet getContent();
 	
 		<ja>@Query</ja>
-	Map&lt;String,Object&gt; getQueryParams();
+		Map&lt;String,Object&gt; getQueryParams();
 	
-	<ja>@Header</ja>(<js>"E-Tag"</js>)
-	UUID getUUID();
+		<ja>@Header</ja>(<js>"E-Tag"</js>)
+		UUID getUUID();
 	}
 	</p>
 	<p class='bjava'>
@@ -24609,14 +24602,14 @@
 		}
 	
 		<ja>@Override</ja>
-	<jk>public</jk> Map&lt;String,Object&gt; getQueryParams() {
-		<jk>return</jk> JsonMap.<jsm>of</jsm>(<js>"debug"</js>, <jk>true</jk>);
-	}
+		<jk>public</jk> Map&lt;String,Object&gt; getQueryParams() {
+			<jk>return</jk> JsonMap.<jsm>of</jsm>(<js>"debug"</js>, <jk>true</jk>);
+		}
 	
 		<ja>@Override</ja>
-	<jk>public</jk> UUID getUUID() {
-		<jk>return</jk> UUID.<jsm>generateUUID</jsm>();
-	}
+		<jk>public</jk> UUID getUUID() {
+			<jk>return</jk> UUID.<jsm>generateUUID</jsm>();
+		}
 	}
 	</p>
 </div>
@@ -24624,7 +24617,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h5 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.Proxies.jrc.Response' id='juneau-rest-client.jrc.Proxies.jrc.Response'>10.9.9 - @Response</a><span class='update'><b><red>todo</red></b></span></h4>
+<h5 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.Proxies.jrc.Response' id='juneau-rest-client.jrc.Proxies.jrc.Response'>10.9.9 - @Response</a><span class='update'>updated: <b>9.0.0</b></span></h4>
 <div class='topic'><!-- START: 10.9.9 - juneau-rest-client.jrc.Proxies.jrc.Response -->
 <div class='topic'>
 	<p>
@@ -24690,7 +24683,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h5 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.Proxies.jrc.DualPurposeInterfaces' id='juneau-rest-client.jrc.Proxies.jrc.DualPurposeInterfaces'>10.9.10 - Dual-purpose (end-to-end) interfaces</a><span class='update'>created: 8.0.0, <b><red>todo</red></b></span></h4>
+<h5 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.Proxies.jrc.DualPurposeInterfaces' id='juneau-rest-client.jrc.Proxies.jrc.DualPurposeInterfaces'>10.9.10 - Dual-purpose (end-to-end) interfaces</a><span class='update'>created: 8.0.0</span></h4>
 <div class='topic'><!-- START: 10.9.10 - juneau-rest-client.jrc.Proxies.jrc.DualPurposeInterfaces -->
 <div class='topic'>
 	<p>
@@ -24797,7 +24790,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.LoggingAndDebugging' id='juneau-rest-client.jrc.LoggingAndDebugging'>10.10 - Logging and Debugging</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></h3>
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.LoggingAndDebugging' id='juneau-rest-client.jrc.LoggingAndDebugging'>10.10 - Logging and Debugging</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></h3>
 <div class='topic'><!-- START: 10.10 - juneau-rest-client.jrc.LoggingAndDebugging -->
 <div class='topic'>
 	<p>
@@ -24877,8 +24870,6 @@
 	</p>
 	
 	<ul>
-		<li>{@del org.apache.juneau.Context#CONTEXT_debug} is enabled.
-		<li>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_leakDetection} is enabled.
 		<li>{@link org.apache.juneau.rest.client.RestClient.Builder#logToConsole()} is called.
 	</ul>
 </div>
@@ -24886,7 +24877,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.CustomizingHttpClient' id='juneau-rest-client.jrc.CustomizingHttpClient'>10.11 - Customizing HttpClient</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></h3>
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.CustomizingHttpClient' id='juneau-rest-client.jrc.CustomizingHttpClient'>10.11 - Customizing HttpClient</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></h3>
 <div class='topic'><!-- START: 10.11 - juneau-rest-client.jrc.CustomizingHttpClient -->
 <div class='topic'>
 	<p>
@@ -24919,14 +24910,14 @@
 	</p>
 	
 	<p>
-		Refer to the {@del org.apache.http.client.impl.HttpClientBuilder HttpClientBuilder} docs for more information.
+		Refer to the {@code org.apache.http.client.impl.HttpClientBuilder} docs for more information.
 	</p>
 </div>
 </div><!-- END: 10.11 - juneau-rest-client.jrc.CustomizingHttpClient -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.ExtendingRestClient' id='juneau-rest-client.jrc.ExtendingRestClient'>10.12 - Extending RestClient</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></h3>
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.ExtendingRestClient' id='juneau-rest-client.jrc.ExtendingRestClient'>10.12 - Extending RestClient</a><span class='update'>created: 8.2.0</span></h3>
 <div class='topic'><!-- START: 10.12 - juneau-rest-client.jrc.ExtendingRestClient -->
 <div class='topic'>
 	<p>
@@ -24962,7 +24953,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.Authentication' id='juneau-rest-client.jrc.Authentication'>10.13 - Authentication</a><span class='update'>updated: 8.2.0, <b><red>todo</red></b></span></h3>
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.Authentication' id='juneau-rest-client.jrc.Authentication'>10.13 - Authentication</a><span class='update'>updated: 8.2.0</span></h3>
 <div class='topic'><!-- START: 10.13 - juneau-rest-client.jrc.Authentication -->
 <div class='topic'>
 	<p>
@@ -24976,7 +24967,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h5 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.Authentication.jrc.AuthenticationBASIC' id='juneau-rest-client.jrc.Authentication.jrc.AuthenticationBASIC'>10.13.1 - BASIC Authentication</a><span class='update'><b><red>todo</red></b></span></h4>
+<h5 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.Authentication.jrc.AuthenticationBASIC' id='juneau-rest-client.jrc.Authentication.jrc.AuthenticationBASIC'>10.13.1 - BASIC Authentication</a></h4>
 <div class='topic'><!-- START: 10.13.1 - juneau-rest-client.jrc.Authentication.jrc.AuthenticationBASIC -->
 <div class='topic'>
 	<p>
@@ -25007,7 +24998,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h5 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.Authentication.jrc.AuthenticationForm' id='juneau-rest-client.jrc.Authentication.jrc.AuthenticationForm'>10.13.2 - FORM-based Authentication</a><span class='update'><b><red>todo</red></b></span></h4>
+<h5 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.Authentication.jrc.AuthenticationForm' id='juneau-rest-client.jrc.Authentication.jrc.AuthenticationForm'>10.13.2 - FORM-based Authentication</a></h4>
 <div class='topic'><!-- START: 10.13.2 - juneau-rest-client.jrc.Authentication.jrc.AuthenticationForm -->
 <div class='topic'>
 	<p>
@@ -25099,7 +25090,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h5 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.Authentication.jrc.AuthenticationOIDC' id='juneau-rest-client.jrc.Authentication.jrc.AuthenticationOIDC'>10.13.3 - OIDC Authentication</a><span class='update'><b><red>todo</red></b></span></h4>
+<h5 class='topic' onclick='toggle(this)'><a href='#juneau-rest-client.jrc.Authentication.jrc.AuthenticationOIDC' id='juneau-rest-client.jrc.Authentication.jrc.AuthenticationOIDC'>10.13.3 - OIDC Authentication</a></h4>
 <div class='topic'><!-- START: 10.13.3 - juneau-rest-client.jrc.Authentication.jrc.AuthenticationOIDC -->
 <div class='topic'>
 	<p>
@@ -25231,7 +25222,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h2 class='topic' onclick='toggle(this)'><a href='#juneau-rest-mock' id='juneau-rest-mock'>11 - juneau-rest-mock</a><span class='update'>created: 8.1.0, updated: 8.2.0, <b><red>todo</red></b></span></h2>
+<h2 class='topic' onclick='toggle(this)'><a href='#juneau-rest-mock' id='juneau-rest-mock'>11 - juneau-rest-mock</a><span class='update'>created: 8.1.0, updated: 8.2.0</span></h2>
 <div class='topic'><!-- START: 11 - juneau-rest-mock -->
 <div class='topic'>
 	<h5 class='figure'>Maven Dependency</h5>
@@ -25263,15 +25254,15 @@
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-rest-mock.jrm.MockRestClient' id='juneau-rest-mock.jrm.MockRestClient'>11.1 - MockRestClient</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></h3>
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-rest-mock.jrm.MockRestClient' id='juneau-rest-mock.jrm.MockRestClient'>11.1 - MockRestClient</a><span class='update'>created: 8.2.0, updated: <b>9.0.0</b></span></h3>
 <div class='topic'><!-- START: 11.1 - juneau-rest-mock.jrm.MockRestClient -->
 <div class='topic'>
 	<p>
-		The {@del org.apache.juneau.rest.mock2.MockRestClient} class is used for performing serverless unit testing of {@link org.apache.juneau.rest.annotation.Rest @Rest}-annotated
+		The {@link org.apache.juneau.rest.mock.MockRestClient} class is used for performing serverless unit testing of {@link org.apache.juneau.rest.annotation.Rest @Rest}-annotated
 		and {@link org.apache.juneau.http.remote.Remote @Remote}-annotated classes.
 	</p>
 	<p>
-		The {@del org.apache.juneau.rest.mock2.MockRestClient} itself extends from {@link org.apache.juneau.rest.client.RestClient} providing it with the rich
+		The {@link org.apache.juneau.rest.mock.MockRestClient} itself extends from {@link org.apache.juneau.rest.client.RestClient} providing it with the rich
 		feature set of that API.
 		The following shows a simple example of invoking a PUT method on a simple REST interface and asserting
 		the correct status code and response body: 
@@ -25343,8 +25334,8 @@
 	}
 	</p>
 	<p>
-		The concept of the design is simple.  The {@del org.apache.juneau.rest.mock2.MockRestClient} class is used to create instances of {@del org.apache.juneau.rest.mock2.MockServletRequest}
-		and {@del org.apache.juneau.rest.mock2.MockServletResponse} which are passed directly to the call handler on the resource class {@del org.apache.juneau.rest.RestCallHandler#execute(HttpServletRequest,HttpServletResponse)}.
+		The concept of the design is simple.  The {@link org.apache.juneau.rest.mock.MockRestClient} class is used to create instances of {@link org.apache.juneau.rest.mock.MockServletRequest}
+		and {@link org.apache.juneau.rest.mock.MockServletResponse} which are passed directly to the call handler on the resource class {@link org.apache.juneau.rest.RestOpInvoker#invoke(RestOpSession)}.
 		In effect, you're fully testing your REST API as if it were running in a live servlet container, yet not
 		actually having to run in a servlet container.	
 		All aspects of the client and server side code are tested, yet no servlet container is required.  The actual
@@ -25396,7 +25387,7 @@
 	
 	<hr>
 	<p>
-		The {@del org.apache.juneau.rest.mock2.MockRestRequest} object has convenience methods provided to allow you to set properties
+		The {@link org.apache.juneau.rest.mock.MockRestRequest} object has convenience methods provided to allow you to set properties
 		directly on the underlying {@link javax.servlet.HttpServletRequest} object.  The following example shows how
 		this can be used to directly set roles on the request object to perform security testing.
 	</p>
@@ -25421,7 +25412,7 @@
 	</p>
 	<hr>
 	<p>
-		The {@del org.apache.juneau.rest.mock2.MockRestClient} class has a debug mode that will cause your HTTP requests and responses to
+		The {@link org.apache.juneau.rest.mock.MockRestClient} class has a debug mode that will cause your HTTP requests and responses to
 		be sent to the console:
 	</p>
 	<p class='bjava'>
@@ -25433,7 +25424,7 @@
 	</p>
 	<hr>
 	<p>
-		The {@del org.apache.juneau.rest.mock2.MockRestClient} class can also be used for testing of {@link org.apache.juneau.http.remote.Remote}-annotated
+		The {@link org.apache.juneau.rest.mock.MockRestClient} class can also be used for testing of {@link org.apache.juneau.http.remote.Remote}-annotated
 		interfaces against {@link org.apache.juneau.rest.annotation.Rest @Rest}-annotated resources.
 	</p>
 	<h5 class='figure'>Example:</h5>
@@ -27411,7 +27402,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h2 class='topic' onclick='toggle(this)'><a href='#my-springboot-microservice' id='my-springboot-microservice'>15 - my-springboot-microservice</a><span class='update'>created: 8.0.0, <b><red>todo</red></b></span></h2>
+<h2 class='topic' onclick='toggle(this)'><a href='#my-springboot-microservice' id='my-springboot-microservice'>15 - my-springboot-microservice</a><span class='update'>created: 8.0.0</span></h2>
 <div class='topic'><!-- START: 15 - my-springboot-microservice -->
 <div class='topic'>
 	<h5 class='figure'>Starter Project Zip</h5>
@@ -27434,7 +27425,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#my-springboot-microservice.msm.Installing' id='my-springboot-microservice.msm.Installing'>15.1 - Installing in Eclipse</a><span class='update'>created: 8.0.0, <b><red>todo</red></b></span></h3>
+<h3 class='topic' onclick='toggle(this)'><a href='#my-springboot-microservice.msm.Installing' id='my-springboot-microservice.msm.Installing'>15.1 - Installing in Eclipse</a><span class='update'>created: 8.0.0</span></h3>
 <div class='topic'><!-- START: 15.1 - my-springboot-microservice.msm.Installing -->
 <div class='topic'>
 	<p>
@@ -27569,7 +27560,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#my-springboot-microservice.msm.Running' id='my-springboot-microservice.msm.Running'>15.2 - Running in Eclipse</a><span class='update'>created: 8.0.0, <b><red>todo</red></b></span></h3>
+<h3 class='topic' onclick='toggle(this)'><a href='#my-springboot-microservice.msm.Running' id='my-springboot-microservice.msm.Running'>15.2 - Running in Eclipse</a><span class='update'>created: 8.0.0</span></h3>
 <div class='topic'><!-- START: 15.2 - my-springboot-microservice.msm.Running -->
 <div class='topic'>
 	<p>
@@ -27606,7 +27597,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#my-springboot-microservice.msm.Building' id='my-springboot-microservice.msm.Building'>15.3 - Building and Running from Command-Line</a><span class='update'>created: 8.0.0, <b><red>todo</red></b></span></h3>
+<h3 class='topic' onclick='toggle(this)'><a href='#my-springboot-microservice.msm.Building' id='my-springboot-microservice.msm.Building'>15.3 - Building and Running from Command-Line</a><span class='update'>created: 8.0.0</span></h3>
 <div class='topic'><!-- START: 15.3 - my-springboot-microservice.msm.Building -->
 <div class='topic'>
 	<p>
@@ -27653,86 +27644,8 @@
 
 <!-- ==================================================================================================== -->
 
-<h2 class='topic' onclick='toggle(this)'><a href='#juneau-examples-core' id='juneau-examples-core'>16 - juneau-examples-core</a><span class='update'>updated: 8.0.0</span></h2>
-<div class='topic'><!-- START: 16 - juneau-examples-core -->
-<div class='topic'>
-	<h5 class='figure'>Archive File</h5>
-	<p class='bcode w500'>
-	juneau-examples-core-{@property juneauVersion}.zip 
-	</p>	
-	
-	<p>
-		The <c>juneau-examples-core</c> project contains various code examples for using the core APIs. 
-	</p>
-</div>
-</div><!-- END: 16 - juneau-examples-core -->
-
-<!-- ==================================================================================================== -->
-
-<h2 class='topic' onclick='toggle(this)'><a href='#juneau-examples-rest' id='juneau-examples-rest'>17 - juneau-examples-rest</a><span class='update'>updated: 8.0.0, <b><red>todo</red></b></span></h2>
-<div class='topic'><!-- START: 17 - juneau-examples-rest -->
-<div class='topic'>
-	<h5 class='figure'>Maven Dependency</h5>
-	<p class='bxml w500'>
-	<xt>&lt;dependency&gt;</xt>
-		<xt>&lt;groupId&gt;</xt>org.apache.juneau<xt>&lt;/groupId&gt;</xt>
-		<xt>&lt;artifactId&gt;</xt>juneau-examples-rest<xt>&lt;/artifactId&gt;</xt>
-		<xt>&lt;version&gt;</xt>{@property juneauVersion}<xt>&lt;/version&gt;</xt>
-	<xt>&lt;/dependency&gt;</xt>
-	</p>	
-	
-	<h5 class='figure'>Java Library</h5>
-	<p class='bcode w500'>
-	juneau-examples-rest-{@property juneauVersion}.jar 
-	</p>	
-	
-	<h5 class='figure'>OSGi Module</h5>
-	<p class='bcode w500'>
-	org.apache.juneau.examples.rest_{@property juneauVersion}.jar 
-	</p>	
-	
-	<p>
-		The <c>juneau-examples-rest</c> project includes various examples of REST resources written
-		using Juneau.
-	</p>
-	<ul class='notes'>
-		<li class='note'>
-			These examples can be deployed as buildable Eclipse projects using Jetty or Spring Boot using instructions
-			in the following sections:
-	</ul>
-	<ul class='seealso'>
-		<li>{@doc juneau-examples-rest-jetty}
-		<li>{@doc juneau-examples-rest-springboot}
-	</ul>
-</div>
-</div><!-- END: 17 - juneau-examples-rest -->
-
-<!-- ==================================================================================================== -->
-
-<h2 class='topic' onclick='toggle(this)'><a href='#juneau-examples-rest-jetty' id='juneau-examples-rest-jetty'>18 - juneau-examples-rest-jetty</a><span class='update'>created: 8.0.0, deprecated: 8.1.2</span></h2>
-<div class='topic'><!-- START: 18 - juneau-examples-rest-jetty -->
-<div class='topic'>
-	<div class='warn'>
-		The Juneau Microservice libraries are likely to be removed in Juneau 9.0 due to the popularity of the Spring Boot
-		framework for creating microservices and the ability for Juneau to be used within Spring Boot.
-	</div>
-	
-	<h5 class='figure'>Starter Project Zip</h5>
-	<p class='bcode w500'>
-	juneau-examples-rest-jetty-{@property juneauVersion}.zip 
-	</p>	
-	
-	<p>
-		The <c>juneau-examples-rest-jetty</c> project includes everything you need create a Samples REST 
-		microservice in an Eclipse workspace and build it as an executable jar.
-	</p>
-</div>
-</div><!-- END: 18 - juneau-examples-rest-jetty -->
-
-<!-- ==================================================================================================== -->
-
-<h2 class='topic' onclick='toggle(this)'><a href='#juneau-petstore' id='juneau-petstore'>19 - juneau-pestore</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></h2>
-<div class='topic'><!-- START: 19 - juneau-petstore -->
+<h2 class='topic' onclick='toggle(this)'><a href='#juneau-petstore' id='juneau-petstore'>16 - juneau-pestore</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></h2>
+<div class='topic'><!-- START: 16 - juneau-petstore -->
 <div class='topic'>
 	<p>
 		TODO
@@ -27741,8 +27654,8 @@
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-petstore.jp.Installing' id='juneau-petstore.jp.Installing'>19.1 - Installing in Eclipse</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></h3>
-<div class='topic'><!-- START: 19.1 - juneau-petstore.jp.Installing -->
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-petstore.jp.Installing' id='juneau-petstore.jp.Installing'>16.1 - Installing in Eclipse</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></h3>
+<div class='topic'><!-- START: 16.1 - juneau-petstore.jp.Installing -->
 <div class='topic'>
 	<p>
 		How to import Petstore to Eclipse or Spring Tool Suite: <br><br>
@@ -27754,12 +27667,12 @@
 		</ol>
 	</p>		
 </div>
-</div><!-- END: 19.1 - juneau-petstore.jp.Installing -->
+</div><!-- END: 16.1 - juneau-petstore.jp.Installing -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-petstore.jp.Running' id='juneau-petstore.jp.Running'>19.2 - Running Petstore manually</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></h3>
-<div class='topic'><!-- START: 19.2 - juneau-petstore.jp.Running -->
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-petstore.jp.Running' id='juneau-petstore.jp.Running'>16.2 - Running Petstore manually</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></h3>
+<div class='topic'><!-- START: 16.2 - juneau-petstore.jp.Running -->
 <div class='topic'>
 	<p>
 			How to run Petstore --Java Backend-- in Eclipse or Spring Tool Suite: <br><br>
@@ -27777,12 +27690,12 @@
 		</ol>
 	</p>
 </div>
-</div><!-- END: 19.2 - juneau-petstore.jp.Running -->
+</div><!-- END: 16.2 - juneau-petstore.jp.Running -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-petstore.jp.Building' id='juneau-petstore.jp.Building'>19.3 - Building and Running from Command-Line (Using Dockerfiles)</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></h3>
-<div class='topic'><!-- START: 19.3 - juneau-petstore.jp.Building -->
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-petstore.jp.Building' id='juneau-petstore.jp.Building'>16.3 - Building and Running from Command-Line (Using Dockerfiles)</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></h3>
+<div class='topic'><!-- START: 16.3 - juneau-petstore.jp.Building -->
 <div class='topic'>
 	<p>
 			How to build and run Petstore using Docker: <br>
@@ -27797,12 +27710,12 @@
 		</ol>
 	</p>
 </div>
-</div><!-- END: 19.3 - juneau-petstore.jp.Building -->
+</div><!-- END: 16.3 - juneau-petstore.jp.Building -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-petstore.jp.App' id='juneau-petstore.jp.App'>19.4 - About Petstore App</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></h3>
-<div class='topic'><!-- START: 19.4 - juneau-petstore.jp.App -->
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-petstore.jp.App' id='juneau-petstore.jp.App'>16.4 - About Petstore App</a><span class='update'>created: 8.2.0, <b><red>todo</red></b></span></h3>
+<div class='topic'><!-- START: 16.4 - juneau-petstore.jp.App -->
 <div class='topic'>
 	<div style="width: 70%;">
 	    <h3 style="color: blue;">
@@ -27865,13 +27778,13 @@
 	
 	</div>
 </div>
-</div><!-- END: 19.4 - juneau-petstore.jp.App -->
-</div><!-- END: 19 - juneau-petstore -->
+</div><!-- END: 16.4 - juneau-petstore.jp.App -->
+</div><!-- END: 16 - juneau-petstore -->
 
 <!-- ==================================================================================================== -->
 
-<h2 class='topic' onclick='toggle(this)'><a href='#Glossaries' id='Glossaries'>20 - Glossaries</a><span class='update'>created: 8.1.3</span></h2>
-<div class='topic'><!-- START: 20 - Glossaries -->
+<h2 class='topic' onclick='toggle(this)'><a href='#Glossaries' id='Glossaries'>17 - Glossaries</a><span class='update'>created: 8.1.3</span></h2>
+<div class='topic'><!-- START: 17 - Glossaries -->
 <div class='topic'>
 	<p>
 	</p>
@@ -27879,8 +27792,8 @@
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#Glossaries.g.LanguageSupport' id='Glossaries.g.LanguageSupport'>20.1 - Language Support</a><span class='update'>created: 8.1.3</span></h3>
-<div class='topic'><!-- START: 20.1 - Glossaries.g.LanguageSupport -->
+<h3 class='topic' onclick='toggle(this)'><a href='#Glossaries.g.LanguageSupport' id='Glossaries.g.LanguageSupport'>17.1 - Language Support</a><span class='update'>created: 8.1.3</span></h3>
+<div class='topic'><!-- START: 17.1 - Glossaries.g.LanguageSupport -->
 <div class='topic'>
 	<table class='styled w1000'>
 		<tr>
@@ -28014,12 +27927,12 @@
 		</tr>
 	</table>
 </div>
-</div><!-- END: 20.1 - Glossaries.g.LanguageSupport -->
+</div><!-- END: 17.1 - Glossaries.g.LanguageSupport -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#Glossaries.g.Annotations' id='Glossaries.g.Annotations'>20.2 - Annotations</a><span class='update'>created: 8.1.3</span></h3>
-<div class='topic'><!-- START: 20.2 - Glossaries.g.Annotations -->
+<h3 class='topic' onclick='toggle(this)'><a href='#Glossaries.g.Annotations' id='Glossaries.g.Annotations'>17.2 - Annotations</a><span class='update'>created: 8.1.3</span></h3>
+<div class='topic'><!-- START: 17.2 - Glossaries.g.Annotations -->
 <h5 class='topic'>Serialization Annotations (used to modify how artifacts are marshalled)</h5>
 <div class='topic'>
 	<table class='styled w1000'>
@@ -28339,13 +28252,13 @@
 		</tr>
 	</table>
 </div>
-</div><!-- END: 20.2 - Glossaries.g.Annotations -->
-</div><!-- END: 20 - Glossaries -->
+</div><!-- END: 17.2 - Glossaries.g.Annotations -->
+</div><!-- END: 17 - Glossaries -->
 
 <!-- ==================================================================================================== -->
 
-<h2 class='topic' onclick='toggle(this)'><a href='#Security' id='Security'>21 - Security Best-Practices</a></h2>
-<div class='topic'><!-- START: 21 - Security -->
+<h2 class='topic' onclick='toggle(this)'><a href='#Security' id='Security'>18 - Security Best-Practices</a></h2>
+<div class='topic'><!-- START: 18 - Security -->
 <div class='topic'>
 	<p>
 		Security is always an ongoing concern in any library.  
@@ -28358,8 +28271,8 @@
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#Security.s.Marshall' id='Security.s.Marshall'>21.1 - juneau-marshall</a><span class='update'>created: 8.2.0</span></h3>
-<div class='topic'><!-- START: 21.1 - Security.s.Marshall -->
+<h3 class='topic' onclick='toggle(this)'><a href='#Security.s.Marshall' id='Security.s.Marshall'>18.1 - juneau-marshall</a><span class='update'>created: 8.2.0</span></h3>
+<div class='topic'><!-- START: 18.1 - Security.s.Marshall -->
 <h5 class='topic'>Demarshalling vulnerabilities</h5>
 <div class='topic'>
 	<p>
@@ -28429,12 +28342,12 @@
 			As of <c>7.0.1</c>, no known security vulnerabilities exist that affect Juneau at this time.
 	</ul>
 </div>
-</div><!-- END: 21.1 - Security.s.Marshall -->
+</div><!-- END: 18.1 - Security.s.Marshall -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#Security.s.Svl' id='Security.s.Svl'>21.2 - juneau-svl</a><span class='update'>created: 8.2.0</span></h3>
-<div class='topic'><!-- START: 21.2 - Security.s.Svl -->
+<h3 class='topic' onclick='toggle(this)'><a href='#Security.s.Svl' id='Security.s.Svl'>18.2 - juneau-svl</a><span class='update'>created: 8.2.0</span></h3>
+<div class='topic'><!-- START: 18.2 - Security.s.Svl -->
 <div class='topic'>
 	<p>
 		Care must be used when defining new {@link org.apache.juneau.svl.Var Vars} using the SVL API since mistakes 
@@ -28481,12 +28394,12 @@
 		methods to prevent recursive handling of variables.
 	</p>
 </div>
-</div><!-- END: 21.2 - Security.s.Svl -->
+</div><!-- END: 18.2 - Security.s.Svl -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#Security.s.Rest' id='Security.s.Rest'>21.3 - juneau-rest-server</a><span class='update'>created: 8.2.0</span></h3>
-<div class='topic'><!-- START: 21.3 - Security.s.Rest -->
+<h3 class='topic' onclick='toggle(this)'><a href='#Security.s.Rest' id='Security.s.Rest'>18.3 - juneau-rest-server</a><span class='update'>created: 8.2.0</span></h3>
+<div class='topic'><!-- START: 18.3 - Security.s.Rest -->
 <div class='topic'>
 	<p>
 		Denial of service attacks can be alleviated through the {@link org.apache.juneau.rest.annotation.Rest#maxInput() maxInput()}
@@ -28500,8 +28413,8 @@
 		RDF, you may want to consider lowering the max-input value above.
 	</p>
 </div>
-</div><!-- END: 21.3 - Security.s.Rest -->
-</div><!-- END: 21 - Security -->
+</div><!-- END: 18.3 - Security.s.Rest -->
+</div><!-- END: 18 - Security -->
 
 
 <h2 class='topic' onclick='toggle(this)'><a href='#ReleaseNotes' id='ReleaseNotes'>Release Notes</a></h2>
@@ -32464,7 +32377,7 @@
 			The {@link org.apache.juneau.rest.RestRequest} class functionality has been broken up into the following
 			functional pieces to reduce its complexity:
 			<ul>
-				<li>{@link org.apache.juneau.rest.RestRequest#getBody()} - The request body.
+				<li>{@del org.apache.juneau.rest.RestRequest#getBody()} - The request body.
 				<li>{@link org.apache.juneau.rest.RestRequest#getHeaders()} - The request headers.
 				<li>{@del RestRequest#getQuery()} - The request query parameters.
 				<li>{@del RestRequest#getFormData()} - The request form data parameters.
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseContent.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseContent.java
index dc1743259..9d5ce4b6c 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseContent.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseContent.java
@@ -26,6 +26,7 @@ import java.util.regex.Matcher;
 import org.apache.http.*;
 import org.apache.http.conn.*;
 import org.apache.juneau.*;
+import org.apache.juneau.assertions.*;
 import org.apache.juneau.collections.*;
 import org.apache.juneau.http.entity.*;
 import org.apache.juneau.http.header.*;
@@ -1167,6 +1168,47 @@ public class ResponseContent implements HttpEntity {
 		return new FluentResponseBodyAssertion<>(this, this);
 	}
 
+	/**
+	 * Shortcut for calling <c>assertValue().asString()</c>.
+	 *
+	 * @return A new fluent assertion.
+	 */
+	public FluentStringAssertion<ResponseContent> assertString() {
+		return new FluentResponseBodyAssertion<>(this, this).asString();
+	}
+
+	/**
+	 * Shortcut for calling <c>assertValue().asBytes()</c>.
+	 *
+	 * @return A new fluent assertion.
+	 */
+	public FluentByteArrayAssertion<ResponseContent> assertBytes() {
+		return new FluentResponseBodyAssertion<>(this, this).asBytes();
+	}
+
+	/**
+	 * Shortcut for calling <c>assertValue().as(<jv>type</jv>)</c>.
+	 *
+	 * @param <T> The object type to create.
+	 * @param type The object type to create.
+	 * @return A new fluent assertion.
+	 */
+	public <T> FluentAnyAssertion<T,ResponseContent> assertObject(Class<T> type) {
+		return new FluentResponseBodyAssertion<>(this, this).as(type);
+	}
+
+	/**
+	 * Shortcut for calling <c>assertValue().as(<jv>type</jv>, <jv>args</jv>)</c>.
+	 *
+	 * @param <T> The object type to create.
+	 * @param type The object type to create.
+	 * @param args Optional type arguments.
+	 * @return A new fluent assertion.
+	 */
+	public <T> FluentAnyAssertion<Object,ResponseContent> assertObject(Type type, Type...args) {
+		return new FluentResponseBodyAssertion<>(this, this).as(type, args);
+	}
+
 	/**
 	 * Returns the response that created this object.
 	 *
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseHeader.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseHeader.java
index 5a37cf153..4a5181da0 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseHeader.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseHeader.java
@@ -24,6 +24,7 @@ import java.util.regex.*;
 
 import org.apache.http.*;
 import org.apache.juneau.*;
+import org.apache.juneau.assertions.*;
 import org.apache.juneau.http.header.*;
 import org.apache.juneau.httppart.*;
 import org.apache.juneau.oapi.*;
@@ -306,9 +307,8 @@ public class ResponseHeader extends BasicHeader {
 	 * @param type The type to convert to.
 	 * @param args The type parameters.
 	 * @return The converted type, or <jk>null</jk> if header is not present.
-	 * @throws RestCallException If value could not be parsed.
 	 */
-	public <T> Optional<T> as(Type type, Type...args) throws RestCallException {
+	public <T> Optional<T> as(Type type, Type...args) {
 		return as(request.getClassMeta(type, args));
 	}
 
@@ -323,10 +323,9 @@ public class ResponseHeader extends BasicHeader {
 	 * @param type The type to convert to.
 	 * @param args The type parameters.
 	 * @return This object.
-	 * @throws RestCallException If value could not be parsed.
 	 */
 	@SuppressWarnings("unchecked")
-	public <T> RestResponse as(Value<T> value, Type type, Type...args) throws RestCallException {
+	public <T> RestResponse as(Value<T> value, Type type, Type...args) {
 		value.set((T)as(type, args).orElse(null));
 		return response;
 	}
@@ -337,9 +336,8 @@ public class ResponseHeader extends BasicHeader {
 	 * @param <T> The type to convert to.
 	 * @param type The type to convert to.
 	 * @return The converted type, or <jk>null</jk> if header is not present.
-	 * @throws RestCallException If value could not be parsed.
 	 */
-	public <T> Optional<T> as(Class<T> type) throws RestCallException {
+	public <T> Optional<T> as(Class<T> type) {
 		return as(request.getClassMeta(type));
 	}
 
@@ -350,9 +348,8 @@ public class ResponseHeader extends BasicHeader {
 	 * @param <T> The type to convert to.
 	 * @param type The type to convert to.
 	 * @return This object.
-	 * @throws RestCallException If value could not be parsed.
 	 */
-	public <T> RestResponse as(Value<T> value, Class<T> type) throws RestCallException {
+	public <T> RestResponse as(Value<T> value, Class<T> type) {
 		value.set(as(type).orElse(null));
 		return response;
 	}
@@ -363,13 +360,12 @@ public class ResponseHeader extends BasicHeader {
 	 * @param <T> The type to convert to.
 	 * @param type The type to convert to.
 	 * @return The converted type, or <jk>null</jk> if header is not present.
-	 * @throws RestCallException If value could not be parsed.
 	 */
-	public <T> Optional<T> as(ClassMeta<T> type) throws RestCallException {
+	public <T> Optional<T> as(ClassMeta<T> type) {
 		try {
 			return optional(parser.parse(HEADER, schema, getValue(), type));
 		} catch (ParseException e) {
-			throw new RestCallException(response, e, "Could not parse response header {0}.", getName());
+			throw BasicRuntimeException.create().causedBy(e).message("Could not parse response header {0}.", getName()).build();
 		}
 	}
 
@@ -380,9 +376,8 @@ public class ResponseHeader extends BasicHeader {
 	 * @param <T> The type to convert to.
 	 * @param type The type to convert to.
 	 * @return This object.
-	 * @throws RestCallException If value could not be parsed.
 	 */
-	public <T> RestResponse as(Value<T> value, ClassMeta<T> type) throws RestCallException {
+	public <T> RestResponse as(Value<T> value, ClassMeta<T> type) {
 		value.set(as(type).orElse(null));
 		return response;
 	}
@@ -405,9 +400,8 @@ public class ResponseHeader extends BasicHeader {
 	 *
 	 * @param pattern The regular expression pattern to match.
 	 * @return The matcher.
-	 * @throws RestCallException If a connection error occurred.
 	 */
-	public Matcher asMatcher(Pattern pattern) throws RestCallException {
+	public Matcher asMatcher(Pattern pattern) {
 		return pattern.matcher(orElse(""));
 	}
 
@@ -429,9 +423,8 @@ public class ResponseHeader extends BasicHeader {
 	 *
 	 * @param regex The regular expression pattern to match.
 	 * @return The matcher.
-	 * @throws RestCallException If a connection error occurred.
 	 */
-	public Matcher asMatcher(String regex) throws RestCallException {
+	public Matcher asMatcher(String regex) {
 		return asMatcher(regex, 0);
 	}
 
@@ -454,9 +447,8 @@ public class ResponseHeader extends BasicHeader {
 	 * @param regex The regular expression pattern to match.
 	 * @param flags Pattern match flags.  See {@link Pattern#compile(String, int)}.
 	 * @return The matcher.
-	 * @throws RestCallException If a connection error occurred.
 	 */
-	public Matcher asMatcher(String regex, int flags) throws RestCallException {
+	public Matcher asMatcher(String regex, int flags) {
 		return asMatcher(Pattern.compile(regex, flags));
 	}
 
@@ -524,6 +516,42 @@ public class ResponseHeader extends BasicHeader {
 		return new FluentResponseHeaderAssertion<>(this, this);
 	}
 
+	/**
+	 * Shortcut for calling <c>assertValue().asString()</c>.
+	 *
+	 * @return A new fluent assertion.
+	 */
+	public FluentStringAssertion<ResponseHeader> assertString() {
+		return new FluentResponseHeaderAssertion<>(this, this).asString();
+	}
+
+	/**
+	 * Shortcut for calling <c>assertValue().asInteger()</c>.
+	 *
+	 * @return A new fluent assertion.
+	 */
+	public FluentIntegerAssertion<ResponseHeader> assertInteger() {
+		return new FluentResponseHeaderAssertion<>(this, this).asInteger();
+	}
+
+	/**
+	 * Shortcut for calling <c>assertValue().asLong()</c>.
+	 *
+	 * @return A new fluent assertion.
+	 */
+	public FluentLongAssertion<ResponseHeader> assertLong() {
+		return new FluentResponseHeaderAssertion<>(this, this).asLong();
+	}
+
+	/**
+	 * Shortcut for calling <c>assertValue().asZonedDateTime()</c>.
+	 *
+	 * @return A new fluent assertion.
+	 */
+	public FluentZonedDateTimeAssertion<ResponseHeader> assertZonedDateTime() {
+		return new FluentResponseHeaderAssertion<>(this, this).asZonedDateTime();
+	}
+
 	/**
 	 * Returns the response that created this object.
 	 *
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 669f89174..be000cb85 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
@@ -1472,7 +1472,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * 	<jc>// Creates form data "foo=bar&amp;baz=qux" using StringEntity and body().</jc>
 	 * 	<jv>client</jv>
 	 * 		.formPost(<jsf>URI</jsf>)
-	 * 		.body(<jk>new</jk> StringEntity(<js>"foo=bar&amp;baz=qux"</js>,<js>"application/x-www-form-urlencoded"</js>))
+	 * 		.content(<jk>new</jk> StringEntity(<js>"foo=bar&amp;baz=qux"</js>,<js>"application/x-www-form-urlencoded"</js>))
 	 * 		.run();
 	 * </p>
 	 *
@@ -1687,7 +1687,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * <p class='bjava'>
 	 * 	<jv>client</jv>
 	 * 		.put(<js>"/foo"</js>)
-	 * 		.body(<jk>new</jk> StringReader(<js>"foo"</js>))
+	 * 		.content(<jk>new</jk> StringReader(<js>"foo"</js>))
 	 * 		.contentType(<js>"text/foo"</js>)
 	 * 		.run();
 	 *
@@ -1703,7 +1703,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * 	<jv>client</jv>
 	 * 		.put(<js>"/foo"</js>)
 	 * 		.json()
-	 * 		.body(<js>"foo"</js>)
+	 * 		.content(<js>"foo"</js>)
 	 * 		.run();
 	 * </p>
 	 *
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/assertion/FluentResponseBodyAssertion.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/assertion/FluentResponseBodyAssertion.java
index c063c1bf4..326cc2826 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/assertion/FluentResponseBodyAssertion.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/assertion/FluentResponseBodyAssertion.java
@@ -241,9 +241,8 @@ public class FluentResponseBodyAssertion<R> extends FluentObjectAssertion<Respon
 	 * </ul>
 	 *
 	 * @return A new fluent assertion object.
-	 * @throws RestCallException If REST call failed.
 	 */
-	public FluentByteArrayAssertion<R> asBytes() throws RestCallException {
+	public FluentByteArrayAssertion<R> asBytes() {
 		return new FluentByteArrayAssertion<>(valueAsBytes(), returns());
 	}
 
diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestClient.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestClient.java
index a9d09ee81..98d0b5400 100644
--- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestClient.java
+++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestClient.java
@@ -2181,7 +2181,7 @@ public class MockRestClient extends RestClient implements HttpClientConnection {
 			baos.flush();
 			body = baos.toByteArray();
 		}
-		sreq.get().body(body);
+		sreq.get().content(body);
 	}
 
 	@Override /* HttpClientConnection */
diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockServletRequest.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockServletRequest.java
index 1c0980bfd..534e905a2 100644
--- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockServletRequest.java
+++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockServletRequest.java
@@ -48,7 +48,7 @@ public class MockServletRequest implements HttpServletRequest {
 	private Map<String,String[]> headerMap = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
 	private Map<String,Object> attributeMap = map();
 	private String characterEncoding = "UTF-8";
-	private byte[] body = new byte[0];
+	private byte[] content = new byte[0];
 	private String protocol = "HTTP/1.1";
 	private String scheme = "http";
 	private String serverName = "localhost";
@@ -518,12 +518,12 @@ public class MockServletRequest implements HttpServletRequest {
 
 	@Override /* HttpServletRequest */
 	public int getContentLength() {
-		return body == null ? 0 : body.length;
+		return content == null ? 0 : content.length;
 	}
 
 	@Override /* HttpServletRequest */
 	public long getContentLengthLong() {
-		return body == null ? 0 : body.length;
+		return content == null ? 0 : content.length;
 	}
 
 	@Override /* HttpServletRequest */
@@ -534,8 +534,8 @@ public class MockServletRequest implements HttpServletRequest {
 	@Override /* HttpServletRequest */
 	public ServletInputStream getInputStream() throws IOException {
 		if (formDataMap != null)
-			body = UrlEncodingSerializer.DEFAULT.toString(formDataMap).getBytes();
-		return new BoundedServletInputStream(new ByteArrayInputStream(body), Integer.MAX_VALUE);
+			content = UrlEncodingSerializer.DEFAULT.toString(formDataMap).getBytes();
+		return new BoundedServletInputStream(new ByteArrayInputStream(content), Integer.MAX_VALUE);
 	}
 
 	@Override /* HttpServletRequest */
@@ -558,7 +558,7 @@ public class MockServletRequest implements HttpServletRequest {
 	public Map<String,String[]> getParameterMap() {
 		if ("POST".equalsIgnoreCase(method)) {
 			if (formDataMap == null)
-				formDataMap = RestUtils.parseQuery(read(body));
+				formDataMap = RestUtils.parseQuery(read(content));
 			return formDataMap;
 		}
 		return queryDataMap;
@@ -928,18 +928,18 @@ public class MockServletRequest implements HttpServletRequest {
 	 * 	Any other types are converted to a string using the <c>toString()</c> method.
 	 * @return This object.
 	 */
-	public MockServletRequest body(Object value) {
+	public MockServletRequest content(Object value) {
 		try {
 			if (value instanceof byte[])
-				this.body = (byte[])value;
+				this.content = (byte[])value;
 			else if (value instanceof Reader)
-				this.body = readBytes((Reader)value);
+				this.content = readBytes((Reader)value);
 			else if (value instanceof InputStream)
-				this.body = readBytes((InputStream)value);
+				this.content = readBytes((InputStream)value);
 			else if (value instanceof CharSequence)
-				this.body = ((CharSequence)value).toString().getBytes();
+				this.content = ((CharSequence)value).toString().getBytes();
 			else if (value != null)
-				this.body = value.toString().getBytes();
+				this.content = value.toString().getBytes();
 		} catch (IOException e) {
 			throw runtimeException(e);
 		}