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 2021/07/25 18:50:39 UTC

[juneau] branch master updated: Javadocs.

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

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


The following commit(s) were added to refs/heads/master by this push:
     new b4a5410  Javadocs.
b4a5410 is described below

commit b4a541067e952ea3c9b7d0aa16aa8e548c08df96
Author: JamesBognar <ja...@salesforce.com>
AuthorDate: Sun Jul 25 14:50:24 2021 -0400

    Javadocs.
---
 .../main/java/org/apache/juneau/UriContext.java    |   2 +-
 .../main/java/org/apache/juneau/UriResolver.java   |   2 +-
 .../src/main/java/org/apache/juneau/Value.java     |   2 +-
 .../src/main/java/org/apache/juneau/Version.java   |   2 +-
 .../org/apache/juneau/assertions/AnyAssertion.java |  40 +-
 .../apache/juneau/assertions/ArrayAssertion.java   |  14 +-
 .../org/apache/juneau/assertions/Assertion.java    |  48 +-
 .../apache/juneau/assertions/BeanAssertion.java    |  14 +-
 .../juneau/assertions/BeanListAssertion.java       |  14 +-
 .../apache/juneau/assertions/BooleanAssertion.java |  14 +-
 .../juneau/assertions/ByteArrayAssertion.java      |  14 +-
 .../juneau/assertions/CollectionAssertion.java     |  14 +-
 .../juneau/assertions/ComparableAssertion.java     |  14 +-
 .../apache/juneau/assertions/DateAssertion.java    |  14 +-
 .../juneau/assertions/FluentAnyAssertion.java      |  47 +-
 .../juneau/assertions/FluentArrayAssertion.java    |  35 +-
 .../apache/juneau/assertions/FluentAssertion.java  |   9 +-
 .../juneau/assertions/FluentBeanAssertion.java     |  27 +-
 .../juneau/assertions/FluentBeanListAssertion.java |  35 +-
 .../juneau/assertions/FluentBooleanAssertion.java  |  27 +-
 .../assertions/FluentByteArrayAssertion.java       |  35 +-
 .../assertions/FluentCollectionAssertion.java      |  35 +-
 .../assertions/FluentComparableAssertion.java      |  27 +-
 .../juneau/assertions/FluentDateAssertion.java     |  27 +-
 .../juneau/assertions/FluentIntegerAssertion.java  |  27 +-
 .../juneau/assertions/FluentListAssertion.java     |  35 +-
 .../juneau/assertions/FluentLongAssertion.java     |  27 +-
 .../juneau/assertions/FluentMapAssertion.java      |  35 +-
 .../juneau/assertions/FluentObjectAssertion.java   |  27 +-
 .../assertions/FluentPrimitiveArrayAssertion.java  |  41 +-
 .../juneau/assertions/FluentStringAssertion.java   |  35 +-
 .../assertions/FluentStringListAssertion.java      |  35 +-
 .../assertions/FluentThrowableAssertion.java       |  27 +-
 .../juneau/assertions/FluentVersionAssertion.java  |  27 +-
 .../assertions/FluentZonedDateTimeAssertion.java   |  27 +-
 .../apache/juneau/assertions/IntegerAssertion.java |  14 +-
 .../apache/juneau/assertions/ListAssertion.java    |  14 +-
 .../apache/juneau/assertions/LongAssertion.java    |  14 +-
 .../org/apache/juneau/assertions/MapAssertion.java |  14 +-
 .../apache/juneau/assertions/ObjectAssertion.java  |  14 +-
 .../juneau/assertions/PrimitiveArrayAssertion.java |  14 +-
 .../apache/juneau/assertions/StringAssertion.java  |  18 +-
 .../juneau/assertions/StringListAssertion.java     |  14 +-
 .../juneau/assertions/ThrowableAssertion.java      |  14 +-
 .../apache/juneau/assertions/VersionAssertion.java |  14 +-
 .../juneau/assertions/ZonedDateTimeAssertion.java  |  14 +-
 .../main/java/org/apache/juneau/cp/Messages.java   |   2 +-
 .../java/org/apache/juneau/http/header/Accept.java |   8 +-
 .../apache/juneau/http/header/AcceptCharset.java   |   6 +-
 .../apache/juneau/http/header/AcceptEncoding.java  |   6 +-
 .../apache/juneau/http/header/AcceptLanguage.java  |   6 +-
 .../apache/juneau/http/header/AcceptRanges.java    |   4 +-
 .../java/org/apache/juneau/http/header/Age.java    |   6 +-
 .../java/org/apache/juneau/http/header/Allow.java  |   6 +-
 .../apache/juneau/http/header/Authorization.java   |   4 +-
 .../juneau/http/header/BasicBooleanHeader.java     |   6 +-
 .../juneau/http/header/BasicCsvArrayHeader.java    |   6 +-
 .../apache/juneau/http/header/BasicDateHeader.java |   6 +-
 .../http/header/BasicEntityTagArrayHeader.java     |   6 +-
 .../juneau/http/header/BasicEntityTagHeader.java   |   6 +-
 .../org/apache/juneau/http/header/BasicHeader.java |   4 +-
 .../juneau/http/header/BasicIntegerHeader.java     |   6 +-
 .../apache/juneau/http/header/BasicLongHeader.java |   6 +-
 .../http/header/BasicMediaRangeArrayHeader.java    |   4 +-
 .../juneau/http/header/BasicMediaTypeHeader.java   |   4 +-
 .../juneau/http/header/BasicStringHeader.java      |   4 +-
 .../http/header/BasicStringRangeArrayHeader.java   |   6 +-
 .../apache/juneau/http/header/BasicUriHeader.java  |   6 +-
 .../apache/juneau/http/header/CacheControl.java    |   4 +-
 .../apache/juneau/http/header/ClientVersion.java   |   6 +-
 .../org/apache/juneau/http/header/Connection.java  |   4 +-
 .../juneau/http/header/ContentDisposition.java     |   6 +-
 .../apache/juneau/http/header/ContentEncoding.java |   4 +-
 .../apache/juneau/http/header/ContentLanguage.java |   6 +-
 .../apache/juneau/http/header/ContentLength.java   |   6 +-
 .../apache/juneau/http/header/ContentLocation.java |   6 +-
 .../apache/juneau/http/header/ContentRange.java    |   4 +-
 .../org/apache/juneau/http/header/ContentType.java |   6 +-
 .../java/org/apache/juneau/http/header/Date.java   |   6 +-
 .../java/org/apache/juneau/http/header/Debug.java  |   6 +-
 .../java/org/apache/juneau/http/header/ETag.java   |   6 +-
 .../org/apache/juneau/http/header/EntityTag.java   |   2 +-
 .../java/org/apache/juneau/http/header/Expect.java |   4 +-
 .../org/apache/juneau/http/header/Expires.java     |   6 +-
 .../org/apache/juneau/http/header/Forwarded.java   |   4 +-
 .../java/org/apache/juneau/http/header/From.java   |   4 +-
 .../java/org/apache/juneau/http/header/Host.java   |   4 +-
 .../org/apache/juneau/http/header/IfMatch.java     |   6 +-
 .../apache/juneau/http/header/IfModifiedSince.java |   6 +-
 .../org/apache/juneau/http/header/IfNoneMatch.java |   6 +-
 .../org/apache/juneau/http/header/IfRange.java     |   8 +-
 .../juneau/http/header/IfUnmodifiedSince.java      |   6 +-
 .../apache/juneau/http/header/LastModified.java    |   6 +-
 .../org/apache/juneau/http/header/Location.java    |   6 +-
 .../org/apache/juneau/http/header/MaxForwards.java |   6 +-
 .../org/apache/juneau/http/header/NoTrace.java     |   6 +-
 .../java/org/apache/juneau/http/header/Origin.java |   4 +-
 .../java/org/apache/juneau/http/header/Pragma.java |   4 +-
 .../juneau/http/header/ProxyAuthenticate.java      |   4 +-
 .../juneau/http/header/ProxyAuthorization.java     |   4 +-
 .../java/org/apache/juneau/http/header/Range.java  |   4 +-
 .../org/apache/juneau/http/header/Referer.java     |   6 +-
 .../org/apache/juneau/http/header/RetryAfter.java  |   8 +-
 .../juneau/http/header/SerializedHeader.java       |   8 +-
 .../java/org/apache/juneau/http/header/Server.java |   4 +-
 .../java/org/apache/juneau/http/header/TE.java     |   6 +-
 .../java/org/apache/juneau/http/header/Thrown.java |   4 +-
 .../org/apache/juneau/http/header/Trailer.java     |   4 +-
 .../juneau/http/header/TransferEncoding.java       |   4 +-
 .../org/apache/juneau/http/header/Upgrade.java     |   6 +-
 .../org/apache/juneau/http/header/UserAgent.java   |   4 +-
 .../java/org/apache/juneau/http/header/Vary.java   |   4 +-
 .../java/org/apache/juneau/http/header/Via.java    |   6 +-
 .../org/apache/juneau/http/header/Warning.java     |   4 +-
 .../apache/juneau/http/header/WwwAuthenticate.java |   4 +-
 .../apache/juneau/http/part/BasicBooleanPart.java  |   4 +-
 .../apache/juneau/http/part/BasicCsvArrayPart.java |   4 +-
 .../org/apache/juneau/http/part/BasicDatePart.java |   4 +-
 .../apache/juneau/http/part/BasicIntegerPart.java  |   4 +-
 .../org/apache/juneau/http/part/BasicLongPart.java |   4 +-
 .../org/apache/juneau/http/part/BasicPart.java     |   4 +-
 .../apache/juneau/http/part/BasicStringPart.java   |   4 +-
 .../org/apache/juneau/http/part/BasicUriPart.java  |   4 +-
 .../org/apache/juneau/internal/ArrayBuilder.java   |   2 +-
 .../org/apache/juneau/mstat/MethodExecStats.java   |   2 +-
 .../java/org/apache/juneau/mstat/ThrownStats.java  |   2 +-
 .../java/org/apache/juneau/mstat/ThrownStore.java  |   2 +-
 .../apache/juneau/parser/ParserSessionArgs.java    |   2 +-
 .../juneau/serializer/SerializerSessionArgs.java   |   2 +-
 .../main/java/org/apache/juneau/utils/Tuple2.java  |   2 +-
 .../main/java/org/apache/juneau/utils/Tuple3.java  |   2 +-
 .../main/java/org/apache/juneau/utils/Tuple4.java  |   2 +-
 .../main/java/org/apache/juneau/utils/Tuple5.java  |   2 +-
 ...erializers.html => 06.HttpPartSerializers.html} |   0
 ...ttpPartParsers.html => 07.HttpPartParsers.html} |   0
 ...html => 08.MarshallConfigurableProperties.html} |   0
 ...ations.html => 09.ConfigurableAnnotations.html} |   0
 .../{09.OMap.html => 10.OMap.html}                 |   0
 .../{10.Groups.html => 11.Groups.html}             |   0
 ...12.ContextsBuildersSessionsPropertyStores.html} |   0
 .../{12.Transforms.html => 13.Transforms.html}     |   0
 .../01.PojoSwaps.html                              |   0
 .../02.DefaultPojoSwaps.html                       |   0
 .../03.AutoPojoSwaps.html                          |   0
 .../04.PerMediaTypePojoSwaps.html                  |   0
 .../05.OneWayPojoSwaps.html                        |   0
 .../06.SwapAnnotation.html                         |   0
 .../07.TemplatedSwaps.html                         |   0
 .../08.SurrogateClasses.html                       |   0
 ....html => 14.DynamicallyAppliedAnnotations.html} |   0
 ...nDictionaries.html => 15.BeanDictionaries.html} |   0
 .../01.BeanSubTypes.html                           |   0
 .../{15.VirtualBeans.html => 16.VirtualBeans.html} |   0
 .../{16.Recursion.html => 17.Recursion.html}       |   0
 ...odels.html => 18.ParsingIntoGenericModels.html} |   0
 ...reams.html => 19.ReadingContinuousStreams.html} |   0
 ...arshallingUris.html => 20.MarshallingUris.html} |   0
 ...onComparison.html => 21.JacksonComparison.html} |   0
 ....PojoCategories.html => 22.PojoCategories.html} |   0
 .../{22.Assertions.html => 23.Assertions.html}     |   0
 .../{22.JsonDetails.html => 24.JsonDetails.html}   |   0
 .../01.JsonMethodology.html                        |   0
 .../02.JsonSerializers.html                        |   0
 .../03.SimplifiedJson.html                         |   0
 .../04.JsonParsers.html                            |   0
 .../05.JsonAnnotation.html                         |   0
 .../06.JsonSchema.html                             |   0
 .../{23.XmlDetails.html => 25.XmlDetails.html}     |   0
 .../01.XmlMethodology.html                         |   0
 .../02.XmlSerializers.html                         |   0
 .../03.XmlParsers.html                             |   0
 .../04.XmlBeanTypeNameAnnotation.html              |   0
 .../05.XmlChildNameAnnotation.html                 |   0
 .../06.XmlFormatAnnotation.html                    |   0
 .../07.XmlNamespaces.html                          |   0
 .../{24.HtmlDetails.html => 26.HtmlDetails.html}   |   0
 .../01.HtmlMethodology.html                        |   0
 .../02.HtmlSerializers.html                        |   0
 .../03.HtmlParsers.html                            |   0
 .../04.HtmlAnnotation.html                         |   0
 .../05.HtmlRenderAnnotation.html                   |   0
 .../06.HtmlDocSerializer.html                      |   0
 .../07.BasicHtmlDocTemplate.html                   |   0
 .../08.HtmlCustomTemplates.html                    |   0
 .../09.HtmlSchema.html                             |   0
 .../{25.UonDetails.html => 27.UonDetails.html}     |   0
 .../01.UonMethodology.html                         |   0
 .../02.UonSerializers.html                         |   0
 .../03.UonParsers.html                             |   0
 ...dingDetails.html => 28.UrlEncodingDetails.html} |   0
 .../01.UrlEncMethodology.html                      |   0
 .../02.UrlEncSerializers.html                      |   0
 .../03.UrlEncParsers.html                          |   0
 .../04.UrlEncodingAnnotation.html                  |   0
 ....MsgPackDetails.html => 29.MsgPackDetails.html} |   0
 .../01.MsgPackSerializers.html                     |   0
 .../02.MsgPackParsers.html                         |   0
 ....OpenApiDetails.html => 30.OpenApiDetails.html} |   0
 .../01.OpenApiMethodology.html                     |   0
 .../02.OpenApiSerializers.html                     |   0
 .../03.OpenApiParsers.html                         |   0
 ...anguage.html => 31.SimpleVariableLanguage.html} |   0
 .../01.SvlVariables.html                           |   0
 .../02.VarResolvers.html                           |   0
 .../03.DefaultVarResolver.html                     |   0
 .../04.SvlOtherNotes.html                          |   0
 ...30.BestPractices.html => 32.BestPractices.html} |   0
 juneau-doc/src/main/javadoc/overview.html          | 654 +++++++++++++--------
 juneau-doc/src/main/javadoc/resources/docs.txt     |   4 +-
 .../src/main/javadoc/resources/fragments/toc.html  |   2 +
 .../assertion/FluentResponseBodyAssertion.java     |  32 +-
 .../assertion/FluentResponseHeaderAssertion.java   |  32 +-
 .../FluentResponseStatusLineAssertion.java         |  34 +-
 .../apache/juneau/rest/BasicNamedAttribute.java    |   4 +-
 .../assertions/FluentProtocolVersionAssertion.java |  32 +-
 .../assertions/FluentRequestBodyAssertion.java     |  32 +-
 .../FluentRequestFormParamAssertion.java           |  27 +-
 .../assertions/FluentRequestHeaderAssertion.java   |  27 +-
 .../assertions/FluentRequestLineAssertion.java     |  32 +-
 .../FluentRequestQueryParamAssertion.java          |  27 +-
 220 files changed, 1596 insertions(+), 768 deletions(-)

diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/UriContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/UriContext.java
index 2a90a0f..c18d3a0 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/UriContext.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/UriContext.java
@@ -52,7 +52,7 @@ public class UriContext {
 	private String aContextRoot, rContextRoot, aServletPath, rResource, aPathInfo, rPath;
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param authority
 	 * 	The authority portion of URL (e.g. <js>"http://hostname:port"</js>)
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/UriResolver.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/UriResolver.java
index a9b7b4a..df4ab3a 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/UriResolver.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/UriResolver.java
@@ -56,7 +56,7 @@ public class UriResolver {
 	private final String authority, contextRoot, servletPath, pathInfo, parentPath;
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param resolution Rule on how URIs should be resolved.
 	 * @param relativity Rule on what relative URIs are relative to.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Value.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Value.java
index d982e9a..3d55c32 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Value.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Value.java
@@ -27,7 +27,7 @@ import org.apache.juneau.reflect.*;
 public class Value<T> {
 
 	/**
-	 * Creator.
+	 * Static creator.
 	 *
 	 * @param object The object being wrapped.
 	 * @return A new {@link Value} object.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Version.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Version.java
index 2ff38de..b96b82b 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Version.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Version.java
@@ -29,7 +29,7 @@ public class Version implements Comparable<Version> {
 	private int[] parts;
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	A string of the form <js>"#.#..."</js> where there can be any number of parts.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/AnyAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/AnyAssertion.java
index 2d5dd1a..ff89586 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/AnyAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/AnyAssertion.java
@@ -21,8 +21,25 @@ import org.apache.juneau.serializer.*;
 /**
  * Used for assertion calls against generic POJOs.
  *
- * <ul>
- * 	<li>Test methods:
+ * <p>
+ * Extends from {@link ObjectAssertion} allowing you to perform basic assertions, but adds several transform
+ * methods to convert to more-specific assertion types.
+ *
+ * <h5 class='section'>Example:</h5>
+ * <p class='bcode w800'>
+ * 	<jk>import static</jk> org.apache.juneau.assertions.Assertions.*;
+ *
+ * 	List&lt;MyBean&gt; <jv>listOfBeans</jv> = ...;
+ * 	<jsm>assertList</jsm>(<jv>listOfBeans</jv>)
+ * 		.item(1)  <jc>// Returns an AnyAssertion.</jc>
+ * 		.asBean()  <jc>// Transforms to BeanAssertion.</jc>
+ * 			.property(<js>"foo"</js>)  <jc>// Returns an AnyAssertion.</jc>
+ * 			.asString()  <jc>// Transforms to StringAssertion.</jc>
+ * 				.is(<js>"bar"</js>);  <jc>// Performs test.</jc>
+ * </p>
+ *
+ *
+ * <h5 class='topic'>Test Methods</h5>
  * 	<ul>
  * 		<li class='jm'>{@link FluentObjectAssertion#exists()}
  * 		<li class='jm'>{@link FluentObjectAssertion#is(Object)}
@@ -41,7 +58,7 @@ import org.apache.juneau.serializer.*;
  * 		<li class='jm'>{@link FluentObjectAssertion#isType(Class)}
  * 		<li class='jm'>{@link FluentObjectAssertion#isExactType(Class)}
  * 	</ul>
- * 	<li>Transform methods:
+ * <h5 class='topic'>Transform Methods</h5>
  * 	<ul>
  * 		<li class='jm'>{@link FluentAnyAssertion#asArray(Class)}
  * 		<li class='jm'>{@link FluentAnyAssertion#asIntArray()}
@@ -77,7 +94,7 @@ import org.apache.juneau.serializer.*;
  * 		<li class='jm'>{@link FluentObjectAssertion#apply(Function)}
  * 		<li class='jm'>{@link FluentObjectAssertion#asAny()}
  *	</ul>
- * 	<li>Configuration methods:
+ * <h5 class='topic'>Configuration Methods</h5>
  * 	<ul>
  * 		<li class='jm'>{@link Assertion#msg(String, Object...)}
  * 		<li class='jm'>{@link Assertion#out(PrintStream)}
@@ -85,7 +102,6 @@ import org.apache.juneau.serializer.*;
  * 		<li class='jm'>{@link Assertion#stdout()}
  * 		<li class='jm'>{@link Assertion#throwable(Class)}
  * 	</ul>
- * </ul>
  *
  * <ul class='seealso'>
  * 	<li class='link'>{@doc Assertions}
@@ -101,19 +117,23 @@ public class AnyAssertion<T> extends FluentAnyAssertion<T,AnyAssertion<T>> {
 	//-----------------------------------------------------------------------------------------------------------------
 
 	/**
-	 * Creator.
+	 * Static creator.
 	 *
-	 * @param value The object being wrapped.
-	 * @return A new {@link AnyAssertion} object.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @return A new assertion object.
 	 */
 	public static <T> AnyAssertion<T> create(T value) {
 		return new AnyAssertion<>(value);
 	}
 
 	/**
-	 * Creator.
+	 * Constructor.
 	 *
-	 * @param value The object being wrapped.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
 	 */
 	public AnyAssertion(T value) {
 		super(value, null);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/ArrayAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/ArrayAssertion.java
index ba185ea..c1a1c34 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/ArrayAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/ArrayAssertion.java
@@ -97,19 +97,23 @@ public class ArrayAssertion<E> extends FluentArrayAssertion<E,ArrayAssertion<E>>
 	//-----------------------------------------------------------------------------------------------------------------
 
 	/**
-	 * Creator.
+	 * Static creator.
 	 *
-	 * @param value The object being wrapped.
-	 * @return A new {@link ArrayAssertion} object.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @return A new assertion object.
 	 */
 	public static <E> ArrayAssertion<E> create(E[] value) {
 		return new ArrayAssertion<>(value);
 	}
 
 	/**
-	 * Creator.
+	 * Constructor.
 	 *
-	 * @param value The object being wrapped.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
 	 */
 	public ArrayAssertion(E[] value) {
 		super(value, null);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/Assertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/Assertion.java
index ae9782f..9e3d2af 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/Assertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/Assertion.java
@@ -67,6 +67,7 @@ public class Assertion {
 
 	/**
 	 * Constructor used when this assertion is being created from within another assertion.
+	 *
 	 * @param creator The creator of this assertion.
 	 */
 	protected Assertion(Assertion creator) {
@@ -83,11 +84,21 @@ public class Assertion {
 	//-----------------------------------------------------------------------------------------------------------------
 
 	/**
-	 * Allows to to specify the assertion failure message.
+	 * Allows you to override the assertion failure message.
 	 *
 	 * <p>
 	 * String can contain <js>"{msg}"</js> to represent the original message.
 	 *
+	 * <h5 class='section'>Example:</h5>
+	 * <p class='bcode w800'>
+	 * 	<jk>import static</jk> org.apache.juneau.assertions.Assertions.*;
+	 *
+	 *	<jc>// Throws an assertion with a custom message instead of the default "Value was null."</jc>
+	 * 	<jsm>assertString</jsm>(<jv>myString</jv>)
+	 * 		.msg(<js>"My string was bad:  {msg}"</js>)
+	 * 		.isNotNull();
+	 * </p>
+	 *
 	 * @param msg The assertion failure message.
 	 * @param args Optional message arguments.
 	 * @return This object (for method chaining).
@@ -100,7 +111,7 @@ public class Assertion {
 	}
 
 	/**
-	 * If an error occurs, send the error message to STDOUT.
+	 * If an error occurs, send the error message to STDOUT instead of STDERR.
 	 *
 	 * @return This object (for method chaining).
 	 */
@@ -110,9 +121,11 @@ public class Assertion {
 	}
 
 	/**
-	 * If an error occurs, send the error message to the specified stream.
+	 * If an error occurs, send the error message to the specified stream instead of STDERR.
 	 *
-	 * @param value The output stream.  Can be <jk>null</jk>.
+	 * @param value
+	 * 	The output stream.
+	 * 	Can be <jk>null</jk> to suppress output.
 	 * @return This object (for method chaining).
 	 */
 	@FluentSetter
@@ -122,7 +135,10 @@ public class Assertion {
 	}
 
 	/**
-	 * Suppresses output.
+	 * Suppresses output to STDERR.
+	 *
+	 * <p>
+	 * This is the equivalent to calling <c>out(<jk>null</jk>)</c>.
 	 *
 	 * @return This object (for method chaining).
 	 */
@@ -132,7 +148,27 @@ public class Assertion {
 	}
 
 	/**
-	 * If an error occurs, throw this exception when {@link #error(String, Object...)} is called.
+	 * If an error occurs, throw this exception instead of the standard {@link AssertionError}.
+	 *
+	 * <p>
+	 * The throwable class must have a public constructor that takes in any of the following parameters:
+	 * <ul>
+	 * 	<li>{@link Throwable} - The caused-by exception (if there is one).
+	 * 	<li>{@link String} - The assertion failure message.
+	 * </ul>
+	 *
+	 * <p>
+	 * If the throwable cannot be instantiated, a {@link RuntimeException} is thrown instead.
+	 *
+	 * <h5 class='section'>Example:</h5>
+	 * <p class='bcode w800'>
+	 * 	<jk>import static</jk> org.apache.juneau.assertions.Assertions.*;
+	 *
+	 *	<jc>// Throws a BadRequest instead of an AssertionError if the string is null.</jc>
+	 * 	<jsm>assertString</jsm>(<jv>myString</jv>)
+	 * 		.throwable(BadRequest.<jk>class</jk>)
+	 * 		.isNotNull();
+	 * </p>
 	 *
 	 * @param value The new value for this setting.
 	 * @return This object (for method chaining).
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/BeanAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/BeanAssertion.java
index 64444e3..f7d8844 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/BeanAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/BeanAssertion.java
@@ -85,19 +85,23 @@ public class BeanAssertion<T> extends FluentBeanAssertion<T,BeanAssertion<T>> {
 	//-----------------------------------------------------------------------------------------------------------------
 
 	/**
-	 * Creator.
+	 * Static creator.
 	 *
-	 * @param value The object being wrapped.
-	 * @return A new {@link BeanAssertion} object.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @return A new assertion object.
 	 */
 	public static <T> BeanAssertion<T> create(T value) {
 		return new BeanAssertion<>(value);
 	}
 
 	/**
-	 * Creator.
+	 * Constructor.
 	 *
-	 * @param value The object being wrapped.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
 	 */
 	public BeanAssertion(T value) {
 		super(value, null);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/BeanListAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/BeanListAssertion.java
index 7b9a665..5003138 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/BeanListAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/BeanListAssertion.java
@@ -99,19 +99,23 @@ public class BeanListAssertion<E> extends FluentBeanListAssertion<E,BeanListAsse
 	//-----------------------------------------------------------------------------------------------------------------
 
 	/**
-	 * Creator.
+	 * Static creator.
 	 *
-	 * @param value The object being wrapped.
-	 * @return A new {@link BeanListAssertion} object.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @return A new assertion object.
 	 */
 	public static <E> BeanListAssertion<E> create(List<E> value) {
 		return new BeanListAssertion<>(value);
 	}
 
 	/**
-	 * Creator.
+	 * Constructor.
 	 *
-	 * @param value The object being wrapped.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
 	 */
 	public BeanListAssertion(List<E> value) {
 		super(value, null);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/BooleanAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/BooleanAssertion.java
index 073aef8..6a26924 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/BooleanAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/BooleanAssertion.java
@@ -79,19 +79,23 @@ public class BooleanAssertion extends FluentBooleanAssertion<BooleanAssertion> {
 	//-----------------------------------------------------------------------------------------------------------------
 
 	/**
-	 * Creator.
+	 * Static creator.
 	 *
-	 * @param value The object being wrapped.
-	 * @return A new {@link BooleanAssertion} object.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @return A new assertion object.
 	 */
 	public static BooleanAssertion create(Boolean value) {
 		return new BooleanAssertion(value);
 	}
 
 	/**
-	 * Creator.
+	 * Constructor.
 	 *
-	 * @param value The object being wrapped.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
 	 */
 	public BooleanAssertion(Boolean value) {
 		super(value, null);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/ByteArrayAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/ByteArrayAssertion.java
index 2bbc0bc..d81a7e8 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/ByteArrayAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/ByteArrayAssertion.java
@@ -95,19 +95,23 @@ public class ByteArrayAssertion extends FluentByteArrayAssertion<ByteArrayAssert
 	//-----------------------------------------------------------------------------------------------------------------
 
 	/**
-	 * Creator.
+	 * Static creator.
 	 *
-	 * @param value The contents being wrapped.
-	 * @return A new {@link ByteArrayAssertion} object.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @return A new assertion object.
 	 */
 	public static ByteArrayAssertion create(byte[] value) {
 		return new ByteArrayAssertion(value);
 	}
 
 	/**
-	 * Creator.
+	 * Constructor.
 	 *
-	 * @param value The contents being wrapped.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
 	 */
 	public ByteArrayAssertion(byte[] value) {
 		super(value, null);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/CollectionAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/CollectionAssertion.java
index c5893dc..b6a9e9c 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/CollectionAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/CollectionAssertion.java
@@ -90,19 +90,23 @@ public class CollectionAssertion<E> extends FluentCollectionAssertion<E,Collecti
 	//-----------------------------------------------------------------------------------------------------------------
 
 	/**
-	 * Creator.
+	 * Static creator.
 	 *
-	 * @param value The object being wrapped.
-	 * @return A new {@link CollectionAssertion} object.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @return A new assertion object.
 	 */
 	public static <E> CollectionAssertion<E> create(Collection<E> value) {
 		return new CollectionAssertion<>(value);
 	}
 
 	/**
-	 * Creator.
+	 * Constructor.
 	 *
-	 * @param value The object being wrapped.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
 	 */
 	public CollectionAssertion(Collection<E> value) {
 		super(value, null);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/ComparableAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/ComparableAssertion.java
index f945c44..27ecc16 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/ComparableAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/ComparableAssertion.java
@@ -79,19 +79,23 @@ public class ComparableAssertion<T extends Comparable<T>> extends FluentComparab
 	//-----------------------------------------------------------------------------------------------------------------
 
 	/**
-	 * Creator.
+	 * Static creator.
 	 *
-	 * @param value The object being wrapped.
-	 * @return A new {@link ComparableAssertion} object.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @return A new assertion object.
 	 */
 	public static <T extends Comparable<T>> ComparableAssertion<T> create(T value) {
 		return new ComparableAssertion<>(value);
 	}
 
 	/**
-	 * Creator.
+	 * Constructor.
 	 *
-	 * @param value The object being wrapped.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
 	 */
 	public ComparableAssertion(T value) {
 		super(value, null);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/DateAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/DateAssertion.java
index af6e2ed..0e00101 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/DateAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/DateAssertion.java
@@ -93,19 +93,23 @@ public class DateAssertion extends FluentDateAssertion<DateAssertion> {
 	//-----------------------------------------------------------------------------------------------------------------
 
 	/**
-	 * Creator.
+	 * Static creator.
 	 *
-	 * @param value The date being wrapped.
-	 * @return A new {@link DateAssertion} object.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @return A new assertion object.
 	 */
 	public static DateAssertion create(Date value) {
 		return new DateAssertion(value);
 	}
 
 	/**
-	 * Creator.
+	 * Constructor.
 	 *
-	 * @param value The date being wrapped.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
 	 */
 	public DateAssertion(Date value) {
 		super(value, null);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentAnyAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentAnyAssertion.java
index bee9d92..7d36931 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentAnyAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentAnyAssertion.java
@@ -26,7 +26,25 @@ import org.apache.juneau.reflect.*;
 import org.apache.juneau.serializer.*;
 
 /**
- * An assertion against generic POJOs that can be used to convert them into specialized assertions.
+ * Used for assertion calls against generic POJOs.
+ *
+ * <p>
+ * Extends from {@link ObjectAssertion} allowing you to perform basic assertions, but adds several transform
+ * methods to convert to more-specific assertion types.
+ *
+ * <h5 class='section'>Example:</h5>
+ * <p class='bcode w800'>
+ * 	<jk>import static</jk> org.apache.juneau.assertions.Assertions.*;
+ *
+ * 	List&lt;MyBean&gt; <jv>listOfBeans</jv> = ...;
+ * 	FluentAnyAssertion<
+ * 	<jsm>assertList</jsm>(<jv>listOfBeans</jv>)
+ * 		.item(1)  <jc>// Returns an AnyAssertion.</jc>
+ * 		.asBean()  <jc>// Transforms to BeanAssertion.</jc>
+ * 			.property(<js>"foo"</js>)  <jc>// Returns an AnyAssertion.</jc>
+ * 			.asString()  <jc>// Transforms to StringAssertion.</jc>
+ * 				.is(<js>"bar"</js>);  <jc>// Performs test.</jc>
+ * </p>
  *
  * <ul>
  * 	<li>Test methods:
@@ -115,19 +133,34 @@ public class FluentAnyAssertion<T,R> extends FluentObjectAssertion<T,R> {
 	/**
 	 * Constructor.
 	 *
-	 * @param value The object being tested.
-	 * @param returns The object to return after the test.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
 	public FluentAnyAssertion(T value, R returns) {
 		this(null, value, returns);
 	}
 
 	/**
-	 * Constructor.
+	 * Chained constructor.
+	 *
+	 * <p>
+	 * Used when transforming one assertion into another so that the assertion config can be used by the new assertion.
 	 *
-	 * @param creator The assertion that created this assertion.
-	 * @param value The object being tested.
-	 * @param returns The object to return after the test.
+	 * @param creator
+	 * 	The assertion that created this assertion.
+	 * 	<br>Should be <jk>null</jk> if this is the top-level assertion.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
 	public FluentAnyAssertion(Assertion creator, T value, R returns) {
 		super(creator, value, returns);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentArrayAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentArrayAssertion.java
index 3f551d8..b8b648a 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentArrayAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentArrayAssertion.java
@@ -111,22 +111,37 @@ public class FluentArrayAssertion<E,R> extends FluentObjectAssertion<E[],R> {
 	/**
 	 * Constructor.
 	 *
-	 * @param contents The byte array being tested.
-	 * @param returns The object to return after the test.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
-	public FluentArrayAssertion(E[] contents, R returns) {
-		this(null, contents, returns);
+	public FluentArrayAssertion(E[] value, R returns) {
+		this(null, value, returns);
 	}
 
 	/**
-	 * Constructor.
+	 * Chained constructor.
+	 *
+	 * <p>
+	 * Used when transforming one assertion into another so that the assertion config can be used by the new assertion.
 	 *
-	 * @param creator The assertion that created this assertion.
-	 * @param contents The byte array being tested.
-	 * @param returns The object to return after the test.
+	 * @param creator
+	 * 	The assertion that created this assertion.
+	 * 	<br>Should be <jk>null</jk> if this is the top-level assertion.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
-	public FluentArrayAssertion(Assertion creator, E[] contents, R returns) {
-		super(creator, contents, returns);
+	public FluentArrayAssertion(Assertion creator, E[] value, R returns) {
+		super(creator, value, returns);
 	}
 
 	//-----------------------------------------------------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentAssertion.java
index 4552fd4..0ae66fc 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentAssertion.java
@@ -85,8 +85,13 @@ public abstract class FluentAssertion<R> extends Assertion {
 	/**
 	 * Constructor.
 	 *
-	 * @param creator The assertion that created this assertion.
-	 * @param returns The object to return after the test.
+	 * @param creator
+	 * 	The assertion that created this assertion.
+	 * 	<br>Should be <jk>null</jk> if this is the top-level assertion.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
 	protected FluentAssertion(Assertion creator, R returns) {
 		super(creator);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentBeanAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentBeanAssertion.java
index e05a4c3..d75a5a6 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentBeanAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentBeanAssertion.java
@@ -85,19 +85,34 @@ public class FluentBeanAssertion<T,R> extends FluentObjectAssertion<T,R> {
 	/**
 	 * Constructor.
 	 *
-	 * @param value The object being tested.
-	 * @param returns The object to return after the test.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
 	public FluentBeanAssertion(T value, R returns) {
 		this(null, value, returns);
 	}
 
 	/**
-	 * Constructor.
+	 * Chained constructor.
+	 *
+	 * <p>
+	 * Used when transforming one assertion into another so that the assertion config can be used by the new assertion.
 	 *
-	 * @param creator The assertion that created this assertion.
-	 * @param value The object being tested.
-	 * @param returns The object to return after the test.
+	 * @param creator
+	 * 	The assertion that created this assertion.
+	 * 	<br>Should be <jk>null</jk> if this is the top-level assertion.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
 	public FluentBeanAssertion(Assertion creator, T value, R returns) {
 		super(creator, value, returns);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentBeanListAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentBeanListAssertion.java
index a4c51d1..8492ea9 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentBeanListAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentBeanListAssertion.java
@@ -97,22 +97,37 @@ public class FluentBeanListAssertion<E,R> extends FluentListAssertion<E,R> {
 	/**
 	 * Constructor.
 	 *
-	 * @param contents The byte array being tested.
-	 * @param returns The object to return after the test.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
-	public FluentBeanListAssertion(List<E> contents, R returns) {
-		this(null, contents, returns);
+	public FluentBeanListAssertion(List<E> value, R returns) {
+		this(null, value, returns);
 	}
 
 	/**
-	 * Constructor.
+	 * Chained constructor.
+	 *
+	 * <p>
+	 * Used when transforming one assertion into another so that the assertion config can be used by the new assertion.
 	 *
-	 * @param creator The assertion that created this assertion.
-	 * @param contents The byte array being tested.
-	 * @param returns The object to return after the test.
+	 * @param creator
+	 * 	The assertion that created this assertion.
+	 * 	<br>Should be <jk>null</jk> if this is the top-level assertion.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
-	public FluentBeanListAssertion(Assertion creator, List<E> contents, R returns) {
-		super(creator, contents, returns);
+	public FluentBeanListAssertion(Assertion creator, List<E> value, R returns) {
+		super(creator, value, returns);
 	}
 
 	//-----------------------------------------------------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentBooleanAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentBooleanAssertion.java
index 560fa89..b00877a 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentBooleanAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentBooleanAssertion.java
@@ -90,19 +90,34 @@ public class FluentBooleanAssertion<R> extends FluentComparableAssertion<Boolean
 	/**
 	 * Constructor.
 	 *
-	 * @param value The value being tested.
-	 * @param returns The object to return after the test.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
 	public FluentBooleanAssertion(Boolean value, R returns) {
 		this(null, value, returns);
 	}
 
 	/**
-	 * Constructor.
+	 * Chained constructor.
+	 *
+	 * <p>
+	 * Used when transforming one assertion into another so that the assertion config can be used by the new assertion.
 	 *
-	 * @param creator The assertion that created this assertion.
-	 * @param value The value being tested.
-	 * @param returns The object to return after the test.
+	 * @param creator
+	 * 	The assertion that created this assertion.
+	 * 	<br>Should be <jk>null</jk> if this is the top-level assertion.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
 	public FluentBooleanAssertion(Assertion creator, Boolean value, R returns) {
 		super(creator, value, returns);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentByteArrayAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentByteArrayAssertion.java
index 480355f..f45e969 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentByteArrayAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentByteArrayAssertion.java
@@ -95,22 +95,37 @@ public class FluentByteArrayAssertion<R> extends FluentPrimitiveArrayAssertion<B
 	/**
 	 * Constructor.
 	 *
-	 * @param contents The byte array being tested.
-	 * @param returns The object to return after the test.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
-	public FluentByteArrayAssertion(byte[] contents, R returns) {
-		this(null, contents, returns);
+	public FluentByteArrayAssertion(byte[] value, R returns) {
+		this(null, value, returns);
 	}
 
 	/**
-	 * Constructor.
+	 * Chained constructor.
+	 *
+	 * <p>
+	 * Used when transforming one assertion into another so that the assertion config can be used by the new assertion.
 	 *
-	 * @param creator The assertion that created this assertion.
-	 * @param contents The byte array being tested.
-	 * @param returns The object to return after the test.
+	 * @param creator
+	 * 	The assertion that created this assertion.
+	 * 	<br>Should be <jk>null</jk> if this is the top-level assertion.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
-	public FluentByteArrayAssertion(Assertion creator, byte[] contents, R returns) {
-		super(creator, contents, returns);
+	public FluentByteArrayAssertion(Assertion creator, byte[] value, R returns) {
+		super(creator, value, returns);
 	}
 
 	//-----------------------------------------------------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentCollectionAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentCollectionAssertion.java
index 066bcdc..789b056 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentCollectionAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentCollectionAssertion.java
@@ -101,22 +101,37 @@ public class FluentCollectionAssertion<E,R> extends FluentObjectAssertion<Collec
 	/**
 	 * Constructor.
 	 *
-	 * @param contents The byte array being tested.
-	 * @param returns The object to return after the test.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
-	public FluentCollectionAssertion(Collection<E> contents, R returns) {
-		this(null, contents, returns);
+	public FluentCollectionAssertion(Collection<E> value, R returns) {
+		this(null, value, returns);
 	}
 
 	/**
-	 * Constructor.
+	 * Chained constructor.
+	 *
+	 * <p>
+	 * Used when transforming one assertion into another so that the assertion config can be used by the new assertion.
 	 *
-	 * @param creator The assertion that created this assertion.
-	 * @param contents The byte array being tested.
-	 * @param returns The object to return after the test.
+	 * @param creator
+	 * 	The assertion that created this assertion.
+	 * 	<br>Should be <jk>null</jk> if this is the top-level assertion.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
-	public FluentCollectionAssertion(Assertion creator, Collection<E> contents, R returns) {
-		super(creator, contents, returns);
+	public FluentCollectionAssertion(Assertion creator, Collection<E> value, R returns) {
+		super(creator, value, returns);
 	}
 
 	//-----------------------------------------------------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentComparableAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentComparableAssertion.java
index 36492f5..39f3938 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentComparableAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentComparableAssertion.java
@@ -93,19 +93,34 @@ public class FluentComparableAssertion<T extends Comparable,R> extends FluentObj
 	/**
 	 * Constructor.
 	 *
-	 * @param value The value being tested.
-	 * @param returns The object to return after the test.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
 	public FluentComparableAssertion(T value, R returns) {
 		this(null, value, returns);
 	}
 
 	/**
-	 * Constructor.
+	 * Chained constructor.
+	 *
+	 * <p>
+	 * Used when transforming one assertion into another so that the assertion config can be used by the new assertion.
 	 *
-	 * @param creator The assertion that created this assertion.
-	 * @param value The value being tested.
-	 * @param returns The object to return after the test.
+	 * @param creator
+	 * 	The assertion that created this assertion.
+	 * 	<br>Should be <jk>null</jk> if this is the top-level assertion.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
 	public FluentComparableAssertion(Assertion creator, T value, R returns) {
 		super(creator, value, returns);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentDateAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentDateAssertion.java
index ff58b99..214d6c4 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentDateAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentDateAssertion.java
@@ -110,19 +110,34 @@ public class FluentDateAssertion<R> extends FluentComparableAssertion<Date,R> {
 	/**
 	 * Constructor.
 	 *
-	 * @param value The value being tested.
-	 * @param returns The object to return after the test.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
 	public FluentDateAssertion(Date value, R returns) {
 		this(null, value, returns);
 	}
 
 	/**
-	 * Constructor.
+	 * Chained constructor.
+	 *
+	 * <p>
+	 * Used when transforming one assertion into another so that the assertion config can be used by the new assertion.
 	 *
-	 * @param creator The assertion that created this assertion.
-	 * @param value The value being tested.
-	 * @param returns The object to return after the test.
+	 * @param creator
+	 * 	The assertion that created this assertion.
+	 * 	<br>Should be <jk>null</jk> if this is the top-level assertion.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
 	public FluentDateAssertion(Assertion creator, Date value, R returns) {
 		super(creator, value, returns);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentIntegerAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentIntegerAssertion.java
index ee24bd6..b5c2120 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentIntegerAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentIntegerAssertion.java
@@ -91,19 +91,34 @@ public class FluentIntegerAssertion<R> extends FluentComparableAssertion<Integer
 	/**
 	 * Constructor.
 	 *
-	 * @param value The value being tested.
-	 * @param returns The object to return after the test.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
 	public FluentIntegerAssertion(Integer value, R returns) {
 		this(null, value, returns);
 	}
 
 	/**
-	 * Constructor.
+	 * Chained constructor.
+	 *
+	 * <p>
+	 * Used when transforming one assertion into another so that the assertion config can be used by the new assertion.
 	 *
-	 * @param creator The assertion that created this assertion.
-	 * @param value The value being tested.
-	 * @param returns The object to return after the test.
+	 * @param creator
+	 * 	The assertion that created this assertion.
+	 * 	<br>Should be <jk>null</jk> if this is the top-level assertion.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
 	public FluentIntegerAssertion(Assertion creator, Integer value, R returns) {
 		super(creator, value, returns);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentListAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentListAssertion.java
index c19fbda..3892f0f 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentListAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentListAssertion.java
@@ -100,22 +100,37 @@ public class FluentListAssertion<E,R> extends FluentCollectionAssertion<E,R> {
 	/**
 	 * Constructor.
 	 *
-	 * @param contents The byte array being tested.
-	 * @param returns The object to return after the test.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
-	public FluentListAssertion(List<E> contents, R returns) {
-		this(null, contents, returns);
+	public FluentListAssertion(List<E> value, R returns) {
+		this(null, value, returns);
 	}
 
 	/**
-	 * Constructor.
+	 * Chained constructor.
+	 *
+	 * <p>
+	 * Used when transforming one assertion into another so that the assertion config can be used by the new assertion.
 	 *
-	 * @param creator The assertion that created this assertion.
-	 * @param contents The byte array being tested.
-	 * @param returns The object to return after the test.
+	 * @param creator
+	 * 	The assertion that created this assertion.
+	 * 	<br>Should be <jk>null</jk> if this is the top-level assertion.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
-	public FluentListAssertion(Assertion creator, List<E> contents, R returns) {
-		super(creator, contents, returns);
+	public FluentListAssertion(Assertion creator, List<E> value, R returns) {
+		super(creator, value, returns);
 	}
 
 	//-----------------------------------------------------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentLongAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentLongAssertion.java
index 3816d7b..7a2725b 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentLongAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentLongAssertion.java
@@ -92,19 +92,34 @@ public class FluentLongAssertion<R> extends FluentComparableAssertion<Long,R> {
 	/**
 	 * Constructor.
 	 *
-	 * @param value The value being tested.
-	 * @param returns The object to return after the test.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
 	public FluentLongAssertion(Long value, R returns) {
 		this(null, value, returns);
 	}
 
 	/**
-	 * Constructor.
+	 * Chained constructor.
+	 *
+	 * <p>
+	 * Used when transforming one assertion into another so that the assertion config can be used by the new assertion.
 	 *
-	 * @param creator The assertion that created this assertion.
-	 * @param value The value being tested.
-	 * @param returns The object to return after the test.
+	 * @param creator
+	 * 	The assertion that created this assertion.
+	 * 	<br>Should be <jk>null</jk> if this is the top-level assertion.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
 	public FluentLongAssertion(Assertion creator, Long value, R returns) {
 		super(creator, value, returns);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentMapAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentMapAssertion.java
index e163040..0989833 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentMapAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentMapAssertion.java
@@ -102,22 +102,37 @@ public class FluentMapAssertion<K,V,R> extends FluentObjectAssertion<Map<K,V>,R>
 	/**
 	 * Constructor.
 	 *
-	 * @param contents The byte array being tested.
-	 * @param returns The object to return after the test.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
-	public FluentMapAssertion(Map<K,V> contents, R returns) {
-		this(null, contents, returns);
+	public FluentMapAssertion(Map<K,V> value, R returns) {
+		this(null, value, returns);
 	}
 
 	/**
-	 * Constructor.
+	 * Chained constructor.
+	 *
+	 * <p>
+	 * Used when transforming one assertion into another so that the assertion config can be used by the new assertion.
 	 *
-	 * @param creator The assertion that created this assertion.
-	 * @param contents The byte array being tested.
-	 * @param returns The object to return after the test.
+	 * @param creator
+	 * 	The assertion that created this assertion.
+	 * 	<br>Should be <jk>null</jk> if this is the top-level assertion.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
-	public FluentMapAssertion(Assertion creator, Map<K,V> contents, R returns) {
-		super(creator, contents, returns);
+	public FluentMapAssertion(Assertion creator, Map<K,V> value, R returns) {
+		super(creator, value, returns);
 	}
 
 	//-----------------------------------------------------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentObjectAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentObjectAssertion.java
index 092beb6..0aae762 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentObjectAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentObjectAssertion.java
@@ -111,19 +111,34 @@ public class FluentObjectAssertion<T,R> extends FluentAssertion<R> {
 	/**
 	 * Constructor.
 	 *
-	 * @param value The object being tested.
-	 * @param returns The object to return after the test.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
 	public FluentObjectAssertion(T value, R returns) {
 		this(null, value, returns);
 	}
 
 	/**
-	 * Constructor.
+	 * Chained constructor.
 	 *
-	 * @param creator The assertion that created this assertion.
-	 * @param value The object being tested.
-	 * @param returns The object to return after the test.
+	 * <p>
+	 * Used when transforming one assertion into another so that the assertion config can be used by the new assertion.
+	 *
+	 * @param creator
+	 * 	The assertion that created this assertion.
+	 * 	<br>Should be <jk>null</jk> if this is the top-level assertion.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
 	public FluentObjectAssertion(Assertion creator, T value, R returns) {
 		super(creator, returns);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentPrimitiveArrayAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentPrimitiveArrayAssertion.java
index d32a270..0b384c0 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentPrimitiveArrayAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentPrimitiveArrayAssertion.java
@@ -121,26 +121,41 @@ public class FluentPrimitiveArrayAssertion<E,T,R> extends FluentObjectAssertion<
 	/**
 	 * Constructor.
 	 *
-	 * @param contents The byte array being tested.
-	 * @param returns The object to return after the test.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
-	public FluentPrimitiveArrayAssertion(T contents, R returns) {
-		this(null, contents, returns);
+	public FluentPrimitiveArrayAssertion(T value, R returns) {
+		this(null, value, returns);
 	}
 
 	/**
-	 * Constructor.
+	 * Chained constructor.
+	 *
+	 * <p>
+	 * Used when transforming one assertion into another so that the assertion config can be used by the new assertion.
 	 *
-	 * @param creator The assertion that created this assertion.
-	 * @param contents The byte array being tested.
-	 * @param returns The object to return after the test.
+	 * @param creator
+	 * 	The assertion that created this assertion.
+	 * 	<br>Should be <jk>null</jk> if this is the top-level assertion.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
-	public FluentPrimitiveArrayAssertion(Assertion creator, T contents, R returns) {
-		super(creator, contents, returns);
-		if (contents != null) {
-			Class<?> c = contents.getClass();
+	public FluentPrimitiveArrayAssertion(Assertion creator, T value, R returns) {
+		super(creator, value, returns);
+		if (value != null) {
+			Class<?> c = value.getClass();
 			if (! (c.isArray() && c.getComponentType().isPrimitive()))
-				throw new BasicAssertionError(MSG_objectWasNotAnArray, contents.getClass());
+				throw new BasicAssertionError(MSG_objectWasNotAnArray, value.getClass());
 		}
 	}
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentStringAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentStringAssertion.java
index aeaff49..c9938c0 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentStringAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentStringAssertion.java
@@ -134,22 +134,37 @@ public class FluentStringAssertion<R> extends FluentObjectAssertion<String,R> {
 	/**
 	 * Constructor.
 	 *
-	 * @param text The text being tested.
-	 * @param returns The object to return after the test.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
-	public FluentStringAssertion(String text, R returns) {
-		this(null, text, returns);
+	public FluentStringAssertion(String value, R returns) {
+		this(null, value, returns);
 	}
 
 	/**
-	 * Constructor.
+	 * Chained constructor.
 	 *
-	 * @param creator The assertion that created this assertion.
-	 * @param text The text being tested.
-	 * @param returns The object to return after the test.
+	 * <p>
+	 * Used when transforming one assertion into another so that the assertion config can be used by the new assertion.
+	 *
+	 * @param creator
+	 * 	The assertion that created this assertion.
+	 * 	<br>Should be <jk>null</jk> if this is the top-level assertion.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
-	public FluentStringAssertion(Assertion creator, String text, R returns) {
-		super(creator, text, returns);
+	public FluentStringAssertion(Assertion creator, String value, R returns) {
+		super(creator, value, returns);
 	}
 
 	//-----------------------------------------------------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentStringListAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentStringListAssertion.java
index a19057a..f46511a 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentStringListAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentStringListAssertion.java
@@ -97,22 +97,37 @@ public class FluentStringListAssertion<R> extends FluentListAssertion<String,R>
 	/**
 	 * Constructor.
 	 *
-	 * @param contents The string list being tested.
-	 * @param returns The object to return after the test.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
-	public FluentStringListAssertion(List<String> contents, R returns) {
-		this(null, contents, returns);
+	public FluentStringListAssertion(List<String> value, R returns) {
+		this(null, value, returns);
 	}
 
 	/**
-	 * Constructor.
+	 * Chained constructor.
+	 *
+	 * <p>
+	 * Used when transforming one assertion into another so that the assertion config can be used by the new assertion.
 	 *
-	 * @param creator The assertion that created this assertion.
-	 * @param contents The string list being tested.
-	 * @param returns The object to return after the test.
+	 * @param creator
+	 * 	The assertion that created this assertion.
+	 * 	<br>Should be <jk>null</jk> if this is the top-level assertion.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
-	public FluentStringListAssertion(Assertion creator, List<String> contents, R returns) {
-		super(creator, contents, returns);
+	public FluentStringListAssertion(Assertion creator, List<String> value, R returns) {
+		super(creator, value, returns);
 	}
 
 	//-----------------------------------------------------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentThrowableAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentThrowableAssertion.java
index 4cf266b..ea3209e 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentThrowableAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentThrowableAssertion.java
@@ -96,19 +96,34 @@ public class FluentThrowableAssertion<T extends Throwable,R> extends FluentObjec
 	/**
 	 * Constructor.
 	 *
-	 * @param value The throwable being tested.
-	 * @param returns The object to return after the test.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
 	public FluentThrowableAssertion(T value, R returns) {
 		this(null, value, returns);
 	}
 
 	/**
-	 * Constructor.
+	 * Chained constructor.
+	 *
+	 * <p>
+	 * Used when transforming one assertion into another so that the assertion config can be used by the new assertion.
 	 *
-	 * @param creator The assertion that created this assertion.
-	 * @param value The throwable being tested.
-	 * @param returns The object to return after the test.
+	 * @param creator
+	 * 	The assertion that created this assertion.
+	 * 	<br>Should be <jk>null</jk> if this is the top-level assertion.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
 	public FluentThrowableAssertion(Assertion creator, T value, R returns) {
 		super(creator, value, returns);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentVersionAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentVersionAssertion.java
index d5600cf..830cbc1 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentVersionAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentVersionAssertion.java
@@ -95,19 +95,34 @@ public class FluentVersionAssertion<R> extends FluentComparableAssertion<Version
 	/**
 	 * Constructor.
 	 *
-	 * @param value The value being tested.
-	 * @param returns The object to return after the test.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
 	public FluentVersionAssertion(Version value, R returns) {
 		this(null, value, returns);
 	}
 
 	/**
-	 * Constructor.
+	 * Chained constructor.
+	 *
+	 * <p>
+	 * Used when transforming one assertion into another so that the assertion config can be used by the new assertion.
 	 *
-	 * @param creator The assertion that created this assertion.
-	 * @param value The value being tested.
-	 * @param returns The object to return after the test.
+	 * @param creator
+	 * 	The assertion that created this assertion.
+	 * 	<br>Should be <jk>null</jk> if this is the top-level assertion.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
 	public FluentVersionAssertion(Assertion creator, Version value, R returns) {
 		super(creator, value, returns);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentZonedDateTimeAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentZonedDateTimeAssertion.java
index 5bec132..d104459 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentZonedDateTimeAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentZonedDateTimeAssertion.java
@@ -107,19 +107,34 @@ public class FluentZonedDateTimeAssertion<R> extends FluentComparableAssertion<Z
 	/**
 	 * Constructor.
 	 *
-	 * @param value The value being tested.
-	 * @param returns The object to return after the test.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
 	public FluentZonedDateTimeAssertion(ZonedDateTime value, R returns) {
 		this(null, value, returns);
 	}
 
 	/**
-	 * Constructor.
+	 * Chained constructor.
+	 *
+	 * <p>
+	 * Used when transforming one assertion into another so that the assertion config can be used by the new assertion.
 	 *
-	 * @param creator The assertion that created this assertion.
-	 * @param value The value being tested.
-	 * @param returns The object to return after the test.
+	 * @param creator
+	 * 	The assertion that created this assertion.
+	 * 	<br>Should be <jk>null</jk> if this is the top-level assertion.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
 	public FluentZonedDateTimeAssertion(Assertion creator, ZonedDateTime value, R returns) {
 		super(creator, value, returns);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/IntegerAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/IntegerAssertion.java
index e5dc261..4e896d3 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/IntegerAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/IntegerAssertion.java
@@ -83,19 +83,23 @@ public class IntegerAssertion extends FluentIntegerAssertion<IntegerAssertion> {
 	//-----------------------------------------------------------------------------------------------------------------
 
 	/**
-	 * Creator.
+	 * Static creator.
 	 *
-	 * @param value The object being wrapped.
-	 * @return A new {@link IntegerAssertion} object.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @return A new assertion object.
 	 */
 	public static IntegerAssertion create(Integer value) {
 		return new IntegerAssertion(value);
 	}
 
 	/**
-	 * Creator.
+	 * Constructor.
 	 *
-	 * @param value The object being wrapped.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
 	 */
 	public IntegerAssertion(Integer value) {
 		super(value, null);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/ListAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/ListAssertion.java
index 4446ab2..1721951 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/ListAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/ListAssertion.java
@@ -95,19 +95,23 @@ public class ListAssertion<E> extends FluentListAssertion<E,ListAssertion<E>> {
 	//-----------------------------------------------------------------------------------------------------------------
 
 	/**
-	 * Creator.
+	 * Static creator.
 	 *
-	 * @param value The object being wrapped.
-	 * @return A new {@link ListAssertion} object.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @return A new assertion object.
 	 */
 	public static <E> ListAssertion<E> create(List<E> value) {
 		return new ListAssertion<>(value);
 	}
 
 	/**
-	 * Creator.
+	 * Constructor.
 	 *
-	 * @param value The object being wrapped.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
 	 */
 	public ListAssertion(List<E> value) {
 		super(value, null);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/LongAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/LongAssertion.java
index 044a52e..8ea5f1a 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/LongAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/LongAssertion.java
@@ -84,19 +84,23 @@ public class LongAssertion extends FluentLongAssertion<LongAssertion> {
 	//-----------------------------------------------------------------------------------------------------------------
 
 	/**
-	 * Creator.
+	 * Static creator.
 	 *
-	 * @param value The object being wrapped.
-	 * @return A new {@link LongAssertion} object.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @return A new assertion object.
 	 */
 	public static LongAssertion create(Long value) {
 		return new LongAssertion(value);
 	}
 
 	/**
-	 * Creator.
+	 * Constructor.
 	 *
-	 * @param value The object being wrapped.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
 	 */
 	public LongAssertion(Long value) {
 		super(value, null);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/MapAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/MapAssertion.java
index c80b227..be55f92 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/MapAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/MapAssertion.java
@@ -91,19 +91,23 @@ public class MapAssertion<K,V> extends FluentMapAssertion<K,V,MapAssertion<K,V>>
 	//-----------------------------------------------------------------------------------------------------------------
 
 	/**
-	 * Creator.
+	 * Static creator.
 	 *
-	 * @param value The object being wrapped.
-	 * @return A new {@link MapAssertion} object.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @return A new assertion object.
 	 */
 	public static <K,V> MapAssertion<K,V> create(Map<K,V> value) {
 		return new MapAssertion<>(value);
 	}
 
 	/**
-	 * Creator.
+	 * Constructor.
 	 *
-	 * @param value The object being wrapped.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
 	 */
 	public MapAssertion(Map<K,V> value) {
 		super(value, null);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/ObjectAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/ObjectAssertion.java
index 7f58a00..e2e2a9a 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/ObjectAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/ObjectAssertion.java
@@ -80,19 +80,23 @@ public class ObjectAssertion<T> extends FluentObjectAssertion<T,ObjectAssertion<
 	//-----------------------------------------------------------------------------------------------------------------
 
 	/**
-	 * Creator.
+	 * Static creator.
 	 *
-	 * @param value The object being wrapped.
-	 * @return A new {@link ObjectAssertion} object.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @return A new assertion object.
 	 */
 	public static <T> ObjectAssertion<T> create(T value) {
 		return new ObjectAssertion<>(value);
 	}
 
 	/**
-	 * Creator.
+	 * Constructor.
 	 *
-	 * @param value The object being wrapped.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
 	 */
 	public ObjectAssertion(T value) {
 		super(value, null);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/PrimitiveArrayAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/PrimitiveArrayAssertion.java
index c7155fc..e114c57 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/PrimitiveArrayAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/PrimitiveArrayAssertion.java
@@ -92,19 +92,23 @@ public class PrimitiveArrayAssertion<E,T> extends FluentPrimitiveArrayAssertion<
 	//-----------------------------------------------------------------------------------------------------------------
 
 	/**
-	 * Creator.
+	 * Static creator.
 	 *
-	 * @param value The object being wrapped.
-	 * @return A new {@link PrimitiveArrayAssertion} object.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @return A new assertion object.
 	 */
 	public static <E,T> PrimitiveArrayAssertion<E,T> create(T value) {
 		return new PrimitiveArrayAssertion<>(value);
 	}
 
 	/**
-	 * Creator.
+	 * Constructor.
 	 *
-	 * @param value The object being wrapped.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
 	 */
 	public PrimitiveArrayAssertion(T value) {
 		super(value, null);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/StringAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/StringAssertion.java
index 6570444..e6ce58a 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/StringAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/StringAssertion.java
@@ -107,22 +107,26 @@ public class StringAssertion extends FluentStringAssertion<StringAssertion> {
 	//-----------------------------------------------------------------------------------------------------------------
 
 	/**
-	 * Creator.
+	 * Static creator.
 	 *
-	 * @param value The string being wrapped.
-	 * @return A new {@link StringAssertion} object.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @return A new assertion object.
 	 */
 	public static StringAssertion create(Object value) {
 		return new StringAssertion(value);
 	}
 
 	/**
-	 * Creator.
+	 * Constructor.
 	 *
-	 * @param text The string being wrapped.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
 	 */
-	public StringAssertion(Object text) {
-		super(stringify(text), null);
+	public StringAssertion(Object value) {
+		super(stringify(value), null);
 	}
 
 	//-----------------------------------------------------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/StringListAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/StringListAssertion.java
index 794126c..6b31a9d 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/StringListAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/StringListAssertion.java
@@ -91,19 +91,23 @@ public class StringListAssertion extends FluentStringListAssertion<StringListAss
 	//-----------------------------------------------------------------------------------------------------------------
 
 	/**
-	 * Creator.
+	 * Static creator.
 	 *
-	 * @param value The object being wrapped.
-	 * @return A new {@link StringListAssertion} object.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @return A new assertion object.
 	 */
 	public static StringListAssertion create(List<String> value) {
 		return new StringListAssertion(value);
 	}
 
 	/**
-	 * Creator.
+	 * Constructor.
 	 *
-	 * @param value The object being wrapped.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
 	 */
 	public StringListAssertion(List<String> value) {
 		super(value, null);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/ThrowableAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/ThrowableAssertion.java
index 0eec15f..0bbebe7 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/ThrowableAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/ThrowableAssertion.java
@@ -88,19 +88,23 @@ public class ThrowableAssertion<T extends Throwable> extends FluentThrowableAsse
 	//-----------------------------------------------------------------------------------------------------------------
 
 	/**
-	 * Creator.
+	 * Static creator.
 	 *
-	 * @param value The throwable being wrapped.
-	 * @return A new {@link ThrowableAssertion} object.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @return A new assertion object.
 	 */
 	public static <V extends Throwable> ThrowableAssertion<V> create(V value) {
 		return new ThrowableAssertion<>(value);
 	}
 
 	/**
-	 * Creator.
+	 * Constructor.
 	 *
-	 * @param value The throwable being wrapped.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
 	 */
 	public ThrowableAssertion(T value) {
 		super(value, null);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/VersionAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/VersionAssertion.java
index 9e343da..715313c 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/VersionAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/VersionAssertion.java
@@ -88,19 +88,23 @@ public class VersionAssertion extends FluentVersionAssertion<VersionAssertion> {
 	//-----------------------------------------------------------------------------------------------------------------
 
 	/**
-	 * Creator.
+	 * Static creator.
 	 *
-	 * @param value The version being wrapped.
-	 * @return A new {@link VersionAssertion} object.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @return A new assertion object.
 	 */
 	public static VersionAssertion create(Version value) {
 		return new VersionAssertion(value);
 	}
 
 	/**
-	 * Creator.
+	 * Constructor.
 	 *
-	 * @param value The version being wrapped.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
 	 */
 	public VersionAssertion(Version value) {
 		super(value, null);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/ZonedDateTimeAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/ZonedDateTimeAssertion.java
index 11ac266..fd96e34 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/ZonedDateTimeAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/ZonedDateTimeAssertion.java
@@ -91,19 +91,23 @@ public class ZonedDateTimeAssertion extends FluentZonedDateTimeAssertion<ZonedDa
 	//-----------------------------------------------------------------------------------------------------------------
 
 	/**
-	 * Creator.
+	 * Static creator.
 	 *
-	 * @param value The date being wrapped.
-	 * @return A new {@link ZonedDateTimeAssertion} object.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @return A new assertion object.
 	 */
 	public static ZonedDateTimeAssertion create(ZonedDateTime value) {
 		return new ZonedDateTimeAssertion(value);
 	}
 
 	/**
-	 * Creator.
+	 * Constructor.
 	 *
-	 * @param value The date being wrapped.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
 	 */
 	public ZonedDateTimeAssertion(ZonedDateTime value) {
 		super(value, null);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/Messages.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/Messages.java
index b52f818..6f39857 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/Messages.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/Messages.java
@@ -113,7 +113,7 @@ public class Messages extends ResourceBundle {
 	private final Set<String> rbKeys;
 
 	/**
-	 * Creator.
+	 * Static creator.
 	 *
 	 * @param forClass
 	 * 	The class we're creating this object for.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Accept.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Accept.java
index 078a1f0..925bcc8 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Accept.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Accept.java
@@ -174,7 +174,7 @@ public class Accept extends BasicMediaRangeArrayHeader {
 		WILDCARD = of("*/*");
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -192,7 +192,7 @@ public class Accept extends BasicMediaRangeArrayHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -206,7 +206,7 @@ public class Accept extends BasicMediaRangeArrayHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -220,7 +220,7 @@ public class Accept extends BasicMediaRangeArrayHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/AcceptCharset.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/AcceptCharset.java
index aa691dc..3eed0a4 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/AcceptCharset.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/AcceptCharset.java
@@ -81,7 +81,7 @@ public class AcceptCharset extends BasicStringRangeArrayHeader {
 	private static final Cache<String,AcceptCharset> CACHE = new Cache<>(NOCACHE, CACHE_MAX_SIZE);
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -99,7 +99,7 @@ public class AcceptCharset extends BasicStringRangeArrayHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -113,7 +113,7 @@ public class AcceptCharset extends BasicStringRangeArrayHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/AcceptEncoding.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/AcceptEncoding.java
index 4152312..4512a7c 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/AcceptEncoding.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/AcceptEncoding.java
@@ -101,7 +101,7 @@ public class AcceptEncoding extends BasicStringRangeArrayHeader {
 	private static final Cache<String,AcceptEncoding> CACHE = new Cache<>(NOCACHE, CACHE_MAX_SIZE);
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -119,7 +119,7 @@ public class AcceptEncoding extends BasicStringRangeArrayHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -133,7 +133,7 @@ public class AcceptEncoding extends BasicStringRangeArrayHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/AcceptLanguage.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/AcceptLanguage.java
index b6018ca..98f288c 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/AcceptLanguage.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/AcceptLanguage.java
@@ -113,7 +113,7 @@ public class AcceptLanguage extends BasicStringRangeArrayHeader {
 	private static final Cache<String,AcceptLanguage> CACHE = new Cache<>(NOCACHE, CACHE_MAX_SIZE);
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -131,7 +131,7 @@ public class AcceptLanguage extends BasicStringRangeArrayHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -145,7 +145,7 @@ public class AcceptLanguage extends BasicStringRangeArrayHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/AcceptRanges.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/AcceptRanges.java
index 94ed7e8..9a9da06 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/AcceptRanges.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/AcceptRanges.java
@@ -69,7 +69,7 @@ public class AcceptRanges extends BasicStringHeader {
 	private static final String NAME = "Accept-Ranges";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -83,7 +83,7 @@ public class AcceptRanges extends BasicStringHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Age.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Age.java
index f86704f..9abd968 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Age.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Age.java
@@ -64,7 +64,7 @@ public class Age extends BasicIntegerHeader {
 	private static final String NAME = "Age";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -79,7 +79,7 @@ public class Age extends BasicIntegerHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -93,7 +93,7 @@ public class Age extends BasicIntegerHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Allow.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Allow.java
index 5edcccf..3f925ec 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Allow.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Allow.java
@@ -75,7 +75,7 @@ public class Allow extends BasicCsvArrayHeader {
 	private static final String NAME = "Allow";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -89,7 +89,7 @@ public class Allow extends BasicCsvArrayHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -103,7 +103,7 @@ public class Allow extends BasicCsvArrayHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Authorization.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Authorization.java
index a3f37b3..d68bdb2 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Authorization.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Authorization.java
@@ -78,7 +78,7 @@ public class Authorization extends BasicStringHeader {
 	private static final String NAME = "Authorization";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -92,7 +92,7 @@ public class Authorization extends BasicStringHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicBooleanHeader.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicBooleanHeader.java
index 346065f..0c5ae24 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicBooleanHeader.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicBooleanHeader.java
@@ -40,7 +40,7 @@ public class BasicBooleanHeader extends BasicHeader {
 	private static final long serialVersionUID = 1L;
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param name The header name.
 	 * @param value
@@ -56,7 +56,7 @@ public class BasicBooleanHeader extends BasicHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param name The header name.
 	 * @param value
@@ -71,7 +71,7 @@ public class BasicBooleanHeader extends BasicHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicCsvArrayHeader.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicCsvArrayHeader.java
index 9b6d4ff..abb8cae 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicCsvArrayHeader.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicCsvArrayHeader.java
@@ -39,7 +39,7 @@ public class BasicCsvArrayHeader extends BasicHeader {
 	private static final long serialVersionUID = 1L;
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param name The header name.
 	 * @param value
@@ -55,7 +55,7 @@ public class BasicCsvArrayHeader extends BasicHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param name The header name.
 	 * @param value
@@ -70,7 +70,7 @@ public class BasicCsvArrayHeader extends BasicHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicDateHeader.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicDateHeader.java
index bab3c22..6f12af2 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicDateHeader.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicDateHeader.java
@@ -42,7 +42,7 @@ public class BasicDateHeader extends BasicHeader {
 	private static final long serialVersionUID = 1L;
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param name The header name.
 	 * @param value
@@ -58,7 +58,7 @@ public class BasicDateHeader extends BasicHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param name The header name.
 	 * @param value
@@ -73,7 +73,7 @@ public class BasicDateHeader extends BasicHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicEntityTagArrayHeader.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicEntityTagArrayHeader.java
index 4479f1c..34c5c40 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicEntityTagArrayHeader.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicEntityTagArrayHeader.java
@@ -40,7 +40,7 @@ public class BasicEntityTagArrayHeader extends BasicHeader {
 	private static final long serialVersionUID = 1L;
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param name The header name.
 	 * @param value
@@ -56,7 +56,7 @@ public class BasicEntityTagArrayHeader extends BasicHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param name The header name.
 	 * @param value
@@ -71,7 +71,7 @@ public class BasicEntityTagArrayHeader extends BasicHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicEntityTagHeader.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicEntityTagHeader.java
index c41034c..4fefce4 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicEntityTagHeader.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicEntityTagHeader.java
@@ -38,7 +38,7 @@ public class BasicEntityTagHeader extends BasicHeader {
 	private static final long serialVersionUID = 1L;
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param name The header name.
 	 * @param value
@@ -54,7 +54,7 @@ public class BasicEntityTagHeader extends BasicHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param name The header name.
 	 * @param value
@@ -69,7 +69,7 @@ public class BasicEntityTagHeader extends BasicHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicHeader.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicHeader.java
index 3834230..10e43eb 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicHeader.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicHeader.java
@@ -50,7 +50,7 @@ public class BasicHeader implements Header, Cloneable, Serializable {
 	private static final HeaderElement[] EMPTY_HEADER_ELEMENTS = new HeaderElement[] {};
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param name The parameter name.
 	 * @param value
@@ -65,7 +65,7 @@ public class BasicHeader implements Header, Cloneable, Serializable {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param o The name value pair that makes up the header name and value.
 	 * 	The parameter value.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicIntegerHeader.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicIntegerHeader.java
index d063850..772fec0 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicIntegerHeader.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicIntegerHeader.java
@@ -41,7 +41,7 @@ public class BasicIntegerHeader extends BasicHeader {
 	private static final long serialVersionUID = 1L;
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param name The header name.
 	 * @param value
@@ -57,7 +57,7 @@ public class BasicIntegerHeader extends BasicHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param name The header name.
 	 * @param value
@@ -72,7 +72,7 @@ public class BasicIntegerHeader extends BasicHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicLongHeader.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicLongHeader.java
index 9f7c0da..1a91baf 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicLongHeader.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicLongHeader.java
@@ -41,7 +41,7 @@ public class BasicLongHeader extends BasicHeader {
 	private static final long serialVersionUID = 1L;
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param name The header name.
 	 * @param value
@@ -57,7 +57,7 @@ public class BasicLongHeader extends BasicHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param name The header name.
 	 * @param value
@@ -73,7 +73,7 @@ public class BasicLongHeader extends BasicHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicMediaRangeArrayHeader.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicMediaRangeArrayHeader.java
index d9b41c4..8073859 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicMediaRangeArrayHeader.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicMediaRangeArrayHeader.java
@@ -36,7 +36,7 @@ public class BasicMediaRangeArrayHeader extends BasicStringHeader {
 	private static final long serialVersionUID = 1L;
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param name The header name.
 	 * @param value
@@ -52,7 +52,7 @@ public class BasicMediaRangeArrayHeader extends BasicStringHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param name The header name.
 	 * @param value
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicMediaTypeHeader.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicMediaTypeHeader.java
index ee45708..741312d 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicMediaTypeHeader.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicMediaTypeHeader.java
@@ -39,7 +39,7 @@ public class BasicMediaTypeHeader extends BasicStringHeader {
 	private static final long serialVersionUID = 1L;
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param name The header name.
 	 * @param value
@@ -55,7 +55,7 @@ public class BasicMediaTypeHeader extends BasicStringHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param name The header name.
 	 * @param value
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicStringHeader.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicStringHeader.java
index 1c171bc..5c1b7ed 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicStringHeader.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicStringHeader.java
@@ -39,7 +39,7 @@ public class BasicStringHeader extends BasicHeader {
 	private static final long serialVersionUID = 1L;
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param name The header name.
 	 * @param value
@@ -54,7 +54,7 @@ public class BasicStringHeader extends BasicHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicStringRangeArrayHeader.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicStringRangeArrayHeader.java
index 133715e..8bd7cf4 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicStringRangeArrayHeader.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicStringRangeArrayHeader.java
@@ -36,7 +36,7 @@ public class BasicStringRangeArrayHeader extends BasicHeader {
 	private static final long serialVersionUID = 1L;
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param name The header name.
 	 * @param value
@@ -52,7 +52,7 @@ public class BasicStringRangeArrayHeader extends BasicHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param name The header name.
 	 * @param value
@@ -67,7 +67,7 @@ public class BasicStringRangeArrayHeader extends BasicHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicUriHeader.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicUriHeader.java
index a3447d6..e3daf68 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicUriHeader.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicUriHeader.java
@@ -38,7 +38,7 @@ public class BasicUriHeader extends BasicHeader {
 	private static final long serialVersionUID = 1L;
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param name The header name.
 	 * @param value
@@ -54,7 +54,7 @@ public class BasicUriHeader extends BasicHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param name The header name.
 	 * @param value
@@ -69,7 +69,7 @@ public class BasicUriHeader extends BasicHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/CacheControl.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/CacheControl.java
index c873cfe..b407cda 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/CacheControl.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/CacheControl.java
@@ -102,7 +102,7 @@ public class CacheControl extends BasicStringHeader {
 	private static final String NAME = "Cache-Control";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -116,7 +116,7 @@ public class CacheControl extends BasicStringHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ClientVersion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ClientVersion.java
index da754bb..f630b23 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ClientVersion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ClientVersion.java
@@ -48,7 +48,7 @@ public class ClientVersion extends BasicStringHeader {
 	private static final Cache<String,ClientVersion> CACHE = new Cache<>(NOCACHE, CACHE_MAX_SIZE);
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -66,7 +66,7 @@ public class ClientVersion extends BasicStringHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -80,7 +80,7 @@ public class ClientVersion extends BasicStringHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Connection.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Connection.java
index 8a6467e..f9f3d25 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Connection.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Connection.java
@@ -88,7 +88,7 @@ public class Connection extends BasicStringHeader {
 	private static final Cache<String,Connection> CACHE = new Cache<>(NOCACHE, CACHE_MAX_SIZE);
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -105,7 +105,7 @@ public class Connection extends BasicStringHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ContentDisposition.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ContentDisposition.java
index 9d1bfb9..bd13bd5 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ContentDisposition.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ContentDisposition.java
@@ -58,7 +58,7 @@ public class ContentDisposition extends BasicStringRangeArrayHeader {
 	private static final Cache<String,ContentDisposition> CACHE = new Cache<>(NOCACHE, CACHE_MAX_SIZE);
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -76,7 +76,7 @@ public class ContentDisposition extends BasicStringRangeArrayHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -90,7 +90,7 @@ public class ContentDisposition extends BasicStringRangeArrayHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ContentEncoding.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ContentEncoding.java
index 36ec1fa..adc04db 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ContentEncoding.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ContentEncoding.java
@@ -75,7 +75,7 @@ public class ContentEncoding extends BasicStringHeader {
 	private static final String NAME = "Content-Encoding";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -89,7 +89,7 @@ public class ContentEncoding extends BasicStringHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ContentLanguage.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ContentLanguage.java
index 428c61c..eff7721 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ContentLanguage.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ContentLanguage.java
@@ -80,7 +80,7 @@ public class ContentLanguage extends BasicCsvArrayHeader {
 	private static final String NAME = "Content-Language";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -94,7 +94,7 @@ public class ContentLanguage extends BasicCsvArrayHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -108,7 +108,7 @@ public class ContentLanguage extends BasicCsvArrayHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ContentLength.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ContentLength.java
index eabc4b2..118d599 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ContentLength.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ContentLength.java
@@ -67,7 +67,7 @@ public class ContentLength extends BasicLongHeader {
 	private static final String NAME = "Content-Length";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -82,7 +82,7 @@ public class ContentLength extends BasicLongHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -96,7 +96,7 @@ public class ContentLength extends BasicLongHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ContentLocation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ContentLocation.java
index 78a403a..08d94fd 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ContentLocation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ContentLocation.java
@@ -74,7 +74,7 @@ public class ContentLocation extends BasicUriHeader {
 	private static final String NAME = "Content-Location";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -89,7 +89,7 @@ public class ContentLocation extends BasicUriHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -103,7 +103,7 @@ public class ContentLocation extends BasicUriHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ContentRange.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ContentRange.java
index 10d528c..927dd7b 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ContentRange.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ContentRange.java
@@ -135,7 +135,7 @@ public class ContentRange extends BasicStringHeader {
 	private static final String NAME = "Content-Range";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -149,7 +149,7 @@ public class ContentRange extends BasicStringHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ContentType.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ContentType.java
index 1fb7611..6fadc1d 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ContentType.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ContentType.java
@@ -83,7 +83,7 @@ public class ContentType extends BasicMediaTypeHeader {
 		WILDCARD = of("*/*");
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -101,7 +101,7 @@ public class ContentType extends BasicMediaTypeHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -115,7 +115,7 @@ public class ContentType extends BasicMediaTypeHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Date.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Date.java
index 56e0047..4d325b0 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Date.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Date.java
@@ -86,7 +86,7 @@ public class Date extends BasicDateHeader {
 	private static final String NAME = "Date";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -101,7 +101,7 @@ public class Date extends BasicDateHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -115,7 +115,7 @@ public class Date extends BasicDateHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Debug.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Debug.java
index 8ede307..036f5fb 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Debug.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Debug.java
@@ -41,7 +41,7 @@ public class Debug extends BasicBooleanHeader {
 	public static final Debug TRUE = of(true), FALSE = of(false);
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -56,7 +56,7 @@ public class Debug extends BasicBooleanHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -70,7 +70,7 @@ public class Debug extends BasicBooleanHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ETag.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ETag.java
index b3eb738..90ac315 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ETag.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ETag.java
@@ -56,7 +56,7 @@ public class ETag extends BasicEntityTagHeader {
 	private static final String NAME = "ETag";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -71,7 +71,7 @@ public class ETag extends BasicEntityTagHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -85,7 +85,7 @@ public class ETag extends BasicEntityTagHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/EntityTag.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/EntityTag.java
index c04be39..deaaea9 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/EntityTag.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/EntityTag.java
@@ -37,7 +37,7 @@ public class EntityTag {
 	private final boolean isWeak, isAny;
 
 	/**
-	 * Creator.
+	 * Static creator.
 	 *
 	 * @param value The validator string value.
 	 * @return A new header bean or <jk>null</jk> if the value was <jk>null</jk>.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Expect.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Expect.java
index 093993d..96bd5dd 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Expect.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Expect.java
@@ -75,7 +75,7 @@ public class Expect extends BasicStringHeader {
 	private static final String NAME = "Expect";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -89,7 +89,7 @@ public class Expect extends BasicStringHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Expires.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Expires.java
index 12727d5..ff8daf7 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Expires.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Expires.java
@@ -87,7 +87,7 @@ public class Expires extends BasicDateHeader {
 	private static final String NAME = "Expires";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -102,7 +102,7 @@ public class Expires extends BasicDateHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -116,7 +116,7 @@ public class Expires extends BasicDateHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Forwarded.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Forwarded.java
index a5330b0..ef45c19 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Forwarded.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Forwarded.java
@@ -26,7 +26,7 @@ public class Forwarded extends BasicStringHeader {
 	private static final String NAME = "Forwarded";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -40,7 +40,7 @@ public class Forwarded extends BasicStringHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/From.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/From.java
index f7f85ae..cf58984 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/From.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/From.java
@@ -73,7 +73,7 @@ public class From extends BasicStringHeader {
 	private static final String NAME = "From";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -87,7 +87,7 @@ public class From extends BasicStringHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Host.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Host.java
index b3fd54f..51500fd 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Host.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Host.java
@@ -75,7 +75,7 @@ public class Host extends BasicStringHeader {
 	private static final String NAME = "Host";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -89,7 +89,7 @@ public class Host extends BasicStringHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/IfMatch.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/IfMatch.java
index 7b0d21a..916eb6a 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/IfMatch.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/IfMatch.java
@@ -98,7 +98,7 @@ public class IfMatch extends BasicEntityTagArrayHeader {
 	private static final String NAME = "If-Match";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -113,7 +113,7 @@ public class IfMatch extends BasicEntityTagArrayHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -127,7 +127,7 @@ public class IfMatch extends BasicEntityTagArrayHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/IfModifiedSince.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/IfModifiedSince.java
index 5ea167a..dfb7694 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/IfModifiedSince.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/IfModifiedSince.java
@@ -98,7 +98,7 @@ public class IfModifiedSince extends BasicDateHeader {
 	private static final String NAME = "If-Modified-Since";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -113,7 +113,7 @@ public class IfModifiedSince extends BasicDateHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -127,7 +127,7 @@ public class IfModifiedSince extends BasicDateHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/IfNoneMatch.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/IfNoneMatch.java
index 54ac9fd..4bb105f 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/IfNoneMatch.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/IfNoneMatch.java
@@ -101,7 +101,7 @@ public class IfNoneMatch extends BasicEntityTagArrayHeader {
 	private static final String NAME = "If-None-Match";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -116,7 +116,7 @@ public class IfNoneMatch extends BasicEntityTagArrayHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -130,7 +130,7 @@ public class IfNoneMatch extends BasicEntityTagArrayHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/IfRange.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/IfRange.java
index ca462d2..d76598d 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/IfRange.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/IfRange.java
@@ -75,7 +75,7 @@ public class IfRange extends BasicDateHeader {
 	private static final String NAME = "If-Range";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -90,7 +90,7 @@ public class IfRange extends BasicDateHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -104,7 +104,7 @@ public class IfRange extends BasicDateHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -118,7 +118,7 @@ public class IfRange extends BasicDateHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/IfUnmodifiedSince.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/IfUnmodifiedSince.java
index 543e589..88b1ec5 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/IfUnmodifiedSince.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/IfUnmodifiedSince.java
@@ -70,7 +70,7 @@ public class IfUnmodifiedSince extends BasicDateHeader {
 	private static final String NAME = "If-Unmodified-Since";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -85,7 +85,7 @@ public class IfUnmodifiedSince extends BasicDateHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -99,7 +99,7 @@ public class IfUnmodifiedSince extends BasicDateHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/LastModified.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/LastModified.java
index 85753da..73f9621 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/LastModified.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/LastModified.java
@@ -77,7 +77,7 @@ public class LastModified extends BasicDateHeader {
 	private static final String NAME = "Last-Modified";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -92,7 +92,7 @@ public class LastModified extends BasicDateHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -106,7 +106,7 @@ public class LastModified extends BasicDateHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Location.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Location.java
index 3db4aeb..cd45e6b 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Location.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Location.java
@@ -63,7 +63,7 @@ public class Location extends BasicUriHeader {
 	private static final String NAME = "Location";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -78,7 +78,7 @@ public class Location extends BasicUriHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -92,7 +92,7 @@ public class Location extends BasicUriHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/MaxForwards.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/MaxForwards.java
index eacec20..27fdf95 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/MaxForwards.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/MaxForwards.java
@@ -65,7 +65,7 @@ public class MaxForwards extends BasicIntegerHeader {
 	private static final String NAME = "Max-Forwards";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -80,7 +80,7 @@ public class MaxForwards extends BasicIntegerHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -94,7 +94,7 @@ public class MaxForwards extends BasicIntegerHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/NoTrace.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/NoTrace.java
index eb046b6..5ec534e 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/NoTrace.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/NoTrace.java
@@ -30,7 +30,7 @@ public class NoTrace extends BasicBooleanHeader {
 
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -45,7 +45,7 @@ public class NoTrace extends BasicBooleanHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -59,7 +59,7 @@ public class NoTrace extends BasicBooleanHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Origin.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Origin.java
index b489cb8..fbc2748 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Origin.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Origin.java
@@ -26,7 +26,7 @@ public class Origin extends BasicStringHeader {
 	private static final String NAME = "Origin";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -40,7 +40,7 @@ public class Origin extends BasicStringHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Pragma.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Pragma.java
index 6c084ab..369d79c 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Pragma.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Pragma.java
@@ -73,7 +73,7 @@ public class Pragma extends BasicStringHeader {
 	private static final String NAME = "Pragma";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -87,7 +87,7 @@ public class Pragma extends BasicStringHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ProxyAuthenticate.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ProxyAuthenticate.java
index d8693cd..80c05f0 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ProxyAuthenticate.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ProxyAuthenticate.java
@@ -56,7 +56,7 @@ public class ProxyAuthenticate extends BasicStringHeader {
 	private static final String NAME = "Proxy-Authenticate";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -70,7 +70,7 @@ public class ProxyAuthenticate extends BasicStringHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ProxyAuthorization.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ProxyAuthorization.java
index 3a78f46..cf4537d 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ProxyAuthorization.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/ProxyAuthorization.java
@@ -58,7 +58,7 @@ public class ProxyAuthorization extends BasicStringHeader {
 	private static final String NAME = "Proxy-Authorization";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -72,7 +72,7 @@ public class ProxyAuthorization extends BasicStringHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Range.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Range.java
index 2c9a115..8b08911 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Range.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Range.java
@@ -148,7 +148,7 @@ public class Range extends BasicStringHeader {
 	private static final String NAME = "Range";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -162,7 +162,7 @@ public class Range extends BasicStringHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Referer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Referer.java
index 91a8362..f08f0ac 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Referer.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Referer.java
@@ -65,7 +65,7 @@ public class Referer extends BasicUriHeader {
 	private static final String NAME = "Referer";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -80,7 +80,7 @@ public class Referer extends BasicUriHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -94,7 +94,7 @@ public class Referer extends BasicUriHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/RetryAfter.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/RetryAfter.java
index 2445d55..ede616c 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/RetryAfter.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/RetryAfter.java
@@ -70,7 +70,7 @@ public class RetryAfter extends BasicDateHeader {
 	private static final String NAME = "Retry-After";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -85,7 +85,7 @@ public class RetryAfter extends BasicDateHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -99,7 +99,7 @@ public class RetryAfter extends BasicDateHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -113,7 +113,7 @@ public class RetryAfter extends BasicDateHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/SerializedHeader.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/SerializedHeader.java
index b016212..caeea3f 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/SerializedHeader.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/SerializedHeader.java
@@ -39,7 +39,7 @@ public class SerializedHeader extends BasicHeader {
 	private static final long serialVersionUID = 1L;
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param name The header name.
 	 * @param value
@@ -54,7 +54,7 @@ public class SerializedHeader extends BasicHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
@@ -72,7 +72,7 @@ public class SerializedHeader extends BasicHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param name The HTTP header name name.
 	 * @param value
@@ -95,7 +95,7 @@ public class SerializedHeader extends BasicHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Server.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Server.java
index 7706be6..92a0b9b 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Server.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Server.java
@@ -65,7 +65,7 @@ public class Server extends BasicStringHeader {
 	private static final String NAME = "Server";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -79,7 +79,7 @@ public class Server extends BasicStringHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/TE.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/TE.java
index ce07769..8df44e3 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/TE.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/TE.java
@@ -98,7 +98,7 @@ public class TE extends BasicStringRangeArrayHeader {
 	private static final Cache<String,TE> CACHE = new Cache<>(NOCACHE, CACHE_MAX_SIZE);
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -116,7 +116,7 @@ public class TE extends BasicStringRangeArrayHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -130,7 +130,7 @@ public class TE extends BasicStringRangeArrayHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Thrown.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Thrown.java
index 4557f20..047659e 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Thrown.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Thrown.java
@@ -62,7 +62,7 @@ public class Thrown extends BasicCsvArrayHeader {
 	public static final Thrown EMPTY = new Thrown((String)null);
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -76,7 +76,7 @@ public class Thrown extends BasicCsvArrayHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param values
 	 * 	The header value.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Trailer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Trailer.java
index 11dd1a0..d13f721 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Trailer.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Trailer.java
@@ -65,7 +65,7 @@ public class Trailer extends BasicStringHeader {
 	private static final String NAME = "Trailer";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -79,7 +79,7 @@ public class Trailer extends BasicStringHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/TransferEncoding.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/TransferEncoding.java
index 1a45883..1ef46c0 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/TransferEncoding.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/TransferEncoding.java
@@ -65,7 +65,7 @@ public class TransferEncoding extends BasicStringHeader {
 	private static final String NAME = "Transfer-Encoding";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -79,7 +79,7 @@ public class TransferEncoding extends BasicStringHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Upgrade.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Upgrade.java
index 2f43ffb..54a1380 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Upgrade.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Upgrade.java
@@ -89,7 +89,7 @@ public class Upgrade extends BasicCsvArrayHeader {
 	private static final String NAME = "Upgrade";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -103,7 +103,7 @@ public class Upgrade extends BasicCsvArrayHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -117,7 +117,7 @@ public class Upgrade extends BasicCsvArrayHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/UserAgent.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/UserAgent.java
index 9269e2b..1eae068 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/UserAgent.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/UserAgent.java
@@ -58,7 +58,7 @@ public class UserAgent extends BasicStringHeader {
 	private static final String NAME = "User-Agent";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -72,7 +72,7 @@ public class UserAgent extends BasicStringHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Vary.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Vary.java
index 02dcc73..26ea5a1 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Vary.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Vary.java
@@ -78,7 +78,7 @@ public class Vary extends BasicStringHeader {
 	private static final String NAME = "Vary";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -92,7 +92,7 @@ public class Vary extends BasicStringHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Via.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Via.java
index ec3cde3..9f5f8a1 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Via.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Via.java
@@ -125,7 +125,7 @@ public class Via extends BasicCsvArrayHeader {
 	private static final String NAME = "Via";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -139,7 +139,7 @@ public class Via extends BasicCsvArrayHeader {
 	}
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -153,7 +153,7 @@ public class Via extends BasicCsvArrayHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Warning.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Warning.java
index b815612..90f5c55 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Warning.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Warning.java
@@ -132,7 +132,7 @@ public class Warning extends BasicStringHeader {
 	private static final String NAME = "Warning";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -146,7 +146,7 @@ public class Warning extends BasicStringHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/WwwAuthenticate.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/WwwAuthenticate.java
index 945aac3..8012f10 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/WwwAuthenticate.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/WwwAuthenticate.java
@@ -54,7 +54,7 @@ public class WwwAuthenticate extends BasicStringHeader {
 	private static final String NAME = "WWW-Authenticate";
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param value
 	 * 	The header value.
@@ -68,7 +68,7 @@ public class WwwAuthenticate extends BasicStringHeader {
 	}
 
 	/**
-	 * Convenience creator with delayed value.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Header value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicBooleanPart.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicBooleanPart.java
index 254f91d..23ec397 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicBooleanPart.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicBooleanPart.java
@@ -27,7 +27,7 @@ import org.apache.juneau.assertions.*;
 public class BasicBooleanPart extends BasicPart {
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param name The part name.
 	 * @param value
@@ -47,7 +47,7 @@ public class BasicBooleanPart extends BasicPart {
 	}
 
 	/**
-	 * Convenience creator using supplier.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Part value is re-evaluated on each call to {@link NameValuePair#getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicCsvArrayPart.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicCsvArrayPart.java
index ff053fe..db6d13f 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicCsvArrayPart.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicCsvArrayPart.java
@@ -29,7 +29,7 @@ import org.apache.juneau.collections.*;
 public class BasicCsvArrayPart extends BasicPart {
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param name The part name.
 	 * @param value
@@ -51,7 +51,7 @@ public class BasicCsvArrayPart extends BasicPart {
 	}
 
 	/**
-	 * Convenience creator using supplier.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Part value is re-evaluated on each call to {@link NameValuePair#getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicDatePart.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicDatePart.java
index 57b9484..69e9de6 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicDatePart.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicDatePart.java
@@ -30,7 +30,7 @@ import org.apache.juneau.assertions.*;
 public class BasicDatePart extends BasicPart {
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param name The part name.
 	 * @param value
@@ -51,7 +51,7 @@ public class BasicDatePart extends BasicPart {
 	}
 
 	/**
-	 * Convenience creator using supplier.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Part value is re-evaluated on each call to {@link NameValuePair#getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicIntegerPart.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicIntegerPart.java
index 3673fe3..c6885e5 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicIntegerPart.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicIntegerPart.java
@@ -28,7 +28,7 @@ import org.apache.juneau.assertions.*;
 public class BasicIntegerPart extends BasicPart {
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param name The part name.
 	 * @param value
@@ -48,7 +48,7 @@ public class BasicIntegerPart extends BasicPart {
 	}
 
 	/**
-	 * Convenience creator using supplier.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Part value is re-evaluated on each call to {@link NameValuePair#getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicLongPart.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicLongPart.java
index fa67e97..f88dfae 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicLongPart.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicLongPart.java
@@ -28,7 +28,7 @@ import org.apache.juneau.assertions.*;
 public class BasicLongPart extends BasicPart {
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param name The part name.
 	 * @param value
@@ -48,7 +48,7 @@ public class BasicLongPart extends BasicPart {
 	}
 
 	/**
-	 * Convenience creator using supplier.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Part value is re-evaluated on each call to {@link NameValuePair#getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicPart.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicPart.java
index 292289c..0dc1b79 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicPart.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicPart.java
@@ -49,7 +49,7 @@ public class BasicPart implements NameValuePair, Headerable {
 	private final Object value;
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param name The part name.
 	 * @param value The part value.
@@ -77,7 +77,7 @@ public class BasicPart implements NameValuePair, Headerable {
 	}
 
 	/**
-	 * Convenience creator using supplier.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Part value is re-evaluated on each call to {@link NameValuePair#getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicStringPart.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicStringPart.java
index 0b44e86..363c0a0 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicStringPart.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicStringPart.java
@@ -26,7 +26,7 @@ import org.apache.juneau.assertions.*;
 public class BasicStringPart extends BasicPart {
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param name The part name.
 	 * @param value
@@ -45,7 +45,7 @@ public class BasicStringPart extends BasicPart {
 	}
 
 	/**
-	 * Convenience creator using supplier.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Part value is re-evaluated on each call to {@link NameValuePair#getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicUriPart.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicUriPart.java
index 4868bce..7336794 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicUriPart.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/BasicUriPart.java
@@ -27,7 +27,7 @@ import org.apache.http.*;
 public class BasicUriPart extends BasicPart {
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param name The header name.
 	 * @param value
@@ -46,7 +46,7 @@ public class BasicUriPart extends BasicPart {
 	}
 
 	/**
-	 * Convenience creator using supplier.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Part value is re-evaluated on each call to {@link NameValuePair#getValue()}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ArrayBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ArrayBuilder.java
index 5e1cb23..6443e1e 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ArrayBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ArrayBuilder.java
@@ -31,7 +31,7 @@ public class ArrayBuilder<T> {
 	private final boolean skipNulls;
 
 	/**
-	 * Creator.
+	 * Static creator.
 	 *
 	 * @param elementType The element type.
 	 * @param size The array size.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/mstat/MethodExecStats.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/mstat/MethodExecStats.java
index 0b84d40..537a361 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/mstat/MethodExecStats.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/mstat/MethodExecStats.java
@@ -41,7 +41,7 @@ public class MethodExecStats {
 		totalTime = new AtomicLong();
 
 	/**
-	 * Creator.
+	 * Static creator.
 	 *
 	 * @return A new builder for this object.
 	 */
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/mstat/ThrownStats.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/mstat/ThrownStats.java
index 6c416ed..1f365de 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/mstat/ThrownStats.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/mstat/ThrownStats.java
@@ -35,7 +35,7 @@ public class ThrownStats implements Cloneable {
 	private final AtomicLong firstOccurrence, lastOccurrence;
 
 	/**
-	 * Creator.
+	 * Static creator.
 	 *
 	 * @return A new builder for this object.
 	 */
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/mstat/ThrownStore.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/mstat/ThrownStore.java
index 0deeb9b..be3a95e 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/mstat/ThrownStore.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/mstat/ThrownStore.java
@@ -41,7 +41,7 @@ public class ThrownStore {
 	private final Set<String> ignoreClasses;
 
 	/**
-	 * Creator.
+	 * Static creator.
 	 *
 	 * @return A new builder for this object.
 	 */
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSessionArgs.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSessionArgs.java
index c75f3f3..c2e79fe 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSessionArgs.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSessionArgs.java
@@ -37,7 +37,7 @@ public final class ParserSessionArgs extends BeanSessionArgs {
 	public static final ParserSessionArgs DEFAULT = new ParserSessionArgs();
 
 	/**
-	 * Creator.
+	 * Static creator.
 	 *
 	 * @return A new parser session arguments object.
 	 */
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSessionArgs.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSessionArgs.java
index a72af7c..ceddccb 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSessionArgs.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSessionArgs.java
@@ -43,7 +43,7 @@ public final class SerializerSessionArgs extends BeanSessionArgs {
 	VarResolverSession resolver;
 
 	/**
-	 * Creator.
+	 * Static creator.
 	 *
 	 * @return A new parser session arguments object.
 	 */
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/Tuple2.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/Tuple2.java
index 08e6b30..1211a74 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/Tuple2.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/Tuple2.java
@@ -25,7 +25,7 @@ import org.apache.juneau.internal.*;
 public class Tuple2<A,B> {
 
 	/**
-	 * Creator.
+	 * Static creator.
 	 *
 	 * @param <A> Object 1 type.
 	 * @param <B> Object 2 type.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/Tuple3.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/Tuple3.java
index 110d565..92a308e 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/Tuple3.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/Tuple3.java
@@ -26,7 +26,7 @@ import org.apache.juneau.internal.*;
 public class Tuple3<A,B,C> {
 
 	/**
-	 * Creator.
+	 * Static creator.
 	 *
 	 * @param <A> Object 1 type.
 	 * @param <B> Object 2 type.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/Tuple4.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/Tuple4.java
index 920bf2f..7041f69 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/Tuple4.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/Tuple4.java
@@ -27,7 +27,7 @@ import org.apache.juneau.internal.*;
 public class Tuple4<A,B,C,D> {
 
 	/**
-	 * Creator.
+	 * Static creator.
 	 *
 	 * @param <A> Object 1 type.
 	 * @param <B> Object 2 type.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/Tuple5.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/Tuple5.java
index f5528f0..ecb936a 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/Tuple5.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/Tuple5.java
@@ -28,7 +28,7 @@ import org.apache.juneau.internal.*;
 public class Tuple5<A,B,C,D,E> {
 
 	/**
-	 * Creator.
+	 * Static creator.
 	 *
 	 * @param <A> Object 1 type.
 	 * @param <B> Object 2 type.
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/05.HttpPartSerializers.html b/juneau-doc/docs/Topics/02.juneau-marshall/06.HttpPartSerializers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/05.HttpPartSerializers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/06.HttpPartSerializers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/06.HttpPartParsers.html b/juneau-doc/docs/Topics/02.juneau-marshall/07.HttpPartParsers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/06.HttpPartParsers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/07.HttpPartParsers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/07.MarshallConfigurableProperties.html b/juneau-doc/docs/Topics/02.juneau-marshall/08.MarshallConfigurableProperties.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/07.MarshallConfigurableProperties.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/08.MarshallConfigurableProperties.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/08.ConfigurableAnnotations.html b/juneau-doc/docs/Topics/02.juneau-marshall/09.ConfigurableAnnotations.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/08.ConfigurableAnnotations.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/09.ConfigurableAnnotations.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/09.OMap.html b/juneau-doc/docs/Topics/02.juneau-marshall/10.OMap.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/09.OMap.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/10.OMap.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/10.Groups.html b/juneau-doc/docs/Topics/02.juneau-marshall/11.Groups.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/10.Groups.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/11.Groups.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.ContextsBuildersSessionsPropertyStores.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.ContextsBuildersSessionsPropertyStores.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.ContextsBuildersSessionsPropertyStores.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.ContextsBuildersSessionsPropertyStores.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms.html b/juneau-doc/docs/Topics/02.juneau-marshall/13.Transforms.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/13.Transforms.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/01.PojoSwaps.html b/juneau-doc/docs/Topics/02.juneau-marshall/13.Transforms/01.PojoSwaps.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/01.PojoSwaps.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/13.Transforms/01.PojoSwaps.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/02.DefaultPojoSwaps.html b/juneau-doc/docs/Topics/02.juneau-marshall/13.Transforms/02.DefaultPojoSwaps.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/02.DefaultPojoSwaps.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/13.Transforms/02.DefaultPojoSwaps.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/03.AutoPojoSwaps.html b/juneau-doc/docs/Topics/02.juneau-marshall/13.Transforms/03.AutoPojoSwaps.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/03.AutoPojoSwaps.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/13.Transforms/03.AutoPojoSwaps.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/04.PerMediaTypePojoSwaps.html b/juneau-doc/docs/Topics/02.juneau-marshall/13.Transforms/04.PerMediaTypePojoSwaps.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/04.PerMediaTypePojoSwaps.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/13.Transforms/04.PerMediaTypePojoSwaps.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/05.OneWayPojoSwaps.html b/juneau-doc/docs/Topics/02.juneau-marshall/13.Transforms/05.OneWayPojoSwaps.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/05.OneWayPojoSwaps.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/13.Transforms/05.OneWayPojoSwaps.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/06.SwapAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/13.Transforms/06.SwapAnnotation.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/06.SwapAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/13.Transforms/06.SwapAnnotation.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/07.TemplatedSwaps.html b/juneau-doc/docs/Topics/02.juneau-marshall/13.Transforms/07.TemplatedSwaps.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/07.TemplatedSwaps.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/13.Transforms/07.TemplatedSwaps.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/08.SurrogateClasses.html b/juneau-doc/docs/Topics/02.juneau-marshall/13.Transforms/08.SurrogateClasses.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/08.SurrogateClasses.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/13.Transforms/08.SurrogateClasses.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/13.DynamicallyAppliedAnnotations.html b/juneau-doc/docs/Topics/02.juneau-marshall/14.DynamicallyAppliedAnnotations.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/13.DynamicallyAppliedAnnotations.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/14.DynamicallyAppliedAnnotations.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/14.BeanDictionaries.html b/juneau-doc/docs/Topics/02.juneau-marshall/15.BeanDictionaries.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/14.BeanDictionaries.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/15.BeanDictionaries.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/14.BeanDictionaries/01.BeanSubTypes.html b/juneau-doc/docs/Topics/02.juneau-marshall/15.BeanDictionaries/01.BeanSubTypes.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/14.BeanDictionaries/01.BeanSubTypes.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/15.BeanDictionaries/01.BeanSubTypes.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/15.VirtualBeans.html b/juneau-doc/docs/Topics/02.juneau-marshall/16.VirtualBeans.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/15.VirtualBeans.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/16.VirtualBeans.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/16.Recursion.html b/juneau-doc/docs/Topics/02.juneau-marshall/17.Recursion.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/16.Recursion.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/17.Recursion.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/17.ParsingIntoGenericModels.html b/juneau-doc/docs/Topics/02.juneau-marshall/18.ParsingIntoGenericModels.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/17.ParsingIntoGenericModels.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/18.ParsingIntoGenericModels.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/18.ReadingContinuousStreams.html b/juneau-doc/docs/Topics/02.juneau-marshall/19.ReadingContinuousStreams.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/18.ReadingContinuousStreams.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/19.ReadingContinuousStreams.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/19.MarshallingUris.html b/juneau-doc/docs/Topics/02.juneau-marshall/20.MarshallingUris.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/19.MarshallingUris.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/20.MarshallingUris.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/20.JacksonComparison.html b/juneau-doc/docs/Topics/02.juneau-marshall/21.JacksonComparison.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/20.JacksonComparison.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/21.JacksonComparison.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/21.PojoCategories.html b/juneau-doc/docs/Topics/02.juneau-marshall/22.PojoCategories.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/21.PojoCategories.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/22.PojoCategories.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/22.Assertions.html b/juneau-doc/docs/Topics/02.juneau-marshall/23.Assertions.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/22.Assertions.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/23.Assertions.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/22.JsonDetails.html b/juneau-doc/docs/Topics/02.juneau-marshall/24.JsonDetails.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/22.JsonDetails.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/24.JsonDetails.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/22.JsonDetails/01.JsonMethodology.html b/juneau-doc/docs/Topics/02.juneau-marshall/24.JsonDetails/01.JsonMethodology.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/22.JsonDetails/01.JsonMethodology.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/24.JsonDetails/01.JsonMethodology.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/22.JsonDetails/02.JsonSerializers.html b/juneau-doc/docs/Topics/02.juneau-marshall/24.JsonDetails/02.JsonSerializers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/22.JsonDetails/02.JsonSerializers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/24.JsonDetails/02.JsonSerializers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/22.JsonDetails/03.SimplifiedJson.html b/juneau-doc/docs/Topics/02.juneau-marshall/24.JsonDetails/03.SimplifiedJson.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/22.JsonDetails/03.SimplifiedJson.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/24.JsonDetails/03.SimplifiedJson.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/22.JsonDetails/04.JsonParsers.html b/juneau-doc/docs/Topics/02.juneau-marshall/24.JsonDetails/04.JsonParsers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/22.JsonDetails/04.JsonParsers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/24.JsonDetails/04.JsonParsers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/22.JsonDetails/05.JsonAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/24.JsonDetails/05.JsonAnnotation.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/22.JsonDetails/05.JsonAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/24.JsonDetails/05.JsonAnnotation.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/22.JsonDetails/06.JsonSchema.html b/juneau-doc/docs/Topics/02.juneau-marshall/24.JsonDetails/06.JsonSchema.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/22.JsonDetails/06.JsonSchema.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/24.JsonDetails/06.JsonSchema.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/23.XmlDetails.html b/juneau-doc/docs/Topics/02.juneau-marshall/25.XmlDetails.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/23.XmlDetails.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/25.XmlDetails.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/23.XmlDetails/01.XmlMethodology.html b/juneau-doc/docs/Topics/02.juneau-marshall/25.XmlDetails/01.XmlMethodology.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/23.XmlDetails/01.XmlMethodology.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/25.XmlDetails/01.XmlMethodology.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/23.XmlDetails/02.XmlSerializers.html b/juneau-doc/docs/Topics/02.juneau-marshall/25.XmlDetails/02.XmlSerializers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/23.XmlDetails/02.XmlSerializers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/25.XmlDetails/02.XmlSerializers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/23.XmlDetails/03.XmlParsers.html b/juneau-doc/docs/Topics/02.juneau-marshall/25.XmlDetails/03.XmlParsers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/23.XmlDetails/03.XmlParsers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/25.XmlDetails/03.XmlParsers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/23.XmlDetails/04.XmlBeanTypeNameAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/25.XmlDetails/04.XmlBeanTypeNameAnnotation.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/23.XmlDetails/04.XmlBeanTypeNameAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/25.XmlDetails/04.XmlBeanTypeNameAnnotation.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/23.XmlDetails/05.XmlChildNameAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/25.XmlDetails/05.XmlChildNameAnnotation.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/23.XmlDetails/05.XmlChildNameAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/25.XmlDetails/05.XmlChildNameAnnotation.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/23.XmlDetails/06.XmlFormatAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/25.XmlDetails/06.XmlFormatAnnotation.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/23.XmlDetails/06.XmlFormatAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/25.XmlDetails/06.XmlFormatAnnotation.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/23.XmlDetails/07.XmlNamespaces.html b/juneau-doc/docs/Topics/02.juneau-marshall/25.XmlDetails/07.XmlNamespaces.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/23.XmlDetails/07.XmlNamespaces.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/25.XmlDetails/07.XmlNamespaces.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/24.HtmlDetails.html b/juneau-doc/docs/Topics/02.juneau-marshall/26.HtmlDetails.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/24.HtmlDetails.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/26.HtmlDetails.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/24.HtmlDetails/01.HtmlMethodology.html b/juneau-doc/docs/Topics/02.juneau-marshall/26.HtmlDetails/01.HtmlMethodology.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/24.HtmlDetails/01.HtmlMethodology.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/26.HtmlDetails/01.HtmlMethodology.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/24.HtmlDetails/02.HtmlSerializers.html b/juneau-doc/docs/Topics/02.juneau-marshall/26.HtmlDetails/02.HtmlSerializers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/24.HtmlDetails/02.HtmlSerializers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/26.HtmlDetails/02.HtmlSerializers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/24.HtmlDetails/03.HtmlParsers.html b/juneau-doc/docs/Topics/02.juneau-marshall/26.HtmlDetails/03.HtmlParsers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/24.HtmlDetails/03.HtmlParsers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/26.HtmlDetails/03.HtmlParsers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/24.HtmlDetails/04.HtmlAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/26.HtmlDetails/04.HtmlAnnotation.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/24.HtmlDetails/04.HtmlAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/26.HtmlDetails/04.HtmlAnnotation.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/24.HtmlDetails/05.HtmlRenderAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/26.HtmlDetails/05.HtmlRenderAnnotation.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/24.HtmlDetails/05.HtmlRenderAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/26.HtmlDetails/05.HtmlRenderAnnotation.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/24.HtmlDetails/06.HtmlDocSerializer.html b/juneau-doc/docs/Topics/02.juneau-marshall/26.HtmlDetails/06.HtmlDocSerializer.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/24.HtmlDetails/06.HtmlDocSerializer.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/26.HtmlDetails/06.HtmlDocSerializer.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/24.HtmlDetails/07.BasicHtmlDocTemplate.html b/juneau-doc/docs/Topics/02.juneau-marshall/26.HtmlDetails/07.BasicHtmlDocTemplate.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/24.HtmlDetails/07.BasicHtmlDocTemplate.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/26.HtmlDetails/07.BasicHtmlDocTemplate.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/24.HtmlDetails/08.HtmlCustomTemplates.html b/juneau-doc/docs/Topics/02.juneau-marshall/26.HtmlDetails/08.HtmlCustomTemplates.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/24.HtmlDetails/08.HtmlCustomTemplates.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/26.HtmlDetails/08.HtmlCustomTemplates.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/24.HtmlDetails/09.HtmlSchema.html b/juneau-doc/docs/Topics/02.juneau-marshall/26.HtmlDetails/09.HtmlSchema.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/24.HtmlDetails/09.HtmlSchema.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/26.HtmlDetails/09.HtmlSchema.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/25.UonDetails.html b/juneau-doc/docs/Topics/02.juneau-marshall/27.UonDetails.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/25.UonDetails.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/27.UonDetails.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/25.UonDetails/01.UonMethodology.html b/juneau-doc/docs/Topics/02.juneau-marshall/27.UonDetails/01.UonMethodology.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/25.UonDetails/01.UonMethodology.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/27.UonDetails/01.UonMethodology.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/25.UonDetails/02.UonSerializers.html b/juneau-doc/docs/Topics/02.juneau-marshall/27.UonDetails/02.UonSerializers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/25.UonDetails/02.UonSerializers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/27.UonDetails/02.UonSerializers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/25.UonDetails/03.UonParsers.html b/juneau-doc/docs/Topics/02.juneau-marshall/27.UonDetails/03.UonParsers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/25.UonDetails/03.UonParsers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/27.UonDetails/03.UonParsers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/26.UrlEncodingDetails.html b/juneau-doc/docs/Topics/02.juneau-marshall/28.UrlEncodingDetails.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/26.UrlEncodingDetails.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/28.UrlEncodingDetails.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/26.UrlEncodingDetails/01.UrlEncMethodology.html b/juneau-doc/docs/Topics/02.juneau-marshall/28.UrlEncodingDetails/01.UrlEncMethodology.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/26.UrlEncodingDetails/01.UrlEncMethodology.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/28.UrlEncodingDetails/01.UrlEncMethodology.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/26.UrlEncodingDetails/02.UrlEncSerializers.html b/juneau-doc/docs/Topics/02.juneau-marshall/28.UrlEncodingDetails/02.UrlEncSerializers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/26.UrlEncodingDetails/02.UrlEncSerializers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/28.UrlEncodingDetails/02.UrlEncSerializers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/26.UrlEncodingDetails/03.UrlEncParsers.html b/juneau-doc/docs/Topics/02.juneau-marshall/28.UrlEncodingDetails/03.UrlEncParsers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/26.UrlEncodingDetails/03.UrlEncParsers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/28.UrlEncodingDetails/03.UrlEncParsers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/26.UrlEncodingDetails/04.UrlEncodingAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/28.UrlEncodingDetails/04.UrlEncodingAnnotation.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/26.UrlEncodingDetails/04.UrlEncodingAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/28.UrlEncodingDetails/04.UrlEncodingAnnotation.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/27.MsgPackDetails.html b/juneau-doc/docs/Topics/02.juneau-marshall/29.MsgPackDetails.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/27.MsgPackDetails.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/29.MsgPackDetails.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/27.MsgPackDetails/01.MsgPackSerializers.html b/juneau-doc/docs/Topics/02.juneau-marshall/29.MsgPackDetails/01.MsgPackSerializers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/27.MsgPackDetails/01.MsgPackSerializers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/29.MsgPackDetails/01.MsgPackSerializers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/27.MsgPackDetails/02.MsgPackParsers.html b/juneau-doc/docs/Topics/02.juneau-marshall/29.MsgPackDetails/02.MsgPackParsers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/27.MsgPackDetails/02.MsgPackParsers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/29.MsgPackDetails/02.MsgPackParsers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/28.OpenApiDetails.html b/juneau-doc/docs/Topics/02.juneau-marshall/30.OpenApiDetails.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/28.OpenApiDetails.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/30.OpenApiDetails.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/28.OpenApiDetails/01.OpenApiMethodology.html b/juneau-doc/docs/Topics/02.juneau-marshall/30.OpenApiDetails/01.OpenApiMethodology.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/28.OpenApiDetails/01.OpenApiMethodology.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/30.OpenApiDetails/01.OpenApiMethodology.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/28.OpenApiDetails/02.OpenApiSerializers.html b/juneau-doc/docs/Topics/02.juneau-marshall/30.OpenApiDetails/02.OpenApiSerializers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/28.OpenApiDetails/02.OpenApiSerializers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/30.OpenApiDetails/02.OpenApiSerializers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/28.OpenApiDetails/03.OpenApiParsers.html b/juneau-doc/docs/Topics/02.juneau-marshall/30.OpenApiDetails/03.OpenApiParsers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/28.OpenApiDetails/03.OpenApiParsers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/30.OpenApiDetails/03.OpenApiParsers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/29.SimpleVariableLanguage.html b/juneau-doc/docs/Topics/02.juneau-marshall/31.SimpleVariableLanguage.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/29.SimpleVariableLanguage.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/31.SimpleVariableLanguage.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/29.SimpleVariableLanguage/01.SvlVariables.html b/juneau-doc/docs/Topics/02.juneau-marshall/31.SimpleVariableLanguage/01.SvlVariables.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/29.SimpleVariableLanguage/01.SvlVariables.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/31.SimpleVariableLanguage/01.SvlVariables.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/29.SimpleVariableLanguage/02.VarResolvers.html b/juneau-doc/docs/Topics/02.juneau-marshall/31.SimpleVariableLanguage/02.VarResolvers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/29.SimpleVariableLanguage/02.VarResolvers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/31.SimpleVariableLanguage/02.VarResolvers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/29.SimpleVariableLanguage/03.DefaultVarResolver.html b/juneau-doc/docs/Topics/02.juneau-marshall/31.SimpleVariableLanguage/03.DefaultVarResolver.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/29.SimpleVariableLanguage/03.DefaultVarResolver.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/31.SimpleVariableLanguage/03.DefaultVarResolver.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/29.SimpleVariableLanguage/04.SvlOtherNotes.html b/juneau-doc/docs/Topics/02.juneau-marshall/31.SimpleVariableLanguage/04.SvlOtherNotes.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/29.SimpleVariableLanguage/04.SvlOtherNotes.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/31.SimpleVariableLanguage/04.SvlOtherNotes.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/30.BestPractices.html b/juneau-doc/docs/Topics/02.juneau-marshall/32.BestPractices.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/30.BestPractices.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/32.BestPractices.html
diff --git a/juneau-doc/src/main/javadoc/overview.html b/juneau-doc/src/main/javadoc/overview.html
index 108b2db..e88b10d 100644
--- a/juneau-doc/src/main/javadoc/overview.html
+++ b/juneau-doc/src/main/javadoc/overview.html
@@ -183,6 +183,7 @@
 			<li><p><a class='doclink' href='#juneau-marshall.JavaBeansSupport.StopClasses'>Stop Classes</a></p>
 			<li><p><a class='doclink' href='#juneau-marshall.JavaBeansSupport.BypassSerialization'>Bypass Serialization using Readers and InputStreams</a></p>
 		</ol>
+		<li><p><a class='doclink' href='#juneau-marshall.Generics'>Generics</a><span class='update'><b>9.0.0-new</b></span></p>
 		<li><p><a class='doclink' href='#juneau-marshall.HttpPartSerializers'>HTTP Part Serializers</a><span class='update'>8.2.0-updated</span></p>
 		<li><p><a class='doclink' href='#juneau-marshall.HttpPartParsers'>HTTP Part Parsers</a><span class='update'>8.2.0-updated</span></p>
 		<li><p><a class='doclink' href='#juneau-marshall.MarshallConfigurableProperties'>Configurable Properties</a><span class='update'>8.1.3-updated</span></p>
@@ -213,6 +214,7 @@
 		<li><p><a class='doclink' href='#juneau-marshall.MarshallingUris'>URIs</a></p>
 		<li><p><a class='doclink' href='#juneau-marshall.JacksonComparison'>Comparison with Jackson</a></p>
 		<li><p><a class='doclink' href='#juneau-marshall.PojoCategories'>POJO Categories</a></p>
+		<li><p><a class='doclink' href='#juneau-marshall.Assertions'></a><span class='update'><b>9.0.0-new</b></span></p>
 		<li><p><a class='doclink' href='#juneau-marshall.JsonDetails'>JSON Details</a></p>
 		<ol>
 			<li><p><a class='doclink' href='#juneau-marshall.JsonDetails.JsonMethodology'>JSON Methodology</a></p>
@@ -2253,8 +2255,17 @@
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.HttpPartSerializers' id='juneau-marshall.HttpPartSerializers'>2.5 - HTTP Part Serializers</a><span class='update'>8.2.0-updated</span></h3>
-<div class='topic'><!-- START: 2.5 - juneau-marshall.HttpPartSerializers -->
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.Generics' id='juneau-marshall.Generics'>2.5 - Generics</a><span class='update'><b>9.0.0-new</b></span></h3>
+<div class='topic'><!-- START: 2.5 - juneau-marshall.Generics -->
+<p>
+	TODO
+</p>
+</div><!-- END: 2.5 - juneau-marshall.Generics -->
+
+<!-- ==================================================================================================== -->
+
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.HttpPartSerializers' id='juneau-marshall.HttpPartSerializers'>2.6 - HTTP Part Serializers</a><span class='update'>8.2.0-updated</span></h3>
+<div class='topic'><!-- START: 2.6 - juneau-marshall.HttpPartSerializers -->
 <p>
 	There is a separate set of serializers for serializing HTTP parts (query, form-data, headers, path variables, and plain-text request bodies).
 	The distinction is that these are designed to serialize directly to strings based on Open-API schema information.
@@ -2304,12 +2315,12 @@
 		</ul>
 	</ul>
 </ul>
-</div><!-- END: 2.5 - juneau-marshall.HttpPartSerializers -->
+</div><!-- END: 2.6 - juneau-marshall.HttpPartSerializers -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.HttpPartParsers' id='juneau-marshall.HttpPartParsers'>2.6 - HTTP Part Parsers</a><span class='update'>8.2.0-updated</span></h3>
-<div class='topic'><!-- START: 2.6 - juneau-marshall.HttpPartParsers -->
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.HttpPartParsers' id='juneau-marshall.HttpPartParsers'>2.7 - HTTP Part Parsers</a><span class='update'>8.2.0-updated</span></h3>
+<div class='topic'><!-- START: 2.7 - juneau-marshall.HttpPartParsers -->
 <p>
 	There is a separate set of parsers for parsing HTTP parts (query, form-data, headers, path variables, and plain-text request bodies).
 	The distinction is that these are designed to parse directly from strings based on Open-API schema information.
@@ -2340,12 +2351,12 @@
 		</ul>
 	</ul>
 </ul>
-</div><!-- END: 2.6 - juneau-marshall.HttpPartParsers -->
+</div><!-- END: 2.7 - juneau-marshall.HttpPartParsers -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.MarshallConfigurableProperties' id='juneau-marshall.MarshallConfigurableProperties'>2.7 - Configurable Properties</a><span class='update'>8.1.3-updated</span></h3>
-<div class='topic'><!-- START: 2.7 - juneau-marshall.MarshallConfigurableProperties -->
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.MarshallConfigurableProperties' id='juneau-marshall.MarshallConfigurableProperties'>2.8 - Configurable Properties</a><span class='update'>8.1.3-updated</span></h3>
+<div class='topic'><!-- START: 2.8 - juneau-marshall.MarshallConfigurableProperties -->
 <p>
 	Serializers and parsers have a wide variety of configurable properties.  They all extend from the 
 	{@link org.apache.juneau.BeanContextBuilder} class that allows you to easily construct new instances from scratch or build upon existing instances.
@@ -2423,12 +2434,12 @@
 <ul class='seealso'>
 	<li class='doclink'>{@doc GlossaryConfigurableProperties Configurable Properties Glossary}
 </ul>
-</div><!-- END: 2.7 - juneau-marshall.MarshallConfigurableProperties -->
+</div><!-- END: 2.8 - juneau-marshall.MarshallConfigurableProperties -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.ConfigurableAnnotations' id='juneau-marshall.ConfigurableAnnotations'>2.8 - Configurable Annotations</a><span class='update'>8.1.0-new, 8.1.3-updated, 8.2.0-updated</span></h3>
-<div class='topic'><!-- START: 2.8 - juneau-marshall.ConfigurableAnnotations -->
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.ConfigurableAnnotations' id='juneau-marshall.ConfigurableAnnotations'>2.9 - Configurable Annotations</a><span class='update'>8.1.0-new, 8.1.3-updated, 8.2.0-updated</span></h3>
+<div class='topic'><!-- START: 2.9 - juneau-marshall.ConfigurableAnnotations -->
 <p>
 	All configurable properties described in the previous section have annotation equivalents that can be applied on
 	classes or methods.
@@ -2581,12 +2592,12 @@
 <ul class='seealso'>
 	<li class='doclink'>{@doc GlossaryAnnotations Annotations Glossary}
 </ul>
-</div><!-- END: 2.8 - juneau-marshall.ConfigurableAnnotations -->
+</div><!-- END: 2.9 - juneau-marshall.ConfigurableAnnotations -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.OMap' id='juneau-marshall.OMap'>2.9 - OMap and OList</a><span class='update'>updated-8.2.0</span></h3>
-<div class='topic'><!-- START: 2.9 - juneau-marshall.OMap -->
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.OMap' id='juneau-marshall.OMap'>2.10 - OMap and OList</a><span class='update'>updated-8.2.0</span></h3>
+<div class='topic'><!-- START: 2.10 - juneau-marshall.OMap -->
 <p>
 	The {@link org.apache.juneau.collections.OMap} and {@link org.apache.juneau.collections.OList} classes are generic Java 
 	representations of JSON objects and arrays.  
@@ -2693,12 +2704,12 @@
 	As a general rule, if you do not specify a target type during parsing, or if the target type cannot be 
 	determined through reflection, the parsers automatically generate <l>OMaps</l> and <l>OLists</l>.
 </div>
-</div><!-- END: 2.9 - juneau-marshall.OMap -->
+</div><!-- END: 2.10 - juneau-marshall.OMap -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.Groups' id='juneau-marshall.Groups'>2.10 - SerializerGroups and ParserGroups</a></h3>
-<div class='topic'><!-- START: 2.10 - juneau-marshall.Groups -->
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.Groups' id='juneau-marshall.Groups'>2.11 - SerializerGroups and ParserGroups</a></h3>
+<div class='topic'><!-- START: 2.11 - juneau-marshall.Groups -->
 <p>
 	Above the serializers and parsers are the {@link org.apache.juneau.serializer.SerializerGroup} and 
 	{@link org.apache.juneau.parser.ParserGroup} classes.
@@ -2730,12 +2741,12 @@
 	to provide annotated REST servlets that automatically negotiate the HTTP media types and allow the developer
 	to work with requests and responses as POJOs.
 </p>
-</div><!-- END: 2.10 - juneau-marshall.Groups -->
+</div><!-- END: 2.11 - juneau-marshall.Groups -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.ContextsBuildersSessionsPropertyStores' id='juneau-marshall.ContextsBuildersSessionsPropertyStores'>2.11 - Contexts, Builders, Sessions, and ContextProperties</a><span class='update'><b>9.0.0-updated</b></span></h3>
-<div class='topic'><!-- START: 2.11 - juneau-marshall.ContextsBuildersSessionsPropertyStores -->
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.ContextsBuildersSessionsPropertyStores' id='juneau-marshall.ContextsBuildersSessionsPropertyStores'>2.12 - Contexts, Builders, Sessions, and ContextProperties</a><span class='update'><b>9.0.0-updated</b></span></h3>
+<div class='topic'><!-- START: 2.12 - juneau-marshall.ContextsBuildersSessionsPropertyStores -->
 <p>
 	All the serializers, parsers, and REST server/client classes use the following design pattern:
 </p>
@@ -2870,12 +2881,12 @@
 	Refer to the {@link org.apache.juneau.ContextProperties} javadoc for a detailed explanation on how
 	property stores work.
 </p>
-</div><!-- END: 2.11 - juneau-marshall.ContextsBuildersSessionsPropertyStores -->
+</div><!-- END: 2.12 - juneau-marshall.ContextsBuildersSessionsPropertyStores -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.Transforms' id='juneau-marshall.Transforms'>2.12 - Transforms</a></h3>
-<div class='topic'><!-- START: 2.12 - juneau-marshall.Transforms -->
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.Transforms' id='juneau-marshall.Transforms'>2.13 - Transforms</a></h3>
+<div class='topic'><!-- START: 2.13 - juneau-marshall.Transforms -->
 <p>
 	By default, the Juneau framework can serialize and parse a wide variety of POJOs out-of-the-box.  
 	However, two special classes are provided tailor how certain Java objects are handled by the framework.
@@ -2935,8 +2946,8 @@
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.PojoSwaps' id='juneau-marshall.Transforms.PojoSwaps'>2.12.1 - Swaps</a><span class='update'>8.1.0-updated,8.2.0-updated</span></h4>
-<div class='topic'><!-- START: 2.12.1 - juneau-marshall.Transforms.PojoSwaps -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.PojoSwaps' id='juneau-marshall.Transforms.PojoSwaps'>2.13.1 - Swaps</a><span class='update'>8.1.0-updated,8.2.0-updated</span></h4>
+<div class='topic'><!-- START: 2.13.1 - juneau-marshall.Transforms.PojoSwaps -->
 <p>
 	{@link org.apache.juneau.transform.PojoSwap Swaps} are a critical component of Juneau.
 	They allow the serializers and parsers to handle Java objects that wouldn't normally be serializable.
@@ -3030,12 +3041,12 @@
 	<jv>json</jv> = <jv>serializer</jv>.serialize(<jv>bytes2d</jv>);		<jc>// Produces "['AQID','BAUG',null]"</jc>
 	<jv>bytes2d</jv> = <jv>parser</jv>.parse(<jv>json</jv>, <jk>byte</jk>[][].<jk>class</jk>);		<jc>// Reproduces {{1,2,3},{4,5,6},null}</jc>
 </p>
-</div><!-- END: 2.12.1 - juneau-marshall.Transforms.PojoSwaps -->
+</div><!-- END: 2.13.1 - juneau-marshall.Transforms.PojoSwaps -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.DefaultPojoSwaps' id='juneau-marshall.Transforms.DefaultPojoSwaps'>2.12.2 - Default PojoSwaps</a></h4>
-<div class='topic'><!-- START: 2.12.2 - juneau-marshall.Transforms.DefaultPojoSwaps -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.DefaultPojoSwaps' id='juneau-marshall.Transforms.DefaultPojoSwaps'>2.13.2 - Default PojoSwaps</a></h4>
+<div class='topic'><!-- START: 2.13.2 - juneau-marshall.Transforms.DefaultPojoSwaps -->
 <p>
 	By default, all serializers and parsers have built in <c>PojoSwaps</c> defined for the following common data types:
 </p>
@@ -3138,12 +3149,12 @@
 		</ul>
 	</li>
 </ul>
-</div><!-- END: 2.12.2 - juneau-marshall.Transforms.DefaultPojoSwaps -->
+</div><!-- END: 2.13.2 - juneau-marshall.Transforms.DefaultPojoSwaps -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.AutoPojoSwaps' id='juneau-marshall.Transforms.AutoPojoSwaps'>2.12.3 - Auto-detected POJO swaps</a><span class='update'>8.1.0-new</span></h4>
-<div class='topic'><!-- START: 2.12.3 - juneau-marshall.Transforms.AutoPojoSwaps -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.AutoPojoSwaps' id='juneau-marshall.Transforms.AutoPojoSwaps'>2.13.3 - Auto-detected POJO swaps</a><span class='update'>8.1.0-new</span></h4>
+<div class='topic'><!-- START: 2.13.3 - juneau-marshall.Transforms.AutoPojoSwaps -->
 <p>
 	Various methods can be defined on a class directly to affect how it gets serialized.
 	This can often be simpler than using <c>PojoSwaps</c>.
@@ -3297,12 +3308,12 @@
 		}
 	}
 </p>
-</div><!-- END: 2.12.3 - juneau-marshall.Transforms.AutoPojoSwaps -->
+</div><!-- END: 2.13.3 - juneau-marshall.Transforms.AutoPojoSwaps -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.PerMediaTypePojoSwaps' id='juneau-marshall.Transforms.PerMediaTypePojoSwaps'>2.12.4 - Per-media-type Swaps</a><span class='update'>8.1.0-updated,8.2.0-updated</span></h4>
-<div class='topic'><!-- START: 2.12.4 - juneau-marshall.Transforms.PerMediaTypePojoSwaps -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.PerMediaTypePojoSwaps' id='juneau-marshall.Transforms.PerMediaTypePojoSwaps'>2.13.4 - Per-media-type Swaps</a><span class='update'>8.1.0-updated,8.2.0-updated</span></h4>
+<div class='topic'><!-- START: 2.13.4 - juneau-marshall.Transforms.PerMediaTypePojoSwaps -->
 <p>
 	Swaps can also be defined per-media-type.		
 </p>
@@ -3397,12 +3408,12 @@
 	<ja>@Swap</ja>(mediaTypes=<js>"&#42;/*"</js>)
 	<jk>public static class</jk> MyOtherSwap <jk>extends</jk> PojoSwap&lt;MyPojo,String&gt; {...}
 </p>
-</div><!-- END: 2.12.4 - juneau-marshall.Transforms.PerMediaTypePojoSwaps -->
+</div><!-- END: 2.13.4 - juneau-marshall.Transforms.PerMediaTypePojoSwaps -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.OneWayPojoSwaps' id='juneau-marshall.Transforms.OneWayPojoSwaps'>2.12.5 - One-way Swaps</a></h4>
-<div class='topic'><!-- START: 2.12.5 - juneau-marshall.Transforms.OneWayPojoSwaps -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.OneWayPojoSwaps' id='juneau-marshall.Transforms.OneWayPojoSwaps'>2.13.5 - One-way Swaps</a></h4>
+<div class='topic'><!-- START: 2.13.5 - juneau-marshall.Transforms.OneWayPojoSwaps -->
 <p>
 	In the previous sections, we defined two-way swaps, meaning swaps where the original objects could be 
 	reconstructing during parsing. 
@@ -3449,12 +3460,12 @@
 	ReaderParser <jv>parser</jv> = JsonParser.<jsm>create</jsm>().swaps(IteratorSwap.<jk>class</jk>).build();
 	<jv>iterator</jv> = <jv>parser</jv>.parse(<jv>json</jv>, Iterator.<jk>class</jk>);		<jc>// Throws ParseException!!!</jc>
 </p>
-</div><!-- END: 2.12.5 - juneau-marshall.Transforms.OneWayPojoSwaps -->
+</div><!-- END: 2.13.5 - juneau-marshall.Transforms.OneWayPojoSwaps -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.SwapAnnotation' id='juneau-marshall.Transforms.SwapAnnotation'>2.12.6 - @Swap Annotation</a><span class='update'>8.0.0-updated</span></h4>
-<div class='topic'><!-- START: 2.12.6 - juneau-marshall.Transforms.SwapAnnotation -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.SwapAnnotation' id='juneau-marshall.Transforms.SwapAnnotation'>2.13.6 - @Swap Annotation</a><span class='update'>8.0.0-updated</span></h4>
+<div class='topic'><!-- START: 2.13.6 - juneau-marshall.Transforms.SwapAnnotation -->
 <p>
 	{@link org.apache.juneau.annotation.Swap @Swap} can be used to associate a swap class using an 
 	annotation.
@@ -3542,12 +3553,12 @@
 		}
 	}
 </p>
-</div><!-- END: 2.12.6 - juneau-marshall.Transforms.SwapAnnotation -->
+</div><!-- END: 2.13.6 - juneau-marshall.Transforms.SwapAnnotation -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.TemplatedSwaps' id='juneau-marshall.Transforms.TemplatedSwaps'>2.12.7 - Templated Swaps</a></h4>
-<div class='topic'><!-- START: 2.12.7 - juneau-marshall.Transforms.TemplatedSwaps -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.TemplatedSwaps' id='juneau-marshall.Transforms.TemplatedSwaps'>2.13.7 - Templated Swaps</a></h4>
+<div class='topic'><!-- START: 2.13.7 - juneau-marshall.Transforms.TemplatedSwaps -->
 <p>
 	The {@link org.apache.juneau.annotation.Swap#template() @Swap(template)} annotation allows you to associate
 	arbitrary contextual strings with swaps.
@@ -3581,12 +3592,12 @@
 		}
 	}
 </p>
-</div><!-- END: 2.12.7 - juneau-marshall.Transforms.TemplatedSwaps -->
+</div><!-- END: 2.13.7 - juneau-marshall.Transforms.TemplatedSwaps -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.SurrogateClasses' id='juneau-marshall.Transforms.SurrogateClasses'>2.12.8 - Surrogate Classes</a></h4>
-<div class='topic'><!-- START: 2.12.8 - juneau-marshall.Transforms.SurrogateClasses -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.SurrogateClasses' id='juneau-marshall.Transforms.SurrogateClasses'>2.13.8 - Surrogate Classes</a></h4>
+<div class='topic'><!-- START: 2.13.8 - juneau-marshall.Transforms.SurrogateClasses -->
 <p>
 <p>
 	Surrogate classes are very similar in concept to <c>PojoSwaps</c> except they're simpler to define.
@@ -3650,13 +3661,13 @@
 <ul class='seealso'>
 	<li class='jic'>{@link org.apache.juneau.transform.Surrogate}
 </ul>
-</div><!-- END: 2.12.8 - juneau-marshall.Transforms.SurrogateClasses -->
-</div><!-- END: 2.12 - juneau-marshall.Transforms -->
+</div><!-- END: 2.13.8 - juneau-marshall.Transforms.SurrogateClasses -->
+</div><!-- END: 2.13 - juneau-marshall.Transforms -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.DynamicallyAppliedAnnotations' id='juneau-marshall.DynamicallyAppliedAnnotations'>2.13 - Dynamically Applied Annotations</a><span class='update'>8.1.3-new</span></h3>
-<div class='topic'><!-- START: 2.13 - juneau-marshall.DynamicallyAppliedAnnotations -->
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.DynamicallyAppliedAnnotations' id='juneau-marshall.DynamicallyAppliedAnnotations'>2.14 - Dynamically Applied Annotations</a><span class='update'>8.1.3-new</span></h3>
+<div class='topic'><!-- START: 2.14 - juneau-marshall.DynamicallyAppliedAnnotations -->
 <p>
 	In the section {@doc Transforms}, you were introduced to annotations that can be applied to bean
 	classes, methods, fields, and constructors such as {@link org.apache.juneau.annotation.Bean @Bean}:
@@ -3825,12 +3836,12 @@
 		</ul>
 	<li>A comma-delimited list of anything on this list.
 </ul>
-</div><!-- END: 2.13 - juneau-marshall.DynamicallyAppliedAnnotations -->
+</div><!-- END: 2.14 - juneau-marshall.DynamicallyAppliedAnnotations -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.BeanDictionaries' id='juneau-marshall.BeanDictionaries'>2.14 - Bean Names and Dictionaries</a></h3>
-<div class='topic'><!-- START: 2.14 - juneau-marshall.BeanDictionaries -->
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.BeanDictionaries' id='juneau-marshall.BeanDictionaries'>2.15 - Bean Names and Dictionaries</a></h3>
+<div class='topic'><!-- START: 2.15 - juneau-marshall.BeanDictionaries -->
 <p>
 	While parsing into beans, Juneau attempts to determine the class types of bean properties through 
 	reflection on the bean property getter or setter.
@@ -3987,8 +3998,8 @@
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.BeanDictionaries.BeanSubTypes' id='juneau-marshall.BeanDictionaries.BeanSubTypes'>2.14.1 - Bean Subtypes</a></h4>
-<div class='topic'><!-- START: 2.14.1 - juneau-marshall.BeanDictionaries.BeanSubTypes -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.BeanDictionaries.BeanSubTypes' id='juneau-marshall.BeanDictionaries.BeanSubTypes'>2.15.1 - Bean Subtypes</a></h4>
+<div class='topic'><!-- START: 2.15.1 - juneau-marshall.BeanDictionaries.BeanSubTypes -->
 <p>
 	In addition to the bean type name support described above, simplified support is provided
 	for bean subtypes.
@@ -4043,13 +4054,13 @@
 	A <jv>a</jv> = <jv>parser</jv>.parse(<jv>json</jv>, A.<jk>class</jk>);
 	<jsm>assertTrue</jsm>(<jv>a</jv> <jk>instanceof</jk> A1);
 </p>
-</div><!-- END: 2.14.1 - juneau-marshall.BeanDictionaries.BeanSubTypes -->
-</div><!-- END: 2.14 - juneau-marshall.BeanDictionaries -->
+</div><!-- END: 2.15.1 - juneau-marshall.BeanDictionaries.BeanSubTypes -->
+</div><!-- END: 2.15 - juneau-marshall.BeanDictionaries -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.VirtualBeans' id='juneau-marshall.VirtualBeans'>2.15 - Virtual Beans</a></h3>
-<div class='topic'><!-- START: 2.15 - juneau-marshall.VirtualBeans -->
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.VirtualBeans' id='juneau-marshall.VirtualBeans'>2.16 - Virtual Beans</a></h3>
+<div class='topic'><!-- START: 2.16 - juneau-marshall.VirtualBeans -->
 <p>
 	The {@link org.apache.juneau.BeanContext#BEAN_useInterfaceProxies} setting (enabled by default) allows
 	the Juneau parsers to parse content into virtual beans (bean interfaces without implementation classes).
@@ -4097,12 +4108,12 @@
 <p class='bpcode w800'>
 	Address <jv>address</jv> = BeanContext.<jsf>DEFAULT</jsf>.createSession().newBean(Address.<jk>class</jk>);
 </p>
-</div><!-- END: 2.15 - juneau-marshall.VirtualBeans -->
+</div><!-- END: 2.16 - juneau-marshall.VirtualBeans -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.Recursion' id='juneau-marshall.Recursion'>2.16 - Non-Tree Models and Recursion Detection</a></h3>
-<div class='topic'><!-- START: 2.16 - juneau-marshall.Recursion -->
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.Recursion' id='juneau-marshall.Recursion'>2.17 - Non-Tree Models and Recursion Detection</a></h3>
+<div class='topic'><!-- START: 2.17 - juneau-marshall.Recursion -->
 <p>
 	The Juneau Serializer API is designed to be used against POJO tree structures. 
 	It expects that there not be loops in the POJO model (e.g. children with references to parents, etc...).
@@ -4166,12 +4177,12 @@
 	Recursion detection introduces a performance penalty of around 20%.
 	For this reason the setting is disabled by default.
 </p>
-</div><!-- END: 2.16 - juneau-marshall.Recursion -->
+</div><!-- END: 2.17 - juneau-marshall.Recursion -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.ParsingIntoGenericModels' id='juneau-marshall.ParsingIntoGenericModels'>2.17 - Parsing into Generic Models</a><span class='update'>updated-8.2.0</span></h3>
-<div class='topic'><!-- START: 2.17 - juneau-marshall.ParsingIntoGenericModels -->
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.ParsingIntoGenericModels' id='juneau-marshall.ParsingIntoGenericModels'>2.18 - Parsing into Generic Models</a><span class='update'>updated-8.2.0</span></h3>
+<div class='topic'><!-- START: 2.18 - juneau-marshall.ParsingIntoGenericModels -->
 <p>
 	The Juneau parsers are not limited to parsing back into the original bean classes.
 	If the bean classes are not available on the parsing side, the parser can also be used to 
@@ -4281,12 +4292,12 @@
 	As a general rule, parsing into beans is often more efficient than parsing into generic models.
 	And working with beans is often less error prone than working with generic models.
 </p>
-</div><!-- END: 2.17 - juneau-marshall.ParsingIntoGenericModels -->
+</div><!-- END: 2.18 - juneau-marshall.ParsingIntoGenericModels -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.ReadingContinuousStreams' id='juneau-marshall.ReadingContinuousStreams'>2.18 - Reading Continuous Streams</a></h3>
-<div class='topic'><!-- START: 2.18 - juneau-marshall.ReadingContinuousStreams -->
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.ReadingContinuousStreams' id='juneau-marshall.ReadingContinuousStreams'>2.19 - Reading Continuous Streams</a></h3>
+<div class='topic'><!-- START: 2.19 - juneau-marshall.ReadingContinuousStreams -->
 <p>
 	The following parsers can be configured to read continuous streams of objects from the same input stream:
 </p>
@@ -4333,12 +4344,12 @@
 	The {@link org.apache.juneau.msgpack.MsgPackParser} class doesn't use any internal buffering to begin with, so it can be used with
 	continuous streams without any special properties.
 </p>
-</div><!-- END: 2.18 - juneau-marshall.ReadingContinuousStreams -->
+</div><!-- END: 2.19 - juneau-marshall.ReadingContinuousStreams -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.MarshallingUris' id='juneau-marshall.MarshallingUris'>2.19 - URIs</a></h3>
-<div class='topic'><!-- START: 2.19 - juneau-marshall.MarshallingUris -->
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.MarshallingUris' id='juneau-marshall.MarshallingUris'>2.20 - URIs</a></h3>
+<div class='topic'><!-- START: 2.20 - juneau-marshall.MarshallingUris -->
 <p>
 	Juneau serializers have sophisticated support for transforming relative URIs to absolute form.
 </p>
@@ -4476,12 +4487,12 @@
 		}
 	}
 </p>
-</div><!-- END: 2.19 - juneau-marshall.MarshallingUris -->
+</div><!-- END: 2.20 - juneau-marshall.MarshallingUris -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.JacksonComparison' id='juneau-marshall.JacksonComparison'>2.20 - Comparison with Jackson</a></h3>
-<div class='topic'><!-- START: 2.20 - juneau-marshall.JacksonComparison -->
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.JacksonComparison' id='juneau-marshall.JacksonComparison'>2.21 - Comparison with Jackson</a></h3>
+<div class='topic'><!-- START: 2.21 - juneau-marshall.JacksonComparison -->
 <p>
 	Juneau was developed independently from Jackson, but shares many of the same features and capabilities.
 	Whereas Jackson was created to work primarily with JSON, Juneau was created to work for multiple languages.
@@ -4589,12 +4600,12 @@
 		</td>
 	</tr>
 </table>
-</div><!-- END: 2.20 - juneau-marshall.JacksonComparison -->
+</div><!-- END: 2.21 - juneau-marshall.JacksonComparison -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.PojoCategories' id='juneau-marshall.PojoCategories'>2.21 - POJO Categories</a></h3>
-<div class='topic'><!-- START: 2.21 - juneau-marshall.PojoCategories -->
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.PojoCategories' id='juneau-marshall.PojoCategories'>2.22 - POJO Categories</a></h3>
+<div class='topic'><!-- START: 2.22 - juneau-marshall.PojoCategories -->
 <p>
 	In general, Juneau allows for marshalling for a wide variety of POJO types including:
 </p>
@@ -4927,12 +4938,171 @@
 <p>
 	POJOs are considered convertible from X if any of the reverse of above are true.
 </p>
-</div><!-- END: 2.21 - juneau-marshall.PojoCategories -->
+</div><!-- END: 2.22 - juneau-marshall.PojoCategories -->
+
+<!-- ==================================================================================================== -->
+
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.Assertions' id='juneau-marshall.Assertions'>2.23 - </a><span class='update'><b>9.0.0-new</b></span></h3>
+<div class='topic'><!-- START: 2.23 - juneau-marshall.Assertions -->
+<p>
+	The {@link org.apache.juneau.assertions} package in Juneau is a powerful API for performing fluent style assertions.
+	It is used throughout the REST client and server APIs for performing inline assertions on REST calls.
+</p>
+<h5 class='figure'>Example:</h5>
+<p class='bcode w800'>
+	<jc>// Create a basic REST client with JSON support and download a bean.</jc>
+	MyBean <jv>bean</jv> = RestClient.<jsm>create</jsm>()
+		.simpleJson()
+		.build()
+		.get(<jsf>URI</jsf>)
+		.run()
+		.assertStatus().code().is(200)
+		.assertHeader(<js>"Content-Type"</js>).asString().matches(<js>"application/json*"</js>)
+		.getBody().assertValue().asString().matches(<js>"*OK*"</js>)
+		.getBody().as(MyBean.<jk>class</jk>);
+</p>
+<p>
+	The {@link org.apache.juneau.assertions.Assertions} class provides various static methods for invoking assertions on a variety
+	of object types.
+</p>
+<ul class='javatree'>
+	<li class='jc'>{@link org.apache.juneau.assertions.Assertions}
+		<ul>
+			<li class='jm'>{@link org.apache.juneau.assertions.Assertions#assertAny(T)}
+			<li class='jm'>{@link org.apache.juneau.assertions.Assertions#assertArray(E[])}
+			<li class='jm'>{@link org.apache.juneau.assertions.Assertions#assertBean(V)}
+			<li class='jm'>{@link org.apache.juneau.assertions.Assertions#assertBeanList(List)}
+			<li class='jm'>{@link org.apache.juneau.assertions.Assertions#assertBoolean(Boolean)}
+			<li class='jm'>{@link org.apache.juneau.assertions.Assertions#assertBooleanArray(boolean[])}
+			<li class='jm'>{@link org.apache.juneau.assertions.Assertions#assertByteArray(byte[])}
+			<li class='jm'>{@link org.apache.juneau.assertions.Assertions#assertBytes(byte[])}
+			<li class='jm'>{@link org.apache.juneau.assertions.Assertions#assertCharArray(char[])}
+			<li class='jm'>{@link org.apache.juneau.assertions.Assertions#assertCollection(Collection)}
+			<li class='jm'>{@link org.apache.juneau.assertions.Assertions#assertComparable(T)}
+			<li class='jm'>{@link org.apache.juneau.assertions.Assertions#assertDate(Date)}
+			<li class='jm'>{@link org.apache.juneau.assertions.Assertions#assertDoubleArray(double[])}
+			<li class='jm'>{@link org.apache.juneau.assertions.Assertions#assertFloatArray(float[])}
+			<li class='jm'>{@link org.apache.juneau.assertions.Assertions#assertIntArray(int[])}
+			<li class='jm'>{@link org.apache.juneau.assertions.Assertions#assertInteger(Integer)}
+			<li class='jm'>{@link org.apache.juneau.assertions.Assertions#assertList(List)}
+			<li class='jm'>{@link org.apache.juneau.assertions.Assertions#assertLong(Long)}
+			<li class='jm'>{@link org.apache.juneau.assertions.Assertions#assertLongArray(long[])}
+			<li class='jm'>{@link org.apache.juneau.assertions.Assertions#assertMap(Map)}
+			<li class='jm'>{@link org.apache.juneau.assertions.Assertions#assertObject(T)}
+			<li class='jm'>{@link org.apache.juneau.assertions.Assertions#assertOptional(Optional)}
+			<li class='jm'>{@link org.apache.juneau.assertions.Assertions#assertReader(Reader)}
+			<li class='jm'>{@link org.apache.juneau.assertions.Assertions#assertShortArray(short[])}
+			<li class='jm'>{@link org.apache.juneau.assertions.Assertions#assertStream(InputStream)}
+			<li class='jm'>{@link org.apache.juneau.assertions.Assertions#assertString(Object)}
+			<li class='jm'>{@link org.apache.juneau.assertions.Assertions#assertStringList(List)}
+			<li class='jm'>{@link org.apache.juneau.assertions.Assertions#assertThrowable(V)}
+			<li class='jm'>{@link org.apache.juneau.assertions.Assertions#assertThrown(Class, Snippet)}
+			<li class='jm'>{@link org.apache.juneau.assertions.Assertions#assertThrown(Snippet)}
+			<li class='jm'>{@link org.apache.juneau.assertions.Assertions#assertVersion(Version)}
+			<li class='jm'>{@link org.apache.juneau.assertions.Assertions#assertZonedDateTime(ZonedDateTime)}
+		</ul>
+	</li>
+</ul>
+<h5 class='figure'>Examples:</h5>
+<p class='bcode w800'>
+	<jk>import static</jk> org.apache.juneau.assertions.Assertions.*;
+	
+	<jc>// Check the contents of a string.</jc>
+	<jsm>assertString</jsm>(<js>"foo, bar"</js>)
+			.split(<js>","</js>)
+			.trim()
+			.has(<js>"foo"</js>, <js>"bar"</js>);
+
+	<jc>// Extract a subset of properties from a list of beans and compare using Simplified JSON.</jc>
+	List&lt;MyBean&gt; <jv>myList</jv> = ...;
+	<jsm>assertBeanList</jsm>(<jv>myList</jv>)
+			.extract(<js>"a,b"</js>)
+			.asJson().is(<js>"[{a:1,b:'foo'}]"</js>);
+	
+	<jc>// Check that an exception is thrown and is the specified type and has the sppecified message.</jc>
+	<jsm>assertThrown</jsm>(()-><jv>myBean</jv>.runBadMethod())
+			.exists()
+			.isExactType(RuntimeException.<jk>class</jk>)
+			.message().is(<js>"foo"</js>);
+</p>
+<p>
+	Assertions have 3 categories of methods:
+</p>
+<ul>
+	<li>Testing methods.
+	<li>Transform methods.
+	<li>Configuration methods.
+</ul>
+<p>
+	Testing methods perform an assertion on the specified value and throws a {@link java.lang.AssertionError} if
+	the test fails.  Otherwise, the method returns the original assertion object to allow you to chain the command.
+</p>
+<p class='bcode w800'>
+	<jc>// Test a string.</jc>
+	<jsm>assertString</jsm>(<jv>myString</jv>)
+			.isNotNull()  <jc>// Perform test and returns original FluentStringAssertion.</jc>
+			.isNotEmpty()  <jc>// Perform test and returns original FluentStringAssertion.</jc>
+	;
+</p>	
+<p>
+	Transform methods allow you to convert assertions of one type to another type, or convert the tested value to
+	some other form wrapped in another assertion.
+</p>
+<h5 class='figure'>Example:</h5>
+<p class='bcode w800'>
+	<jc>// Customize the behavior of an assertion.</jc>
+	<jsm>assertString</jsm>(<jv>myString</jv>)
+		.length()  <jc>// Converts to a FluentIntegerAssertion.</jc>
+			.isLt(100)  <jc>// Runs test and returns original FluentStringAssertion.</jc>
+		.uc()  <jc>// Converts string to uppercase and returns a new FluentStringAssertion.</jc>
+			.contains(<js>"FOO"</js>)  <jc>// Runs test and returns original FluentStringAssertion.</jc>
+</p>	
+<p>
+	Configuration methods allow you to tailor the behavior of assertions when they fail.
+	They always return the same assertion object.
+	Transformed assertions inherit the configurations of the created-by assertions.
+</p>
+<h5 class='figure'>Example:</h5>
+<p class='bcode w800'>
+	<jc>// Customize the behavior of an assertion.</jc>
+	<jsm>assertString</jsm>(<jv>myString</jv>)
+			.msg(<js>"My string was null.  Value was {VALUE}."</js>)  <jc>// Custom error message when error occurs.</jc>
+			.out(<jv>myPrintWriter</jv>)  <jc>// Print error message to a separate writer.</jc>
+			.throwable(MyAssertionThrowable.<jk>class</jk>)  <jc>// Throw a customized assertion exception.</jc>
+			.isNotNull();
+</p>	
+<p>
+	The following shows the class hierarchy for the {@link org.apache.juneau.annotations.IntegerAssertion} class showing the general
+	design pattern for assertion classes:
+</p>
+<ul class='javatree'>
+	<li class='jac'>{@link org.apache.juneau.assertions.Assertion Assertion} - Base class for all assertion objects containing common configuration methods.
+	<ul>
+		<li class='jac'>{@link org.apache.juneau.assertions.FluentAssertion FluentAssertion&lt;R&gt;} - Parent class for all fluent assertions.
+		<ul>
+			<li class='jac'>{@link org.apache.juneau.assertions.FluentObjectAssertion FluentObjectAssertion&lt;T,R&gt;} - Tests and transforms for general POJOs.
+			<ul>
+				<li class='jac'>{@link org.apache.juneau.assertions.FluentComparableAssertion FluentComparableAssertion&lt;T <jk>extends</jk> Comparable,R&gt;} - Tests and transforms for Comparables.
+				<ul>
+					<li class='jac'>{@link org.apache.juneau.assertions.FluentIntegerAssertion FluentIntegerAssertion&lt;R&gt;} - Tests and transforms for Integers.
+					<ul>
+						<li class='jac'>{@link org.apache.juneau.assertions.IntegerAssertion IntegerAssertion} - Assertion that returns itself.
+					</ul>
+				</ul>
+			</ul>
+		</ul>
+	</ul>
+</ul>
+<p>
+	For more information about the capabilities of the Assertions API, refer to the methods on the {@link org.apache.juneau.assertions.Assertions} methods
+	above.
+</p>
+</div><!-- END: 2.23 - juneau-marshall.Assertions -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails' id='juneau-marshall.JsonDetails'>2.22 - JSON Details</a></h3>
-<div class='topic'><!-- START: 2.22 - juneau-marshall.JsonDetails -->
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails' id='juneau-marshall.JsonDetails'>2.24 - JSON Details</a></h3>
+<div class='topic'><!-- START: 2.24 - juneau-marshall.JsonDetails -->
 <p>
 	Juneau supports converting arbitrary POJOs to and from JSON using ultra-efficient serializers and parsers.
 	The JSON serializer converts POJOs directly to JSON without the need for intermediate DOM objects using a 
@@ -5014,8 +5184,8 @@
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.JsonMethodology' id='juneau-marshall.JsonDetails.JsonMethodology'>2.22.1 - JSON Methodology</a></h4>
-<div class='topic'><!-- START: 2.22.1 - juneau-marshall.JsonDetails.JsonMethodology -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.JsonMethodology' id='juneau-marshall.JsonDetails.JsonMethodology'>2.24.1 - JSON Methodology</a></h4>
+<div class='topic'><!-- START: 2.24.1 - juneau-marshall.JsonDetails.JsonMethodology -->
 <p>
 	The JSON data type produced depends on the Java object type being serialized.
 </p>
@@ -5086,12 +5256,12 @@
 	<c>Calendar</c> object to ISO8601 strings, or <c><jk>byte</jk>[]</c> arrays to Base-64 
 	encoded strings.
 </p>
-</div><!-- END: 2.22.1 - juneau-marshall.JsonDetails.JsonMethodology -->
+</div><!-- END: 2.24.1 - juneau-marshall.JsonDetails.JsonMethodology -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.JsonSerializers' id='juneau-marshall.JsonDetails.JsonSerializers'>2.22.2 - JSON Serializers</a></h4>
-<div class='topic'><!-- START: 2.22.2 - juneau-marshall.JsonDetails.JsonSerializers -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.JsonSerializers' id='juneau-marshall.JsonDetails.JsonSerializers'>2.24.2 - JSON Serializers</a></h4>
+<div class='topic'><!-- START: 2.24.2 - juneau-marshall.JsonDetails.JsonSerializers -->
 <p>
 	The {@link org.apache.juneau.json.JsonSerializer} class is used to serialize POJOs into JSON.
 </p>	
@@ -5122,12 +5292,12 @@
 		<li class='jf'>{@link org.apache.juneau.json.SimpleJsonSerializer#DEFAULT_READABLE DEFAULT_READABLE}
 	</ul>
 </ul>
-</div><!-- END: 2.22.2 - juneau-marshall.JsonDetails.JsonSerializers -->
+</div><!-- END: 2.24.2 - juneau-marshall.JsonDetails.JsonSerializers -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.SimplifiedJson' id='juneau-marshall.JsonDetails.SimplifiedJson'>2.22.3 - Simplified JSON</a></h4>
-<div class='topic'><!-- START: 2.22.3 - juneau-marshall.JsonDetails.SimplifiedJson -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.SimplifiedJson' id='juneau-marshall.JsonDetails.SimplifiedJson'>2.24.3 - Simplified JSON</a></h4>
+<div class='topic'><!-- START: 2.24.3 - juneau-marshall.JsonDetails.SimplifiedJson -->
 <p>
 	The {@link org.apache.juneau.json.SimpleJsonSerializer} class can be used to serialized POJOs into Simplified JSON notation.
 </p>
@@ -5184,12 +5354,12 @@
 <ul class='seealso'>
 	<li class='jf'>{@link org.apache.juneau.json.JsonSerializer#JSON_simpleMode}
 </ul>
-</div><!-- END: 2.22.3 - juneau-marshall.JsonDetails.SimplifiedJson -->
+</div><!-- END: 2.24.3 - juneau-marshall.JsonDetails.SimplifiedJson -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.JsonParsers' id='juneau-marshall.JsonDetails.JsonParsers'>2.22.4 - JSON Parsers</a></h4>
-<div class='topic'><!-- START: 2.22.4 - juneau-marshall.JsonDetails.JsonParsers -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.JsonParsers' id='juneau-marshall.JsonDetails.JsonParsers'>2.24.4 - JSON Parsers</a></h4>
+<div class='topic'><!-- START: 2.24.4 - juneau-marshall.JsonDetails.JsonParsers -->
 <p>
 	The {@link org.apache.juneau.json.JsonParser} class is used to parse JSON into POJOs.
 </p>	
@@ -5228,12 +5398,12 @@
 	<li>
 		Concatenated strings. 
 </ul>
-</div><!-- END: 2.22.4 - juneau-marshall.JsonDetails.JsonParsers -->
+</div><!-- END: 2.24.4 - juneau-marshall.JsonDetails.JsonParsers -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.JsonAnnotation' id='juneau-marshall.JsonDetails.JsonAnnotation'>2.22.5 - @Json Annotation</a></h4>
-<div class='topic'><!-- START: 2.22.5 - juneau-marshall.JsonDetails.JsonAnnotation -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.JsonAnnotation' id='juneau-marshall.JsonDetails.JsonAnnotation'>2.24.5 - @Json Annotation</a></h4>
+<div class='topic'><!-- START: 2.24.5 - juneau-marshall.JsonDetails.JsonAnnotation -->
 <p>
 	The {@link org.apache.juneau.json.annotation.Json @Json} annotation
 	is used to override the behavior of {@link org.apache.juneau.json.JsonSerializer} on individual bean classes or properties.
@@ -5281,12 +5451,12 @@
 		</td>
 	</tr>
 </table>
-</div><!-- END: 2.22.5 - juneau-marshall.JsonDetails.JsonAnnotation -->
+</div><!-- END: 2.24.5 - juneau-marshall.JsonDetails.JsonAnnotation -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.JsonSchema' id='juneau-marshall.JsonDetails.JsonSchema'>2.22.6 - JSON-Schema Support</a></h4>
-<div class='topic'><!-- START: 2.22.6 - juneau-marshall.JsonDetails.JsonSchema -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.JsonSchema' id='juneau-marshall.JsonDetails.JsonSchema'>2.24.6 - JSON-Schema Support</a></h4>
+<div class='topic'><!-- START: 2.24.6 - juneau-marshall.JsonDetails.JsonSchema -->
 <p>
 	Juneau provides the {@link org.apache.juneau.json.JsonSchemaSerializer} class for generating JSON-Schema 
 	documents that describe the output generated by the {@link org.apache.juneau.json.JsonSerializer} class.
@@ -5378,13 +5548,13 @@
 		}
 	}
 </p>
-</div><!-- END: 2.22.6 - juneau-marshall.JsonDetails.JsonSchema -->
-</div><!-- END: 2.22 - juneau-marshall.JsonDetails -->
+</div><!-- END: 2.24.6 - juneau-marshall.JsonDetails.JsonSchema -->
+</div><!-- END: 2.24 - juneau-marshall.JsonDetails -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails' id='juneau-marshall.XmlDetails'>2.23 - XML Details</a></h3>
-<div class='topic'><!-- START: 2.23 - juneau-marshall.XmlDetails -->
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails' id='juneau-marshall.XmlDetails'>2.25 - XML Details</a></h3>
+<div class='topic'><!-- START: 2.25 - juneau-marshall.XmlDetails -->
 <p>
 	Juneau supports converting arbitrary POJOs to and from XML using ultra-efficient serializers and parsers.
 	The XML serializer converts POJOs directly to XML without the need for intermediate DOM objects.
@@ -5461,8 +5631,8 @@
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.XmlMethodology' id='juneau-marshall.XmlDetails.XmlMethodology'>2.23.1 - XML Methodology</a></h4>
-<div class='topic'><!-- START: 2.23.1 - juneau-marshall.XmlDetails.XmlMethodology -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.XmlMethodology' id='juneau-marshall.XmlDetails.XmlMethodology'>2.25.1 - XML Methodology</a></h4>
+<div class='topic'><!-- START: 2.25.1 - juneau-marshall.XmlDetails.XmlMethodology -->
 <p>
 	The following examples show how different data types are represented in XML.
 	They mirror how the data structures are represented in JSON.
@@ -5863,12 +6033,12 @@
 		</xt></td>
 	</tr>
 </table>
-</div><!-- END: 2.23.1 - juneau-marshall.XmlDetails.XmlMethodology -->
+</div><!-- END: 2.25.1 - juneau-marshall.XmlDetails.XmlMethodology -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.XmlSerializers' id='juneau-marshall.XmlDetails.XmlSerializers'>2.23.2 - XML Serializers</a></h4>
-<div class='topic'><!-- START: 2.23.2 - juneau-marshall.XmlDetails.XmlSerializers -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.XmlSerializers' id='juneau-marshall.XmlDetails.XmlSerializers'>2.25.2 - XML Serializers</a></h4>
+<div class='topic'><!-- START: 2.25.2 - juneau-marshall.XmlDetails.XmlSerializers -->
 <p>
 	The {@link org.apache.juneau.xml.XmlSerializer} class is used to serialize POJOs into XML.
 </p>	
@@ -5908,12 +6078,12 @@
 		<li class='jf'>{@link org.apache.juneau.xml.XmlSerializer#DEFAULT_XS_NAMESPACE DEFAULT_XS_NAMESPACE}				
 	</ul>
 </ul>
-</div><!-- END: 2.23.2 - juneau-marshall.XmlDetails.XmlSerializers -->
+</div><!-- END: 2.25.2 - juneau-marshall.XmlDetails.XmlSerializers -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.XmlParsers' id='juneau-marshall.XmlDetails.XmlParsers'>2.23.3 - XML Parsers</a></h4>
-<div class='topic'><!-- START: 2.23.3 - juneau-marshall.XmlDetails.XmlParsers -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.XmlParsers' id='juneau-marshall.XmlDetails.XmlParsers'>2.25.3 - XML Parsers</a></h4>
+<div class='topic'><!-- START: 2.25.3 - juneau-marshall.XmlDetails.XmlParsers -->
 <p>
 	The {@link org.apache.juneau.xml.XmlParser} class is used to parse XML into POJOs.
 </p>	
@@ -5940,12 +6110,12 @@
 		<li class='jf'>{@link org.apache.juneau.xml.XmlParser#DEFAULT DEFAULT}
 	</ul>
 </ul>
-</div><!-- END: 2.23.3 - juneau-marshall.XmlDetails.XmlParsers -->
+</div><!-- END: 2.25.3 - juneau-marshall.XmlDetails.XmlParsers -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.XmlBeanTypeNameAnnotation' id='juneau-marshall.XmlDetails.XmlBeanTypeNameAnnotation'>2.23.4 - @Bean(typeName) Annotation</a></h4>
-<div class='topic'><!-- START: 2.23.4 - juneau-marshall.XmlDetails.XmlBeanTypeNameAnnotation -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.XmlBeanTypeNameAnnotation' id='juneau-marshall.XmlDetails.XmlBeanTypeNameAnnotation'>2.25.4 - @Bean(typeName) Annotation</a></h4>
+<div class='topic'><!-- START: 2.25.4 - juneau-marshall.XmlDetails.XmlBeanTypeNameAnnotation -->
 <p>
 	The {@link org.apache.juneau.annotation.Bean#typeName() @Bean(typeName)} annotation can be used to 
 	override the Juneau default name on bean elements. 
@@ -6424,12 +6594,12 @@
 	{@link javax.xml.stream.XMLInputFactory#IS_REPLACING_ENTITY_REFERENCES} setting in Java
 	forced us to make some hard design decisions that may not be the most elegant.
 </p>
-</div><!-- END: 2.23.4 - juneau-marshall.XmlDetails.XmlBeanTypeNameAnnotation -->
+</div><!-- END: 2.25.4 - juneau-marshall.XmlDetails.XmlBeanTypeNameAnnotation -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.XmlChildNameAnnotation' id='juneau-marshall.XmlDetails.XmlChildNameAnnotation'>2.23.5 - @Xml(childName) Annotation</a></h4>
-<div class='topic'><!-- START: 2.23.5 - juneau-marshall.XmlDetails.XmlChildNameAnnotation -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.XmlChildNameAnnotation' id='juneau-marshall.XmlDetails.XmlChildNameAnnotation'>2.25.5 - @Xml(childName) Annotation</a></h4>
+<div class='topic'><!-- START: 2.25.5 - juneau-marshall.XmlDetails.XmlChildNameAnnotation -->
 <p>
 	The {@link org.apache.juneau.xml.annotation.Xml#childName() @Xml(childName)} annotation can be used to 
 	specify the name of XML child elements for bean properties of type collection or array.
@@ -6513,12 +6683,12 @@
 		</xt></td>
 	</tr>
 </table>
-</div><!-- END: 2.23.5 - juneau-marshall.XmlDetails.XmlChildNameAnnotation -->
+</div><!-- END: 2.25.5 - juneau-marshall.XmlDetails.XmlChildNameAnnotation -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.XmlFormatAnnotation' id='juneau-marshall.XmlDetails.XmlFormatAnnotation'>2.23.6 - @Xml(format) Annotation</a></h4>
-<div class='topic'><!-- START: 2.23.6 - juneau-marshall.XmlDetails.XmlFormatAnnotation -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.XmlFormatAnnotation' id='juneau-marshall.XmlDetails.XmlFormatAnnotation'>2.25.6 - @Xml(format) Annotation</a></h4>
+<div class='topic'><!-- START: 2.25.6 - juneau-marshall.XmlDetails.XmlFormatAnnotation -->
 <p>
 	The {@link org.apache.juneau.xml.annotation.Xml#format() @Xml(format)} annotation can be used to tweak 
 	the XML format of a POJO.
@@ -7222,12 +7392,12 @@
 		</xt></td>
 	</tr>
 </table>
-</div><!-- END: 2.23.6 - juneau-marshall.XmlDetails.XmlFormatAnnotation -->
+</div><!-- END: 2.25.6 - juneau-marshall.XmlDetails.XmlFormatAnnotation -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.XmlNamespaces' id='juneau-marshall.XmlDetails.XmlNamespaces'>2.23.7 - Namespaces</a></h4>
-<div class='topic'><!-- START: 2.23.7 - juneau-marshall.XmlDetails.XmlNamespaces -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.XmlNamespaces' id='juneau-marshall.XmlDetails.XmlNamespaces'>2.25.7 - Namespaces</a></h4>
+<div class='topic'><!-- START: 2.25.7 - juneau-marshall.XmlDetails.XmlNamespaces -->
 <p>
 	Let's go back to the example of our original <c>Person</c> bean class, but add some namespace annotations:
 </p>
@@ -7393,13 +7563,13 @@
 		.namespaces(<js>"{per:'http://www.apache.org/person/'}"</js>)
 		.build();
 </p>
-</div><!-- END: 2.23.7 - juneau-marshall.XmlDetails.XmlNamespaces -->
-</div><!-- END: 2.23 - juneau-marshall.XmlDetails -->
+</div><!-- END: 2.25.7 - juneau-marshall.XmlDetails.XmlNamespaces -->
+</div><!-- END: 2.25 - juneau-marshall.XmlDetails -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails' id='juneau-marshall.HtmlDetails'>2.24 - HTML Details</a></h3>
-<div class='topic'><!-- START: 2.24 - juneau-marshall.HtmlDetails -->
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails' id='juneau-marshall.HtmlDetails'>2.26 - HTML Details</a></h3>
+<div class='topic'><!-- START: 2.26 - juneau-marshall.HtmlDetails -->
 <p>
 	Juneau supports converting arbitrary POJOs to and from HTML.
 	Built on top of the existing XML parser, it also uses a STaX parser and creates POJOs directly without intermediate DOM objects.
@@ -7410,8 +7580,8 @@
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.HtmlMethodology' id='juneau-marshall.HtmlDetails.HtmlMethodology'>2.24.1 - HTML Methodology</a></h4>
-<div class='topic'><!-- START: 2.24.1 - juneau-marshall.HtmlDetails.HtmlMethodology -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.HtmlMethodology' id='juneau-marshall.HtmlDetails.HtmlMethodology'>2.26.1 - HTML Methodology</a></h4>
+<div class='topic'><!-- START: 2.26.1 - juneau-marshall.HtmlDetails.HtmlMethodology -->
 <p>
 	The following examples show how different data types are represented in HTML.
 	They mirror how the data structures are represented in JSON.
@@ -7919,12 +8089,12 @@
 		</xt></td>
 	</tr>
 </table>
-</div><!-- END: 2.24.1 - juneau-marshall.HtmlDetails.HtmlMethodology -->
+</div><!-- END: 2.26.1 - juneau-marshall.HtmlDetails.HtmlMethodology -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.HtmlSerializers' id='juneau-marshall.HtmlDetails.HtmlSerializers'>2.24.2 - HTML Serializers</a></h4>
-<div class='topic'><!-- START: 2.24.2 - juneau-marshall.HtmlDetails.HtmlSerializers -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.HtmlSerializers' id='juneau-marshall.HtmlDetails.HtmlSerializers'>2.26.2 - HTML Serializers</a></h4>
+<div class='topic'><!-- START: 2.26.2 - juneau-marshall.HtmlDetails.HtmlSerializers -->
 <p>
 	The {@link org.apache.juneau.html.HtmlSerializer} class is used to serialize POJOs into HTML.
 </p>	
@@ -7977,12 +8147,12 @@
 		<li class='jf'>{@link org.apache.juneau.html.HtmlDocSerializer#DEFAULT }
 	</ul>
 </ul>
-</div><!-- END: 2.24.2 - juneau-marshall.HtmlDetails.HtmlSerializers -->
+</div><!-- END: 2.26.2 - juneau-marshall.HtmlDetails.HtmlSerializers -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.HtmlParsers' id='juneau-marshall.HtmlDetails.HtmlParsers'>2.24.3 - HTML Parsers</a></h4>
-<div class='topic'><!-- START: 2.24.3 - juneau-marshall.HtmlDetails.HtmlParsers -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.HtmlParsers' id='juneau-marshall.HtmlDetails.HtmlParsers'>2.26.3 - HTML Parsers</a></h4>
+<div class='topic'><!-- START: 2.26.3 - juneau-marshall.HtmlDetails.HtmlParsers -->
 <p>
 	The {@link org.apache.juneau.html.HtmlParser} class is used to parse HTML into POJOs.
 	They can also parse the contents produced by {@link org.apache.juneau.html.HtmlDocSerializer}.
@@ -8002,12 +8172,12 @@
 		<li class='jf'>{@link org.apache.juneau.html.HtmlParser#DEFAULT DEFAULT}
 	</ul>
 </ul>
-</div><!-- END: 2.24.3 - juneau-marshall.HtmlDetails.HtmlParsers -->
+</div><!-- END: 2.26.3 - juneau-marshall.HtmlDetails.HtmlParsers -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.HtmlAnnotation' id='juneau-marshall.HtmlDetails.HtmlAnnotation'>2.24.4 - @Html Annotation</a></h4>
-<div class='topic'><!-- START: 2.24.4 - juneau-marshall.HtmlDetails.HtmlAnnotation -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.HtmlAnnotation' id='juneau-marshall.HtmlDetails.HtmlAnnotation'>2.26.4 - @Html Annotation</a></h4>
+<div class='topic'><!-- START: 2.26.4 - juneau-marshall.HtmlDetails.HtmlAnnotation -->
 <p>
 	The {@link org.apache.juneau.html.annotation.Html @Html} annotation can be used to customize how POJOs are serialized to HTML on a per-class/field/method basis.
 </p>
@@ -8063,12 +8233,12 @@
 <p>
 	The {@link org.apache.juneau.html.annotation.Html#noTables @Html(noTables)} annotation is used to force beans to be serialized as trees instead of tables
 </p>
-</div><!-- END: 2.24.4 - juneau-marshall.HtmlDetails.HtmlAnnotation -->
+</div><!-- END: 2.26.4 - juneau-marshall.HtmlDetails.HtmlAnnotation -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.HtmlRenderAnnotation' id='juneau-marshall.HtmlDetails.HtmlRenderAnnotation'>2.24.5 - @Html(render) Annotation</a></h4>
-<div class='topic'><!-- START: 2.24.5 - juneau-marshall.HtmlDetails.HtmlRenderAnnotation -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.HtmlRenderAnnotation' id='juneau-marshall.HtmlDetails.HtmlRenderAnnotation'>2.26.5 - @Html(render) Annotation</a></h4>
+<div class='topic'><!-- START: 2.26.5 - juneau-marshall.HtmlDetails.HtmlRenderAnnotation -->
 <p>
 	The {@link org.apache.juneau.html.annotation.Html#render @Html(render)} annotation allows for custom rendering of bean property values when serialized as HTML. 
 	Using this class, you can alter the CSS style and HTML content of the bean property.
@@ -8170,12 +8340,12 @@
 		}
 	}
 </p>
-</div><!-- END: 2.24.5 - juneau-marshall.HtmlDetails.HtmlRenderAnnotation -->
+</div><!-- END: 2.26.5 - juneau-marshall.HtmlDetails.HtmlRenderAnnotation -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.HtmlDocSerializer' id='juneau-marshall.HtmlDetails.HtmlDocSerializer'>2.24.6 - HtmlDocSerializer</a></h4>
-<div class='topic'><!-- START: 2.24.6 - juneau-marshall.HtmlDetails.HtmlDocSerializer -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.HtmlDocSerializer' id='juneau-marshall.HtmlDetails.HtmlDocSerializer'>2.26.6 - HtmlDocSerializer</a></h4>
+<div class='topic'><!-- START: 2.26.6 - juneau-marshall.HtmlDetails.HtmlDocSerializer -->
 <p>
 	{@link org.apache.juneau.html.HtmlDocSerializer} is an extension of {@link org.apache.juneau.html.HtmlSerializer}
 	that wraps serialized POJOs in a complete HTML document. 
@@ -8225,12 +8395,12 @@
 	a template for the HTML page being generated.
 	The default template is described next.
 </p>
-</div><!-- END: 2.24.6 - juneau-marshall.HtmlDetails.HtmlDocSerializer -->
+</div><!-- END: 2.26.6 - juneau-marshall.HtmlDetails.HtmlDocSerializer -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.BasicHtmlDocTemplate' id='juneau-marshall.HtmlDetails.BasicHtmlDocTemplate'>2.24.7 - BasicHtmlDocTemplate</a></h4>
-<div class='topic'><!-- START: 2.24.7 - juneau-marshall.HtmlDetails.BasicHtmlDocTemplate -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.BasicHtmlDocTemplate' id='juneau-marshall.HtmlDetails.BasicHtmlDocTemplate'>2.26.7 - BasicHtmlDocTemplate</a></h4>
+<div class='topic'><!-- START: 2.26.7 - juneau-marshall.HtmlDetails.BasicHtmlDocTemplate -->
 <p>
 	The {@link org.apache.juneau.html.BasicHtmlDocTemplate} class defines a default template for HTML documents
 	created by {@link org.apache.juneau.html.HtmlDocSerializer}.
@@ -8264,12 +8434,12 @@
 		&lt;/body&gt;
 	&lt;/html&gt;</xt>
 </p>
-</div><!-- END: 2.24.7 - juneau-marshall.HtmlDetails.BasicHtmlDocTemplate -->
+</div><!-- END: 2.26.7 - juneau-marshall.HtmlDetails.BasicHtmlDocTemplate -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.HtmlCustomTemplates' id='juneau-marshall.HtmlDetails.HtmlCustomTemplates'>2.24.8 - Custom Templates</a></h4>
-<div class='topic'><!-- START: 2.24.8 - juneau-marshall.HtmlDetails.HtmlCustomTemplates -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.HtmlCustomTemplates' id='juneau-marshall.HtmlDetails.HtmlCustomTemplates'>2.26.8 - Custom Templates</a></h4>
+<div class='topic'><!-- START: 2.26.8 - juneau-marshall.HtmlDetails.HtmlCustomTemplates -->
 <p>
 	Custom page templates can be created by implementing the {@link org.apache.juneau.html.HtmlDocTemplate}
 	interface and associating it with your {@link org.apache.juneau.html.HtmlDocSerializer} using the {@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_template HTMLDOC_template}
@@ -8284,12 +8454,12 @@
 <p>
 	The interface implementation is open-ended allowing you to define the contents of the page any way you wish.
 </p>
-</div><!-- END: 2.24.8 - juneau-marshall.HtmlDetails.HtmlCustomTemplates -->
+</div><!-- END: 2.26.8 - juneau-marshall.HtmlDetails.HtmlCustomTemplates -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.HtmlSchema' id='juneau-marshall.HtmlDetails.HtmlSchema'>2.24.9 - HTML-Schema Support</a></h4>
-<div class='topic'><!-- START: 2.24.9 - juneau-marshall.HtmlDetails.HtmlSchema -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.HtmlSchema' id='juneau-marshall.HtmlDetails.HtmlSchema'>2.26.9 - HTML-Schema Support</a></h4>
+<div class='topic'><!-- START: 2.26.9 - juneau-marshall.HtmlDetails.HtmlSchema -->
 <p>
 	The {@link org.apache.juneau.html.HtmlSchemaSerializer} class is the HTML-equivalent to the
 	{@link org.apache.juneau.json.JsonSchemaSerializer} class.
@@ -8468,13 +8638,13 @@
 		</td>
 	</tr>
 </table>
-</div><!-- END: 2.24.9 - juneau-marshall.HtmlDetails.HtmlSchema -->
-</div><!-- END: 2.24 - juneau-marshall.HtmlDetails -->
+</div><!-- END: 2.26.9 - juneau-marshall.HtmlDetails.HtmlSchema -->
+</div><!-- END: 2.26 - juneau-marshall.HtmlDetails -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.UonDetails' id='juneau-marshall.UonDetails'>2.25 - UON Details</a></h3>
-<div class='topic'><!-- START: 2.25 - juneau-marshall.UonDetails -->
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.UonDetails' id='juneau-marshall.UonDetails'>2.27 - UON Details</a></h3>
+<div class='topic'><!-- START: 2.27 - juneau-marshall.UonDetails -->
 <p>
 	Juneau supports converting arbitrary POJOs to and from UON strings using ultra-efficient serializers 
 	and parsers.
@@ -8546,8 +8716,8 @@
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.UonDetails.UonMethodology' id='juneau-marshall.UonDetails.UonMethodology'>2.25.1 - UON Methodology</a></h4>
-<div class='topic'><!-- START: 2.25.1 - juneau-marshall.UonDetails.UonMethodology -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.UonDetails.UonMethodology' id='juneau-marshall.UonDetails.UonMethodology'>2.27.1 - UON Methodology</a></h4>
+<div class='topic'><!-- START: 2.27.1 - juneau-marshall.UonDetails.UonMethodology -->
 <h5 class='figure'>General methodology:</h5>
 <table class='styled w800' style='border-collapse:collapse'>
 	<tr><th>Java type</th><th>JSON equivalent</th><th>UON</th></tr>
@@ -8605,12 +8775,12 @@
 <p>
 	Refer to the <a href='doc-files/rfc_uon.txt'>UON specification</a> for a complete set of syntax rules.		
 </p>
-</div><!-- END: 2.25.1 - juneau-marshall.UonDetails.UonMethodology -->
+</div><!-- END: 2.27.1 - juneau-marshall.UonDetails.UonMethodology -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.UonDetails.UonSerializers' id='juneau-marshall.UonDetails.UonSerializers'>2.25.2 - UON Serializers</a></h4>
-<div class='topic'><!-- START: 2.25.2 - juneau-marshall.UonDetails.UonSerializers -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.UonDetails.UonSerializers' id='juneau-marshall.UonDetails.UonSerializers'>2.27.2 - UON Serializers</a></h4>
+<div class='topic'><!-- START: 2.27.2 - juneau-marshall.UonDetails.UonSerializers -->
 <p>
 	The {@link org.apache.juneau.uon.UonSerializer} class is used to serialize POJOs into UON.
 </p>	
@@ -8637,12 +8807,12 @@
 		<li class='jf'>{@link org.apache.juneau.uon.UonSerializer#DEFAULT_READABLE DEFAULT_READABLE}
 	</ul>
 </ul>
-</div><!-- END: 2.25.2 - juneau-marshall.UonDetails.UonSerializers -->
+</div><!-- END: 2.27.2 - juneau-marshall.UonDetails.UonSerializers -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.UonDetails.UonParsers' id='juneau-marshall.UonDetails.UonParsers'>2.25.3 - UON Parsers</a></h4>
-<div class='topic'><!-- START: 2.25.3 - juneau-marshall.UonDetails.UonParsers -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.UonDetails.UonParsers' id='juneau-marshall.UonDetails.UonParsers'>2.27.3 - UON Parsers</a></h4>
+<div class='topic'><!-- START: 2.27.3 - juneau-marshall.UonDetails.UonParsers -->
 <p>
 	The {@link org.apache.juneau.uon.UonParser} class is used to parse UON into POJOs.
 </p>	
@@ -8667,13 +8837,13 @@
 		<li class='jf'>{@link org.apache.juneau.uon.UonParser#DEFAULT_DECODING DEFAULT_DECODING}			
 	</ul>
 </ul>
-</div><!-- END: 2.25.3 - juneau-marshall.UonDetails.UonParsers -->
-</div><!-- END: 2.25 - juneau-marshall.UonDetails -->
+</div><!-- END: 2.27.3 - juneau-marshall.UonDetails.UonParsers -->
+</div><!-- END: 2.27 - juneau-marshall.UonDetails -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.UrlEncodingDetails' id='juneau-marshall.UrlEncodingDetails'>2.26 - URL-Encoding Details</a></h3>
-<div class='topic'><!-- START: 2.26 - juneau-marshall.UrlEncodingDetails -->
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.UrlEncodingDetails' id='juneau-marshall.UrlEncodingDetails'>2.28 - URL-Encoding Details</a></h3>
+<div class='topic'><!-- START: 2.28 - juneau-marshall.UrlEncodingDetails -->
 <p>
 	Juneau supports converting arbitrary POJOs to and from URL-encoded strings using ultra-efficient serializers 
 	and parsers.
@@ -8743,8 +8913,8 @@
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.UrlEncodingDetails.UrlEncMethodology' id='juneau-marshall.UrlEncodingDetails.UrlEncMethodology'>2.26.1 - URL-Encoding Methodology</a></h4>
-<div class='topic'><!-- START: 2.26.1 - juneau-marshall.UrlEncodingDetails.UrlEncMethodology -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.UrlEncodingDetails.UrlEncMethodology' id='juneau-marshall.UrlEncodingDetails.UrlEncMethodology'>2.28.1 - URL-Encoding Methodology</a></h4>
+<div class='topic'><!-- START: 2.28.1 - juneau-marshall.UrlEncodingDetails.UrlEncMethodology -->
 <h5 class='figure'>General methodology:</h5>
 <table class='styled w800' style='border-collapse:collapse'>
 	<tr><th>Java type</th><th>JSON equivalent</th><th>UON</th></tr>
@@ -8802,12 +8972,12 @@
 <p>
 	Refer to the <a href='doc-files/rfc_uon.txt'>UON specification</a> for a complete set of syntax rules.		
 </p>
-</div><!-- END: 2.26.1 - juneau-marshall.UrlEncodingDetails.UrlEncMethodology -->
+</div><!-- END: 2.28.1 - juneau-marshall.UrlEncodingDetails.UrlEncMethodology -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.UrlEncodingDetails.UrlEncSerializers' id='juneau-marshall.UrlEncodingDetails.UrlEncSerializers'>2.26.2 - URL-Encoding Serializers</a></h4>
-<div class='topic'><!-- START: 2.26.2 - juneau-marshall.UrlEncodingDetails.UrlEncSerializers -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.UrlEncodingDetails.UrlEncSerializers' id='juneau-marshall.UrlEncodingDetails.UrlEncSerializers'>2.28.2 - URL-Encoding Serializers</a></h4>
+<div class='topic'><!-- START: 2.28.2 - juneau-marshall.UrlEncodingDetails.UrlEncSerializers -->
 <p>
 	The {@link org.apache.juneau.urlencoding.UrlEncodingSerializer} class is used to serialize POJOs into URL-Encoding.
 </p>	
@@ -8834,12 +9004,12 @@
 		
 	</ul>
 </ul>
-</div><!-- END: 2.26.2 - juneau-marshall.UrlEncodingDetails.UrlEncSerializers -->
+</div><!-- END: 2.28.2 - juneau-marshall.UrlEncodingDetails.UrlEncSerializers -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.UrlEncodingDetails.UrlEncParsers' id='juneau-marshall.UrlEncodingDetails.UrlEncParsers'>2.26.3 - URL-Encoding Parsers</a></h4>
-<div class='topic'><!-- START: 2.26.3 - juneau-marshall.UrlEncodingDetails.UrlEncParsers -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.UrlEncodingDetails.UrlEncParsers' id='juneau-marshall.UrlEncodingDetails.UrlEncParsers'>2.28.3 - URL-Encoding Parsers</a></h4>
+<div class='topic'><!-- START: 2.28.3 - juneau-marshall.UrlEncodingDetails.UrlEncParsers -->
 <p>
 	The {@link org.apache.juneau.urlencoding.UrlEncodingParser} class is used to parse URL-Encoding into POJOs.
 </p>	
@@ -8862,12 +9032,12 @@
 		<li class='jf'>{@link org.apache.juneau.urlencoding.UrlEncodingParser#DEFAULT DEFAULT}
 	</ul>
 </ul>
-</div><!-- END: 2.26.3 - juneau-marshall.UrlEncodingDetails.UrlEncParsers -->
+</div><!-- END: 2.28.3 - juneau-marshall.UrlEncodingDetails.UrlEncParsers -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.UrlEncodingDetails.UrlEncodingAnnotation' id='juneau-marshall.UrlEncodingDetails.UrlEncodingAnnotation'>2.26.4 - @UrlEncoding Annotation</a></h4>
-<div class='topic'><!-- START: 2.26.4 - juneau-marshall.UrlEncodingDetails.UrlEncodingAnnotation -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.UrlEncodingDetails.UrlEncodingAnnotation' id='juneau-marshall.UrlEncodingDetails.UrlEncodingAnnotation'>2.28.4 - @UrlEncoding Annotation</a></h4>
+<div class='topic'><!-- START: 2.28.4 - juneau-marshall.UrlEncodingDetails.UrlEncodingAnnotation -->
 <p>
 	The {@link org.apache.juneau.urlencoding.annotation.UrlEncoding @UrlEncoding} annotation
 	is used to override the behavior of {@link org.apache.juneau.urlencoding.UrlEncodingSerializer} on individual bean classes or properties.
@@ -8884,13 +9054,13 @@
 	It's identical in behavior to using the {@link org.apache.juneau.urlencoding.UrlEncodingSerializer#URLENC_expandedParams}
 	and {@link org.apache.juneau.urlencoding.UrlEncodingParser#URLENC_expandedParams} properties, but applies to only individual bean properties.
 </p>
-</div><!-- END: 2.26.4 - juneau-marshall.UrlEncodingDetails.UrlEncodingAnnotation -->
-</div><!-- END: 2.26 - juneau-marshall.UrlEncodingDetails -->
+</div><!-- END: 2.28.4 - juneau-marshall.UrlEncodingDetails.UrlEncodingAnnotation -->
+</div><!-- END: 2.28 - juneau-marshall.UrlEncodingDetails -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.MsgPackDetails' id='juneau-marshall.MsgPackDetails'>2.27 - MessagePack Details</a></h3>
-<div class='topic'><!-- START: 2.27 - juneau-marshall.MsgPackDetails -->
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.MsgPackDetails' id='juneau-marshall.MsgPackDetails'>2.29 - MessagePack Details</a></h3>
+<div class='topic'><!-- START: 2.29 - juneau-marshall.MsgPackDetails -->
 <p>
 	Juneau supports converting arbitrary POJOs to and from MessagePack using ultra-efficient serializers 
 	and parsers.
@@ -8902,8 +9072,8 @@
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.MsgPackDetails.MsgPackSerializers' id='juneau-marshall.MsgPackDetails.MsgPackSerializers'>2.27.1 - MessagePack Serializers</a></h4>
-<div class='topic'><!-- START: 2.27.1 - juneau-marshall.MsgPackDetails.MsgPackSerializers -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.MsgPackDetails.MsgPackSerializers' id='juneau-marshall.MsgPackDetails.MsgPackSerializers'>2.29.1 - MessagePack Serializers</a></h4>
+<div class='topic'><!-- START: 2.29.1 - juneau-marshall.MsgPackDetails.MsgPackSerializers -->
 <p>
 	The {@link org.apache.juneau.msgpack.MsgPackSerializer} class is used to serialize POJOs into MessagePack.
 </p>	
@@ -8927,12 +9097,12 @@
 		
 	</ul>
 </ul>
-</div><!-- END: 2.27.1 - juneau-marshall.MsgPackDetails.MsgPackSerializers -->
+</div><!-- END: 2.29.1 - juneau-marshall.MsgPackDetails.MsgPackSerializers -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.MsgPackDetails.MsgPackParsers' id='juneau-marshall.MsgPackDetails.MsgPackParsers'>2.27.2 - MessagePack Parsers</a></h4>
-<div class='topic'><!-- START: 2.27.2 - juneau-marshall.MsgPackDetails.MsgPackParsers -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.MsgPackDetails.MsgPackParsers' id='juneau-marshall.MsgPackDetails.MsgPackParsers'>2.29.2 - MessagePack Parsers</a></h4>
+<div class='topic'><!-- START: 2.29.2 - juneau-marshall.MsgPackDetails.MsgPackParsers -->
 <p>
 	The {@link org.apache.juneau.msgpack.MsgPackParser} class is used to parse MessagePack into POJOs.
 </p>	
@@ -8951,13 +9121,13 @@
 		<li class='jf'>{@link org.apache.juneau.msgpack.MsgPackParser#DEFAULT DEFAULT}
 	</ul>
 </ul>
-</div><!-- END: 2.27.2 - juneau-marshall.MsgPackDetails.MsgPackParsers -->
-</div><!-- END: 2.27 - juneau-marshall.MsgPackDetails -->
+</div><!-- END: 2.29.2 - juneau-marshall.MsgPackDetails.MsgPackParsers -->
+</div><!-- END: 2.29 - juneau-marshall.MsgPackDetails -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.OpenApiDetails' id='juneau-marshall.OpenApiDetails'>2.28 - OpenAPI Details</a><span class='update'>8.2.0-updated</span></h3>
-<div class='topic'><!-- START: 2.28 - juneau-marshall.OpenApiDetails -->
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.OpenApiDetails' id='juneau-marshall.OpenApiDetails'>2.30 - OpenAPI Details</a><span class='update'>8.2.0-updated</span></h3>
+<div class='topic'><!-- START: 2.30 - juneau-marshall.OpenApiDetails -->
 <p>
 	Juneau supports converting arbitrary POJOs to and from strings using OpenAPI-based schema rules. 
 </p>
@@ -8991,8 +9161,8 @@
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.OpenApiDetails.OpenApiMethodology' id='juneau-marshall.OpenApiDetails.OpenApiMethodology'>2.28.1 - OpenAPI Methodology</a><span class='update'>8.2.0-updated</span></h4>
-<div class='topic'><!-- START: 2.28.1 - juneau-marshall.OpenApiDetails.OpenApiMethodology -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.OpenApiDetails.OpenApiMethodology' id='juneau-marshall.OpenApiDetails.OpenApiMethodology'>2.30.1 - OpenAPI Methodology</a><span class='update'>8.2.0-updated</span></h4>
+<div class='topic'><!-- START: 2.30.1 - juneau-marshall.OpenApiDetails.OpenApiMethodology -->
 <p>
 	Unlike the other Juneau serializers and parsers that convert input and output directly to-and-from POJOs,
 	the OpenAPI serializers and parsers use intermediate objects based on the <c>type</c> and <c>format</c>
@@ -9133,12 +9303,12 @@
 <p>
 	The next sections go more into depth on serializing and parsing various POJO types.
 </p>
-</div><!-- END: 2.28.1 - juneau-marshall.OpenApiDetails.OpenApiMethodology -->
+</div><!-- END: 2.30.1 - juneau-marshall.OpenApiDetails.OpenApiMethodology -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.OpenApiDetails.OpenApiSerializers' id='juneau-marshall.OpenApiDetails.OpenApiSerializers'>2.28.2 - OpenAPI Serializers</a><span class='update'>8.2.0-updated</span></h4>
-<div class='topic'><!-- START: 2.28.2 - juneau-marshall.OpenApiDetails.OpenApiSerializers -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.OpenApiDetails.OpenApiSerializers' id='juneau-marshall.OpenApiDetails.OpenApiSerializers'>2.30.2 - OpenAPI Serializers</a><span class='update'>8.2.0-updated</span></h4>
+<div class='topic'><!-- START: 2.30.2 - juneau-marshall.OpenApiDetails.OpenApiSerializers -->
 <p>
 	The {@link org.apache.juneau.oapi.OpenApiSerializer} class is used to convert POJOs to HTTP parts.
 </p>
@@ -9614,12 +9784,12 @@
 		However, you will get <c>SerializeExceptions</c> if you attempt an impossible conversion.
 		(e.g. trying to serialize the string "foo" as a boolean). 
 </ul>
-</div><!-- END: 2.28.2 - juneau-marshall.OpenApiDetails.OpenApiSerializers -->
+</div><!-- END: 2.30.2 - juneau-marshall.OpenApiDetails.OpenApiSerializers -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.OpenApiDetails.OpenApiParsers' id='juneau-marshall.OpenApiDetails.OpenApiParsers'>2.28.3 - OpenAPI Parsers</a><span class='update'>8.2.0-updated</span></h4>
-<div class='topic'><!-- START: 2.28.3 - juneau-marshall.OpenApiDetails.OpenApiParsers -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.OpenApiDetails.OpenApiParsers' id='juneau-marshall.OpenApiDetails.OpenApiParsers'>2.30.3 - OpenAPI Parsers</a><span class='update'>8.2.0-updated</span></h4>
+<div class='topic'><!-- START: 2.30.3 - juneau-marshall.OpenApiDetails.OpenApiParsers -->
 <p>
 	The {@link org.apache.juneau.oapi.OpenApiParser} class is used to convert HTTP parts back into POJOs.
 </p>
@@ -9940,13 +10110,13 @@
 		However, you will get <c>ParseExceptions</c> if you attempt an impossible conversion.
 		(e.g. trying to parse the string "foo" into a boolean). 
 </ul>
-</div><!-- END: 2.28.3 - juneau-marshall.OpenApiDetails.OpenApiParsers -->
-</div><!-- END: 2.28 - juneau-marshall.OpenApiDetails -->
+</div><!-- END: 2.30.3 - juneau-marshall.OpenApiDetails.OpenApiParsers -->
+</div><!-- END: 2.30 - juneau-marshall.OpenApiDetails -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.SimpleVariableLanguage' id='juneau-marshall.SimpleVariableLanguage'>2.29 - Simple Variable Language</a></h3>
-<div class='topic'><!-- START: 2.29 - juneau-marshall.SimpleVariableLanguage -->
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.SimpleVariableLanguage' id='juneau-marshall.SimpleVariableLanguage'>2.31 - Simple Variable Language</a></h3>
+<div class='topic'><!-- START: 2.31 - juneau-marshall.SimpleVariableLanguage -->
 <p>
 	The <l>org.apache.juneau.svl</l> packages defines an API for a language called <l>Simple Variable Language</l>.
 	In a nutshell, Simple Variable Language (or SVL) is text that contains variables of the form <js>"$varName{varKey}"</js>.
@@ -9999,8 +10169,8 @@
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.SimpleVariableLanguage.SvlVariables' id='juneau-marshall.SimpleVariableLanguage.SvlVariables'>2.29.1 - SVL Variables</a><span class='update'>8.0.0-updated, 8.1.0-updated</span></h4>
-<div class='topic'><!-- START: 2.29.1 - juneau-marshall.SimpleVariableLanguage.SvlVariables -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.SimpleVariableLanguage.SvlVariables' id='juneau-marshall.SimpleVariableLanguage.SvlVariables'>2.31.1 - SVL Variables</a><span class='update'>8.0.0-updated, 8.1.0-updated</span></h4>
+<div class='topic'><!-- START: 2.31.1 - juneau-marshall.SimpleVariableLanguage.SvlVariables -->
 <p>
 	Variables are defined through the {@link org.apache.juneau.svl.Var} API.
 	The API comes with several predefined variables and is easily extensible.
@@ -10190,12 +10360,12 @@
 		<td class='code'>$W{name}</td>
 	</tr>
 </table>
-</div><!-- END: 2.29.1 - juneau-marshall.SimpleVariableLanguage.SvlVariables -->
+</div><!-- END: 2.31.1 - juneau-marshall.SimpleVariableLanguage.SvlVariables -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.SimpleVariableLanguage.VarResolvers' id='juneau-marshall.SimpleVariableLanguage.VarResolvers'>2.29.2 - VarResolvers and VarResolverSessions</a></h4>
-<div class='topic'><!-- START: 2.29.2 - juneau-marshall.SimpleVariableLanguage.VarResolvers -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.SimpleVariableLanguage.VarResolvers' id='juneau-marshall.SimpleVariableLanguage.VarResolvers'>2.31.2 - VarResolvers and VarResolverSessions</a></h4>
+<div class='topic'><!-- START: 2.31.2 - juneau-marshall.SimpleVariableLanguage.VarResolvers -->
 <p>
 	The main class for performing variable resolution is {@link org.apache.juneau.svl.VarResolver}.
 	Two methods are provided for resolving variables:
@@ -10252,12 +10422,12 @@
 		.vars(ConfigVar.<jk>class</jk>, ArgsVar.<jk>class</jk>)
 		.build();
 </p>
-</div><!-- END: 2.29.2 - juneau-marshall.SimpleVariableLanguage.VarResolvers -->
+</div><!-- END: 2.31.2 - juneau-marshall.SimpleVariableLanguage.VarResolvers -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.SimpleVariableLanguage.DefaultVarResolver' id='juneau-marshall.SimpleVariableLanguage.DefaultVarResolver'>2.29.3 - VarResolver.DEFAULT</a><span class='update'>8.1.0-new</span></h4>
-<div class='topic'><!-- START: 2.29.3 - juneau-marshall.SimpleVariableLanguage.DefaultVarResolver -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.SimpleVariableLanguage.DefaultVarResolver' id='juneau-marshall.SimpleVariableLanguage.DefaultVarResolver'>2.31.3 - VarResolver.DEFAULT</a><span class='update'>8.1.0-new</span></h4>
+<div class='topic'><!-- START: 2.31.3 - juneau-marshall.SimpleVariableLanguage.DefaultVarResolver -->
 <p>
 	{@link org.apache.juneau.svl.VarResolver#DEFAULT} is a reusable variable resolver with default support for the following variables:
 </p>
@@ -10278,12 +10448,12 @@
 	<li><c>$LN{arg[,delimiter]}</c> - {@link org.apache.juneau.svl.vars.LenVar}
 	<li><c>$ST{arg,start[,end]}</c> - {@link org.apache.juneau.svl.vars.SubstringVar}
 </ul>
-</div><!-- END: 2.29.3 - juneau-marshall.SimpleVariableLanguage.DefaultVarResolver -->
+</div><!-- END: 2.31.3 - juneau-marshall.SimpleVariableLanguage.DefaultVarResolver -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.SimpleVariableLanguage.SvlOtherNotes' id='juneau-marshall.SimpleVariableLanguage.SvlOtherNotes'>2.29.4 - Other Notes</a></h4>
-<div class='topic'><!-- START: 2.29.4 - juneau-marshall.SimpleVariableLanguage.SvlOtherNotes -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.SimpleVariableLanguage.SvlOtherNotes' id='juneau-marshall.SimpleVariableLanguage.SvlOtherNotes'>2.31.4 - Other Notes</a></h4>
+<div class='topic'><!-- START: 2.31.4 - juneau-marshall.SimpleVariableLanguage.SvlOtherNotes -->
 <ul class='spaced-list'>
 	<li>
 		The escape character <js>'\'</js> can be used when necessary to escape the following characters: 
@@ -10299,13 +10469,13 @@
 		<br>For example, calling the resolve method on a string that doesn't contain variables (e.g. 
 		<c>resolver.resolve(<js>"foobar"</js>)</c>) will simply be a no-op and return the same string.
 </ul>
-</div><!-- END: 2.29.4 - juneau-marshall.SimpleVariableLanguage.SvlOtherNotes -->
-</div><!-- END: 2.29 - juneau-marshall.SimpleVariableLanguage -->
+</div><!-- END: 2.31.4 - juneau-marshall.SimpleVariableLanguage.SvlOtherNotes -->
+</div><!-- END: 2.31 - juneau-marshall.SimpleVariableLanguage -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.BestPractices' id='juneau-marshall.BestPractices'>2.30 - Best Practices</a></h3>
-<div class='topic'><!-- START: 2.30 - juneau-marshall.BestPractices -->
+<h3 class='topic' onclick='toggle(this)'><a href='#juneau-marshall.BestPractices' id='juneau-marshall.BestPractices'>2.32 - Best Practices</a></h3>
+<div class='topic'><!-- START: 2.32 - juneau-marshall.BestPractices -->
 <ol class='spaced-list'>
 	<li>
 		Reuse instances of serializers and parsers whenever possible.
@@ -10329,7 +10499,7 @@
 		take in {@link java.lang.Class} or {@link java.lang.Object} parameters, since the latter methods involve 
 		hash lookups to resolve to {@link org.apache.juneau.ClassMeta} parameters.
 </ol>
-</div><!-- END: 2.30 - juneau-marshall.BestPractices -->
+</div><!-- END: 2.32 - juneau-marshall.BestPractices -->
 </div><!-- END: 2 - juneau-marshall -->
 
 <!-- ==================================================================================================== -->
@@ -21532,7 +21702,7 @@ Resource bundles are searched using the following base name patterns:
 <ul>
 	<li><js>"true"</js> - Logging disabled.
 	<li><js>"false"</js> (default) - Logging not disabled.
-	<li><js>"per-request"</js> - Logging is disabled only on requests containing a <c class='snippet'>X-NoTrace: true</c> header.
+	<li><js>"per-request"</js> - Logging is disabled only on requests containing a <c class='snippet'>No-Trace: true</c> header.
 </ul>
 <p>
 	Disabled logging is particularly useful when running testcases that are expected to throw exceptions or cause
@@ -23642,7 +23812,7 @@ Resource bundles are searched using the following base name patterns:
 <p class='bpcode w800'>	
 	<ja>@Remote</ja>(
 		path=<js>"/petstore"</js>,
-		version=<js>"1.2.3"</js>  <jc>// Adds "X-Client-Version: 1.2.3" header to all requests.</jc>
+		version=<js>"1.2.3"</js>  <jc>// Adds "Client-Version: 1.2.3" header to all requests.</jc>
 	)
 	<jk>public interface</jk> PetStore {...}
 </p>
@@ -23651,16 +23821,16 @@ Resource bundles are searched using the following base name patterns:
 	This can be used in conjunction with the server-side client-versioning support.
 </p>
 <p class='bpcode w800'>
-	<jc>// Call this method if X-Client-Version is at least 2.0.
+	<jc>// Call this method if Client-Version is at least 2.0.
 	// Note that this also matches 2.0.1.</jc>
 	<ja>@RestGet</ja>(clientVersion=<js>"2.0"</js>)
 	<jk>public</jk> Object foo()  {...}
 
-	<jc>// Call this method if X-Client-Version is at least 1.1, but less than 2.0.</jc>
+	<jc>// Call this method if Client-Version is at least 1.1, but less than 2.0.</jc>
 	<ja>@RestGet</ja>(clientVersion=<js>"[1.1,2.0)"</js>)
 	<jk>public</jk> Object foo()  {...}
 
-	<jc>// Call this method if X-Client-Version is less than 1.1.</jc>
+	<jc>// Call this method if Client-Version is less than 1.1.</jc>
 	<ja>@RestGet</ja>(clientVersion=<js>"[0,1.1)"</js>)
 	<jk>public</jk> Object foo()  {...}
 </p>
@@ -30269,18 +30439,6 @@ Resource bundles are searched using the following base name patterns:
 	</tr>
 	<tr>
 		<td></td>
-		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_formData RESTCLIENT_formData}</td>
-		<td>Request form-data parameters.</td>
-		<td style='max-width:250px;overflow:hidden'><c>List&lt;{@link org.apache.http.NameValuePair}&gt;</c></td>
-	</tr>
-	<tr>
-		<td></td>
-		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_headers RESTCLIENT_headers}</td>
-		<td>Request headers.</td>
-		<td style='max-width:250px;overflow:hidden'><c>List&lt;{@link org.apache.http.Header} | {@link org.apache.http.NameValuePair}&gt;</c></td>
-	</tr>
-	<tr>
-		<td></td>
 		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_ignoreErrors RESTCLIENT_ignoreErrors}</td>
 		<td>Ignore errors.</td>
 		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
@@ -30353,12 +30511,6 @@ Resource bundles are searched using the following base name patterns:
 	</tr>
 	<tr>
 		<td></td>
-		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_query RESTCLIENT_query}</td>
-		<td>Request query parameters.</td>
-		<td style='max-width:250px;overflow:hidden'><c>List&lt;{@link org.apache.http.NameValuePair}&gt;</c></td>
-	</tr>
-	<tr>
-		<td></td>
 		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_rootUri RESTCLIENT_rootUri}</td>
 		<td>Root URI.</td>
 		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
@@ -30370,6 +30522,24 @@ Resource bundles are searched using the following base name patterns:
 		<td style='max-width:250px;overflow:hidden'><ul><li><c>Class&lt;? <jk>extends</jk> {@link org.apache.juneau.serializer.Serializer}&gt;</c><li>{@link org.apache.juneau.serializer.Serializer}</ul></td>
 	</tr>
 	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_skipEmptyFormData RESTCLIENT_skipEmptyFormData}</td>
+		<td>Skip empty form data.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link Boolean}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_skipEmptyHeaders RESTCLIENT_skipEmptyHeaders}</td>
+		<td>Skip empty header data.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link Boolean}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_skipEmptyQueryData RESTCLIENT_skipEmptyQueryData}</td>
+		<td>Skip empty query data.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link Boolean}</td>
+	</tr>
+	<tr>
 		<td>{@link org.apache.juneau.rest.RestContext}</td>
 		<td>{@link org.apache.juneau.rest.RestContext#REST_allowedHeaderParams REST_allowedHeaderParams}</td>
 		<td>Allowed header URL parameters.</td>
diff --git a/juneau-doc/src/main/javadoc/resources/docs.txt b/juneau-doc/src/main/javadoc/resources/docs.txt
index c748b6f..1cfde24 100644
--- a/juneau-doc/src/main/javadoc/resources/docs.txt
+++ b/juneau-doc/src/main/javadoc/resources/docs.txt
@@ -1,4 +1,4 @@
-Assertions = #juneau-marshall.Assertions, Overview > juneau-marshall > Assertions
+Assertions = #juneau-marshall.Assertions, Overview > juneau-marshall > 
 AutoPojoSwaps = #juneau-marshall.Transforms.AutoPojoSwaps, Overview > juneau-marshall > Transforms > Auto-detected POJO swaps
 BasicHtmlDocTemplate = #juneau-marshall.HtmlDetails.BasicHtmlDocTemplate, Overview > juneau-marshall > HTML Details > BasicHtmlDocTemplate
 BasicRest = #juneau-rest-server.RestInstantiation.BasicRest, Overview > juneau-rest-server > Instantiation > BasicRest
@@ -99,7 +99,7 @@ ExtSwaggerSchemaObject = https://swagger.io/specification/v2#schemaObject, Swagg
 ExtSwaggerSecuritySchemeObject = https://swagger.io/specification/v2#securitySchemeObject, Swagger SecurityScheme Object
 ExtSwaggerTagObject = https://swagger.io/specification/v2#tagObject, Swagger Tag Object
 Features = #Introduction.Features, Overview > Introduction > Features
-Generics = #juneau-marshall.Assertions, Overview > juneau-marshall > Generics
+Generics = #juneau-marshall.Generics, Overview > juneau-marshall > Generics
 Glossaries = #Glossaries, Overview > Glossaries
 GlossaryAnnotations = #Glossaries.GlossaryAnnotations, Overview > Glossaries > Annotations
 GlossaryConfigurableProperties = #Glossaries.GlossaryConfigurableProperties, Overview > Glossaries > Configurable Properties
diff --git a/juneau-doc/src/main/javadoc/resources/fragments/toc.html b/juneau-doc/src/main/javadoc/resources/fragments/toc.html
index ff212d7..7d97ecf 100644
--- a/juneau-doc/src/main/javadoc/resources/fragments/toc.html
+++ b/juneau-doc/src/main/javadoc/resources/fragments/toc.html
@@ -37,6 +37,7 @@
 			<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.JavaBeansSupport.StopClasses'>Stop Classes</a></p>
 			<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.JavaBeansSupport.BypassSerialization'>Bypass Serialization using Readers and InputStreams</a></p>
 		</ol>
+		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.Generics'>Generics</a><span class='update'><b>9.0.0-new</b></span></p>
 		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.HttpPartSerializers'>HTTP Part Serializers</a><span class='update'>8.2.0-updated</span></p>
 		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.HttpPartParsers'>HTTP Part Parsers</a><span class='update'>8.2.0-updated</span></p>
 		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.MarshallConfigurableProperties'>Configurable Properties</a><span class='update'>8.1.3-updated</span></p>
@@ -67,6 +68,7 @@
 		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.MarshallingUris'>URIs</a></p>
 		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.JacksonComparison'>Comparison with Jackson</a></p>
 		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.PojoCategories'>POJO Categories</a></p>
+		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.Assertions'></a><span class='update'><b>9.0.0-new</b></span></p>
 		<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.JsonDetails'>JSON Details</a></p>
 		<ol>
 			<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.JsonDetails.JsonMethodology'>JSON Methodology</a></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 f681783..2f082b8 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
@@ -88,11 +88,37 @@ public class FluentResponseBodyAssertion<R> extends FluentObjectAssertion<Respon
 	/**
 	 * Constructor.
 	 *
-	 * @param value The object being tested.
-	 * @param returns The object to return after the test.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
 	public FluentResponseBodyAssertion(ResponseBody value, R returns) {
-		super(value, returns);
+		this(null, value, returns);
+	}
+
+	/**
+	 * Chained constructor.
+	 *
+	 * <p>
+	 * Used when transforming one assertion into another so that the assertion config can be used by the new assertion.
+	 *
+	 * @param creator
+	 * 	The assertion that created this assertion.
+	 * 	<br>Should be <jk>null</jk> if this is the top-level assertion.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
+	 */
+	public FluentResponseBodyAssertion(Assertion creator, ResponseBody value, R returns) {
+		super(creator, value, returns);
 		throwable(BadRequest.class);
 	}
 
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/assertion/FluentResponseHeaderAssertion.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/assertion/FluentResponseHeaderAssertion.java
index 88cab6e..71b9c55 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/assertion/FluentResponseHeaderAssertion.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/assertion/FluentResponseHeaderAssertion.java
@@ -114,11 +114,37 @@ public class FluentResponseHeaderAssertion<R> extends FluentStringAssertion<R> {
 	/**
 	 * Constructor.
 	 *
-	 * @param value The object being tested.
-	 * @param returns The object to return after the test.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
 	public FluentResponseHeaderAssertion(ResponseHeader value, R returns) {
-		super(null, value.asString().orElse(null), returns);
+		this(null, value, returns);
+	}
+
+	/**
+	 * Chained constructor.
+	 *
+	 * <p>
+	 * Used when transforming one assertion into another so that the assertion config can be used by the new assertion.
+	 *
+	 * @param creator
+	 * 	The assertion that created this assertion.
+	 * 	<br>Should be <jk>null</jk> if this is the top-level assertion.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
+	 */
+	public FluentResponseHeaderAssertion(Assertion creator, ResponseHeader value, R returns) {
+		super(creator, value.asString().orElse(null), returns);
 		this.value = value;
 		throwable(BadRequest.class);
 	}
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/assertion/FluentResponseStatusLineAssertion.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/assertion/FluentResponseStatusLineAssertion.java
index 0006cac..cd78336 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/assertion/FluentResponseStatusLineAssertion.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/assertion/FluentResponseStatusLineAssertion.java
@@ -93,11 +93,37 @@ public class FluentResponseStatusLineAssertion<R> extends FluentObjectAssertion<
 	/**
 	 * Constructor.
 	 *
-	 * @param statusLine The response status line.
-	 * @param returns The object to return after the test.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
-	public FluentResponseStatusLineAssertion(StatusLine statusLine, R returns) {
-		super(statusLine, returns);
+	public FluentResponseStatusLineAssertion(StatusLine value, R returns) {
+		this(null, value, returns);
+	}
+
+	/**
+	 * Chained constructor.
+	 *
+	 * <p>
+	 * Used when transforming one assertion into another so that the assertion config can be used by the new assertion.
+	 *
+	 * @param creator
+	 * 	The assertion that created this assertion.
+	 * 	<br>Should be <jk>null</jk> if this is the top-level assertion.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
+	 */
+	public FluentResponseStatusLineAssertion(Assertion creator, StatusLine value, R returns) {
+		super(creator, value, returns);
 		throwable(BadRequest.class);
 	}
 
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicNamedAttribute.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicNamedAttribute.java
index 865e526..ced3dc4 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicNamedAttribute.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicNamedAttribute.java
@@ -31,7 +31,7 @@ public class BasicNamedAttribute implements NamedAttribute {
 	private final Object value;
 
 	/**
-	 * Convenience creator.
+	 * Static creator.
 	 *
 	 * @param name The parameter name.
 	 * @param value The parameter value.
@@ -59,7 +59,7 @@ public class BasicNamedAttribute implements NamedAttribute {
 	}
 
 	/**
-	 * Convenience creator using supplier.
+	 * Static creator with delayed value.
 	 *
 	 * <p>
 	 * Value is re-evaluated on each call to {@link #getValue()}.
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/assertions/FluentProtocolVersionAssertion.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/assertions/FluentProtocolVersionAssertion.java
index 0cc6b5d..c347f62 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/assertions/FluentProtocolVersionAssertion.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/assertions/FluentProtocolVersionAssertion.java
@@ -82,11 +82,37 @@ public class FluentProtocolVersionAssertion<R> extends FluentObjectAssertion<Pro
 	/**
 	 * Constructor.
 	 *
-	 * @param value The object being tested.
-	 * @param returns The object to return after the test.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
 	public FluentProtocolVersionAssertion(ProtocolVersion value, R returns) {
-		super(value, returns);
+		this(null, value, returns);
+	}
+
+	/**
+	 * Chained constructor.
+	 *
+	 * <p>
+	 * Used when transforming one assertion into another so that the assertion config can be used by the new assertion.
+	 *
+	 * @param creator
+	 * 	The assertion that created this assertion.
+	 * 	<br>Should be <jk>null</jk> if this is the top-level assertion.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
+	 */
+	public FluentProtocolVersionAssertion(Assertion creator, ProtocolVersion value, R returns) {
+		super(creator, value, returns);
 		throwable(BadRequest.class);
 	}
 
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/assertions/FluentRequestBodyAssertion.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/assertions/FluentRequestBodyAssertion.java
index 073ca49..836ca51 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/assertions/FluentRequestBodyAssertion.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/assertions/FluentRequestBodyAssertion.java
@@ -88,11 +88,37 @@ public class FluentRequestBodyAssertion<R> extends FluentObjectAssertion<Request
 	/**
 	 * Constructor.
 	 *
-	 * @param value The object being tested.
-	 * @param returns The object to return after the test.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
 	public FluentRequestBodyAssertion(RequestBody value, R returns) {
-		super(value, returns);
+		this(null, value, returns);
+	}
+
+	/**
+	 * Chained constructor.
+	 *
+	 * <p>
+	 * Used when transforming one assertion into another so that the assertion config can be used by the new assertion.
+	 *
+	 * @param creator
+	 * 	The assertion that created this assertion.
+	 * 	<br>Should be <jk>null</jk> if this is the top-level assertion.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
+	 */
+	public FluentRequestBodyAssertion(Assertion creator, RequestBody value, R returns) {
+		super(creator, value, returns);
 		throwable(BadRequest.class);
 	}
 
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/assertions/FluentRequestFormParamAssertion.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/assertions/FluentRequestFormParamAssertion.java
index 8b48a3f..f499330 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/assertions/FluentRequestFormParamAssertion.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/assertions/FluentRequestFormParamAssertion.java
@@ -114,19 +114,34 @@ public class FluentRequestFormParamAssertion<R> extends FluentStringAssertion<R>
 	/**
 	 * Constructor.
 	 *
-	 * @param value The object being tested.
-	 * @param returns The object to return after the test.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
 	public FluentRequestFormParamAssertion(RequestFormParam value, R returns) {
 		this(null, value, returns);
 	}
 
 	/**
-	 * Constructor.
+	 * Chained constructor.
+	 *
+	 * <p>
+	 * Used when transforming one assertion into another so that the assertion config can be used by the new assertion.
 	 *
-	 * @param creator The assertion that created this assertion.
-	 * @param value The object being tested.
-	 * @param returns The object to return after the test.
+	 * @param creator
+	 * 	The assertion that created this assertion.
+	 * 	<br>Should be <jk>null</jk> if this is the top-level assertion.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
 	public FluentRequestFormParamAssertion(Assertion creator, RequestFormParam value, R returns) {
 		super(creator, value.asString().orElse(null), returns);
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/assertions/FluentRequestHeaderAssertion.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/assertions/FluentRequestHeaderAssertion.java
index df6db75..f7f2e76 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/assertions/FluentRequestHeaderAssertion.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/assertions/FluentRequestHeaderAssertion.java
@@ -114,19 +114,34 @@ public class FluentRequestHeaderAssertion <R> extends FluentStringAssertion<R> {
 	/**
 	 * Constructor.
 	 *
-	 * @param value The object being tested.
-	 * @param returns The object to return after the test.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
 	public FluentRequestHeaderAssertion(RequestHeader value, R returns) {
 		this(null, value, returns);
 	}
 
 	/**
-	 * Constructor.
+	 * Chained constructor.
+	 *
+	 * <p>
+	 * Used when transforming one assertion into another so that the assertion config can be used by the new assertion.
 	 *
-	 * @param creator The assertion that created this assertion.
-	 * @param value The object being tested.
-	 * @param returns The object to return after the test.
+	 * @param creator
+	 * 	The assertion that created this assertion.
+	 * 	<br>Should be <jk>null</jk> if this is the top-level assertion.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
 	public FluentRequestHeaderAssertion(Assertion creator, RequestHeader value, R returns) {
 		super(null, value.asString().orElse(null), returns);
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/assertions/FluentRequestLineAssertion.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/assertions/FluentRequestLineAssertion.java
index 0366464..6b213f0 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/assertions/FluentRequestLineAssertion.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/assertions/FluentRequestLineAssertion.java
@@ -82,11 +82,37 @@ public class FluentRequestLineAssertion<R> extends FluentObjectAssertion<Request
 	/**
 	 * Constructor.
 	 *
-	 * @param value The object being tested.
-	 * @param returns The object to return after the test.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
 	public FluentRequestLineAssertion(RequestLine value, R returns) {
-		super(value, returns);
+		this(null, value, returns);
+	}
+
+	/**
+	 * Chained constructor.
+	 *
+	 * <p>
+	 * Used when transforming one assertion into another so that the assertion config can be used by the new assertion.
+	 *
+	 * @param creator
+	 * 	The assertion that created this assertion.
+	 * 	<br>Should be <jk>null</jk> if this is the top-level assertion.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
+	 */
+	public FluentRequestLineAssertion(Assertion creator, RequestLine value, R returns) {
+		super(creator, value, returns);
 		throwable(BadRequest.class);
 	}
 
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/assertions/FluentRequestQueryParamAssertion.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/assertions/FluentRequestQueryParamAssertion.java
index 1e6a6a2..54eb906 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/assertions/FluentRequestQueryParamAssertion.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/assertions/FluentRequestQueryParamAssertion.java
@@ -114,19 +114,34 @@ public class FluentRequestQueryParamAssertion<R> extends FluentStringAssertion<R
 	/**
 	 * Constructor.
 	 *
-	 * @param value The object being tested.
-	 * @param returns The object to return after the test.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
 	public FluentRequestQueryParamAssertion(RequestQueryParam value, R returns) {
 		this(null, value, returns);
 	}
 
 	/**
-	 * Constructor.
+	 * Chained constructor.
+	 *
+	 * <p>
+	 * Used when transforming one assertion into another so that the assertion config can be used by the new assertion.
 	 *
-	 * @param creator The assertion that created this assertion.
-	 * @param value The object being tested.
-	 * @param returns The object to return after the test.
+	 * @param creator
+	 * 	The assertion that created this assertion.
+	 * 	<br>Should be <jk>null</jk> if this is the top-level assertion.
+	 * @param value
+	 * 	The object being tested.
+	 * 	<br>Can be <jk>null</jk>.
+	 * @param returns
+	 * 	The object to return after a test method is called.
+	 * 	<br>If <jk>null</jk>, the test method returns this object allowing multiple test method calls to be
+	 * used on the same assertion.
 	 */
 	public FluentRequestQueryParamAssertion(Assertion creator, RequestQueryParam value, R returns) {
 		super(creator, value.asString().orElse(null), returns);