juneau-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jamesbog...@apache.org
Subject [juneau-website] branch asf-site updated: Update Javadocs.
Date Mon, 05 Feb 2018 17:17:43 GMT
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/asf-site by this push:
     new 6da5957  Update Javadocs.
6da5957 is described below

commit 6da59574aaf48652cfcf2b6c2afea5f2f6d9a52b
Author: JamesBognar <jamesbognar@apache.org>
AuthorDate: Mon Feb 5 12:17:41 2018 -0500

    Update Javadocs.
---
 content/documentation.html                 |   288 +-
 content/site/apidocs/overview-summary.html | 14205 +++++++++++++--------------
 2 files changed, 7202 insertions(+), 7291 deletions(-)

diff --git a/content/documentation.html b/content/documentation.html
index 8801c8a..81570ce 100644
--- a/content/documentation.html
+++ b/content/documentation.html
@@ -42,170 +42,182 @@
 			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#Intro.Features'>Features</a></p>
 			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#Intro.Components'>Components</a></p>
 		</ol>
-		<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-core'><i>juneau-core</i></a></p>
+		<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall'><i>juneau-marshall</i></a></p>
 		<ol>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall'><i>juneau-marshall</i></a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.Serializers'>Serializers</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.Parsers'>Parsers</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.Groups'>SerializerGroups and ParserGroups</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.ObjectMap'>ObjectMap and ObjectList</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.ConfigurableProperties'>Configurable Properties</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.ContextsBuildersSessionsPropertyStores'>Contexts, Builders, Sessions, and PropertyStores</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.Transforms'>Transforms</a></p>
 			<ol>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.Serializers'>Serializers</a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.Parsers'>Parsers</a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.SerializerAndParserGroups'>SerializerGroups and ParserGroups</a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.ObjectMap'>ObjectMap and ObjectList</a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.ConfigurableProperties'>Configurable Properties</a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.ContextsBuildersSessionsPropertyStores'>Contexts, Builders, Sessions, and PropertyStores</a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.Transforms'>Transforms</a></p>
-				<ol>
-					<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.PojoSwaps'>PojoSwaps</a></p>
-					<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.PerMediaTypePojoSwaps'>Per-media-type PojoSwaps</a></p>
-					<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.OneWayPojoSwaps'>One-way PojoSwaps</a></p>
-					<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.SwapAnnotation'>@Swap Annotation</a></p>
-					<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.TemplatedSwaps'>Templated Swaps</a></p>
-					<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.SwapMethods'>Swap Methods</a></p>
-					<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.SurrogateClasses'>Surrogate Classes</a></p>
-					<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.BeanAnnotation'>@Bean Annotation</a></p>
-					<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.BeanPropertyAnnotation'>@BeanProperty Annotation</a></p>
-					<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.BeanConstructorAnnotation'>@BeanConstructor Annotation</a></p>
-					<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.BeanIgnoreAnnotation'>@BeanIgnore Annotation</a></p>
-					<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.NamePropertyAnnotation'>@NameProperty Annotation</a></p>
-					<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.ParentPropertyAnnotation'>@ParentProperty Annotation</a></p>
-					<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.PojoBuilders'>POJO Builders</a></p> 
-					<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.URIs'>URIs</a></p>
-					<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.BeanFilters'>BeanFilters</a></p>
-					<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.InterfaceFilters'>Interface Filters</a></p>
-					<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.StopClasses'>Stop Classes</a></p>
-					<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.BypassSerialization'>Bypass Serialization using Readers and InputStreams</a></p>
-				</ol>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.BeanDictionaries'>Bean Name and Dictionaries</a></p>
-				<ol>
-					<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.BeanSubTypes'>Bean Subtypes</a></p>
-				</ol>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.VirtualBeans'>Virtual Beans</a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.ReadingContinuousStreams'>Reading Continuous Streams</a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.JacksonComparison'>Comparison with Jackson</a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.PojoCategories'>POJO Categories</a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.BestPractices'>Best Practices</a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.AdditionalInfo'>Additional Information</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.PojoSwaps'>PojoSwaps</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.PerMediaTypePojoSwaps'>Per-media-type PojoSwaps</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.OneWayPojoSwaps'>One-way PojoSwaps</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.SwapAnnotation'>@Swap Annotation</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.TemplatedSwaps'>Templated Swaps</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.SwapMethods'>Swap Methods</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.SurrogateClasses'>Surrogate Classes</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.BeanAnnotation'>@Bean Annotation</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.BeanPropertyAnnotation'>@BeanProperty Annotation</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.BeanConstructorAnnotation'>@BeanConstructor Annotation</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.BeanIgnoreAnnotation'>@BeanIgnore Annotation</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.NamePropertyAnnotation'>@NameProperty Annotation</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.ParentPropertyAnnotation'>@ParentProperty Annotation</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.PojoBuilders'>POJO Builders</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.URIs'>URIs</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.BeanFilters'>BeanFilters</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.InterfaceFilters'>Interface filters</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.StopClasses'>Stop Classes</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.BypassSerialization'>Bypass Serialization using Readers and InputStreams</a></p>
 			</ol>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall-rdf'><i>juneau-marshall-rdf</i></a></p>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-dto'><i>juneau-dto</i></a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.BeanDictionaries'>Bean Name and Dictionaries</a></p>
 			<ol>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-dto.HTML5'>HTML5</a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-dto.Atom'>Atom</a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-dto.Swagger'>Swagger</a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-dto.JsonSchema'>JSON-Schema</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.BeanSubTypes'>Bean Subtypes</a></p>
+			</ol>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.VirtualBeans'>Virtual Beans</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.ReadingContinuousStreams'>Reading Continuous Streams</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.JacksonComparison'>Comparison with Jackson</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.PojoCategories'>POJO Categories</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.BestPractices'>Best Practices</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.AdditionalInfo'>Additional Information</a></p>
+			<ol>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.AdditionalInfo.JSON'>JSON</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.AdditionalInfo.XML'>XML</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.AdditionalInfo.HTML'>HTML</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.AdditionalInfo.UON'>UON</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall.AdditionalInfo.URLEncoding'>URL-Encoding</a></p>
 			</ol>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-svl'><i>juneau-svl</i></a></p>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-config'><i>juneau-config</i></a></p>
 		</ol>
-		<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest'><i>juneau-rest</i></a></p>
-	<ol>
+		<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-marshall-rdf'><i>juneau-marshall-rdf</i></a></p>
+		<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-dto'><i>juneau-dto</i></a></p>
+		<ol>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-dto.HTML5'>HTML5</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-dto.Atom'>Atom</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-dto.Swagger'>Swagger</a></p>
+		</ol>
+		<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-svl'><i>juneau-svl</i></a></p>
+		<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-config'><i>juneau-config</i></a></p>
 		<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server'><i>juneau-rest-server</i></a></p>
 		<ol>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.HelloWorldExample'><i>Hello World Example</i></a></p>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.ClassHierarchy'><i>Class Hierarchy</i></a></p>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.Instantiation'><i>Instantiation</i></a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.HelloWorldExample'>Hello World Example</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.ClassHierarchy'>Class Hierarchy</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.Instantiation'>Instantiation</a></p>
 			<ol>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.Children'><i>Children</i></a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.RouterPages'><i>Router Pages</i></a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.ResourceResolvers'><i>Resource Resolvers</i></a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.LifecycleHooks'><i>Lifecycle Hooks</i></a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.AnnotationInheritance'><i>Annotation Inheritance</i></a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.RestServlet'>RestServlet</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.RestServletDefault'>RestServletDefault</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.Children'>Children</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.RouterPages'>Router Pages</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.ResourceResolvers'>Resource Resolvers</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.LifecycleHooks'>Lifecycle Hooks</a></p>
 			</ol>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.RestMethod'><i>@RestMethod Annotation</i></a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.RestResource'>@RestResource</a></p>
 			<ol>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.MethodParameters'><i>Java Method Parameters</i></a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.MethodReturnTypes'><i>Method Return Types</i></a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.RestMethodPath'><i>@RestMethod.path()</i></a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.RestMethodMatchers'><i>@RestMethod.matchers()</i></a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.AnnotationInheritance'>Annotation Inheritance</a></p>
 			</ol>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.Body'><i>@Body</i></a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.RestContext'>RestContext</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.RestMethod'>@RestMethod</a></p>
 			<ol>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.HandlingFormPosts'><i>Handling Form Posts</i></a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.HandlingMultiPartFormPosts'><i>Handling Multi-Part Form Posts</i></a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.MethodParameters'>Java Method Parameters</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.RestRequest'>RestRequest</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.RestResponse'>RestResponse</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.RequestBody'>RequestBody</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.RequestHeaders'>RequestHeaders</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.RequestQuery'>RequestQuery</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.RequestFormData'>RequestFormData</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.RestMethodPath'>@RestMethod.path()</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.RequestPathMatch'>RequestPathMatch</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.MethodReturnTypes'>Method Return Types</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.ReaderResource'>ReaderResource</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.StreamResource'>StreamResource</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.Redirect'>Redirect</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.RestMethodMatchers'>@RestMethod.matchers()</a></p>
 			</ol>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.FormData'><i>@FormData</i></a></p>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.Query'><i>@Query</i></a></p>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.Header'><i>@Header</i></a></p>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.Serializers'><i>Serializers</i></a></p>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.Parsers'><i>Parsers</i></a></p>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.Properties'><i>Properties</i></a></p>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.Transforms'><i>Transforms</i></a></p>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.Guards'><i>Guards</i></a></p>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.Converters'><i>Converters</i></a></p>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.Messages'><i>Messages</i></a></p>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.Encoders'><i>Encoders</i></a></p>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.SvlVariables'><i>SVL Variables</i></a></p>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.ConfigurationFiles'><i>Configuration Files</i></a></p>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.StaticFiles'><i>Static files</i></a></p>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.ClientVersioning'><i>Client Versioning</i></a></p>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.OptionsPages'><i>OPTIONS pages</i></a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.Body'>@Body</a></p>
 			<ol>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest- defined on the resource/method'><i>Info Providers</i></a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.HandlingFormPosts'>Handling Form Posts</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.HandlingMultiPartFormPosts'>Handling Multi-Part Form Posts</a></p>
 			</ol>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.HtmlDocAnnotation'><i> @HtmlDoc</i></a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.FormData'>@FormData</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.Query'>@Query</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.Header'>@Header</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.Serializers'>Serializers</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.Parsers'>Parsers</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.Properties'>Properties</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.Transforms'>Transforms</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.Guards'>Guards</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.Converters'>Converters</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.Messages'>Messages</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.Encoders'>Encoders</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.SvlVariables'>SVL Variables</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.ConfigurationFiles'>Configuration Files</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.StaticFiles'>Static files</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.ClientVersioning'>Client Versioning</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.OptionsPages'>OPTIONS pages</a></p>
 			<ol>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.Widgets'><i>Widgets</i></a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.UiCustomization'><i>UI Customization</i></a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.Stylesheets'><i>Stylesheets</i></a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.RestInfoProvider'>RestInfoProvider</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.RestInfoProviderDefault'>RestInfoProviderDefault</a></p>
 			</ol>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.DefaultHeaders'><i>Default Headers</i></a></p>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.LoggingAndErrorHandling'><i>Logging and Error Handling</i></a></p>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.HttpStatusCodes'><i>HTTP Status Codes</i></a></p>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.OverloadingHttpMethods'><i>Overloading HTTP Methods</i></a></p>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.BuiltInParameters'><i>Built-in Parameters</i></a></p>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.CustomSerializersAndParsers'><i>Custom Serializers and Parsers</i></a></p>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.UsingWithOsgi'><i>Using with OSGi</i></a></p>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.RemoteableProxies'><i>Remoteable Proxies</i></a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.HtmlDocAnnotation'>@HtmlDoc</a></p>
 			<ol>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.RemoteableProxiesClientSide'><i>Remoteable Proxies - Client Side</i></a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.RemoteableProxiesServerSide'><i>Remoteable Proxies - Server Side</i></a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.RemoteableProxiesRemoteableAnnotation'><i>Remoteable Proxies - @Remoteable Annotation</i></a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.Widgets'>Widgets</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.UiCustomization'>UI Customization</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.Stylesheets'>Stylesheets</a></p>
 			</ol>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.Injection'><i>Using with Spring or other Injection frameworks</i></a></p>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.HTTP2'><i>Using HTTP/2 features</i></a></p>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.OtherNotes'><i>Other Notes</i></a></p>
-		</ol>
-		<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server-jaxrs'><i>3.2 - juneau-rest-server-jaxrs</i></a></p>
-		<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-client'><i>3.3 - juneau-rest-client</i></a></p>
-		<ol>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-client.3rdPartyProxies'><i>3.3.1 - Interface proxies against 3rd-party REST interfaces</i></a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.DefaultHeaders'>Default Headers</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.LoggingAndErrorHandling'>Logging and Error Handling</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.HttpStatusCodes'>HTTP Status Codes</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.OverloadingHttpMethods'>Overloading HTTP Methods</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.BuiltInParameters'>Built-in Parameters</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.CustomSerializersAndParsers'>Custom Serializers and Parsers</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.UsingWithOsgi'>Using with OSGi</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.RemoteableProxies'>Remoteable Proxies</a></p>
+			<ol>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.RemoteableProxiesClientSide'>Remoteable Proxies - Client Side</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.RemoteableProxiesServerSide'>Remoteable Proxies - Server Side</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.RemoteableProxiesRemoteableAnnotation'>Remoteable Proxies - @Remoteable Annotation</a></p>
+			</ol>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.Injection'>Using with Spring and Injection frameworks</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.HTTP2'>Using HTTP/2 features</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.PredefinedLabelBeans'>Predefined Label Beans</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server.OtherNotes'>Other Notes</a></p>
 		</ol>
-	</ol>
-		<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-microservice'><i>juneau-microservice</i></a></p>
+		<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-server-jaxrs'><i>juneau-rest-server-jaxrs</i></a></p>
+		<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-client'><i>juneau-rest-client</i></a></p>
 		<ol>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-microservice-server'><i>juneau-microservice-server</i></a></p>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-microservice-template'><i>juneau-microservice-template</i></a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-rest-client.3rdPartyProxies'>Interface Proxies Against 3rd-party REST Interfaces</a></p>
 		</ol>
-		<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples'><i>juneau-examples</i></a></p>
+		<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-microservice-server'><i>juneau-microservice-server</i></a></p>
+		<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-microservice-template'><i>juneau-microservice-template</i></a></p>
+		<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-core'><i>juneau-examples-core</i></a></p>
+		<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest'><i>juneau-examples-rest</i></a></p>
 		<ol>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-core'><i>juneau-examples-core</i></a></p>
-			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest'><i>juneau-examples-rest</i></a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.RootResources'>RootResources</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.HelloWorldResource'>HelloWorldResource</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.MethodExampleResource'>MethodExampleResource</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.UrlEncodedFormResource'>UrlEncodedFormResource</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.RequestEchoResource'>RequestEchoResource</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.AddressBookResource'>AddressBookResource</a></p>
 			<ol>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.RootResources'>RootResources</a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.HelloWorldResource'>HelloWorldResource</a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.MethodExampleResource'>MethodExampleResource</a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.UrlEncodedFormResource'>UrlEncodedFormResource</a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.RequestEchoResource'>RequestEchoResource</a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.AddressBookResource'>AddressBookResource</a></p>
-				<ol>
-					<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.AddressBookResource.Classes'>Classes</a></p>
-					<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.AddressBookResource.Demo'>Demo</a></p>
-					<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.AddressBookResource.Traversable'>Traversable</a></p>
-					<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.AddressBookResource.Queryable'>Queryable</a></p>
-					<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.AddressBookResource.Introspectable'>Introspectable</a></p>
-					<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.AddressBookResource.RestClient'>ClientTest</a></p>
-					<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.AddressBookResource.Browser'>Browser Tips</a></p>
-				</ol>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.SampleRemoteableServlet'>SampleRemoteableServlet</a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.TempDirResource'>TempDirResource</a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.AtomFeedResource'>AtomFeedResource</a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.DockerRegistryResource'>DockerRegistryResource</a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.TumblrParserResource'>TumblrParserResource</a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.PhotosResource'>PhotosResource</a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.JsonSchemaResource'>JsonSchemaResource</a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.SqlQueryResource'>SqlQueryResource</a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.ConfigResource'>ConfigResource</a></p>
-				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.LogsResource'>LogsResource</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.AddressBookResource.Classes'>Classes</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.AddressBookResource.Demo'>Demo</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.AddressBookResource.Traversable'>Traversable</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.AddressBookResource.Queryable'>Queryable</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.AddressBookResource.Introspectable'>Introspectable</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.AddressBookResource.RestClient'>ClientTest</a></p>
+				<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.AddressBookResource.Browser'>Browser Tips</a></p>
 			</ol>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.SampleRemoteableServlet'>SampleRemoteableServlet</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.TempDirResource'>TempDirResource</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.AtomFeedResource'>AtomFeedResource</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.DockerRegistryResource'>DockerRegistryResource</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.TumblrParserResource'>TumblrParserResource</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.PhotosResource'>PhotosResource</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.JsonSchemaResource'>JsonSchemaResource</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.SqlQueryResource'>SqlQueryResource</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.ConfigResource'>ConfigResource</a></p>
+			<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#juneau-examples-rest.LogsResource'>LogsResource</a></p>
 		</ol>
 		<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#Security'>Security Best-Practices</a></p>
 		<li><p><a class='doclink' href='http://juneau.apache.org/site/apidocs/overview-summary.html#ReleaseNotes'>Release Notes</a></p>
diff --git a/content/site/apidocs/overview-summary.html b/content/site/apidocs/overview-summary.html
index bc28228..45f6d1c 100644
--- a/content/site/apidocs/overview-summary.html
+++ b/content/site/apidocs/overview-summary.html
@@ -2,7 +2,6 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Trivial change -->
 <!-- Generated by javadoc -->
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Overview (Apache Juneau 7.1.0-SNAPSHOT)</title>
@@ -441,194 +440,182 @@
       <li><p><a class='doclink' href='#Intro.Features'>Features</a></p>
       <li><p><a class='doclink' href='#Intro.Components'>Components</a></p>
    </ol>
-   <li><p><a class='doclink' href='#juneau-core'><i>juneau-core</i></a></p>
+   <li><p><a class='doclink' href='#juneau-marshall'><i>juneau-marshall</i></a></p>
    <ol>
-      <li><p><a class='doclink' href='#juneau-marshall'><i>juneau-marshall</i></a></p>
+      <li><p><a class='doclink' href='#juneau-marshall.Serializers'>Serializers</a></p>
+      <li><p><a class='doclink' href='#juneau-marshall.Parsers'>Parsers</a></p>
+      <li><p><a class='doclink' href='#juneau-marshall.Groups'>SerializerGroups and ParserGroups</a></p>
+      <li><p><a class='doclink' href='#juneau-marshall.ObjectMap'>ObjectMap and ObjectList</a></p>
+      <li><p><a class='doclink' href='#juneau-marshall.ConfigurableProperties'>Configurable Properties</a></p>
+      <li><p><a class='doclink' href='#juneau-marshall.ContextsBuildersSessionsPropertyStores'>Contexts, Builders, Sessions, and PropertyStores</a></p>
+      <li><p><a class='doclink' href='#juneau-marshall.Transforms'>Transforms</a></p>
       <ol>
-         <li><p><a class='doclink' href='#juneau-marshall.Serializers'>Serializers</a></p>
-         <li><p><a class='doclink' href='#juneau-marshall.Parsers'>Parsers</a></p>
-         <li><p><a class='doclink' href='#juneau-marshall.Groups'>SerializerGroups and ParserGroups</a></p>
-         <li><p><a class='doclink' href='#juneau-marshall.ObjectMap'>ObjectMap and ObjectList</a></p>
-         <li><p><a class='doclink' href='#juneau-marshall.ConfigurableProperties'>Configurable Properties</a></p>
-         <li><p><a class='doclink' href='#juneau-marshall.ContextsBuildersSessionsPropertyStores'>Contexts, Builders, Sessions, and PropertyStores</a></p>
-         <li><p><a class='doclink' href='#juneau-marshall.Transforms'>Transforms</a></p>
-         <ol>
-            <li><p><a class='doclink' href='#juneau-marshall.PojoSwaps'>PojoSwaps</a></p>
-            <li><p><a class='doclink' href='#juneau-marshall.PerMediaTypePojoSwaps'>Per-media-type PojoSwaps</a></p>
-            <li><p><a class='doclink' href='#juneau-marshall.OneWayPojoSwaps'>One-way PojoSwaps</a></p>
-            <li><p><a class='doclink' href='#juneau-marshall.SwapAnnotation'>@Swap Annotation</a></p>
-            <li><p><a class='doclink' href='#juneau-marshall.TemplatedSwaps'>Templated Swaps</a></p>
-            <li><p><a class='doclink' href='#juneau-marshall.SwapMethods'>Swap Methods</a></p>
-            <li><p><a class='doclink' href='#juneau-marshall.SurrogateClasses'>Surrogate Classes</a></p>
-            <li><p><a class='doclink' href='#juneau-marshall.BeanAnnotation'>@Bean Annotation</a></p>
-            <li><p><a class='doclink' href='#juneau-marshall.BeanPropertyAnnotation'>@BeanProperty Annotation</a></p>
-            <li><p><a class='doclink' href='#juneau-marshall.BeanConstructorAnnotation'>@BeanConstructor Annotation</a></p>
-            <li><p><a class='doclink' href='#juneau-marshall.BeanIgnoreAnnotation'>@BeanIgnore Annotation</a></p>
-            <li><p><a class='doclink' href='#juneau-marshall.NamePropertyAnnotation'>@NameProperty Annotation</a></p>
-            <li><p><a class='doclink' href='#juneau-marshall.ParentPropertyAnnotation'>@ParentProperty Annotation</a></p>
-            <li><p><a class='doclink' href='#juneau-marshall.PojoBuilders'>POJO Builders</a></p>
-            <li><p><a class='doclink' href='#juneau-marshall.URIs'>URIs</a></p>
-            <li><p><a class='doclink' href='#juneau-marshall.BeanFilters'>BeanFilters</a></p>
-            <li><p><a class='doclink' href='#juneau-marshall.InterfaceFilters'>Interface filters</a></p>
-            <li><p><a class='doclink' href='#juneau-marshall.StopClasses'>Stop Classes</a></p>
-            <li><p><a class='doclink' href='#juneau-marshall.BypassSerialization'>Bypass Serialization using Readers and InputStreams</a></p>
-         </ol>
-         <li><p><a class='doclink' href='#juneau-marshall.BeanDictionaries'>Bean Name and Dictionaries</a></p>
-         <ol>
-            <li><p><a class='doclink' href='#juneau-marshall.BeanSubTypes'>Bean Subtypes</a></p>
-         </ol>
-         <li><p><a class='doclink' href='#juneau-marshall.VirtualBeans'>Virtual Beans</a></p>
-         <li><p><a class='doclink' href='#juneau-marshall.ReadingContinuousStreams'>Reading Continuous Streams</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.BestPractices'>Best Practices</a></p>
-         <li><p><a class='doclink' href='#juneau-marshall.AdditionalInfo'>Additional Information</a></p>
-         <ol>
-            <li><p><a class='doclink' href='#juneau-marshall.AdditionalInfo.JSON'>JSON</a></p>
-            <li><p><a class='doclink' href='#juneau-marshall.AdditionalInfo.XML'>XML</a></p>
-            <li><p><a class='doclink' href='#juneau-marshall.AdditionalInfo.HTML'>HTML</a></p>
-            <li><p><a class='doclink' href='#juneau-marshall.AdditionalInfo.UON'>UON</a></p>
-            <li><p><a class='doclink' href='#juneau-marshall.AdditionalInfo.URLEncoding'>URL-Encoding</a></p>
-         </ol>
+         <li><p><a class='doclink' href='#juneau-marshall.PojoSwaps'>PojoSwaps</a></p>
+         <li><p><a class='doclink' href='#juneau-marshall.PerMediaTypePojoSwaps'>Per-media-type PojoSwaps</a></p>
+         <li><p><a class='doclink' href='#juneau-marshall.OneWayPojoSwaps'>One-way PojoSwaps</a></p>
+         <li><p><a class='doclink' href='#juneau-marshall.SwapAnnotation'>@Swap Annotation</a></p>
+         <li><p><a class='doclink' href='#juneau-marshall.TemplatedSwaps'>Templated Swaps</a></p>
+         <li><p><a class='doclink' href='#juneau-marshall.SwapMethods'>Swap Methods</a></p>
+         <li><p><a class='doclink' href='#juneau-marshall.SurrogateClasses'>Surrogate Classes</a></p>
+         <li><p><a class='doclink' href='#juneau-marshall.BeanAnnotation'>@Bean Annotation</a></p>
+         <li><p><a class='doclink' href='#juneau-marshall.BeanPropertyAnnotation'>@BeanProperty Annotation</a></p>
+         <li><p><a class='doclink' href='#juneau-marshall.BeanConstructorAnnotation'>@BeanConstructor Annotation</a></p>
+         <li><p><a class='doclink' href='#juneau-marshall.BeanIgnoreAnnotation'>@BeanIgnore Annotation</a></p>
+         <li><p><a class='doclink' href='#juneau-marshall.NamePropertyAnnotation'>@NameProperty Annotation</a></p>
+         <li><p><a class='doclink' href='#juneau-marshall.ParentPropertyAnnotation'>@ParentProperty Annotation</a></p>
+         <li><p><a class='doclink' href='#juneau-marshall.PojoBuilders'>POJO Builders</a></p>
+         <li><p><a class='doclink' href='#juneau-marshall.URIs'>URIs</a></p>
+         <li><p><a class='doclink' href='#juneau-marshall.BeanFilters'>BeanFilters</a></p>
+         <li><p><a class='doclink' href='#juneau-marshall.InterfaceFilters'>Interface filters</a></p>
+         <li><p><a class='doclink' href='#juneau-marshall.StopClasses'>Stop Classes</a></p>
+         <li><p><a class='doclink' href='#juneau-marshall.BypassSerialization'>Bypass Serialization using Readers and InputStreams</a></p>
+      </ol>
+      <li><p><a class='doclink' href='#juneau-marshall.BeanDictionaries'>Bean Name and Dictionaries</a></p>
+      <ol>
+         <li><p><a class='doclink' href='#juneau-marshall.BeanSubTypes'>Bean Subtypes</a></p>
       </ol>
-      <li><p><a class='doclink' href='#juneau-marshall-rdf'><i>juneau-marshall-rdf</i></a></p>
-      <li><p><a class='doclink' href='#juneau-dto'><i>juneau-dto</i></a></p>
+      <li><p><a class='doclink' href='#juneau-marshall.VirtualBeans'>Virtual Beans</a></p>
+      <li><p><a class='doclink' href='#juneau-marshall.ReadingContinuousStreams'>Reading Continuous Streams</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.BestPractices'>Best Practices</a></p>
+      <li><p><a class='doclink' href='#juneau-marshall.AdditionalInfo'>Additional Information</a></p>
       <ol>
-         <li><p><a class='doclink' href='#juneau-dto.HTML5'>HTML5</a></p>
-         <li><p><a class='doclink' href='#juneau-dto.Atom'>Atom</a></p>
-         <li><p><a class='doclink' href='#juneau-dto.Swagger'>Swagger</a></p>
+         <li><p><a class='doclink' href='#juneau-marshall.AdditionalInfo.JSON'>JSON</a></p>
+         <li><p><a class='doclink' href='#juneau-marshall.AdditionalInfo.XML'>XML</a></p>
+         <li><p><a class='doclink' href='#juneau-marshall.AdditionalInfo.HTML'>HTML</a></p>
+         <li><p><a class='doclink' href='#juneau-marshall.AdditionalInfo.UON'>UON</a></p>
+         <li><p><a class='doclink' href='#juneau-marshall.AdditionalInfo.URLEncoding'>URL-Encoding</a></p>
       </ol>
-      <li><p><a class='doclink' href='#juneau-svl'><i>juneau-svl</i></a></p>
-      <li><p><a class='doclink' href='#juneau-config'><i>juneau-config</i></a></p>
    </ol>
-   <li><p><a class='doclink' href='#juneau-rest'><i>juneau-rest</i></a></p>
+   <li><p><a class='doclink' href='#juneau-marshall-rdf'><i>juneau-marshall-rdf</i></a></p>
+   <li><p><a class='doclink' href='#juneau-dto'><i>juneau-dto</i></a></p>
    <ol>
-      <li><p><a class='doclink' href='#juneau-rest-server'><i>juneau-rest-server</i></a></p>
+      <li><p><a class='doclink' href='#juneau-dto.HTML5'>HTML5</a></p>
+      <li><p><a class='doclink' href='#juneau-dto.Atom'>Atom</a></p>
+      <li><p><a class='doclink' href='#juneau-dto.Swagger'>Swagger</a></p>
+   </ol>
+   <li><p><a class='doclink' href='#juneau-svl'><i>juneau-svl</i></a></p>
+   <li><p><a class='doclink' href='#juneau-config'><i>juneau-config</i></a></p>
+   <li><p><a class='doclink' href='#juneau-rest-server'><i>juneau-rest-server</i></a></p>
+   <ol>
+      <li><p><a class='doclink' href='#juneau-rest-server.HelloWorldExample'>Hello World Example</a></p>
+      <li><p><a class='doclink' href='#juneau-rest-server.ClassHierarchy'>Class Hierarchy</a></p>
+      <li><p><a class='doclink' href='#juneau-rest-server.Instantiation'>Instantiation</a></p>
       <ol>
-         <li><p><a class='doclink' href='#juneau-rest-server.HelloWorldExample'>Hello World Example</a></p>
-         <li><p><a class='doclink' href='#juneau-rest-server.ClassHierarchy'>Class Hierarchy</a></p>
-         <li><p><a class='doclink' href='#juneau-rest-server.Instantiation'>Instantiation</a></p>
-         <ol>
-            <li><p><a class='doclink' href='#juneau-rest-server.RestServlet'>RestServlet</a></p>
-            <li><p><a class='doclink' href='#juneau-rest-server.RestServletDefault'>RestServletDefault</a></p>
-            <li><p><a class='doclink' href='#juneau-rest-server.Children'>Children</a></p>
-            <li><p><a class='doclink' href='#juneau-rest-server.RouterPages'>Router Pages</a></p>
-            <li><p><a class='doclink' href='#juneau-rest-server.ResourceResolvers'>Resource Resolvers</a></p>
-            <li><p><a class='doclink' href='#juneau-rest-server.LifecycleHooks'>Lifecycle Hooks</a></p>
-         </ol>
-         <li><p><a class='doclink' href='#juneau-rest-server.RestResource'>@RestResource</a></p>
-         <ol>
-            <li><p><a class='doclink' href='#juneau-rest-server.AnnotationInheritance'>Annotation Inheritance</a></p>
-         </ol>
-         <li><p><a class='doclink' href='#juneau-rest-server.RestContext'>RestContext</a></p>
-         <li><p><a class='doclink' href='#juneau-rest-server.RestMethod'>@RestMethod</a></p>
-         <ol>
-            <li><p><a class='doclink' href='#juneau-rest-server.MethodParameters'>Java Method Parameters</a></p>
-            <li><p><a class='doclink' href='#juneau-rest-server.RestRequest'>RestRequest</a></p>
-            <li><p><a class='doclink' href='#juneau-rest-server.RestResponse'>RestResponse</a></p>
-            <li><p><a class='doclink' href='#juneau-rest-server.RequestBody'>RequestBody</a></p>
-            <li><p><a class='doclink' href='#juneau-rest-server.RequestHeaders'>RequestHeaders</a></p>
-            <li><p><a class='doclink' href='#juneau-rest-server.RequestQuery'>RequestQuery</a></p>
-            <li><p><a class='doclink' href='#juneau-rest-server.RequestFormData'>RequestFormData</a></p>
-            <li><p><a class='doclink' href='#juneau-rest-server.RestMethodPath'>@RestMethod.path()</a></p>
-            <li><p><a class='doclink' href='#juneau-rest-server.RequestPathMatch'>RequestPathMatch</a></p>
-            <li><p><a class='doclink' href='#juneau-rest-server.MethodReturnTypes'>Method Return Types</a></p>
-            <li><p><a class='doclink' href='#juneau-rest-server.ReaderResource'>ReaderResource</a></p>
-            <li><p><a class='doclink' href='#juneau-rest-server.StreamResource'>StreamResource</a></p>
-            <li><p><a class='doclink' href='#juneau-rest-server.Redirect'>Redirect</a></p>
-            <li><p><a class='doclink' href='#juneau-rest-server.RestMethodMatchers'>@RestMethod.matchers()</a></p>
-         </ol>
-         <li><p><a class='doclink' href='#juneau-rest-server.Body'>@Body</a></p>
-         <ol>
-            <li><p><a class='doclink' href='#juneau-rest-server.HandlingFormPosts'>Handling Form Posts</a></p>
-            <li><p><a class='doclink' href='#juneau-rest-server.HandlingMultiPartFormPosts'>Handling Multi-Part Form Posts</a></p>
-         </ol>
-         <li><p><a class='doclink' href='#juneau-rest-server.FormData'>@FormData</a></p>
-         <li><p><a class='doclink' href='#juneau-rest-server.Query'>@Query</a></p>
-         <li><p><a class='doclink' href='#juneau-rest-server.Header'>@Header</a></p>
-         <li><p><a class='doclink' href='#juneau-rest-server.Serializers'>Serializers</a></p>
-         <li><p><a class='doclink' href='#juneau-rest-server.Parsers'>Parsers</a></p>
-         <li><p><a class='doclink' href='#juneau-rest-server.Properties'>Properties</a></p>
-         <li><p><a class='doclink' href='#juneau-rest-server.Transforms'>Transforms</a></p>
-         <li><p><a class='doclink' href='#juneau-rest-server.Guards'>Guards</a></p>
-         <li><p><a class='doclink' href='#juneau-rest-server.Converters'>Converters</a></p>
-         <li><p><a class='doclink' href='#juneau-rest-server.Messages'>Messages</a></p>
-         <li><p><a class='doclink' href='#juneau-rest-server.Encoders'>Encoders</a></p>
-         <li><p><a class='doclink' href='#juneau-rest-server.SvlVariables'>SVL Variables</a></p>
-         <li><p><a class='doclink' href='#juneau-rest-server.ConfigurationFiles'>Configuration Files</a></p>
-         <li><p><a class='doclink' href='#juneau-rest-server.StaticFiles'>Static files</a></p>
-         <li><p><a class='doclink' href='#juneau-rest-server.ClientVersioning'>Client Versioning</a></p>
-         <li><p><a class='doclink' href='#juneau-rest-server.OptionsPages'>OPTIONS pages</a></p>
-         <ol>
-            <li><p><a class='doclink' href='#juneau-rest-server.RestInfoProvider'>RestInfoProvider</a></p>
-            <li><p><a class='doclink' href='#juneau-rest-server.RestInfoProviderDefault'>RestInfoProviderDefault</a></p>
-         </ol>
-         <li><p><a class='doclink' href='#juneau-rest-server.HtmlDocAnnotation'>@HtmlDoc</a></p>
-         <ol>
-            <li><p><a class='doclink' href='#juneau-rest-server.Widgets'>Widgets</a></p>
-            <li><p><a class='doclink' href='#juneau-rest-server.UiCustomization'>UI Customization</a></p>
-            <li><p><a class='doclink' href='#juneau-rest-server.Stylesheets'>Stylesheets</a></p>
-         </ol>
-         <li><p><a class='doclink' href='#juneau-rest-server.DefaultHeaders'>Default Headers</a></p>
-         <li><p><a class='doclink' href='#juneau-rest-server.LoggingAndErrorHandling'>Logging and Error Handling</a></p>
-         <li><p><a class='doclink' href='#juneau-rest-server.HttpStatusCodes'>HTTP Status Codes</a></p>
-         <li><p><a class='doclink' href='#juneau-rest-server.OverloadingHttpMethods'>Overloading HTTP Methods</a></p>
-         <li><p><a class='doclink' href='#juneau-rest-server.BuiltInParameters'>Built-in Parameters</a></p>
-         <li><p><a class='doclink' href='#juneau-rest-server.CustomSerializersAndParsers'>Custom Serializers and Parsers</a></p>
-         <li><p><a class='doclink' href='#juneau-rest-server.UsingWithOsgi'>Using with OSGi</a></p>
-         <li><p><a class='doclink' href='#juneau-rest-server.RemoteableProxies'>Remoteable Proxies</a></p>
-         <ol>
-            <li><p><a class='doclink' href='#juneau-rest-server.RemoteableProxiesClientSide'>Remoteable Proxies - Client Side</a></p>
-            <li><p><a class='doclink' href='#juneau-rest-server.RemoteableProxiesServerSide'>Remoteable Proxies - Server Side</a></p>
-            <li><p><a class='doclink' href='#juneau-rest-server.RemoteableProxiesRemoteableAnnotation'>Remoteable Proxies - @Remoteable Annotation</a></p>
-         </ol>
-         <li><p><a class='doclink' href='#juneau-rest-server.Injection'>Using with Spring and Injection frameworks</a></p>
-         <li><p><a class='doclink' href='#juneau-rest-server.HTTP2'>Using HTTP/2 features</a></p>
-         <li><p><a class='doclink' href='#juneau-rest-server.PredefinedLabelBeans'>Predefined Label Beans</a></p>
-         <li><p><a class='doclink' href='#juneau-rest-server.OtherNotes'>Other Notes</a></p>
+         <li><p><a class='doclink' href='#juneau-rest-server.RestServlet'>RestServlet</a></p>
+         <li><p><a class='doclink' href='#juneau-rest-server.RestServletDefault'>RestServletDefault</a></p>
+         <li><p><a class='doclink' href='#juneau-rest-server.Children'>Children</a></p>
+         <li><p><a class='doclink' href='#juneau-rest-server.RouterPages'>Router Pages</a></p>
+         <li><p><a class='doclink' href='#juneau-rest-server.ResourceResolvers'>Resource Resolvers</a></p>
+         <li><p><a class='doclink' href='#juneau-rest-server.LifecycleHooks'>Lifecycle Hooks</a></p>
+      </ol>
+      <li><p><a class='doclink' href='#juneau-rest-server.RestResource'>@RestResource</a></p>
+      <ol>
+         <li><p><a class='doclink' href='#juneau-rest-server.AnnotationInheritance'>Annotation Inheritance</a></p>
+      </ol>
+      <li><p><a class='doclink' href='#juneau-rest-server.RestContext'>RestContext</a></p>
+      <li><p><a class='doclink' href='#juneau-rest-server.RestMethod'>@RestMethod</a></p>
+      <ol>
+         <li><p><a class='doclink' href='#juneau-rest-server.MethodParameters'>Java Method Parameters</a></p>
+         <li><p><a class='doclink' href='#juneau-rest-server.RestRequest'>RestRequest</a></p>
+         <li><p><a class='doclink' href='#juneau-rest-server.RestResponse'>RestResponse</a></p>
+         <li><p><a class='doclink' href='#juneau-rest-server.RequestBody'>RequestBody</a></p>
+         <li><p><a class='doclink' href='#juneau-rest-server.RequestHeaders'>RequestHeaders</a></p>
+         <li><p><a class='doclink' href='#juneau-rest-server.RequestQuery'>RequestQuery</a></p>
+         <li><p><a class='doclink' href='#juneau-rest-server.RequestFormData'>RequestFormData</a></p>
+         <li><p><a class='doclink' href='#juneau-rest-server.RestMethodPath'>@RestMethod.path()</a></p>
+         <li><p><a class='doclink' href='#juneau-rest-server.RequestPathMatch'>RequestPathMatch</a></p>
+         <li><p><a class='doclink' href='#juneau-rest-server.MethodReturnTypes'>Method Return Types</a></p>
+         <li><p><a class='doclink' href='#juneau-rest-server.ReaderResource'>ReaderResource</a></p>
+         <li><p><a class='doclink' href='#juneau-rest-server.StreamResource'>StreamResource</a></p>
+         <li><p><a class='doclink' href='#juneau-rest-server.Redirect'>Redirect</a></p>
+         <li><p><a class='doclink' href='#juneau-rest-server.RestMethodMatchers'>@RestMethod.matchers()</a></p>
+      </ol>
+      <li><p><a class='doclink' href='#juneau-rest-server.Body'>@Body</a></p>
+      <ol>
+         <li><p><a class='doclink' href='#juneau-rest-server.HandlingFormPosts'>Handling Form Posts</a></p>
+         <li><p><a class='doclink' href='#juneau-rest-server.HandlingMultiPartFormPosts'>Handling Multi-Part Form Posts</a></p>
+      </ol>
+      <li><p><a class='doclink' href='#juneau-rest-server.FormData'>@FormData</a></p>
+      <li><p><a class='doclink' href='#juneau-rest-server.Query'>@Query</a></p>
+      <li><p><a class='doclink' href='#juneau-rest-server.Header'>@Header</a></p>
+      <li><p><a class='doclink' href='#juneau-rest-server.Serializers'>Serializers</a></p>
+      <li><p><a class='doclink' href='#juneau-rest-server.Parsers'>Parsers</a></p>
+      <li><p><a class='doclink' href='#juneau-rest-server.Properties'>Properties</a></p>
+      <li><p><a class='doclink' href='#juneau-rest-server.Transforms'>Transforms</a></p>
+      <li><p><a class='doclink' href='#juneau-rest-server.Guards'>Guards</a></p>
+      <li><p><a class='doclink' href='#juneau-rest-server.Converters'>Converters</a></p>
+      <li><p><a class='doclink' href='#juneau-rest-server.Messages'>Messages</a></p>
+      <li><p><a class='doclink' href='#juneau-rest-server.Encoders'>Encoders</a></p>
+      <li><p><a class='doclink' href='#juneau-rest-server.SvlVariables'>SVL Variables</a></p>
+      <li><p><a class='doclink' href='#juneau-rest-server.ConfigurationFiles'>Configuration Files</a></p>
+      <li><p><a class='doclink' href='#juneau-rest-server.StaticFiles'>Static files</a></p>
+      <li><p><a class='doclink' href='#juneau-rest-server.ClientVersioning'>Client Versioning</a></p>
+      <li><p><a class='doclink' href='#juneau-rest-server.OptionsPages'>OPTIONS pages</a></p>
+      <ol>
+         <li><p><a class='doclink' href='#juneau-rest-server.RestInfoProvider'>RestInfoProvider</a></p>
+         <li><p><a class='doclink' href='#juneau-rest-server.RestInfoProviderDefault'>RestInfoProviderDefault</a></p>
       </ol>
-      <li><p><a class='doclink' href='#juneau-rest-server-jaxrs'><i>juneau-rest-server-jaxrs</i></a></p>
-      <li><p><a class='doclink' href='#juneau-rest-client'><i>juneau-rest-client</i></a></p>
+      <li><p><a class='doclink' href='#juneau-rest-server.HtmlDocAnnotation'>@HtmlDoc</a></p>
       <ol>
-         <li><p><a class='doclink' href='#juneau-rest-client.3rdPartyProxies'>Interface Proxies Against 3rd-party REST Interfaces</a></p>
+         <li><p><a class='doclink' href='#juneau-rest-server.Widgets'>Widgets</a></p>
+         <li><p><a class='doclink' href='#juneau-rest-server.UiCustomization'>UI Customization</a></p>
+         <li><p><a class='doclink' href='#juneau-rest-server.Stylesheets'>Stylesheets</a></p>
       </ol>
+      <li><p><a class='doclink' href='#juneau-rest-server.DefaultHeaders'>Default Headers</a></p>
+      <li><p><a class='doclink' href='#juneau-rest-server.LoggingAndErrorHandling'>Logging and Error Handling</a></p>
+      <li><p><a class='doclink' href='#juneau-rest-server.HttpStatusCodes'>HTTP Status Codes</a></p>
+      <li><p><a class='doclink' href='#juneau-rest-server.OverloadingHttpMethods'>Overloading HTTP Methods</a></p>
+      <li><p><a class='doclink' href='#juneau-rest-server.BuiltInParameters'>Built-in Parameters</a></p>
+      <li><p><a class='doclink' href='#juneau-rest-server.CustomSerializersAndParsers'>Custom Serializers and Parsers</a></p>
+      <li><p><a class='doclink' href='#juneau-rest-server.UsingWithOsgi'>Using with OSGi</a></p>
+      <li><p><a class='doclink' href='#juneau-rest-server.RemoteableProxies'>Remoteable Proxies</a></p>
+      <ol>
+         <li><p><a class='doclink' href='#juneau-rest-server.RemoteableProxiesClientSide'>Remoteable Proxies - Client Side</a></p>
+         <li><p><a class='doclink' href='#juneau-rest-server.RemoteableProxiesServerSide'>Remoteable Proxies - Server Side</a></p>
+         <li><p><a class='doclink' href='#juneau-rest-server.RemoteableProxiesRemoteableAnnotation'>Remoteable Proxies - @Remoteable Annotation</a></p>
+      </ol>
+      <li><p><a class='doclink' href='#juneau-rest-server.Injection'>Using with Spring and Injection frameworks</a></p>
+      <li><p><a class='doclink' href='#juneau-rest-server.HTTP2'>Using HTTP/2 features</a></p>
+      <li><p><a class='doclink' href='#juneau-rest-server.PredefinedLabelBeans'>Predefined Label Beans</a></p>
+      <li><p><a class='doclink' href='#juneau-rest-server.OtherNotes'>Other Notes</a></p>
    </ol>
-   <li><p><a class='doclink' href='#juneau-microservice'><i>juneau-microservice</i></a></p>
+   <li><p><a class='doclink' href='#juneau-rest-server-jaxrs'><i>juneau-rest-server-jaxrs</i></a></p>
+   <li><p><a class='doclink' href='#juneau-rest-client'><i>juneau-rest-client</i></a></p>
    <ol>
-      <li><p><a class='doclink' href='#juneau-microservice-server'><i>juneau-microservice-server</i></a></p>
-      <li><p><a class='doclink' href='#juneau-microservice-template'><i>juneau-microservice-template</i></a></p>
+      <li><p><a class='doclink' href='#juneau-rest-client.3rdPartyProxies'>Interface Proxies Against 3rd-party REST Interfaces</a></p>
    </ol>
-   <li><p><a class='doclink' href='#juneau-examples'><i>juneau-examples</i></a></p>
+   <li><p><a class='doclink' href='#juneau-microservice-server'><i>juneau-microservice-server</i></a></p>
+   <li><p><a class='doclink' href='#juneau-microservice-template'><i>juneau-microservice-template</i></a></p>
+   <li><p><a class='doclink' href='#juneau-examples-core'><i>juneau-examples-core</i></a></p>
+   <li><p><a class='doclink' href='#juneau-examples-rest'><i>juneau-examples-rest</i></a></p>
    <ol>
-      <li><p><a class='doclink' href='#juneau-examples-core'><i>juneau-examples-core</i></a></p>
-      <li><p><a class='doclink' href='#juneau-examples-rest'><i>juneau-examples-rest</i></a></p>
+      <li><p><a class='doclink' href='#juneau-examples-rest.RootResources'>RootResources</a></p>
+      <li><p><a class='doclink' href='#juneau-examples-rest.HelloWorldResource'>HelloWorldResource</a></p>
+      <li><p><a class='doclink' href='#juneau-examples-rest.MethodExampleResource'>MethodExampleResource</a></p>
+      <li><p><a class='doclink' href='#juneau-examples-rest.UrlEncodedFormResource'>UrlEncodedFormResource</a></p>
+      <li><p><a class='doclink' href='#juneau-examples-rest.RequestEchoResource'>RequestEchoResource</a></p>
+      <li><p><a class='doclink' href='#juneau-examples-rest.AddressBookResource'>AddressBookResource</a></p>
       <ol>
-         <li><p><a class='doclink' href='#juneau-examples-rest.RootResources'>RootResources</a></p>
-         <li><p><a class='doclink' href='#juneau-examples-rest.HelloWorldResource'>HelloWorldResource</a></p>
-         <li><p><a class='doclink' href='#juneau-examples-rest.MethodExampleResource'>MethodExampleResource</a></p>
-         <li><p><a class='doclink' href='#juneau-examples-rest.UrlEncodedFormResource'>UrlEncodedFormResource</a></p>
-         <li><p><a class='doclink' href='#juneau-examples-rest.RequestEchoResource'>RequestEchoResource</a></p>
-         <li><p><a class='doclink' href='#juneau-examples-rest.AddressBookResource'>AddressBookResource</a></p>
-         <ol>
-            <li><p><a class='doclink' href='#juneau-examples-rest.AddressBookResource.Classes'>Classes</a></p>
-            <li><p><a class='doclink' href='#juneau-examples-rest.AddressBookResource.Demo'>Demo</a></p>
-            <li><p><a class='doclink' href='#juneau-examples-rest.AddressBookResource.Traversable'>Traversable</a></p>
-            <li><p><a class='doclink' href='#juneau-examples-rest.AddressBookResource.Queryable'>Queryable</a></p>
-            <li><p><a class='doclink' href='#juneau-examples-rest.AddressBookResource.Introspectable'>Introspectable</a></p>
-            <li><p><a class='doclink' href='#juneau-examples-rest.AddressBookResource.RestClient'>ClientTest</a></p>
-            <li><p><a class='doclink' href='#juneau-examples-rest.AddressBookResource.Browser'>Browser Tips</a></p>
-         </ol>
-         <li><p><a class='doclink' href='#juneau-examples-rest.SampleRemoteableServlet'>SampleRemoteableServlet</a></p>
-         <li><p><a class='doclink' href='#juneau-examples-rest.TempDirResource'>TempDirResource</a></p>
-         <li><p><a class='doclink' href='#juneau-examples-rest.AtomFeedResource'>AtomFeedResource</a></p>
-         <li><p><a class='doclink' href='#juneau-examples-rest.DockerRegistryResource'>DockerRegistryResource</a></p>
-         <li><p><a class='doclink' href='#juneau-examples-rest.TumblrParserResource'>TumblrParserResource</a></p>
-         <li><p><a class='doclink' href='#juneau-examples-rest.PhotosResource'>PhotosResource</a></p>
-         <li><p><a class='doclink' href='#juneau-examples-rest.JsonSchemaResource'>JsonSchemaResource</a></p>
-         <li><p><a class='doclink' href='#juneau-examples-rest.SqlQueryResource'>SqlQueryResource</a></p>
-         <li><p><a class='doclink' href='#juneau-examples-rest.ConfigResource'>ConfigResource</a></p>
-         <li><p><a class='doclink' href='#juneau-examples-rest.LogsResource'>LogsResource</a></p>
+         <li><p><a class='doclink' href='#juneau-examples-rest.AddressBookResource.Classes'>Classes</a></p>
+         <li><p><a class='doclink' href='#juneau-examples-rest.AddressBookResource.Demo'>Demo</a></p>
+         <li><p><a class='doclink' href='#juneau-examples-rest.AddressBookResource.Traversable'>Traversable</a></p>
+         <li><p><a class='doclink' href='#juneau-examples-rest.AddressBookResource.Queryable'>Queryable</a></p>
+         <li><p><a class='doclink' href='#juneau-examples-rest.AddressBookResource.Introspectable'>Introspectable</a></p>
+         <li><p><a class='doclink' href='#juneau-examples-rest.AddressBookResource.RestClient'>ClientTest</a></p>
+         <li><p><a class='doclink' href='#juneau-examples-rest.AddressBookResource.Browser'>Browser Tips</a></p>
       </ol>
+      <li><p><a class='doclink' href='#juneau-examples-rest.SampleRemoteableServlet'>SampleRemoteableServlet</a></p>
+      <li><p><a class='doclink' href='#juneau-examples-rest.TempDirResource'>TempDirResource</a></p>
+      <li><p><a class='doclink' href='#juneau-examples-rest.AtomFeedResource'>AtomFeedResource</a></p>
+      <li><p><a class='doclink' href='#juneau-examples-rest.DockerRegistryResource'>DockerRegistryResource</a></p>
+      <li><p><a class='doclink' href='#juneau-examples-rest.TumblrParserResource'>TumblrParserResource</a></p>
+      <li><p><a class='doclink' href='#juneau-examples-rest.PhotosResource'>PhotosResource</a></p>
+      <li><p><a class='doclink' href='#juneau-examples-rest.JsonSchemaResource'>JsonSchemaResource</a></p>
+      <li><p><a class='doclink' href='#juneau-examples-rest.SqlQueryResource'>SqlQueryResource</a></p>
+      <li><p><a class='doclink' href='#juneau-examples-rest.ConfigResource'>ConfigResource</a></p>
+      <li><p><a class='doclink' href='#juneau-examples-rest.LogsResource'>LogsResource</a></p>
    </ol>
    <li><p><a class='doclink' href='#Security'>Security Best-Practices</a></p>
    <li><p><a class='doclink' href='#ReleaseNotes'>Release Notes</a></p>
@@ -887,79 +874,57 @@
 
 </div>
    
-<!-- =============================================================================================================== -->
-<a id="juneau-core"></a>
-<h2 class='topic' onclick='toggle(this)'>2 - juneau-core</h2>
+<!-- =========================================================================================================== -->
+<a id="juneau-marshall"></a>
+<h2 class='topic' onclick='toggle(this)'>2 - juneau-marshall</h2>
 <div class='topic'>
 
-   <p>
-      The core Maven artifacts of Juneau consist of the following:
-   </p>
-   <ul class='spaced-list'>
-      <li><a class='doclink' href='#juneau-marshall'>juneau-marshall</a> 
-         - Serializers and parsers for converting POJOs to and from a wide variety of content types using a 
-         universal API.
-      <li><a class='doclink' href='#juneau-marshall-rdf'>juneau-marshall-rdf</a> 
-         - RDF serializers and parsers that use Apache Jena for marshalling.
-      <li><a class='doclink' href='#juneau-dto'>juneau-dto</a> 
-         - Data transfer objects for a variety of languages.
-      <li><a class='doclink' href='#juneau-svl'>juneau-svl</a> 
-         - A sophisticated yet simple variable language.
-      <li><a class='doclink' href='#juneau-config'>juneau-config</a> 
-         - A sophisticated configuration file API.
-   </ul>
-
-   <!-- =========================================================================================================== -->
-   <a id="juneau-marshall"></a>
-   <h3 class='topic' onclick='toggle(this)'>2.1 - juneau-marshall</h3>
-   <div class='topic'>
-   
-      <h5 class='figure'>Maven Dependency</h5>
-      <p class='bcode' style='width:500px;'>
+   <h5 class='figure'>Maven Dependency</h5>
+   <p class='bcode' style='width:500px;'>
    <xt>&lt;dependency&gt;</xt>
       <xt>&lt;groupId&gt;</xt>org.apache.juneau<xt>&lt;/groupId&gt;</xt>
       <xt>&lt;artifactId&gt;</xt>juneau-marshall<xt>&lt;/artifactId&gt;</xt>
       <xt>&lt;version&gt;</xt>7.0.0<xt>&lt;/version&gt;</xt>
    <xt>&lt;/dependency&gt;</xt>
-      </p>  
-      
-      <h5 class='figure'>Java Library</h5>
-      <p class='bcode' style='width:500px;'>
+   </p>  
+   
+   <h5 class='figure'>Java Library</h5>
+   <p class='bcode' style='width:500px;'>
    juneau-marshall-7.0.0.jar 
-      </p>  
-      
-      <h5 class='figure'>OSGi Module</h5>
-      <p class='bcode' style='width:500px;'>
+   </p>  
+   
+   <h5 class='figure'>OSGi Module</h5>
+   <p class='bcode' style='width:500px;'>
    org.apache.juneau.marshall_7.0.0.jar 
-      </p>  
+   </p>  
 
+   <p>
+      The <code>juneau-marshall</code> artifact contains the API for defining serializers and parsers, and
+      marshalling support for JSON, XML, HTML, URL-Encoding, UON and others.
+   </p>
+   <p>
+      It also defines many convenience utility classes used throughout the framework.
+   </p>
+   
+   <!-- ======================================================================================================= -->
+   <a id="juneau-marshall.Serializers"></a>
+   <h3 class='topic' onclick='toggle(this)'>2.1 - Serializers</h3>
+   <div class='topic'>
       <p>
-         The <code>juneau-marshall</code> artifact contains the API for defining serializers and parsers, and
-         marshalling support for JSON, XML, HTML, URL-Encoding, UON and others.
+         One of the goals of Juneau was to make serialization as simple as possible.  
+         In a single line of code, you should be able to serialize and parse most POJOs.
+         Despite this simplicity, Juneau provides lots of extensibility and configuration properties for tailoring how 
+         POJOs are serialized and parsed.
       </p>
       <p>
-         It also defines many convenience utility classes used throughout the framework.
+         The built-in serializers in Juneau are fast, efficient, and highly configurable.
+         They work by serializing POJOs directly to streams instead of using intermediate Document Object Model 
+         objects.
       </p>
-      
-      <!-- ======================================================================================================= -->
-      <a id="juneau-marshall.Serializers"></a>
-      <h4 class='topic' onclick='toggle(this)'>2.1.1 - Serializers</h4>
-      <div class='topic'>
-         <p>
-            One of the goals of Juneau was to make serialization as simple as possible.  
-            In a single line of code, you should be able to serialize and parse most POJOs.
-            Despite this simplicity, Juneau provides lots of extensibility and configuration properties for tailoring how 
-            POJOs are serialized and parsed.
-         </p>
-         <p>
-            The built-in serializers in Juneau are fast, efficient, and highly configurable.
-            They work by serializing POJOs directly to streams instead of using intermediate Document Object Model 
-            objects.
-         </p>
-         <p>
-            In most cases, you can serialize objects in one line of code by using one of the default serializers:
-         </p>
-         <p class='bcode'>
+      <p>
+         In most cases, you can serialize objects in one line of code by using one of the default serializers:
+      </p>
+      <p class='bcode'>
    <jc>// A simple bean</jc>
    <jk>public class</jk> Person {
       <jk>public</jk> String <jf>name</jf> = <js>"John Smith"</js>;
@@ -999,13 +964,13 @@
    <jc>// Produces:
    // 82 A4 6E 61 6D 65 AA 4A 6F 68 6E 20 53 6D 69 74 68 A3 61 67 65 15 </jc>
    <jk>byte</jk>[] b = MsgPackSerializer.<jsf>DEFAULT</jsf>.serialize(p);
-         </p>
-         
-         <p>
-            In addition to the default serializers, customized serializers can be created using various built-in options:
-         </p>
-         
-         <p class='bcode'>
+      </p>
+      
+      <p>
+         In addition to the default serializers, customized serializers can be created using various built-in options:
+      </p>
+      
+      <p class='bcode'>
    <jc>// Use one of the default serializers to serialize a POJO</jc>
    String json = JsonSerializer.<jsf>DEFAULT</jsf>.serialize(someObject);
 
@@ -1017,28 +982,28 @@
    
    <jc>// Serialize a POJO to JSON</jc>
    String json = serializer.serialize(someObject);
-         </p>
-         <p>
-            Default serialization support is provided for Java primitives, <code>Maps</code>, <code>Collections</code>, 
-            beans, and arrays. 
-            <br>Extensible support for other data types such as <code>Calendars</code>, <code>Dates</code>, 
-            <code>Iterators</code> is available through the use of POJO swaps (described later).
-         </p>
-      </div>
-      
-      <!-- ======================================================================================================= -->
-      <a id="juneau-marshall.Parsers"></a>
-      <h4 class='topic' onclick='toggle(this)'>2.1.2 - Parsers</h4>
-      <div class='topic'>
-         <p>
-            Parsers work by parsing input directly into POJOs instead of having to create intermediate Document Object 
-            Models.
-            This allows them to parse input with minimal object creation.
-         </p>
-         <p>
-            Like the serializers, you can often parse objects in one line of code by using one of the default parsers:
-         </p>
-         <p class='bcode'>
+      </p>
+      <p>
+         Default serialization support is provided for Java primitives, <code>Maps</code>, <code>Collections</code>, 
+         beans, and arrays. 
+         <br>Extensible support for other data types such as <code>Calendars</code>, <code>Dates</code>, 
+         <code>Iterators</code> is available through the use of POJO swaps (described later).
+      </p>
+   </div>
+   
+   <!-- ======================================================================================================= -->
+   <a id="juneau-marshall.Parsers"></a>
+   <h3 class='topic' onclick='toggle(this)'>2.2 - Parsers</h3>
+   <div class='topic'>
+      <p>
+         Parsers work by parsing input directly into POJOs instead of having to create intermediate Document Object 
+         Models.
+         This allows them to parse input with minimal object creation.
+      </p>
+      <p>
+         Like the serializers, you can often parse objects in one line of code by using one of the default parsers:
+      </p>
+      <p class='bcode'>
    <jc>// Use one of the predefined parsers.</jc>
    Parser parser = JsonParser.<jsf>DEFAULT</jsf>;
 
@@ -1071,11 +1036,11 @@
    json = <js>"[1,2,3]"</js>;
    List&lt;Integer&gt; l6 = parser.parse(json, LinkedList.<jk>class</jk>, Integer.<jk>class</jk>);
    <jk>int</jk>[] i7 = parser.parse(json, <jk>int</jk>[].<jk>class</jk>);
-         </p>
-         <p>
-            The parsers can also be used to populating existing bean and collection objects:
-         </p>
-         <p class='bcode'>
+      </p>
+      <p>
+         The parsers can also be used to populating existing bean and collection objects:
+      </p>
+      <p class='bcode'>
    <jc>// Use one of the predefined parsers.</jc>
    Parser parser = JsonParser.<jsf>DEFAULT</jsf>;
 
@@ -1093,29 +1058,29 @@
    json = <js>"{a:{name:'John Smith',age:21},b:{name:'Joe Smith',age:42}}"</js>;
    Map&lt;String,Person&gt; m3 = <jk>new</jk> TreeMap&lt;String,Person&gt;();
    parser.parseIntoMap(json, m3, String.<jk>class</jk>, Person.<jk>class</jk>);
-         </p>
-         <ul class='doctree'>
-            <li class='info'>
-               In the example above, we're parsing "lax" JSON (single quotes, unquoted attributes).
-               The JSON parser can handle any valid JSON syntax (such as quoted or unquoted attributes, single or double 
-               quotes).
-               <br>It can also handle JSON fragments and embedded Javascript comments. 
-               Many of the JSON examples provided will use lax syntax which is easier to read since we don't have to deal 
-               with escapes.  
-         </ul>
-      </div>
-      
-      <!-- ======================================================================================================= -->
-      <a id="juneau-marshall.Groups"></a>
-      <h4 class='topic' onclick='toggle(this)'>2.1.3 - SerializerGroups and ParserGroups</h4>
-      <div class='topic'>
-         <p>
-            Above the serializers and parsers are the <a href="org/apache/juneau/serializer/SerializerGroup.html" title="class in org.apache.juneau.serializer"><code>SerializerGroup</code></a> and 
-            <a href="org/apache/juneau/parser/ParserGroup.html" title="class in org.apache.juneau.parser"><code>ParserGroup</code></a> classes.
-            These classes allow serializers and parsers to be retrieved by W3C-compliant HTTP <code>Accept</code> 
-            and <code>Content-Type</code> values...
-         </p>
-         <p class='bcode'>
+      </p>
+      <ul class='doctree'>
+         <li class='info'>
+            In the example above, we're parsing "lax" JSON (single quotes, unquoted attributes).
+            The JSON parser can handle any valid JSON syntax (such as quoted or unquoted attributes, single or double 
+            quotes).
+            <br>It can also handle JSON fragments and embedded Javascript comments. 
+            Many of the JSON examples provided will use lax syntax which is easier to read since we don't have to deal 
+            with escapes.  
+      </ul>
+   </div>
+   
+   <!-- ======================================================================================================= -->
+   <a id="juneau-marshall.Groups"></a>
+   <h3 class='topic' onclick='toggle(this)'>2.3 - SerializerGroups and ParserGroups</h3>
+   <div class='topic'>
+      <p>
+         Above the serializers and parsers are the <a href="org/apache/juneau/serializer/SerializerGroup.html" title="class in org.apache.juneau.serializer"><code>SerializerGroup</code></a> and 
+         <a href="org/apache/juneau/parser/ParserGroup.html" title="class in org.apache.juneau.parser"><code>ParserGroup</code></a> classes.
+         These classes allow serializers and parsers to be retrieved by W3C-compliant HTTP <code>Accept</code> 
+         and <code>Content-Type</code> values...
+      </p>
+      <p class='bcode'>
    <jc>// Construct a new serializer group with configuration parameters that get applied to all serializers.</jc>
    SerializerGroup sg = SerializerGroup.<jsm>create</jsm>()
       .append(JsonSerializer.<jk>class</jk>, UrlEncodingSerializer.<jk>class</jk>);
@@ -1134,72 +1099,72 @@
       .build();
 
    Person p = pg.getParser(<js>"text/json"</js>).parse(myReader, Person.<jk>class</jk>);
-         </p>
-         <p>
-            The REST servlet API builds upon the <code>SerializerGroup</code> and <code>ParserGroup</code> classes 
-            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>
+      </p>
+      <p>
+         The REST servlet API builds upon the <code>SerializerGroup</code> and <code>ParserGroup</code> classes 
+         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>
 
-      <!-- ======================================================================================================= -->
-      <a id="juneau-marshall.ObjectMap"></a>
-      <h4 class='topic' onclick='toggle(this)'>2.1.4 - ObjectMap and ObjectList</h4>
-      <div class='topic'>
-         <p>
-            The <a href="org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau"><code>ObjectMap</code></a> and <a href="org/apache/juneau/ObjectList.html" title="class in org.apache.juneau"><code>ObjectList</code></a> classes are generic Java 
-            representations of JSON objects and arrays.  
-            These classes can be used to create "unstructured" models for serialization (as opposed to "structured" 
-            models consisting of beans).  
-            If you want to quickly generate JSON/XML/HTML from generic maps/collections, or parse JSON/XML/HTML into 
-            generic maps/collections, these classes work well.  
-         </p>
-         <p>
-            These classes extend directly from the following JCF classes:
-         </p>
-         <ul class='doctree'>
-            <li class='jc'> 
-               <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMap.html?is-external=true" title="class or interface in java.util"><code>java.util.LinkedHashMap</code></a>
-               <ul>
-                  <li class='jc'> 
-                  <a href="org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau"><code>org.apache.juneau.ObjectMap</code></a>
-               </ul>
-            </li>
-            <li class='jc'> 
-               <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html?is-external=true" title="class or interface in java.util"><code>java.util.LinkedList</code></a>
-               <ul>
-                  <li class='jc'> 
-                     <a href="org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau"><code>org.apache.juneau.ObjectList</code></a>
-               </ul>
-            </li>
-         </ul>
-         <p>
-            The <l>ObjectMap</l> and <l>ObjectList</l> classes are very similar to the <l>JSONObject</l> and 
-            <l>JSONArray</l> classes found in other libraries.  
-            However, the names were chosen because the concepts of <l>Maps</l> and <l>Lists</l> are already familiar to 
-            Java programmers, and these classes can be used with any of the serializers or parsers.
-         </p>
-         <p>
-            These object can be serialized in one of two ways:
-         </p>
-         <ol class='spaced-list'>
-            <li>
-               Using the provided <a href="org/apache/juneau/ObjectMap.html#serializeTo-java.io.Writer-"><code>ObjectMap.serializeTo(java.io.Writer)</code></a> or 
-               <a href="org/apache/juneau/ObjectList.html#serializeTo-java.io.Writer-"><code>ObjectList.serializeTo(java.io.Writer)</code></a> methods.
-            <li>
-               Passing them to one of the <a href="org/apache/juneau/serializer/Serializer.html" title="class in org.apache.juneau.serializer"><code>Serializer</code></a> serialize methods.
-            <li>
-               Simply calling the <a href="org/apache/juneau/ObjectMap.html#toString--"><code>ObjectMap.toString()</code></a> or <a href="org/apache/juneau/ObjectList.html#toString--"><code>ObjectList.toString()</code></a>
-               methods which will serialize it as Simplified JSON.
-         </ol>
-         <p>
-            Any valid JSON can be parsed into an unstructured model consisting of generic 
-            <a href="org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau"><code>ObjectMap</code></a> and <a href="org/apache/juneau/ObjectList.html" title="class in org.apache.juneau"><code>ObjectList</code></a> objects. 
-            <br>
-            (In theory, any valid XML can also be parsed into an unstructured model, although this has not been 
-            officially 'tested')
-         </p>
-         <p class='bcode'>
+   <!-- ======================================================================================================= -->
+   <a id="juneau-marshall.ObjectMap"></a>
+   <h3 class='topic' onclick='toggle(this)'>2.4 - ObjectMap and ObjectList</h3>
+   <div class='topic'>
+      <p>
+         The <a href="org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau"><code>ObjectMap</code></a> and <a href="org/apache/juneau/ObjectList.html" title="class in org.apache.juneau"><code>ObjectList</code></a> classes are generic Java 
+         representations of JSON objects and arrays.  
+         These classes can be used to create "unstructured" models for serialization (as opposed to "structured" 
+         models consisting of beans).  
+         If you want to quickly generate JSON/XML/HTML from generic maps/collections, or parse JSON/XML/HTML into 
+         generic maps/collections, these classes work well.  
+      </p>
+      <p>
+         These classes extend directly from the following JCF classes:
+      </p>
+      <ul class='doctree'>
+         <li class='jc'> 
+            <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMap.html?is-external=true" title="class or interface in java.util"><code>java.util.LinkedHashMap</code></a>
+            <ul>
+               <li class='jc'> 
+               <a href="org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau"><code>org.apache.juneau.ObjectMap</code></a>
+            </ul>
+         </li>
+         <li class='jc'> 
+            <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html?is-external=true" title="class or interface in java.util"><code>java.util.LinkedList</code></a>
+            <ul>
+               <li class='jc'> 
+                  <a href="org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau"><code>org.apache.juneau.ObjectList</code></a>
+            </ul>
+         </li>
+      </ul>
+      <p>
+         The <l>ObjectMap</l> and <l>ObjectList</l> classes are very similar to the <l>JSONObject</l> and 
+         <l>JSONArray</l> classes found in other libraries.  
+         However, the names were chosen because the concepts of <l>Maps</l> and <l>Lists</l> are already familiar to 
+         Java programmers, and these classes can be used with any of the serializers or parsers.
+      </p>
+      <p>
+         These object can be serialized in one of two ways:
+      </p>
+      <ol class='spaced-list'>
+         <li>
+            Using the provided <a href="org/apache/juneau/ObjectMap.html#serializeTo-java.io.Writer-"><code>ObjectMap.serializeTo(java.io.Writer)</code></a> or 
+            <a href="org/apache/juneau/ObjectList.html#serializeTo-java.io.Writer-"><code>ObjectList.serializeTo(java.io.Writer)</code></a> methods.
+         <li>
+            Passing them to one of the <a href="org/apache/juneau/serializer/Serializer.html" title="class in org.apache.juneau.serializer"><code>Serializer</code></a> serialize methods.
+         <li>
+            Simply calling the <a href="org/apache/juneau/ObjectMap.html#toString--"><code>ObjectMap.toString()</code></a> or <a href="org/apache/juneau/ObjectList.html#toString--"><code>ObjectList.toString()</code></a>
+            methods which will serialize it as Simplified JSON.
+      </ol>
+      <p>
+         Any valid JSON can be parsed into an unstructured model consisting of generic 
+         <a href="org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau"><code>ObjectMap</code></a> and <a href="org/apache/juneau/ObjectList.html" title="class in org.apache.juneau"><code>ObjectList</code></a> objects. 
+         <br>
+         (In theory, any valid XML can also be parsed into an unstructured model, although this has not been 
+         officially 'tested')
+      </p>
+      <p class='bcode'>
    <jc>// Parse an arbitrary JSON document into an unstructered data model
    // consisting of ObjectMaps, ObjectLists, and java primitive objects.</jc>
    Parser parser = JsonParser.<jsf>DEFAULT</jsf>;
@@ -1217,11 +1182,11 @@
 
    <jc>// Or just use toString().</jc>
    json = m.toString();
-         </p>
-         <p>
-            The <code>ObjectMap</code> and <code>ObjectList</code> classes have many convenience features:
-         </p>
-         <p class='bcode'> 
+      </p>
+      <p>
+         The <code>ObjectMap</code> and <code>ObjectList</code> classes have many convenience features:
+      </p>
+      <p class='bcode'> 
    <jc>// Convert the map to a bean.</jc>    
    MyBean m = objectMap.cast(MyBean.<jk>class</jk>);
          
@@ -1246,397 +1211,397 @@
    
    <jc>// Nested maps.</jc>
    objectMap.setInner(objectMapInner);
-         </p>
-         
-         <ul class='doctree'>
-            <li class='info'>
-               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>ObjectMaps</l> and <l>ObjectLists</l>.
-         </ul>
-      </div>
+      </p>
+      
+      <ul class='doctree'>
+         <li class='info'>
+            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>ObjectMaps</l> and <l>ObjectLists</l>.
+      </ul>
+   </div>
 
-      <!-- ======================================================================================================= -->
-      <a id="juneau-marshall.ConfigurableProperties"></a>
-      <h4 class='topic' onclick='toggle(this)'>2.1.5 - Configurable Properties</h4>
-      <div class='topic'>
-         <p>
-            Serializers and parsers have a wide variety of configurable properties.
-            <br>They all extend from the <a href="org/apache/juneau/BeanContextBuilder.html" title="class in org.apache.juneau"><code>BeanContextBuilder</code></a> class that allows you to easily construct
-            new instances from scratch or build upon existing instances.
-            <br>For example, the following code shows how to configure a JSON serializer:
-         </p>
-         <p class='bcode'>
+   <!-- ======================================================================================================= -->
+   <a id="juneau-marshall.ConfigurableProperties"></a>
+   <h3 class='topic' onclick='toggle(this)'>2.5 - Configurable Properties</h3>
+   <div class='topic'>
+      <p>
+         Serializers and parsers have a wide variety of configurable properties.
+         <br>They all extend from the <a href="org/apache/juneau/BeanContextBuilder.html" title="class in org.apache.juneau"><code>BeanContextBuilder</code></a> class that allows you to easily construct
+         new instances from scratch or build upon existing instances.
+         <br>For example, the following code shows how to configure a JSON serializer:
+      </p>
+      <p class='bcode'>
    WriterSerializer s = JsonSerializer
       .<jsm>create</jsm>()  <jc>// Create a JsonSerializerBuilder</jc>
       .simple()  <jc>// Simple mode</jc>
       .ws()  <jc>// Use whitespace</jc>
       .sq()  <jc>// Use single quotes </jc>
       .build();  <jc>// Create a JsonSerializer</jc>
-         </p>
-         <p>
-            Configurable settings can also be set declaratively.
-            <br>The following produces the same serializer.
-         </p>
-         <p class='bcode'>
+      </p>
+      <p>
+         Configurable settings can also be set declaratively.
+         <br>The following produces the same serializer.
+      </p>
+      <p class='bcode'>
    WriterSerializer s = JsonSerializer
       .<jsm>create</jsm>()
       .set(<jsf>JSON_simpleMode</jsf>, <jk>true</jk>)
       .set(<jsf>SERIALIZER_useWhitespace</jsf>, <jk>true</jk>)
       .set(<jsf>SERIALIZER_quoteChar</jsf>, <js>"'"</js>)
       .build();
-         </p>
-         <p>
-            However, each of the serializers and parsers already contain reusable instances with common configurations.
-            <br>For example, JSON has the following predefined reusable serializers and parsers:
-         </p>
-         <ul class='doctree'>
-            <li class='jc'>
-               <a href="org/apache/juneau/json/JsonSerializer.html" title="class in org.apache.juneau.json"><code>JsonSerializer</code></a>
-               <ul>
-                  <li class='jf'>
-                     <a href="org/apache/juneau/json/JsonSerializer.html#DEFAULT"><code>DEFAULT</code></a>
-                  <li class='jf'>
-                     <a href="org/apache/juneau/json/JsonSerializer.html#DEFAULT_LAX"><code>DEFAULT_LAX</code></a>
-                  <li class='jf'>
-                     <a href="org/apache/juneau/json/JsonSerializer.html#DEFAULT_READABLE"><code>DEFAULT_READABLE</code></a>
-                  <li class='jf'>
-                     <a href="org/apache/juneau/json/JsonSerializer.html#DEFAULT_LAX_READABLE"><code>DEFAULT_LAX_READABLE</code></a>
-                  <li class='jf'>
-                     <a href="org/apache/juneau/json/JsonSerializer.html#DEFAULT_LAX_READABLE_SAFE"><code>DEFAULT_LAX_READABLE_SAFE</code></a>
-               </ul>
-            </li>
-            <li class='jc'>
-               <a href="org/apache/juneau/json/JsonParser.html" title="class in org.apache.juneau.json"><code>JsonParser</code></a> 
-               <ul>
-                  <li class='jf'>
-                     <a href="org/apache/juneau/json/JsonParser.html#DEFAULT"><code>DEFAULT</code></a>
-                  <li class='jf'>
-                     <a href="org/apache/juneau/json/JsonParser.html#DEFAULT_STRICT"><code>DEFAULT_STRICT</code></a>
-               </ul>
-            </li>
-         </ul>
-         <p>
-            These can be used directly, as follows:
-         </p>
-         <p class='bcode'>
-   <jc>// Serialize a POJO to LAX JSON.</jc>
-   String json = JsonSerializer.<jsf>DEFAULT_LAX</jsf>.serialize(myPojo);
-         </p>
-         <p>
-            For performance reasons, serializers and parsers are immutable.
-            However, they can be 'copied' and modified using the <code>builder()</code> method.
-         </p>
-         <p class='bcode'>
-   <jc>// Clone and customize an existing serializer.</jc>
-   WriterSerializer s = JsonSerializer.<jsf>DEFAULT_LAX</jsf>
-      .builder()  <jc>// Create a new builder with copied settings.</jc>
-      .quoteChar(<js>'"'</js>)  <jc>// Use a different quote character.</jc>
-      .build();
-         </p>
-         
-         <h5 class='topic'>Additional Information</h5>
-         <p>
-            The following is a list of all configurable properties across all serializers and parsers.
-         </p>
-         <ul class='doctree'>
-            <li class='jc'>
-               <a href="org/apache/juneau/BeanContext.html" title="class in org.apache.juneau"><code>BeanContext</code></a>
-               - Properties associated with handling beans on serializers and parsers.
-               <ul>
-                  <li class='jc'>
-                     <a href="org/apache/juneau/serializer/Serializer.html" title="class in org.apache.juneau.serializer"><code>Serializer</code></a>
-                     - Configurable properties common to all serializers.
-                     <ul>
-                        <li class='jc'>
-                           <a href="org/apache/juneau/html/HtmlSerializer.html" title="class in org.apache.juneau.html"><code>HtmlSerializer</code></a>
-                           - Configurable properties on the HTML serializer.
-                           <ul>
-                              <li class='jc'>
-                                 <a href="org/apache/juneau/html/HtmlDocSerializer.html" title="class in org.apache.juneau.html"><code>HtmlDocSerializer</code></a> 
-                                 - Configurable properties on the HTML document serializer.
-                           </ul>
-                        </li>
-                        <li class='jic'>
-                           <a href="org/apache/juneau/jena/RdfCommon.html" title="interface in org.apache.juneau.jena"><code>RdfCommon</code></a> 
-                           - Configurable properties common to the RDF serializers and parsers.
-                           <ul>
-                              <li class='jc'>
-                                 <a href="org/apache/juneau/jena/RdfSerializer.html" title="class in org.apache.juneau.jena"><code>RdfSerializer</code></a>
-                                 - Configurable properties on the RDF serializers.
-                           </ul>
-                        </li>
-                        <li class='jc'>
-                           <a href="org/apache/juneau/json/JsonSerializer.html" title="class in org.apache.juneau.json"><code>JsonSerializer</code></a> 
-                           - Configurable properties on the JSON serializer.
-                        <li class='jc'>
-                           <a href="org/apache/juneau/msgpack/MsgPackSerializer.html" title="class in org.apache.juneau.msgpack"><code>MsgPackSerializer</code></a> 
-                           - Configurable properties on the MessagePack serializer.
-                        <li class='jc'>
-                           <a href="org/apache/juneau/soap/SoapXmlSerializer.html" title="class in org.apache.juneau.soap"><code>SoapXmlSerializer</code></a> 
-                           - Configurable properties on the SOAP/XML serializer.
-                        <li class='jc'>
-                           <a href="org/apache/juneau/uon/UonSerializer.html" title="class in org.apache.juneau.uon"><code>UonSerializer</code></a> 
-                           - Configurable properties on the URL-Encoding and UON serializers.
-                        <li class='jc'>
-                           <a href="org/apache/juneau/xml/XmlSerializer.html" title="class in org.apache.juneau.xml"><code>XmlSerializer</code></a> 
-                           - Configurable properties on the XML serializer.
-                     </ul>
-                  </li>
-                  <li class='jc'>
-                     <a href="org/apache/juneau/parser/Parser.html" title="class in org.apache.juneau.parser"><code>Parser</code></a> 
-                     - Configurable properties common to all parsers.
-                     <ul>
-                        <li class='jc'>
-                           <a href="org/apache/juneau/html/HtmlParser.html" title="class in org.apache.juneau.html"><code>HtmlParser</code></a> 
-                           - Configurable properties on the HTML parser.
-                        <li class='jic'>
-                           <a href="org/apache/juneau/jena/RdfCommon.html" title="interface in org.apache.juneau.jena"><code>RdfCommon</code></a> 
-                           - Configurable properties common to the RDF serializers and parsers.
-                           <ul>
-                              <li class='jc'>
-                              <a href="org/apache/juneau/jena/RdfParser.html" title="class in org.apache.juneau.jena"><code>RdfParser</code></a> 
-                              - Configurable properties on the RDF parsers.
-                           </ul>
-                        </li>
-                        <li class='jc'>
-                           <a href="org/apache/juneau/json/JsonParser.html" title="class in org.apache.juneau.json"><code>JsonParser</code></a> 
-                           - Configurable properties on the JSON parser.
-                        <li class='jc'>
-                           <a href="org/apache/juneau/msgpack/MsgPackParser.html" title="class in org.apache.juneau.msgpack"><code>MsgPackParser</code></a> 
-                           - Configurable properties on the MessagePack parser.
-                        <li class='jc'>
-                           <a href="org/apache/juneau/uon/UonParser.html" title="class in org.apache.juneau.uon"><code>UonParser</code></a> 
-                           - Configurable properties on the URL-Encoding and UON parsers.
-                        <li class='jc'>
-                           <a href="org/apache/juneau/xml/XmlParser.html" title="class in org.apache.juneau.xml"><code>XmlParser</code></a> 
-                           - Configurable properties on the XML parser.
-                     </ul>
-                  </li>
-                  <li class='jc'>
-                     <a href="org/apache/juneau/rest/RestContext.html" title="class in org.apache.juneau.rest"><code>RestContext</code></a> 
-                     - Configurable properties on the REST servlet.
-                  </li>
-                  <li class='jc'>
-                     <a href="org/apache/juneau/rest/client/RestClient.html" title="class in org.apache.juneau.rest.client"><code>RestClient</code></a> 
-                     - Configurable properties on the REST client.
-                  </li>
-               </ul>
-            </li>
-         </ul>
-      </div>
+      </p>
+      <p>
+         However, each of the serializers and parsers already contain reusable instances with common configurations.
+         <br>For example, JSON has the following predefined reusable serializers and parsers:
+      </p>
+      <ul class='doctree'>
+         <li class='jc'>
+            <a href="org/apache/juneau/json/JsonSerializer.html" title="class in org.apache.juneau.json"><code>JsonSerializer</code></a>
+            <ul>
+               <li class='jf'>
+                  <a href="org/apache/juneau/json/JsonSerializer.html#DEFAULT"><code>DEFAULT</code></a>
+               <li class='jf'>
+                  <a href="org/apache/juneau/json/JsonSerializer.html#DEFAULT_LAX"><code>DEFAULT_LAX</code></a>
+               <li class='jf'>
+                  <a href="org/apache/juneau/json/JsonSerializer.html#DEFAULT_READABLE"><code>DEFAULT_READABLE</code></a>
+               <li class='jf'>
+                  <a href="org/apache/juneau/json/JsonSerializer.html#DEFAULT_LAX_READABLE"><code>DEFAULT_LAX_READABLE</code></a>
+               <li class='jf'>
+                  <a href="org/apache/juneau/json/JsonSerializer.html#DEFAULT_LAX_READABLE_SAFE"><code>DEFAULT_LAX_READABLE_SAFE</code></a>
+            </ul>
+         </li>
+         <li class='jc'>
+            <a href="org/apache/juneau/json/JsonParser.html" title="class in org.apache.juneau.json"><code>JsonParser</code></a> 
+            <ul>
+               <li class='jf'>
+                  <a href="org/apache/juneau/json/JsonParser.html#DEFAULT"><code>DEFAULT</code></a>
+               <li class='jf'>
+                  <a href="org/apache/juneau/json/JsonParser.html#DEFAULT_STRICT"><code>DEFAULT_STRICT</code></a>
+            </ul>
+         </li>
+      </ul>
+      <p>
+         These can be used directly, as follows:
+      </p>
+      <p class='bcode'>
+   <jc>// Serialize a POJO to LAX JSON.</jc>
+   String json = JsonSerializer.<jsf>DEFAULT_LAX</jsf>.serialize(myPojo);
+      </p>
+      <p>
+         For performance reasons, serializers and parsers are immutable.
+         However, they can be 'copied' and modified using the <code>builder()</code> method.
+      </p>
+      <p class='bcode'>
+   <jc>// Clone and customize an existing serializer.</jc>
+   WriterSerializer s = JsonSerializer.<jsf>DEFAULT_LAX</jsf>
+      .builder()  <jc>// Create a new builder with copied settings.</jc>
+      .quoteChar(<js>'"'</js>)  <jc>// Use a different quote character.</jc>
+      .build();
+      </p>
       
-      <!-- ======================================================================================================= -->
-      <a id="juneau-marshall.ContextsBuildersSessionsPropertyStores"></a>
-      <h4 class='topic' onclick='toggle(this)'>2.1.6 - Contexts, Builders, Sessions, and PropertyStores</h4>
-      <div class='topic'>
-         <p>
-            All the serializers, parsers, and REST server/client classes use the following design pattern:
-         </p>
-         <ul class='spaced-list'>
-            <li>
-               <l>Context</l> - A thread-safe read-only object.
-               <br>Examples:  <code>BeanContext</code>, <code>JsonSerializer</code>
-            <li>
-               <l>ContextBuilder</l> - A thread-safe builder for contexts.
-               <br>Examples:  <code>BeanContextBuilder</code>, <code>JsonSerializerBuilder</code>
-            <li>
-               <l>Session</l> - A non-thread-safe single-use object with configuration combined from context and 
-               runtime args such as locale/timezone and overridden properties.
-               <br>These are created by <code>Context</code> objects.
-               <br>Examples:  <code>BeanSession</code>, <code>JsonSerializerSession</code>
-            <li>
-               <l>PropertyStore</l> - A thread-safe read-only set of configuration properties.  
-               <br>Each <code>Context</code> contains one <code>PropertyStore</code>.
-            <li>
-               <l>PropertyStoreBuilder</l> - A thread-safe builder for <code>PropertyStore</code> objects.  
-               <br>Each <code>ContextBuilder</code> contains one <code>PropertyStoreBuilder</code>.      
-         </ul> 
-         <p>
-            For example, the class hierarchy for <code>JsonSerializer</code> is:
-         </p>
-         <ul class='doctree'>
-            <li class='jc'><code>Object</code>
+      <h5 class='topic'>Additional Information</h5>
+      <p>
+         The following is a list of all configurable properties across all serializers and parsers.
+      </p>
+      <ul class='doctree'>
+         <li class='jc'>
+            <a href="org/apache/juneau/BeanContext.html" title="class in org.apache.juneau"><code>BeanContext</code></a>
+            - Properties associated with handling beans on serializers and parsers.
             <ul>
-               <li class='jac'><a href="org/apache/juneau/Context.html" title="class in org.apache.juneau"><code>Context</code></a>
-               <ul>
-                  <li class='jc'><a href="org/apache/juneau/BeanContext.html" title="class in org.apache.juneau"><code>BeanContext</code></a>
+               <li class='jc'>
+                  <a href="org/apache/juneau/serializer/Serializer.html" title="class in org.apache.juneau.serializer"><code>Serializer</code></a>
+                  - Configurable properties common to all serializers.
                   <ul>
-                     <li class='jac'><a href="org/apache/juneau/serializer/Serializer.html" title="class in org.apache.juneau.serializer"><code>Serializer</code></a>
-                     <ul>
-                        <li class='jac'><a href="org/apache/juneau/serializer/WriterSerializer.html" title="class in org.apache.juneau.serializer"><code>WriterSerializer</code></a>
+                     <li class='jc'>
+                        <a href="org/apache/juneau/html/HtmlSerializer.html" title="class in org.apache.juneau.html"><code>HtmlSerializer</code></a>
+                        - Configurable properties on the HTML serializer.
+                        <ul>
+                           <li class='jc'>
+                              <a href="org/apache/juneau/html/HtmlDocSerializer.html" title="class in org.apache.juneau.html"><code>HtmlDocSerializer</code></a> 
+                              - Configurable properties on the HTML document serializer.
+                        </ul>
+                     </li>
+                     <li class='jic'>
+                        <a href="org/apache/juneau/jena/RdfCommon.html" title="interface in org.apache.juneau.jena"><code>RdfCommon</code></a> 
+                        - Configurable properties common to the RDF serializers and parsers.
+                        <ul>
+                           <li class='jc'>
+                              <a href="org/apache/juneau/jena/RdfSerializer.html" title="class in org.apache.juneau.jena"><code>RdfSerializer</code></a>
+                              - Configurable properties on the RDF serializers.
+                        </ul>
+                     </li>
+                     <li class='jc'>
+                        <a href="org/apache/juneau/json/JsonSerializer.html" title="class in org.apache.juneau.json"><code>JsonSerializer</code></a> 
+                        - Configurable properties on the JSON serializer.
+                     <li class='jc'>
+                        <a href="org/apache/juneau/msgpack/MsgPackSerializer.html" title="class in org.apache.juneau.msgpack"><code>MsgPackSerializer</code></a> 
+                        - Configurable properties on the MessagePack serializer.
+                     <li class='jc'>
+                        <a href="org/apache/juneau/soap/SoapXmlSerializer.html" title="class in org.apache.juneau.soap"><code>SoapXmlSerializer</code></a> 
+                        - Configurable properties on the SOAP/XML serializer.
+                     <li class='jc'>
+                        <a href="org/apache/juneau/uon/UonSerializer.html" title="class in org.apache.juneau.uon"><code>UonSerializer</code></a> 
+                        - Configurable properties on the URL-Encoding and UON serializers.
+                     <li class='jc'>
+                        <a href="org/apache/juneau/xml/XmlSerializer.html" title="class in org.apache.juneau.xml"><code>XmlSerializer</code></a> 
+                        - Configurable properties on the XML serializer.
+                  </ul>
+               </li>
+               <li class='jc'>
+                  <a href="org/apache/juneau/parser/Parser.html" title="class in org.apache.juneau.parser"><code>Parser</code></a> 
+                  - Configurable properties common to all parsers.
+                  <ul>
+                     <li class='jc'>
+                        <a href="org/apache/juneau/html/HtmlParser.html" title="class in org.apache.juneau.html"><code>HtmlParser</code></a> 
+                        - Configurable properties on the HTML parser.
+                     <li class='jic'>
+                        <a href="org/apache/juneau/jena/RdfCommon.html" title="interface in org.apache.juneau.jena"><code>RdfCommon</code></a> 
+                        - Configurable properties common to the RDF serializers and parsers.
                         <ul>
-                           <li class='jc'><a href="org/apache/juneau/json/JsonSerializer.html" title="class in org.apache.juneau.json"><code>JsonSerializer</code></a>
+                           <li class='jc'>
+                           <a href="org/apache/juneau/jena/RdfParser.html" title="class in org.apache.juneau.jena"><code>RdfParser</code></a> 
+                           - Configurable properties on the RDF parsers.
                         </ul>
+                     </li>
+                     <li class='jc'>
+                        <a href="org/apache/juneau/json/JsonParser.html" title="class in org.apache.juneau.json"><code>JsonParser</code></a> 
+                        - Configurable properties on the JSON parser.
+                     <li class='jc'>
+                        <a href="org/apache/juneau/msgpack/MsgPackParser.html" title="class in org.apache.juneau.msgpack"><code>MsgPackParser</code></a> 
+                        - Configurable properties on the MessagePack parser.
+                     <li class='jc'>
+                        <a href="org/apache/juneau/uon/UonParser.html" title="class in org.apache.juneau.uon"><code>UonParser</code></a> 
+                        - Configurable properties on the URL-Encoding and UON parsers.
+                     <li class='jc'>
+                        <a href="org/apache/juneau/xml/XmlParser.html" title="class in org.apache.juneau.xml"><code>XmlParser</code></a> 
+                        - Configurable properties on the XML parser.
+                  </ul>
+               </li>
+               <li class='jc'>
+                  <a href="org/apache/juneau/rest/RestContext.html" title="class in org.apache.juneau.rest"><code>RestContext</code></a> 
+                  - Configurable properties on the REST servlet.
+               </li>
+               <li class='jc'>
+                  <a href="org/apache/juneau/rest/client/RestClient.html" title="class in org.apache.juneau.rest.client"><code>RestClient</code></a> 
+                  - Configurable properties on the REST client.
+               </li>
+            </ul>
+         </li>
+      </ul>
+   </div>
+   
+   <!-- ======================================================================================================= -->
+   <a id="juneau-marshall.ContextsBuildersSessionsPropertyStores"></a>
+   <h3 class='topic' onclick='toggle(this)'>2.6 - Contexts, Builders, Sessions, and PropertyStores</h3>
+   <div class='topic'>
+      <p>
+         All the serializers, parsers, and REST server/client classes use the following design pattern:
+      </p>
+      <ul class='spaced-list'>
+         <li>
+            <l>Context</l> - A thread-safe read-only object.
+            <br>Examples:  <code>BeanContext</code>, <code>JsonSerializer</code>
+         <li>
+            <l>ContextBuilder</l> - A thread-safe builder for contexts.
+            <br>Examples:  <code>BeanContextBuilder</code>, <code>JsonSerializerBuilder</code>
+         <li>
+            <l>Session</l> - A non-thread-safe single-use object with configuration combined from context and 
+            runtime args such as locale/timezone and overridden properties.
+            <br>These are created by <code>Context</code> objects.
+            <br>Examples:  <code>BeanSession</code>, <code>JsonSerializerSession</code>
+         <li>
+            <l>PropertyStore</l> - A thread-safe read-only set of configuration properties.  
+            <br>Each <code>Context</code> contains one <code>PropertyStore</code>.
+         <li>
+            <l>PropertyStoreBuilder</l> - A thread-safe builder for <code>PropertyStore</code> objects.  
+            <br>Each <code>ContextBuilder</code> contains one <code>PropertyStoreBuilder</code>.      
+      </ul> 
+      <p>
+         For example, the class hierarchy for <code>JsonSerializer</code> is:
+      </p>
+      <ul class='doctree'>
+         <li class='jc'><code>Object</code>
+         <ul>
+            <li class='jac'><a href="org/apache/juneau/Context.html" title="class in org.apache.juneau"><code>Context</code></a>
+            <ul>
+               <li class='jc'><a href="org/apache/juneau/BeanContext.html" title="class in org.apache.juneau"><code>BeanContext</code></a>
+               <ul>
+                  <li class='jac'><a href="org/apache/juneau/serializer/Serializer.html" title="class in org.apache.juneau.serializer"><code>Serializer</code></a>
+                  <ul>
+                     <li class='jac'><a href="org/apache/juneau/serializer/WriterSerializer.html" title="class in org.apache.juneau.serializer"><code>WriterSerializer</code></a>
+                     <ul>
+                        <li class='jc'><a href="org/apache/juneau/json/JsonSerializer.html" title="class in org.apache.juneau.json"><code>JsonSerializer</code></a>
                      </ul>
                   </ul>
                </ul>
             </ul>
          </ul>
-         <p>
-            Each context object in the hierarchy define properties that can be stored in a <code>PropertyStore</code>
-            such as <jsf>SERIALIZER_useWhitespace</jsf> or <jsf>JSON_simpleMode</jsf>.
-         </p>
-         <p>
-            The class hierarchy for <code>JsonSerializerBuilder</code> is:
-         </p>
-         <ul class='doctree'>
-            <li class='jc'><code>Object</code>
+      </ul>
+      <p>
+         Each context object in the hierarchy define properties that can be stored in a <code>PropertyStore</code>
+         such as <jsf>SERIALIZER_useWhitespace</jsf> or <jsf>JSON_simpleMode</jsf>.
+      </p>
+      <p>
+         The class hierarchy for <code>JsonSerializerBuilder</code> is:
+      </p>
+      <ul class='doctree'>
+         <li class='jc'><code>Object</code>
+         <ul>
+            <li class='jac'><a href="org/apache/juneau/ContextBuilder.html" title="class in org.apache.juneau"><code>ContextBuilder</code></a>
             <ul>
-               <li class='jac'><a href="org/apache/juneau/ContextBuilder.html" title="class in org.apache.juneau"><code>ContextBuilder</code></a>
+               <li class='jc'><a href="org/apache/juneau/BeanContextBuilder.html" title="class in org.apache.juneau"><code>BeanContextBuilder</code></a>
                <ul>
-                  <li class='jc'><a href="org/apache/juneau/BeanContextBuilder.html" title="class in org.apache.juneau"><code>BeanContextBuilder</code></a>
+                  <li class='jac'><a href="org/apache/juneau/serializer/SerializerBuilder.html" title="class in org.apache.juneau.serializer"><code>SerializerBuilder</code></a>
                   <ul>
-                     <li class='jac'><a href="org/apache/juneau/serializer/SerializerBuilder.html" title="class in org.apache.juneau.serializer"><code>SerializerBuilder</code></a>
-                     <ul>
-                        <li class='jc'><a href="org/apache/juneau/json/JsonSerializerBuilder.html" title="class in org.apache.juneau.json"><code>JsonSerializerBuilder</code></a>
-                     </ul>
+                     <li class='jc'><a href="org/apache/juneau/json/JsonSerializerBuilder.html" title="class in org.apache.juneau.json"><code>JsonSerializerBuilder</code></a>
                   </ul>
                </ul>
             </ul>
          </ul>
-         <p>
-            The class hierarchy for <code>JsonSerializerSession</code> is:
-         </p>
-         <ul class='doctree'>
-            <li class='jc'><code>Object</code>
+      </ul>
+      <p>
+         The class hierarchy for <code>JsonSerializerSession</code> is:
+      </p>
+      <ul class='doctree'>
+         <li class='jc'><code>Object</code>
+         <ul>
+            <li class='jac'><a href="org/apache/juneau/Session.html" title="class in org.apache.juneau"><code>Session</code></a>
             <ul>
-               <li class='jac'><a href="org/apache/juneau/Session.html" title="class in org.apache.juneau"><code>Session</code></a>
+               <li class='jc'><a href="org/apache/juneau/BeanSession.html" title="class in org.apache.juneau"><code>BeanSession</code></a>
                <ul>
-                  <li class='jc'><a href="org/apache/juneau/BeanSession.html" title="class in org.apache.juneau"><code>BeanSession</code></a>
+                  <li class='jac'><a href="org/apache/juneau/serializer/SerializerSession.html" title="class in org.apache.juneau.serializer"><code>SerializerSession</code></a>
                   <ul>
-                     <li class='jac'><a href="org/apache/juneau/serializer/SerializerSession.html" title="class in org.apache.juneau.serializer"><code>SerializerSession</code></a>
+                     <li class='jac'><a href="org/apache/juneau/serializer/WriterSerializerSession.html" title="class in org.apache.juneau.serializer"><code>WriterSerializerSession</code></a>
                      <ul>
-                        <li class='jac'><a href="org/apache/juneau/serializer/WriterSerializerSession.html" title="class in org.apache.juneau.serializer"><code>WriterSerializerSession</code></a>
-                        <ul>
-                           <li class='jc'><a href="org/apache/juneau/json/JsonSerializerSession.html" title="class in org.apache.juneau.json"><code>JsonSerializerSession</code></a>
-                        </ul>
+                        <li class='jc'><a href="org/apache/juneau/json/JsonSerializerSession.html" title="class in org.apache.juneau.json"><code>JsonSerializerSession</code></a>
                      </ul>
                   </ul>
                </ul>
             </ul>
          </ul>
-         <p>
-            The general idea behind a <a href="org/apache/juneau/PropertyStore.html" title="class in org.apache.juneau"><code>PropertyStore</code></a> is to serve as a reusable configuration of an artifact 
-            (such as a serializer) such that the artifact can be cached and reused if the property stores are 'equal'.
-         </p>
-         <p>
-            For example, two serializers of the same type created with the same configuration will always end up being
-            the same serializer: 
-         </p>
-         <p class='bcode'>
+      </ul>
+      <p>
+         The general idea behind a <a href="org/apache/juneau/PropertyStore.html" title="class in org.apache.juneau"><code>PropertyStore</code></a> is to serve as a reusable configuration of an artifact 
+         (such as a serializer) such that the artifact can be cached and reused if the property stores are 'equal'.
+      </p>
+      <p>
+         For example, two serializers of the same type created with the same configuration will always end up being
+         the same serializer: 
+      </p>
+      <p class='bcode'>
    <jc>// Two serializers created with identical configurations will always be the same copy.</jc> 
    WriterSerializer s1 = JsonSerializer.<jsm>create</jsm>().pojoSwaps(MySwap.<jk>class</jk>).simple().build();
    WriterSerializer s2 = JsonSerializer.<jsm>create</jsm>().set(<jsf>JSON_simpleMode</jsf>, <jk>true</jk>).pojoSwaps(MySwap.<jk>class</jk>).build();
    <jk>assert</jk>(s1 == s2);
-         </p>
-         <p>
-            This has the effect of significantly improving performance, especially if you're creating many 
-            serializers and parsers.
-         </p>
-         <p>
-            The <a href="org/apache/juneau/PropertyStoreBuilder.html" title="class in org.apache.juneau"><code>PropertyStoreBuilder</code></a> class is used to build up and instantiate immutable 
-            <code>PropertyStore</code> objects.
-         </p>
-         <p>
-            In the example above, the property store being built looks like the following:
-         </p>
-         <p class='bcode'>
+      </p>
+      <p>
+         This has the effect of significantly improving performance, especially if you're creating many 
+         serializers and parsers.
+      </p>
+      <p>
+         The <a href="org/apache/juneau/PropertyStoreBuilder.html" title="class in org.apache.juneau"><code>PropertyStoreBuilder</code></a> class is used to build up and instantiate immutable 
+         <code>PropertyStore</code> objects.
+      </p>
+      <p>
+         In the example above, the property store being built looks like the following:
+      </p>
+      <p class='bcode'>
    PropertyStore ps = PropertyStore
       .<jsm>create</jsm>()
       .set(<js>"BeanContext.pojoSwaps.lc"</js>, MySwap.<jk>class</jk>)
       .set(<js>"JsonSerializer.simpleMode.b"</js>, <jk>true</jk>)
       .build();
-         </p>
+      </p>
+      <p>
+         Property stores are immutable, comparable, and their hashcodes are calculated exactly one time.
+         That makes them particularly suited for use as hashmap keys, and thus for caching reusable serializers and parsers.
+      </p>
+      <p>
+         Refer to the <a href="org/apache/juneau/PropertyStore.html" title="class in org.apache.juneau"><code>PropertyStore</code></a> javadoc for a detailed explaination on how
+         property stores work.
+      </p>
+   </div>
+
+   <!-- ======================================================================================================= -->
+   <a id="juneau-marshall.Transforms"></a>
+   <h3 class='topic' onclick='toggle(this)'>2.7 - Transforms</h3>
+   <div class='topic'>
+      <p>
+         By default, the Juneau framework can serialize and parse a wide variety of POJOs out-of-the-box.  
+         <br>However, two special classes are provided tailor how certain Java objects are handled by the framework.
+         <br>These classes are:
+      </p>
+      <ul class='doctree'>
+         <li class='jc'><a href="org/apache/juneau/transform/BeanFilter.html" title="class in org.apache.juneau.transform"><code>BeanFilter</code></a> - Transforms that alter the way beans are handled.
+         <li class='jac'><a href="org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a> - Transforms that swap non-serializable POJOs with 
+            serializable POJOs during serialization (and optionally vis-versa during parsing).
+            <ul>
+               <li class='jc'><a href="org/apache/juneau/transform/StringSwap.html" title="class in org.apache.juneau.transform"><code>StringSwap</code></a> - Convenience subclass for swaps that convert 
+                  objects to strings.
+               <li class='jc'><a href="org/apache/juneau/transform/MapSwap.html" title="class in org.apache.juneau.transform"><code>MapSwap</code></a> - Convenience subclass for swaps that convert 
+                  objects to maps.
+            </ul>
+         </li>
+      </ul>
+      <p>
+         Transforms are added to serializers and parsers (and REST clients) using the following configuration properties:
+      </p> 
+      <ul>
+         <li class='jm'><a href="org/apache/juneau/BeanContext.html#BEAN_beanFilters"><code>BeanContext.BEAN_beanFilters</code></a>
+         <li class='jm'><a href="org/apache/juneau/BeanContext.html#BEAN_pojoSwaps"><code>BeanContext.BEAN_pojoSwaps</code></a>
+      </ul>
+      <p>
+         Annotations are also provided for specifying transforms directly on classes and methods (all described in later sections):
+      </p>
+      <ul class='doctree'>
+         <li class='ja'>
+            <a href="org/apache/juneau/annotation/Swap.html" title="annotation in org.apache.juneau.annotation"><code>@Swap</code></a> 
+            - Used to tailor how non-bean POJOs get interpreted by the framework.
+         <li class='ja'>
+            <a href="org/apache/juneau/annotation/Bean.html" title="annotation in org.apache.juneau.annotation"><code>@Bean</code></a> 
+            - Used to tailor how beans get interpreted by the framework.
+         <li class='ja'>
+            <a href="org/apache/juneau/annotation/BeanConstructor.html" title="annotation in org.apache.juneau.annotation"><code>@BeanConstructor</code></a> 
+            - Maps constructor arguments to property names on beans with read-only properties.
+         <li class='ja'>
+            <a href="org/apache/juneau/annotation/BeanIgnore.html" title="annotation in org.apache.juneau.annotation"><code>@BeanIgnore</code></a> 
+            - Ignore classes, fields, and methods from being interpreted as bean or bean components.
+         <li class='ja'>
+            <a href="org/apache/juneau/annotation/BeanProperty.html" title="annotation in org.apache.juneau.annotation"><code>@BeanProperty</code></a> 
+            - Used to tailor how bean properties get interpreted by the framework.
+         <li class='ja'>
+            <a href="org/apache/juneau/annotation/NameProperty.html" title="annotation in org.apache.juneau.annotation"><code>@NameProperty</code></a> 
+            - Identifies a setter as a method for setting the name of a POJO as it's known by its parent object.
+         <li class='ja'>
+            <a href="org/apache/juneau/annotation/ParentProperty.html" title="annotation in org.apache.juneau.annotation"><code>@ParentProperty</code></a> 
+            - Identifies a setter as a method for adding a parent reference to a child object.
+         <li class='ja'>
+            <a href="org/apache/juneau/annotation/URI.html" title="annotation in org.apache.juneau.annotation"><code>@URI</code></a> 
+            - Used to identify a class or bean property as a URI.
+      </ul>
+
+      <!-- =================================================================================================== -->
+      <a id="juneau-marshall.PojoSwaps"></a>
+      <h4 class='topic' onclick='toggle(this)'>2.7.1 - PojoSwaps</h4>
+      <div class='topic'>
          <p>
-            Property stores are immutable, comparable, and their hashcodes are calculated exactly one time.
-            That makes them particularly suited for use as hashmap keys, and thus for caching reusable serializers and parsers.
+            <a href="org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwaps</code></a> are a critical component of Juneau.
+            They allow the serializers and parsers to handle Java objects that wouldn't normally be serializable.
          </p>
          <p>
-            Refer to the <a href="org/apache/juneau/PropertyStore.html" title="class in org.apache.juneau"><code>PropertyStore</code></a> javadoc for a detailed explaination on how
-            property stores work.
+            Swaps are, simply put, 'object swappers' that swap in serializable objects for 
+            non-serializable ones during serialization, and vis-versa during parsing.
          </p>
-      </div>
-
-      <!-- ======================================================================================================= -->
-      <a id="juneau-marshall.Transforms"></a>
-      <h4 class='topic' onclick='toggle(this)'>2.1.7 - Transforms</h4>
-      <div class='topic'>
          <p>
-            By default, the Juneau framework can serialize and parse a wide variety of POJOs out-of-the-box.  
-            <br>However, two special classes are provided tailor how certain Java objects are handled by the framework.
-            <br>These classes are:
+            Some examples of non-serializable POJOs are <code>File</code>, <code>Reader</code>, 
+            <code>Iterable</code>, etc...
+            These are classes that aren't beans and cannot be represented as simple maps, collections, or primitives.
          </p>
-         <ul class='doctree'>
-            <li class='jc'><a href="org/apache/juneau/transform/BeanFilter.html" title="class in org.apache.juneau.transform"><code>BeanFilter</code></a> - Transforms that alter the way beans are handled.
-            <li class='jac'><a href="org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a> - Transforms that swap non-serializable POJOs with 
-               serializable POJOs during serialization (and optionally vis-versa during parsing).
-               <ul>
-                  <li class='jc'><a href="org/apache/juneau/transform/StringSwap.html" title="class in org.apache.juneau.transform"><code>StringSwap</code></a> - Convenience subclass for swaps that convert 
-                     objects to strings.
-                  <li class='jc'><a href="org/apache/juneau/transform/MapSwap.html" title="class in org.apache.juneau.transform"><code>MapSwap</code></a> - Convenience subclass for swaps that convert 
-                     objects to maps.
-               </ul>
-            </li>
-         </ul>
-         <p>
-            Transforms are added to serializers and parsers (and REST clients) using the following configuration properties:
-         </p> 
-         <ul>
-            <li class='jm'><a href="org/apache/juneau/BeanContext.html#BEAN_beanFilters"><code>BeanContext.BEAN_beanFilters</code></a>
-            <li class='jm'><a href="org/apache/juneau/BeanContext.html#BEAN_pojoSwaps"><code>BeanContext.BEAN_pojoSwaps</code></a>
-         </ul>
          <p>
-            Annotations are also provided for specifying transforms directly on classes and methods (all described in later sections):
+            In the following example, we introduce a <code>PojoSwap</code> that will swap in ISO8601 strings for 
+            <code>Date</code> objects:
          </p>
-         <ul class='doctree'>
-            <li class='ja'>
-               <a href="org/apache/juneau/annotation/Swap.html" title="annotation in org.apache.juneau.annotation"><code>@Swap</code></a> 
-               - Used to tailor how non-bean POJOs get interpreted by the framework.
-            <li class='ja'>
-               <a href="org/apache/juneau/annotation/Bean.html" title="annotation in org.apache.juneau.annotation"><code>@Bean</code></a> 
-               - Used to tailor how beans get interpreted by the framework.
-            <li class='ja'>
-               <a href="org/apache/juneau/annotation/BeanConstructor.html" title="annotation in org.apache.juneau.annotation"><code>@BeanConstructor</code></a> 
-               - Maps constructor arguments to property names on beans with read-only properties.
-            <li class='ja'>
-               <a href="org/apache/juneau/annotation/BeanIgnore.html" title="annotation in org.apache.juneau.annotation"><code>@BeanIgnore</code></a> 
-               - Ignore classes, fields, and methods from being interpreted as bean or bean components.
-            <li class='ja'>
-               <a href="org/apache/juneau/annotation/BeanProperty.html" title="annotation in org.apache.juneau.annotation"><code>@BeanProperty</code></a> 
-               - Used to tailor how bean properties get interpreted by the framework.
-            <li class='ja'>
-               <a href="org/apache/juneau/annotation/NameProperty.html" title="annotation in org.apache.juneau.annotation"><code>@NameProperty</code></a> 
-               - Identifies a setter as a method for setting the name of a POJO as it's known by its parent object.
-            <li class='ja'>
-               <a href="org/apache/juneau/annotation/ParentProperty.html" title="annotation in org.apache.juneau.annotation"><code>@ParentProperty</code></a> 
-               - Identifies a setter as a method for adding a parent reference to a child object.
-            <li class='ja'>
-               <a href="org/apache/juneau/annotation/URI.html" title="annotation in org.apache.juneau.annotation"><code>@URI</code></a> 
-               - Used to identify a class or bean property as a URI.
-         </ul>
-   
-         <!-- =================================================================================================== -->
-         <a id="juneau-marshall.PojoSwaps"></a>
-         <h4 class='topic' onclick='toggle(this)'>2.1.7.1 - PojoSwaps</h4>
-         <div class='topic'>
-            <p>
-               <a href="org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwaps</code></a> are a critical component of Juneau.
-               They allow the serializers and parsers to handle Java objects that wouldn't normally be serializable.
-            </p>
-            <p>
-               Swaps are, simply put, 'object swappers' that swap in serializable objects for 
-               non-serializable ones during serialization, and vis-versa during parsing.
-            </p>
-            <p>
-               Some examples of non-serializable POJOs are <code>File</code>, <code>Reader</code>, 
-               <code>Iterable</code>, etc...
-               These are classes that aren't beans and cannot be represented as simple maps, collections, or primitives.
-            </p>
-            <p>
-               In the following example, we introduce a <code>PojoSwap</code> that will swap in ISO8601 strings for 
-               <code>Date</code> objects:
-            </p>
-            <p class='bcode'>
+         <p class='bcode'>
    <jc>// Sample swap for converting Dates to ISO8601 strings.</jc>
    <jk>public class</jk> MyDateSwap <jk>extends</jk> PojoSwap&lt;Date,String&gt; {
       
@@ -1655,11 +1620,11 @@
          <jk>return</jk> <jf>format</jf>.parse(o);
       }
    }
-            </p>
-            <p>
-               The swap can then be associated with serializers and parsers like so:
-            </p>
-            <p class='bcode'>
+         </p>
+         <p>
+            The swap can then be associated with serializers and parsers like so:
+         </p>
+         <p class='bcode'>
    <jc>// Sample bean with a Date field.</jc>
    <jk>public class</jk> MyBean {
       <jk>public</jk> Date <jf>date</jf> = <jk>new</jk> Date(112, 2, 3, 4, 5, 6);
@@ -1673,7 +1638,7 @@
    ReaderParser p = JsonParser.<jsm>create</jsm>().pojoSwaps(MyDateSwap.<jk>class</jk>).build();
    MyBean bean = p.parse(json, MyBean.<jk>class</jk>);
    <jk>int</jk> day = bean.<jf>date</jf>.getDay();                   <jc>// == 3</jc>
-            </p>
+         </p>
          <p>
             The <a href="org/apache/juneau/BeanMap.html#get-java.lang.Object-"><code>BeanMap.get(Object)</code></a> and <a href="org/apache/juneau/BeanMap.html#put-java.lang.String-java.lang.Object-"><code>BeanMap.put(String,Object)</code></a> 
             methods will automatically convert to swapped values as the following example shows:
@@ -1725,11 +1690,11 @@
          <jk>return</jk> res;
       }
    }
-            </p>
-            <p>
-               The following example shows the BASE64 swap in use:
-            </p>
-            <p class='bcode'>
+         </p>
+         <p>
+            The following example shows the BASE64 swap in use:
+         </p>
+         <p class='bcode'>
    <jc>// Create a JSON serializer and register the BASE64 encoding swap with it.</jc>
    WriterSerializer s = JsonSerializer.<jsm>create</jsm>().simple().pojoSwaps(ByteArrayBase64Swap.<jk>class</jk>).build();
    ReaderParser p = JsonParser.<jsm>create</jsm>().pojoSwaps(ByteArrayBase64Swap.<jk>class</jk>).build();
@@ -1741,71 +1706,71 @@
    <jk>byte</jk>[][] bytes2d = {{1,2,3},{4,5,6},<jk>null</jk>};
    json = s.serialize(bytes2d);     <jc>// Produces "['AQID','BAUG',null]"</jc>
    bytes2d = p.parse(json, <jk>byte</jk>[][].<jk>class</jk>);     <jc>// Reproduces {{1,2,3},{4,5,6},null}</jc>
-            </p>
-            <p>
-               Several <code>PojoSwaps</code> are already provided for common Java objects:
-            </p>
-            <ul class='doctree'>
-               <li class='jp'><jk>org.apache.juneau.transforms</jk>
-                  <ul>
-                     <li class='jc'>
-                        <a href="org/apache/juneau/transforms/ByteArrayBase64Swap.html" title="class in org.apache.juneau.transforms"><code>ByteArrayBase64Swap</code></a>
-                     <li class='jac'>
-                        <a href="org/apache/juneau/transforms/CalendarSwap.html" title="class in org.apache.juneau.transforms"><code>CalendarSwap</code></a>
-                     <li class='jac'>
-                        <a href="org/apache/juneau/transforms/DateSwap.html" title="class in org.apache.juneau.transforms"><code>DateSwap</code></a>
-                     <li class='jc'>
-                        <a href="org/apache/juneau/transforms/EnumerationSwap.html" title="class in org.apache.juneau.transforms"><code>EnumerationSwap</code></a>
-                     <li class='jc'>
-                        <a href="org/apache/juneau/transforms/IteratorSwap.html" title="class in org.apache.juneau.transforms"><code>IteratorSwap</code></a>
-                     <li class='jc'>
-                        <a href="org/apache/juneau/transforms/ReaderSwap.html" title="class in org.apache.juneau.transforms"><code>ReaderSwap</code></a>
-                     <li class='jc'>
-                        <a href="org/apache/juneau/transforms/XMLGregorianCalendarSwap.html" title="class in org.apache.juneau.transforms"><code>XMLGregorianCalendarSwap</code></a>
-                  </ul>
-               </li>
-            </ul>
-            <p>
-               In particular, the <a href="org/apache/juneau/transforms/CalendarSwap.html" title="class in org.apache.juneau.transforms"><code>CalendarSwap</code></a> and 
-               <a href="org/apache/juneau/transforms/DateSwap.html" title="class in org.apache.juneau.transforms"><code>DateSwap</code></a> transforms provide a large number of customized swaps to 
-               ISO, RFC, or localized strings.
-            </p>
-            <p>
-               Swaps have access to the session locale and timezone through the <a href="org/apache/juneau/BeanSession.html#getLocale--"><code>BeanSession.getLocale()</code></a> and
-               <a href="org/apache/juneau/BeanSession.html#getTimeZone--"><code>BeanSession.getTimeZone()</code></a> methods.
-               <br>This allows you to specify localized swap values when needed.
-            </p>
-            <p>
-               If using the REST server API, the locale and timezone are set based on the <code>Accept-Language</code> and
-               <code>Time-Zone</code> headers on the request.
-            </p>
-            
-            <ul class='doctree'>
-               <li class='info'>
-                  The 'swapped' class type must be a serializable type.
-                  <br>See the definition for Category 4 objects in <a class='doclink' href='#juneau-marshall.PojoCategories'>POJO Categories</a>.  
-            </ul>
-         </div>
+         </p>
+         <p>
+            Several <code>PojoSwaps</code> are already provided for common Java objects:
+         </p>
+         <ul class='doctree'>
+            <li class='jp'><jk>org.apache.juneau.transforms</jk>
+               <ul>
+                  <li class='jc'>
+                     <a href="org/apache/juneau/transforms/ByteArrayBase64Swap.html" title="class in org.apache.juneau.transforms"><code>ByteArrayBase64Swap</code></a>
+                  <li class='jac'>
+                     <a href="org/apache/juneau/transforms/CalendarSwap.html" title="class in org.apache.juneau.transforms"><code>CalendarSwap</code></a>
+                  <li class='jac'>
+                     <a href="org/apache/juneau/transforms/DateSwap.html" title="class in org.apache.juneau.transforms"><code>DateSwap</code></a>
+                  <li class='jc'>
+                     <a href="org/apache/juneau/transforms/EnumerationSwap.html" title="class in org.apache.juneau.transforms"><code>EnumerationSwap</code></a>
+                  <li class='jc'>
+                     <a href="org/apache/juneau/transforms/IteratorSwap.html" title="class in org.apache.juneau.transforms"><code>IteratorSwap</code></a>
+                  <li class='jc'>
+                     <a href="org/apache/juneau/transforms/ReaderSwap.html" title="class in org.apache.juneau.transforms"><code>ReaderSwap</code></a>
+                  <li class='jc'>
+                     <a href="org/apache/juneau/transforms/XMLGregorianCalendarSwap.html" title="class in org.apache.juneau.transforms"><code>XMLGregorianCalendarSwap</code></a>
+               </ul>
+            </li>
+         </ul>
+         <p>
+            In particular, the <a href="org/apache/juneau/transforms/CalendarSwap.html" title="class in org.apache.juneau.transforms"><code>CalendarSwap</code></a> and 
+            <a href="org/apache/juneau/transforms/DateSwap.html" title="class in org.apache.juneau.transforms"><code>DateSwap</code></a> transforms provide a large number of customized swaps to 
+            ISO, RFC, or localized strings.
+         </p>
+         <p>
+            Swaps have access to the session locale and timezone through the <a href="org/apache/juneau/BeanSession.html#getLocale--"><code>BeanSession.getLocale()</code></a> and
+            <a href="org/apache/juneau/BeanSession.html#getTimeZone--"><code>BeanSession.getTimeZone()</code></a> methods.
+            <br>This allows you to specify localized swap values when needed.
+         </p>
+         <p>
+            If using the REST server API, the locale and timezone are set based on the <code>Accept-Language</code> and
+            <code>Time-Zone</code> headers on the request.
+         </p>
          
-         <!-- =================================================================================================== -->
-         <a id="juneau-marshall.PerMediaTypePojoSwaps"></a>
-         <h4 class='topic' onclick='toggle(this)'>2.1.7.2 - Per-media-type PojoSwaps</h4>
-         <div class='topic'>
-            <p>
-               Swaps can also be defined per-media-type.    
-            </p>
-            <p>   
-               The <a href="org/apache/juneau/transform/PojoSwap.html#forMediaTypes--"><code>PojoSwap.forMediaTypes()</code></a> method can be overridden to 
-               provide a set of media types that the swap is invoked on.
-               <br>It's also possible to define multiple swaps against the same POJO as long as they're differentiated 
-               by media type.
-               <br>When multiple swaps are defined, the best-match media type is used.
-            </p>
-            <p>
-               In the following example, we define 3 swaps against the same POJO.  
-               One for JSON, one for XML, and one for all other types.
-            </p>
-            <p class='bcode'>
+         <ul class='doctree'>
+            <li class='info'>
+               The 'swapped' class type must be a serializable type.
+               <br>See the definition for Category 4 objects in <a class='doclink' href='#juneau-marshall.PojoCategories'>POJO Categories</a>.  
+         </ul>
+      </div>
+      
+      <!-- =================================================================================================== -->
+      <a id="juneau-marshall.PerMediaTypePojoSwaps"></a>
+      <h4 class='topic' onclick='toggle(this)'>2.7.2 - Per-media-type PojoSwaps</h4>
+      <div class='topic'>
+         <p>
+            Swaps can also be defined per-media-type.    
+         </p>
+         <p>   
+            The <a href="org/apache/juneau/transform/PojoSwap.html#forMediaTypes--"><code>PojoSwap.forMediaTypes()</code></a> method can be overridden to 
+            provide a set of media types that the swap is invoked on.
+            <br>It's also possible to define multiple swaps against the same POJO as long as they're differentiated 
+            by media type.
+            <br>When multiple swaps are defined, the best-match media type is used.
+         </p>
+         <p>
+            In the following example, we define 3 swaps against the same POJO.  
+            One for JSON, one for XML, and one for all other types.
+         </p>
+         <p class='bcode'>
    <jk>public class</jk> PojoSwapTest {
 
       <jk>public static class</jk> MyPojo {}
@@ -1864,30 +1829,30 @@
          <jsm>assertEquals</jsm>(<js>"&lt;string&gt;It's something else!&lt;/string&gt;"</js>, html);
       }
    }
-            </p>
-         </div>
-   
-         <!-- =================================================================================================== -->
-         <a id="juneau-marshall.OneWayPojoSwaps"></a>
-         <h4 class='topic' onclick='toggle(this)'>2.1.7.3 - One-way PojoSwaps</h4>
-         <div class='topic'>
-            <p>
-               In the previous sections, we defined two-way swaps, meaning swaps where the original objects could be 
-               reconstructing during parsing. 
-               <br>However, there are certain kinds of POJOs that we may want to support for serializing, but that are not 
-               possible to reconstruct during parsing.  
-               <br>For these, we can use one-way object swaps.
-            </p>
-            <p>
-               A one-way POJO swap is simply an object transform that only implements the <code>swap()</code> method.  
-               <br>The <code>unswap()</code> method is simply left unimplemented.
-            </p>
-            <p>
-               An example of a one-way swaps would be one that allows <code>Iterators</code> to be serialized as JSON arrays.  
-               <br>It can make sense to be able to render <code>Iterators</code> as arrays, but in general it's not possible to 
-               reconstruct an <code>Iterator</code> during parsing. 
-            </p>
-            <p class='bcode'>
+         </p>
+      </div>
+
+      <!-- =================================================================================================== -->
+      <a id="juneau-marshall.OneWayPojoSwaps"></a>
+      <h4 class='topic' onclick='toggle(this)'>2.7.3 - One-way PojoSwaps</h4>
+      <div class='topic'>
+         <p>
+            In the previous sections, we defined two-way swaps, meaning swaps where the original objects could be 
+            reconstructing during parsing. 
+            <br>However, there are certain kinds of POJOs that we may want to support for serializing, but that are not 
+            possible to reconstruct during parsing.  
+            <br>For these, we can use one-way object swaps.
+         </p>
+         <p>
+            A one-way POJO swap is simply an object transform that only implements the <code>swap()</code> method.  
+            <br>The <code>unswap()</code> method is simply left unimplemented.
+         </p>
+         <p>
+            An example of a one-way swaps would be one that allows <code>Iterators</code> to be serialized as JSON arrays.  
+            <br>It can make sense to be able to render <code>Iterators</code> as arrays, but in general it's not possible to 
+            reconstruct an <code>Iterator</code> during parsing. 
+         </p>
+         <p class='bcode'>
    <jk>public class</jk> IteratorSwap <jk>extends</jk> PojoSwap&lt;Iterator,List&gt; {
       <ja>@Override</ja> <jc>/* PojoSwap */</jc>
       <jk>public</jk> List swap(Iterator o) {
@@ -1897,13 +1862,13 @@
          <jk>return</jk> l;
       }
    }
-            </p>
-            <p>
-               Here is an example of our one-way swap being used.  
-               <br>Note that trying to parse the original object will cause a <a href="org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser"><code>ParseException</code></a> 
-               to be thrown.
-            </p>
-            <p class='bcode'>
+         </p>
+         <p>
+            Here is an example of our one-way swap being used.  
+            <br>Note that trying to parse the original object will cause a <a href="org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser"><code>ParseException</code></a> 
+            to be thrown.
+         </p>
+         <p class='bcode'>
    <jc>// Create a JSON serializer that can serialize Iterators.</jc>
    WriterSerializer s = JsonSerializer.<jsm>create</jsm>().simple().pojoSwaps(IteratorSwap.<jk>class</jk>).build();
    
@@ -1916,20 +1881,20 @@
    <jc>// Try to parse it.</jc>
    ReaderParser p = JsonParser.<jsm>create</jsm>().pojoSwaps(IteratorSwap.<jk>class</jk>).build();
    i = p.parse(s, Iterator.<jk>class</jk>);     <jc>// Throws ParseException!!!</jc>
-            </p>
-         </div>
+         </p>
+      </div>
 
-         <!-- =================================================================================================== -->
-         <a id="juneau-marshall.SwapAnnotation"></a>
-         <h4 class='topic' onclick='toggle(this)'>2.1.7.4 - @Swap Annotation</h4>
-         <div class='topic'>
-            <p>
-               <a href="org/apache/juneau/annotation/Swap.html" title="annotation in org.apache.juneau.annotation"><code>@Swap</code></a> can be used to associate a swap class using an 
-               annotation.
-               <br>This is often cleaner than using the builder <code>pojoSwaps()</code> method since you can keep
-               your swap class near your POJO class. 
-            </p>
-            <p class='bcode'>
+      <!-- =================================================================================================== -->
+      <a id="juneau-marshall.SwapAnnotation"></a>
+      <h4 class='topic' onclick='toggle(this)'>2.7.4 - @Swap Annotation</h4>
+      <div class='topic'>
+         <p>
+            <a href="org/apache/juneau/annotation/Swap.html" title="annotation in org.apache.juneau.annotation"><code>@Swap</code></a> can be used to associate a swap class using an 
+            annotation.
+            <br>This is often cleaner than using the builder <code>pojoSwaps()</code> method since you can keep
+            your swap class near your POJO class. 
+         </p>
+         <p class='bcode'>
    <ja>@Swap</ja>(MyPojoSwap.<jk>class</jk>)
    <jk>public class</jk> MyPojo {
       ...
@@ -1943,11 +1908,11 @@
          <jk>return</jk> o.toSomeSerializableForm();
       }
    }
-            </p>
-            <p>
-               Multiple swaps can be associated with a POJO by using the <a href="org/apache/juneau/annotation/Swaps.html" title="annotation in org.apache.juneau.annotation"><code>@Swaps</code></a> annotation:
-            </p>
-            <p class='bcode'>
+         </p>
+         <p>
+            Multiple swaps can be associated with a POJO by using the <a href="org/apache/juneau/annotation/Swaps.html" title="annotation in org.apache.juneau.annotation"><code>@Swaps</code></a> annotation:
+         </p>
+         <p class='bcode'>
    <ja>@Swaps</ja>(
       {
          <ja>@Swap</ja>(MyJsonSwap.<jk>class</jk>),
@@ -1956,12 +1921,12 @@
       }
    )
    <jk>public class</jk> MyPojo {}
-            </p>
-            <p>
-               <code>Readers</code> get serialized directly to the output of a serializer.
-               Therefore it's possible to implement a swap that provides fully-customized output.
-            </p>
-            <p class='bcode'>
+         </p>
+         <p>
+            <code>Readers</code> get serialized directly to the output of a serializer.
+            Therefore it's possible to implement a swap that provides fully-customized output.
+         </p>
+         <p class='bcode'>
    <jk>public class</jk> MyJsonSwap <jk>extends</jk> PojoSwap&lt;MyPojo,Reader&gt; {
 
       <jk>public</jk> MediaType[] forMediaTypes() {
@@ -1972,39 +1937,39 @@
          <jk>return new</jk> StringReader(<js>"{message:'Custom JSON!'}"</js>);
       }
    }
-            </p>
-            <p>
-               The <ja>@Swap</ja> annotation can also be used on getters and setters as well to apply a swap
-               to individual property values
-            </p>
-            <p class='bcode'>
+         </p>
+         <p>
+            The <ja>@Swap</ja> annotation can also be used on getters and setters as well to apply a swap
+            to individual property values
+         </p>
+         <p class='bcode'>
    <ja>@BeanProperty</ja>(swap=MyPojoSwap.<jk>class</jk>)
    <jk>public</jk> MyPojo getMyPojo();
-            </p>
-         </div>
+         </p>
+      </div>
 
-         <!-- =================================================================================================== -->
-         <a id="juneau-marshall.TemplatedSwaps"></a>
-         <h4 class='topic' onclick='toggle(this)'>2.1.7.5 - Templated Swaps</h4>
-         <div class='topic'>
-            <p>
-               The <a href="org/apache/juneau/annotation/Swap.html#template--"><code>@Swap.template()</code></a> annotation allows you to associate
-               arbitrary contextual strings with swaps.
-               <br>The primary purpose is for providing template names, such as for Apache FreeMarker, therefore
-               the name 'template'.
-               <br>However, the usage of the string is open-ended.
-            </p>
-            <p>
-               For example, you could pair a template string like so:
-            </p>
-            <p class='bcode'>
+      <!-- =================================================================================================== -->
+      <a id="juneau-marshall.TemplatedSwaps"></a>
+      <h4 class='topic' onclick='toggle(this)'>2.7.5 - Templated Swaps</h4>
+      <div class='topic'>
+         <p>
+            The <a href="org/apache/juneau/annotation/Swap.html#template--"><code>@Swap.template()</code></a> annotation allows you to associate
+            arbitrary contextual strings with swaps.
+            <br>The primary purpose is for providing template names, such as for Apache FreeMarker, therefore
+            the name 'template'.
+            <br>However, the usage of the string is open-ended.
+         </p>
+         <p>
+            For example, you could pair a template string like so:
+         </p>
+         <p class='bcode'>
    <ja>@Swap</ja>(impl=FreeMarkerSwap.<jk>class</jk>, template=<js>"MyPojo.div.ftl"</js>)
    <jk>public class</jk> MyPojo {}
-            </p>
-            <p>
-               The implementation of the FreeMarker swap would look something like this:
-            </p>
-            <p class='bcode'>
+         </p>
+         <p>
+            The implementation of the FreeMarker swap would look something like this:
+         </p>
+         <p class='bcode'>
    <jc>// Our templated swap class.</jc>
    <jk>public class</jk> FreeMarkerSwap <jk>extends</jk> PojoSwap&lt;Object,Reader&gt; {
 
@@ -2019,74 +1984,74 @@
          <jk>return</jk> getFreeMarkerReader(template, o);  
       }
    }
-            </p>
-         </div>
+         </p>
+      </div>
 
-         <!-- ======================================================================================================= -->
-         <a id="juneau-marshall.SwapMethods"></a>
-         <h4 class='topic' onclick='toggle(this)'>2.1.7.6 - Swap Methods</h4>
-         <div class='topic'>
-            <p>
-               Various methods can be defined on a class directly to affect how it gets serialized.
-               <br>This can often be simpler than using <code>PojoSwaps</code>.
-            </p>
-            <p>
-               Objects serialized as <code>Strings</code> can be parsed back into their original objects by 
-               implementing one of the following methods on the class:
-            </p>     
-            <ul class='spaced-list'>
-               <li>
-                  <code><jk>public static</jk> T fromString(String)</code> method.
-                  <br>Any of the following method names also work: 
-                  <ul>
-                     <li><code>valueOf(String)</code>
-                     <li><code>parse(String)</code>
-                     <li><code>parseString(String)</code>
-                     <li><code>forName(String)</code>
-                     <li><code>forString(String)</code>
-                  </ul>
-               <li>
-                  <code><jk>public</jk> T(String)</code> constructor.
-            </ul>
-            <p>
-               Note that these methods cover conversion from several built-in Java types, meaning the parsers can 
-               automatically construct these objects from strings:
-            </p>
-            <ul>
-               <li><code>fromString(String)</code> - <a href="http://docs.oracle.com/javase/7/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>
-               <li><code>valueOf(String)</code> - <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang"><code>Boolean</code></a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Byte.html?is-external=true" title="class or interface in java.lang"><code>Byte</code></a>, 
-                  <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang"><code>Double</code></a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Float.html?is-external=true" title="class or interface in java.lang"><code>Float</code></a>, 
-                  <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang"><code>Integer</code></a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang"><code>Long</code></a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Short.html?is-external=true" title="class or interface in java.lang"><code>Short</code></a>, <a href="http [...]
-                  <a href="http://docs.oracle.com/javase/7/docs/api/java/sql/Time.html?is-external=true" title="class or interface in java.sql"><code>Time</code></a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/sql/Timestamp.html?is-external=true" title="class or interface in java.sql"><code>Timestamp</code></a>
-               <li><code>parse(String)</code> - <a href="http://docs.oracle.com/javase/7/docs/api/java/text/DateFormat.html?is-external=true" title="class or interface in java.text"><code>DateFormat</code></a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/text/MessageFormat.html?is-external=true" title="class or interface in java.text"><code>MessageFormat</code></a>, 
-                  <a href="http://docs.oracle.com/javase/7/docs/api/java/text/NumberFormat.html?is-external=true" title="class or interface in java.text"><code>NumberFormat</code></a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util"><code>Date</code></a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/util/logging/Level.html?is-external=true" title="class or interface in java.util.logging"><code>Level [...]
-               <li><code>parseString(String)</code> - <a href="http://docs.oracle.com/javase/7/docs/api/javax/xml/bind/DatatypeConverter.html?is-external=true" title="class or interface in javax.xml.bind"><code>DatatypeConverter</code></a>
-               <li><code>forName(String)</code> - <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang"><code>Class</code></a>
-            </ul>
-            <p>
-               If you want to force a bean-like class to be serialized as a string, you can use the 
-               <a href="org/apache/juneau/annotation/BeanIgnore.html" title="annotation in org.apache.juneau.annotation"><code>@BeanIgnore</code></a> annotation on the class to force it to be 
-               serialized to a string using the <code>toString()</code> method.
-            </p>
-            <p>
-               Serializing to other intermediate objects can be accomplished by defining a swap method directly on the 
-               class:
-            </p>        
-            <ul>
-               <li><code><jk>public</jk> X swap(BeanSession)</code> method, where <code>X</code> is any serializable 
-               object.
-            </ul>
-            <p>
-               The <code>BeanSession</code> parameter allows you access to various information about the current 
-               serialization session.
-               <br>For example, you could provide customized results based on the media type being produced 
-               (<a href="org/apache/juneau/BeanSession.html#getMediaType--"><code>BeanSession.getMediaType()</code></a>).
-            </p>
-            <p>
-               The following example shows how an HTML5 form template object can be created that gets serialized as a 
-               populated HTML5 <a href="org/apache/juneau/dto/html5/Form.html" title="class in org.apache.juneau.dto.html5"><code>Form</code></a> bean.
-            </p>
-            <p class='bcode'>
+      <!-- ======================================================================================================= -->
+      <a id="juneau-marshall.SwapMethods"></a>
+      <h4 class='topic' onclick='toggle(this)'>2.7.6 - Swap Methods</h4>
+      <div class='topic'>
+         <p>
+            Various methods can be defined on a class directly to affect how it gets serialized.
+            <br>This can often be simpler than using <code>PojoSwaps</code>.
+         </p>
+         <p>
+            Objects serialized as <code>Strings</code> can be parsed back into their original objects by 
+            implementing one of the following methods on the class:
+         </p>     
+         <ul class='spaced-list'>
+            <li>
+               <code><jk>public static</jk> T fromString(String)</code> method.
+               <br>Any of the following method names also work: 
+               <ul>
+                  <li><code>valueOf(String)</code>
+                  <li><code>parse(String)</code>
+                  <li><code>parseString(String)</code>
+                  <li><code>forName(String)</code>
+                  <li><code>forString(String)</code>
+               </ul>
+            <li>
+               <code><jk>public</jk> T(String)</code> constructor.
+         </ul>
+         <p>
+            Note that these methods cover conversion from several built-in Java types, meaning the parsers can 
+            automatically construct these objects from strings:
+         </p>
+         <ul>
+            <li><code>fromString(String)</code> - <a href="http://docs.oracle.com/javase/7/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>
+            <li><code>valueOf(String)</code> - <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang"><code>Boolean</code></a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Byte.html?is-external=true" title="class or interface in java.lang"><code>Byte</code></a>, 
+               <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang"><code>Double</code></a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Float.html?is-external=true" title="class or interface in java.lang"><code>Float</code></a>, 
+               <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang"><code>Integer</code></a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang"><code>Long</code></a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Short.html?is-external=true" title="class or interface in java.lang"><code>Short</code></a>, <a href="http:// [...]
+               <a href="http://docs.oracle.com/javase/7/docs/api/java/sql/Time.html?is-external=true" title="class or interface in java.sql"><code>Time</code></a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/sql/Timestamp.html?is-external=true" title="class or interface in java.sql"><code>Timestamp</code></a>
+            <li><code>parse(String)</code> - <a href="http://docs.oracle.com/javase/7/docs/api/java/text/DateFormat.html?is-external=true" title="class or interface in java.text"><code>DateFormat</code></a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/text/MessageFormat.html?is-external=true" title="class or interface in java.text"><code>MessageFormat</code></a>, 
+               <a href="http://docs.oracle.com/javase/7/docs/api/java/text/NumberFormat.html?is-external=true" title="class or interface in java.text"><code>NumberFormat</code></a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util"><code>Date</code></a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/util/logging/Level.html?is-external=true" title="class or interface in java.util.logging"><code>Level</c [...]
+            <li><code>parseString(String)</code> - <a href="http://docs.oracle.com/javase/7/docs/api/javax/xml/bind/DatatypeConverter.html?is-external=true" title="class or interface in javax.xml.bind"><code>DatatypeConverter</code></a>
+            <li><code>forName(String)</code> - <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang"><code>Class</code></a>
+         </ul>
+         <p>
+            If you want to force a bean-like class to be serialized as a string, you can use the 
+            <a href="org/apache/juneau/annotation/BeanIgnore.html" title="annotation in org.apache.juneau.annotation"><code>@BeanIgnore</code></a> annotation on the class to force it to be 
+            serialized to a string using the <code>toString()</code> method.
+         </p>
+         <p>
+            Serializing to other intermediate objects can be accomplished by defining a swap method directly on the 
+            class:
+         </p>        
+         <ul>
+            <li><code><jk>public</jk> X swap(BeanSession)</code> method, where <code>X</code> is any serializable 
+            object.
+         </ul>
+         <p>
+            The <code>BeanSession</code> parameter allows you access to various information about the current 
+            serialization session.
+            <br>For example, you could provide customized results based on the media type being produced 
+            (<a href="org/apache/juneau/BeanSession.html#getMediaType--"><code>BeanSession.getMediaType()</code></a>).
+         </p>
+         <p>
+            The following example shows how an HTML5 form template object can be created that gets serialized as a 
+            populated HTML5 <a href="org/apache/juneau/dto/html5/Form.html" title="class in org.apache.juneau.dto.html5"><code>Form</code></a> bean.
+         </p>
+         <p class='bcode'>
    <jk>import static</jk> org.apache.juneau.dto.html5.HtmlBuilder.*;
    
    <jd>/**
@@ -2113,21 +2078,21 @@
          );
       }
    }
-            </p>
-            <p>
-               Swapped objects can be converted back into their original form by the parsers by specifying one of the 
-               following methods:
-            </p>
-            <ul>
-               <li><code><jk>public static</jk> T unswap(BeanSession, X)</code> method where <code>X</code> is the 
-                  swap class type.
-               <li><code><jk>public</jk> T(X)</code> constructor where <code>X</code> is the swap class type.
-            </ul>
-            <p>
-               The following shows how our form template class can be modified to allow the parsers to reconstruct our 
-               original object:
-            </p>
-            <p class='bcode'>
+         </p>
+         <p>
+            Swapped objects can be converted back into their original form by the parsers by specifying one of the 
+            following methods:
+         </p>
+         <ul>
+            <li><code><jk>public static</jk> T unswap(BeanSession, X)</code> method where <code>X</code> is the 
+               swap class type.
+            <li><code><jk>public</jk> T(X)</code> constructor where <code>X</code> is the swap class type.
+         </ul>
+         <p>
+            The following shows how our form template class can be modified to allow the parsers to reconstruct our 
+            original object:
+         </p>
+         <p class='bcode'>
    <jk>import static</jk> org.apache.juneau.dto.html5.HtmlBuilder.*;
    
    <jd>/**
@@ -2163,30 +2128,30 @@
          );
       }
    }
-            </p>
-         </div>
-   
-         <!-- =================================================================================================== -->
-         <a id="juneau-marshall.SurrogateClasses"></a>
-         <h4 class='topic' onclick='toggle(this)'>2.1.7.7 - Surrogate Classes</h4>
-         <div class='topic'>
-            <p>
-            <p>
-               Surrogate classes are very similar in concept to <code>PojoSwaps</code> except they're simpler to define.
-            </p>
-            <p>
-               For example, let's say we want to be able to serialize the following class, but it's not serializable for 
-               some reason (for example, there are no properties exposed):  
-            <p class='bcode'>
+         </p>
+      </div>
+
+      <!-- =================================================================================================== -->
+      <a id="juneau-marshall.SurrogateClasses"></a>
+      <h4 class='topic' onclick='toggle(this)'>2.7.7 - Surrogate Classes</h4>
+      <div class='topic'>
+         <p>
+         <p>
+            Surrogate classes are very similar in concept to <code>PojoSwaps</code> except they're simpler to define.
+         </p>
+         <p>
+            For example, let's say we want to be able to serialize the following class, but it's not serializable for 
+            some reason (for example, there are no properties exposed):  
+         <p class='bcode'>
    <jc>// Not serializable because it's not a bean because it has no public properties.</jc>
    <jk>public class</jk> MyNonSerializableClass {
       <jk>protected</jk> String <jf>foo</jf>;
    }
-            </p>
-            <p>
-               This could be solved with the following <code>PojoSwap</code>.
-            </p>
-            <p class='bcode'>
+         </p>
+         <p>
+            This could be solved with the following <code>PojoSwap</code>.
+         </p>
+         <p class='bcode'>
    <jc>// A serializable bean with 1 property.</jc>
    <jk>public class</jk> MySerializableSurrogate {
       <jk>public</jk> String <jf>foo</jf>;
@@ -2203,12 +2168,12 @@
          <jk>return</jk> s;
       }
    }
-            </p>
-            <p>
-               However, the same can be accomplished by using a surrogate class that simply contains a constructor with 
-               the non-serializable class as an argument:
-            </p>
-            <p class='bcode'>
+         </p>
+         <p>
+            However, the same can be accomplished by using a surrogate class that simply contains a constructor with 
+            the non-serializable class as an argument:
+         </p>
+         <p class='bcode'>
    <jk>public class</jk> MySerializableSurrogate {
       <jk>public</jk> String <jf>foo</jf>;
       
@@ -2217,85 +2182,85 @@
          <jk>this</jk>.<jf>foo</jf> = c.<jf>foo</jf>;
       }
    }
-            </p>
-            <p>
-               The surrogate class is registered in the same way as a <code>PojoSwap</code>:
-            </p>
-            <p class='bcode'>
+         </p>
+         <p>
+            The surrogate class is registered in the same way as a <code>PojoSwap</code>:
+         </p>
+         <p class='bcode'>
    <jc>// Create a JSON serializer that can serialize Iterators.</jc>
    WriterSerializer s = JsonSerializer.<jsm>create</jsm>().pojoSwaps(MySerializableSurrogate.<jk>class</jk>).build();
-            </p>
-            <p>
-               When the serializer encounters the non-serializable class, it will serialize an instance of the surrogate 
-               instead.
-            </p>
-            
-            <h5 class='section'>See Also:</h5>
-            <ul>
-               <li class='jic'><a href="org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a>
-            </ul>
-         </div>
-   
-         <!-- ======================================================================================================= -->
-         <a id="juneau-marshall.BeanAnnotation"></a>
-         <h4 class='topic' onclick='toggle(this)'>2.1.7.8 - @Bean Annotation</h4>
-         <div class='topic'>
-            <p>
-               The <a href="org/apache/juneau/annotation/Bean.html" title="annotation in org.apache.juneau.annotation"><code>@Bean</code></a> annotation is used to tailor how beans are 
-               interpreted by the framework.
-            </p>
-            <p> 
-               Bean property inclusion and ordering on a bean class can be done using the 
-               <a href="org/apache/juneau/annotation/Bean.html#properties--"><code>@Bean.properties()</code></a> annotation.
-            </p>
-            <p class='bcode'>
-   <jc>// Address class with only street/city/state properties (in that order).</jc>
-   <jc>// All other properties are ignored.</jc>
+         </p>
+         <p>
+            When the serializer encounters the non-serializable class, it will serialize an instance of the surrogate 
+            instead.
+         </p>
+         
+         <h5 class='section'>See Also:</h5>
+         <ul>
+            <li class='jic'><a href="org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a>
+         </ul>
+      </div>
+
+      <!-- ======================================================================================================= -->
+      <a id="juneau-marshall.BeanAnnotation"></a>
+      <h4 class='topic' onclick='toggle(this)'>2.7.8 - @Bean Annotation</h4>
+      <div class='topic'>
+         <p>
+            The <a href="org/apache/juneau/annotation/Bean.html" title="annotation in org.apache.juneau.annotation"><code>@Bean</code></a> annotation is used to tailor how beans are 
+            interpreted by the framework.
+         </p>
+         <p> 
+            Bean property inclusion and ordering on a bean class can be done using the 
+            <a href="org/apache/juneau/annotation/Bean.html#properties--"><code>@Bean.properties()</code></a> annotation.
+         </p>
+         <p class='bcode'>
+   <jc>// Address class with only street/city/state properties (in that order).</jc>
+   <jc>// All other properties are ignored.</jc>
    <ja>@Bean</ja>(properties=<js>"street,city,state"</js>)
    <jk>public class</jk> Address { ... }
-            </p>
-            <p> 
-               Bean properties can be excluded using the <a href="org/apache/juneau/annotation/Bean.html#excludeProperties--"><code>@Bean.excludeProperties()</code></a>
-               annotation.
-            </p>
-            <p class='bcode'>
+         </p>
+         <p> 
+            Bean properties can be excluded using the <a href="org/apache/juneau/annotation/Bean.html#excludeProperties--"><code>@Bean.excludeProperties()</code></a>
+            annotation.
+         </p>
+         <p class='bcode'>
    <jc>// Address class with only street/city/state properties (in that order).</jc>
    <jc>// All other properties are ignored.</jc>
    <ja>@Bean</ja>(excludeProperties=<js>"city,state"</js>})
    <jk>public class</jk> Address { ... }
-            </p>
-            <p>
-               Bean properties can be sorted alphabetically using <a href="org/apache/juneau/annotation/Bean.html#sort--"><code>@Bean.sort()</code></a>
-            </p>
-            <p class='bcode'>
+         </p>
+         <p>
+            Bean properties can be sorted alphabetically using <a href="org/apache/juneau/annotation/Bean.html#sort--"><code>@Bean.sort()</code></a>
+         </p>
+         <p class='bcode'>
    <jc>// Address class with only street/city/state properties (in that order).</jc>
    <jc>// All other properties are ignored.</jc>
    <ja>@Bean</ja>(sort=<jk>true</jk>)
    <jk>public class</jk> MyBean { ... }
-            </p>
-            <p>
-               The <a href="org/apache/juneau/annotation/Bean.html#propertyNamer--"><code>@Bean.propertyNamer()</code></a> annotation
-               is used to provide customized naming of properties.
-            </p>
-            <p>
-               Property namers are used to transform bean property names from standard form to some other form.
-               <br>For example, the <a href="org/apache/juneau/PropertyNamerDLC.html" title="class in org.apache.juneau"><code>PropertyNamerDLC</code></a> will convert property names to 
-               dashed-lowercase, and these will be used as attribute names in JSON and element names in XML.
-            </p>
-            <p>
-            <p class='bcode'>
+         </p>
+         <p>
+            The <a href="org/apache/juneau/annotation/Bean.html#propertyNamer--"><code>@Bean.propertyNamer()</code></a> annotation
+            is used to provide customized naming of properties.
+         </p>
+         <p>
+            Property namers are used to transform bean property names from standard form to some other form.
+            <br>For example, the <a href="org/apache/juneau/PropertyNamerDLC.html" title="class in org.apache.juneau"><code>PropertyNamerDLC</code></a> will convert property names to 
+            dashed-lowercase, and these will be used as attribute names in JSON and element names in XML.
+         </p>
+         <p>
+         <p class='bcode'>
    <jc>// Define a class with dashed-lowercase property names.</jc>
    <ja>@Bean</ja>(propertyNamer=PropertyNamerDashedLC.<jk>class</jk>)
    <jk>public class</jk> MyBean { ... }
-            </p>
-            <p>
-               The <a href="org/apache/juneau/annotation/Bean.html#interfaceClass--"><code>@Bean.interfaceClass()</code></a> annotation is used
-               to limit properties on beans to specific interface classes.
-               <br>When specified, only the list of properties defined on the interface class will be used during 
-               serialization.
-               <br>Additional properties on subclasses will be ignored.
-            </p>
-            <p class='bcode'>
+         </p>
+         <p>
+            The <a href="org/apache/juneau/annotation/Bean.html#interfaceClass--"><code>@Bean.interfaceClass()</code></a> annotation is used
+            to limit properties on beans to specific interface classes.
+            <br>When specified, only the list of properties defined on the interface class will be used during 
+            serialization.
+            <br>Additional properties on subclasses will be ignored.
+         </p>
+         <p class='bcode'>
    <jc>// Parent class</jc>
    <ja>@Bean</ja>(interfaceClass=A.<jk>class</jk>)
    <jk>public abstract class</jk> A {
@@ -2311,22 +2276,22 @@
    A1 a1 = <jk>new</jk> A1();
    String r = s.serialize(a1);
    <jsm>assertEquals</jsm>(<js>"{f0:'f0'}"</js>, r);  <jc>// Note f1 is not serialized.</jc>
-            </p>
-            <p>
-               Note that this annotation can be used on the parent class so that it filters to all child classes.
-               <br>Or can be set individually on the child classes.
-            </p>
-            <p>
-               The <a href="org/apache/juneau/annotation/Bean.html#stopClass--"><code>@Bean.stopClass()</code></a> annotation is another
-               way to limit which properties are serialized (except from the opposite direction).
-               <br>It's identical in purpose to the stop class specified by <a href="http://docs.oracle.com/javase/7/docs/api/java/beans/Introspector.html?is-external=true#getBeanInfo-java.lang.Class-java.lang.Class-" title="class or interface in java.beans"><code>Introspector.getBeanInfo(Class, Class)</code></a>.
-               <br>Any properties in the stop class or in its base classes will be ignored during analysis.
-            </p>
-            <p>
-               For example, in the following class hierarchy, instances of <code>C3</code> will include property 
-               <code>p3</code>, but not <code>p1</code> or <code>p2</code>.
-            </p>
-            <p class='bcode'>
+         </p>
+         <p>
+            Note that this annotation can be used on the parent class so that it filters to all child classes.
+            <br>Or can be set individually on the child classes.
+         </p>
+         <p>
+            The <a href="org/apache/juneau/annotation/Bean.html#stopClass--"><code>@Bean.stopClass()</code></a> annotation is another
+            way to limit which properties are serialized (except from the opposite direction).
+            <br>It's identical in purpose to the stop class specified by <a href="http://docs.oracle.com/javase/7/docs/api/java/beans/Introspector.html?is-external=true#getBeanInfo-java.lang.Class-java.lang.Class-" title="class or interface in java.beans"><code>Introspector.getBeanInfo(Class, Class)</code></a>.
+            <br>Any properties in the stop class or in its base classes will be ignored during analysis.
+         </p>
+         <p>
+            For example, in the following class hierarchy, instances of <code>C3</code> will include property 
+            <code>p3</code>, but not <code>p1</code> or <code>p2</code>.
+         </p>
+         <p class='bcode'>
    <jk>public class</jk> C1 {
       <jk>public int</jk> getP1();
    }
@@ -2339,13 +2304,13 @@
    <jk>public class</jk> C3 <jk>extends</jk> C2 {
       <jk>public int</jk> getP3();
    }
-            </p>
-            <p>
-               The <a href="org/apache/juneau/annotation/Bean.html#propertyFilter--"><code>@Bean.propertyFilter()</code></a> annotation
-               and <a href="org/apache/juneau/transform/PropertyFilter.html" title="class in org.apache.juneau.transform"><code>PropertyFilter</code></a> class can be used to perform interception
-               and inline handling of bean getter and setter calls.
-            </p>
-            <p class='bcode'>
+         </p>
+         <p>
+            The <a href="org/apache/juneau/annotation/Bean.html#propertyFilter--"><code>@Bean.propertyFilter()</code></a> annotation
+            and <a href="org/apache/juneau/transform/PropertyFilter.html" title="class in org.apache.juneau.transform"><code>PropertyFilter</code></a> class can be used to perform interception
+            and inline handling of bean getter and setter calls.
+         </p>
+         <p class='bcode'>
    <jc>// Register filter on bean class.</jc>
    <ja>@Bean</ja>(propertyFilter=AddressPropertyFilter.<jk>class</jk>)
    <jk>public class</jk> Address {
@@ -2371,50 +2336,50 @@
          <jk>return</jk> value;
       }
    }  
-            </p>
-         </div>
+         </p>
+      </div>
 
-         <!-- =================================================================================================== -->
-         <a id="juneau-marshall.BeanPropertyAnnotation"></a>
-         <h4 class='topic' onclick='toggle(this)'>2.1.7.9 - @BeanProperty Annotation</h4>
-         <div class='topic'>
-            <p>
-               The <a href="org/apache/juneau/annotation/BeanProperty.html" title="annotation in org.apache.juneau.annotation"><code>@BeanProperty</code></a> annotation is used to tailor how 
-               individual bean properties are interpreted by the framework.
-            </p>
-            <p>
-               The <a href="org/apache/juneau/annotation/BeanProperty.html#name--"><code>@BeanProperty.name()</code></a> annotation
-               is used to override the name of the bean property.
-            </p>
-            <p class='bcode'>
+      <!-- =================================================================================================== -->
+      <a id="juneau-marshall.BeanPropertyAnnotation"></a>
+      <h4 class='topic' onclick='toggle(this)'>2.7.9 - @BeanProperty Annotation</h4>
+      <div class='topic'>
+         <p>
+            The <a href="org/apache/juneau/annotation/BeanProperty.html" title="annotation in org.apache.juneau.annotation"><code>@BeanProperty</code></a> annotation is used to tailor how 
+            individual bean properties are interpreted by the framework.
+         </p>
+         <p>
+            The <a href="org/apache/juneau/annotation/BeanProperty.html#name--"><code>@BeanProperty.name()</code></a> annotation
+            is used to override the name of the bean property.
+         </p>
+         <p class='bcode'>
    <jk>public class</jk> MyBean {
       <ja>@BeanProperty</ja>(name=<js>"Bar"</js>)
       <jk>public</jk> String getFoo() {...}
    }
-            </p>
-            <p>
-               If the <a href="org/apache/juneau/BeanContext.html#BEAN_beanFieldVisibility"><code>BeanContext.BEAN_beanFieldVisibility</code></a> setting on the bean context excludes this field 
-               (e.g. the visibility is set to the default of PUBLIC, but the field is PROTECTED), this annotation 
-               can be used to force the field to be identified as a property.
-            </p>
-            <p class='bcode'>
+         </p>
+         <p>
+            If the <a href="org/apache/juneau/BeanContext.html#BEAN_beanFieldVisibility"><code>BeanContext.BEAN_beanFieldVisibility</code></a> setting on the bean context excludes this field 
+            (e.g. the visibility is set to the default of PUBLIC, but the field is PROTECTED), this annotation 
+            can be used to force the field to be identified as a property.
+         </p>
+         <p class='bcode'>
    <jk>public class</jk> MyBean {
       <ja>@BeanProperty</ja>
       <jk>protected</jk> String getFoo() {...}
    }
-            </p>
-            <p>
-               The bean property named <js>"*"</js> is the designated "dynamic property" which allows for "extra" bean
-               properties not otherwise defined.
-               <br>This is similar in concept to the Jackson <ja>@JsonGetterAll</ja> and <ja>@JsonSetterAll</ja> 
-               annotations, but generalized for all supported marshall languages.
-               <br>The primary purpose is for backwards compatibility in parsing newer streams with addition 
-               information into older beans.
-            </p>
-            <p>
-               The following shows various ways of using dynamic bean properties.
-            </p>
-            <p class='bcode'>
+         </p>
+         <p>
+            The bean property named <js>"*"</js> is the designated "dynamic property" which allows for "extra" bean
+            properties not otherwise defined.
+            <br>This is similar in concept to the Jackson <ja>@JsonGetterAll</ja> and <ja>@JsonSetterAll</ja> 
+            annotations, but generalized for all supported marshall languages.
+            <br>The primary purpose is for backwards compatibility in parsing newer streams with addition 
+            information into older beans.
+         </p>
+         <p>
+            The following shows various ways of using dynamic bean properties.
+         </p>
+         <p class='bcode'>
    <jc>// Option #1 - A simple public Map field.</jc>
    <jc>// The field name can be anything.</jc>
    <jk>public class</jk> BeanWithDynaField {
@@ -2449,12 +2414,12 @@
          ...
       }
    }
-            </p>
-            <p>
-               Similar rules apply for value types and swaps.
-               <br>The property values optionally can be any serializable type or use swaps.
-            </p>
-            <p class='bcode'>
+         </p>
+         <p>
+            Similar rules apply for value types and swaps.
+            <br>The property values optionally can be any serializable type or use swaps.
+         </p>
+         <p class='bcode'>
    <jc>// A serializable type other than Object.</jc>
    <jk>public class</jk> BeanWithDynaFieldWithListValues {
 
@@ -2472,70 +2437,70 @@
          ...
       }
    }
-            </p>
-            <ul class='doctree'>
-               <li class='info'>
-                  Note that if you're not interested in these additional properties, you can also use the
-                  <a href="org/apache/juneau/BeanContext.html#BEAN_ignoreUnknownBeanProperties"><code>BeanContext.BEAN_ignoreUnknownBeanProperties</code></a> setting to ignore values 
-                  that don't fit into existing properties.
-            </ul>
-            <p>
-               The <a href="org/apache/juneau/annotation/BeanProperty.html#value--"><code>@BeanProperty.value()</code></a> annotation
-               is a synonym for <a href="org/apache/juneau/annotation/BeanProperty.html#name--"><code>@BeanProperty.name()</code></a>.
-               <br>Use it in cases where you're only specifying a name so that you can shorten your annotation.
-            </p>
-            <p>
-               The following annotations are equivalent:
-            </p>
-            <p class='bcode'>
+         </p>
+         <ul class='doctree'>
+            <li class='info'>
+               Note that if you're not interested in these additional properties, you can also use the
+               <a href="org/apache/juneau/BeanContext.html#BEAN_ignoreUnknownBeanProperties"><code>BeanContext.BEAN_ignoreUnknownBeanProperties</code></a> setting to ignore values 
+               that don't fit into existing properties.
+         </ul>
+         <p>
+            The <a href="org/apache/juneau/annotation/BeanProperty.html#value--"><code>@BeanProperty.value()</code></a> annotation
+            is a synonym for <a href="org/apache/juneau/annotation/BeanProperty.html#name--"><code>@BeanProperty.name()</code></a>.
+            <br>Use it in cases where you're only specifying a name so that you can shorten your annotation.
+         </p>
+         <p>
+            The following annotations are equivalent:
+         </p>
+         <p class='bcode'>
    <ja>@BeanProperty</ja>(name=<js>"foo"</js>)
 
    <ja>@BeanProperty</ja>(<js>"foo"</js>)
-            </p>
-            <p>
-               The <a href="org/apache/juneau/annotation/BeanProperty.html#type--"><code>@BeanProperty.type()</code></a> annotation
-               is used to identify a specialized class type for a generalized property.
-               <br>Normally the type is inferred through reflection of the field type or getter return type.
-               <br>However, you'll want to specify this value if you're parsing beans where the bean property class 
-               is an interface or abstract class to identify the bean type to instantiate.
-               <br>Otherwise, you may cause an <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InstantiationException.html?is-external=true" title="class or interface in java.lang"><code>InstantiationException</code></a> when trying to set these fields.
-            </p>
-            <p>
-               This property must denote a concrete class with a no-arg constructor.
-            </p>
-            <p class='bcode'>
+         </p>
+         <p>
+            The <a href="org/apache/juneau/annotation/BeanProperty.html#type--"><code>@BeanProperty.type()</code></a> annotation
+            is used to identify a specialized class type for a generalized property.
+            <br>Normally the type is inferred through reflection of the field type or getter return type.
+            <br>However, you'll want to specify this value if you're parsing beans where the bean property class 
+            is an interface or abstract class to identify the bean type to instantiate.
+            <br>Otherwise, you may cause an <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/InstantiationException.html?is-external=true" title="class or interface in java.lang"><code>InstantiationException</code></a> when trying to set these fields.
+         </p>
+         <p>
+            This property must denote a concrete class with a no-arg constructor.
+         </p>
+         <p class='bcode'>
    <jk>public class</jk> MyBean {
 
       <jc>// Identify concrete type as a HashMap.</jc>
       <ja>@BeanProperty</ja>(type=HashMap.<jk>class</jk>)
       <jk>public</jk> Map <jf>p1</jf>;
-            </p>
-            <p>
-               The <a href="org/apache/juneau/annotation/BeanProperty.html#params--"><code>@BeanProperty.params()</code></a> annotation
-               is for bean properties of type map or collection.
-               <br>It's used to identify the class types of the contents of the bean property object when
-               the general parameter types are interfaces or abstract classes.
-            </p>
-            <p class='bcode'>
+         </p>
+         <p>
+            The <a href="org/apache/juneau/annotation/BeanProperty.html#params--"><code>@BeanProperty.params()</code></a> annotation
+            is for bean properties of type map or collection.
+            <br>It's used to identify the class types of the contents of the bean property object when
+            the general parameter types are interfaces or abstract classes.
+         </p>
+         <p class='bcode'>
    <jk>public class</jk> MyBean {
 
       <jc>// This is a HashMap&lt;String,Integer&gt;.</jc>
       <ja>@BeanProperty</ja>(type=HashMap.<jk>class</jk>, params={String.<jk>class</jk>,Integer.<jk>class</jk>})
       <jk>public</jk> Map <jf>p1</jf>;
    }
-            </p>
-            <p>
-               The <a href="org/apache/juneau/annotation/BeanProperty.html#properties--"><code>@BeanProperty.properties()</code></a> 
-               annotation is used to limit which child properties are rendered by the serializers.
-               <br>It can be used on any of the following bean property types:
-            </p>
-            <ul class='spaced-list'>
-               <li>Beans - Only render the specified properties of the bean.
-               <li>Maps - Only render the specified entries in the map.
-               <li>Bean/Map arrays - Same, but applied to each element in the array.
-               <li>Bean/Map collections - Same, but applied to each element in the collection.
-            </ul>
-            <p class='bcode'>
+         </p>
+         <p>
+            The <a href="org/apache/juneau/annotation/BeanProperty.html#properties--"><code>@BeanProperty.properties()</code></a> 
+            annotation is used to limit which child properties are rendered by the serializers.
+            <br>It can be used on any of the following bean property types:
+         </p>
+         <ul class='spaced-list'>
+            <li>Beans - Only render the specified properties of the bean.
+            <li>Maps - Only render the specified entries in the map.
+            <li>Bean/Map arrays - Same, but applied to each element in the array.
+            <li>Bean/Map collections - Same, but applied to each element in the collection.
+         </ul>
+         <p class='bcode'>
    <jk>public class</jk> MyClass {
 
       <jc>// Only render 'f1' when serializing this bean property.</jc>
@@ -2550,32 +2515,32 @@
 
    <jc>// Renders "{x1:{f1:1}}"</jc>
    String json = JsonSerializer.<jsf>DEFAULT</jsf>.serialize(<jk>new</jk> MyClass());
-            </p>
-            <p>
-               The <a href="org/apache/juneau/annotation/BeanProperty.html#format--"><code>@BeanProperty.format()</code></a> 
-               annotation specifies a String format for converting a bean property value to a formatted string.
-            </p>
-            <p class='bcode'>
+         </p>
+         <p>
+            The <a href="org/apache/juneau/annotation/BeanProperty.html#format--"><code>@BeanProperty.format()</code></a> 
+            annotation specifies a String format for converting a bean property value to a formatted string.
+         </p>
+         <p class='bcode'>
    <jc>// Serialize a float as a string with 2 decimal places.</jc>
    <ja>@BeanProperty</ja>(format=<js>"$%.2f"</js>)
    <jk>public float</jk> <jf>price</jf>;
-            </p>
-         </div>
+         </p>
+      </div>
 
-         <!-- =================================================================================================== -->
-         <a id="juneau-marshall.BeanConstructorAnnotation"></a>
-         <h4 class='topic' onclick='toggle(this)'>2.1.7.10 - @BeanConstructor Annotation</h4>
-         <div class='topic'>
-            <p>
-               The <a href="org/apache/juneau/annotation/BeanConstructor.html" title="annotation in org.apache.juneau.annotation"><code>@BeanConstructor</code></a> annotation is used to 
-               map constructor arguments to property names on bean with read-only properties.
-               <br>Since method parameter names are lost during compilation, this annotation essentially redefines 
-               them so that they are available at runtime.
-            </p>
-            <p>
-               The definition of a read-only bean is a bean with properties with only getters, like shown below:
-            </p>  
-            <p class='bcode'>
+      <!-- =================================================================================================== -->
+      <a id="juneau-marshall.BeanConstructorAnnotation"></a>
+      <h4 class='topic' onclick='toggle(this)'>2.7.10 - @BeanConstructor Annotation</h4>
+      <div class='topic'>
+         <p>
+            The <a href="org/apache/juneau/annotation/BeanConstructor.html" title="annotation in org.apache.juneau.annotation"><code>@BeanConstructor</code></a> annotation is used to 
+            map constructor arguments to property names on bean with read-only properties.
+            <br>Since method parameter names are lost during compilation, this annotation essentially redefines 
+            them so that they are available at runtime.
+         </p>
+         <p>
+            The definition of a read-only bean is a bean with properties with only getters, like shown below:
+         </p>  
+         <p class='bcode'>
    <jc>// Our read-only bean.</jc>
    <jk>public class</jk> Person {
       <jk>private final</jk> String <jf>name</jf>;
@@ -2598,39 +2563,39 @@
          <jk>return</jk> <jf>age</jf>;
       }
    }        
-            </p>
-            <p class='bcode'>
+         </p>
+         <p class='bcode'>
    <jc>// Parsing into a read-only bean.</jc>
    String json = <js>"{name:'John Smith',age:45}"</js>;
    Person p = JsonParser.<jsf>DEFAULT</jsf>.parse(json);
    String name = p.getName();  <jc>// "John Smith"</jc>
    <jk>int</jk> age = p.getAge();   <jc>// 45</jc>
-            </p>
-            <p>
-               Beans can also be defined with a combination of read-only and read-write properties.
-            </p>
-         </div>
+         </p>
+         <p>
+            Beans can also be defined with a combination of read-only and read-write properties.
+         </p>
+      </div>
 
-         <!-- =================================================================================================== -->
-         <a id="juneau-marshall.BeanIgnoreAnnotation"></a>
-         <h4 class='topic' onclick='toggle(this)'>2.1.7.11 - @BeanIgnore Annotation</h4>
-         <div class='topic'>
-            <p>
-               The <a href="org/apache/juneau/annotation/BeanIgnore.html" title="annotation in org.apache.juneau.annotation"><code>@BeanIgnore</code></a> annotation is used to
-               ignore classes, fields, and methods from being interpreted as beans or bean components.
-            </p> 
-            <p>
-               When applied to classes, objects will be converted to strings even though they look like beans.
-            </p>
-            <p class='bcode'>
+      <!-- =================================================================================================== -->
+      <a id="juneau-marshall.BeanIgnoreAnnotation"></a>
+      <h4 class='topic' onclick='toggle(this)'>2.7.11 - @BeanIgnore Annotation</h4>
+      <div class='topic'>
+         <p>
+            The <a href="org/apache/juneau/annotation/BeanIgnore.html" title="annotation in org.apache.juneau.annotation"><code>@BeanIgnore</code></a> annotation is used to
+            ignore classes, fields, and methods from being interpreted as beans or bean components.
+         </p> 
+         <p>
+            When applied to classes, objects will be converted to strings even though they look like beans.
+         </p>
+         <p class='bcode'>
    <jc>// Not really a bean!  Use toString() instead!</jc>
    <ja>@BeanIgnore</ja>
    <jk>public class</jk> MyBean {...}
-            </p>
-            <p>
-               When applied to fields and getters/setters, they will be ignored as bean properties.
-            </p>
-            <p class='bcode'>
+         </p>
+         <p>
+            When applied to fields and getters/setters, they will be ignored as bean properties.
+         </p>
+         <p class='bcode'>
    <jk>public class</jk> MyBean {
       
       <jc>// Not a bean property!</jc>
@@ -2641,22 +2606,22 @@
       <ja>@BeanIgnore</ja>
       <jk>public</jk> String getBar() {...}
    }
-            </p>
-         </div>
+         </p>
+      </div>
 
-         <!-- =================================================================================================== -->
-         <a id="juneau-marshall.NamePropertyAnnotation"></a>
-         <h4 class='topic' onclick='toggle(this)'>2.1.7.12 - @NameProperty Annotation</h4>
-         <div class='topic'>
-            <p>
-               The <a href="org/apache/juneau/annotation/NameProperty.html" title="annotation in org.apache.juneau.annotation"><code>@NameProperty</code></a> annotation is used to
-               identify a setter as a method for setting the name of a POJO as it's known by its parent object.
-            </p>
-            <p>
-               A commonly-used case is when you're parsing a JSON map containing beans where one of the bean 
-               properties is the key used in the map.
-            </p>
-            <p class='bcode'>
+      <!-- =================================================================================================== -->
+      <a id="juneau-marshall.NamePropertyAnnotation"></a>
+      <h4 class='topic' onclick='toggle(this)'>2.7.12 - @NameProperty Annotation</h4>
+      <div class='topic'>
+         <p>
+            The <a href="org/apache/juneau/annotation/NameProperty.html" title="annotation in org.apache.juneau.annotation"><code>@NameProperty</code></a> annotation is used to
+            identify a setter as a method for setting the name of a POJO as it's known by its parent object.
+         </p>
+         <p>
+            A commonly-used case is when you're parsing a JSON map containing beans where one of the bean 
+            properties is the key used in the map.
+         </p>
+         <p class='bcode'>
    <jc>// JSON</jc> 
    {
       id1: {name: <js>'John Smith'</js>, sex:<js>'M'</js>},
@@ -2673,21 +2638,21 @@
       
       <jk>public char</jk> <jf>sex</jf>;
    }
-            </p>
-         </div>
+         </p>
+      </div>
 
-         <!-- =================================================================================================== -->
-         <a id="juneau-marshall.ParentPropertyAnnotation"></a>
-         <h4 class='topic' onclick='toggle(this)'>2.1.7.13 - @ParentProperty Annotation</h4>
-         <div class='topic'>
-            <p>
-               The <a href="org/apache/juneau/annotation/ParentProperty.html" title="annotation in org.apache.juneau.annotation"><code>@ParentProperty</code></a> annotation is used to
-               identify a setter as a method for adding a parent reference to a child object.
-            </p>
-            <p>
-               A commonly-used case is when you're parsing beans and a child bean has a reference to a parent bean.
-            </p>
-            <p class='bcode'>
+      <!-- =================================================================================================== -->
+      <a id="juneau-marshall.ParentPropertyAnnotation"></a>
+      <h4 class='topic' onclick='toggle(this)'>2.7.13 - @ParentProperty Annotation</h4>
+      <div class='topic'>
+         <p>
+            The <a href="org/apache/juneau/annotation/ParentProperty.html" title="annotation in org.apache.juneau.annotation"><code>@ParentProperty</code></a> annotation is used to
+            identify a setter as a method for adding a parent reference to a child object.
+         </p>
+         <p>
+            A commonly-used case is when you're parsing beans and a child bean has a reference to a parent bean.
+         </p>
+         <p class='bcode'>
    <jk>public class</jk> AddressBook {
       <jk>public</jk> List&lt;Person&gt; <jf>people</jf>;
    }
@@ -2701,26 +2666,26 @@
       
       <jk>public char</jk> <jf>sex</jf>;
    }
-            </p>
-            <p>
-               Parsers will automatically set this field for you in the child beans.
-            </p>
-         </div>
+         </p>
+         <p>
+            Parsers will automatically set this field for you in the child beans.
+         </p>
+      </div>
 
-         <!-- =================================================================================================== -->
-         <a id="juneau-marshall.PojoBuilders"></a>
-         <h4 class='topic' onclick='toggle(this)'>2.1.7.14 - POJO Builders</h4>
-         <div class='topic'>
-            <p>
-               Juneau parsers can use builders to instantiate POJOs.
-               <br>This is useful in cases where you want to create beans with read-only properties.
-               <br>Note that while it's possible to do this using the <a href="org/apache/juneau/annotation/BeanConstructor.html" title="annotation in org.apache.juneau.annotation"><code>@BeanConstructor</code></a>
-               annotation, using builders can often be cleaner.
-            </p>
-            <p>
-               A typical builder usage is shown below:
-            </p>
-            <p class='bcode'>
+      <!-- =================================================================================================== -->
+      <a id="juneau-marshall.PojoBuilders"></a>
+      <h4 class='topic' onclick='toggle(this)'>2.7.14 - POJO Builders</h4>
+      <div class='topic'>
+         <p>
+            Juneau parsers can use builders to instantiate POJOs.
+            <br>This is useful in cases where you want to create beans with read-only properties.
+            <br>Note that while it's possible to do this using the <a href="org/apache/juneau/annotation/BeanConstructor.html" title="annotation in org.apache.juneau.annotation"><code>@BeanConstructor</code></a>
+            annotation, using builders can often be cleaner.
+         </p>
+         <p>
+            A typical builder usage is shown below:
+         </p>
+         <p class='bcode'>
    MyBean b = MyBean.<jsm>create</jsm>().foo(<js>"foo"</js>).bar(123).build();
             </p>                       
             <p>
@@ -2769,70 +2734,70 @@
          }
       }
    }
-            </p>
-            <p>
-               The POJO class can be any type including beans.
-               <br>Builders MUST be beans with one or more writable properties.
-               <br>The bean properties themselves do not need to be readable (i.e. getters are optional).
-            </p>
-            <p>
-               Builders require two parts:
-            </p>
-            <ol>
-               <li>A way to detect and instantiate a builder using reflection.
-               <li>A way to instantiate a POJO from a builder.
-            </ol>
-            <p>
-               The first can be accomplished through any of the following:
-            </p>
-            <ul class='spaced-list'>
-               <li>A static <code>create()</code> method on the POJO class that returns a builder instance.
-                  <p class='bcode'>
+         </p>
+         <p>
+            The POJO class can be any type including beans.
+            <br>Builders MUST be beans with one or more writable properties.
+            <br>The bean properties themselves do not need to be readable (i.e. getters are optional).
+         </p>
+         <p>
+            Builders require two parts:
+         </p>
+         <ol>
+            <li>A way to detect and instantiate a builder using reflection.
+            <li>A way to instantiate a POJO from a builder.
+         </ol>
+         <p>
+            The first can be accomplished through any of the following:
+         </p>
+         <ul class='spaced-list'>
+            <li>A static <code>create()</code> method on the POJO class that returns a builder instance.
+               <p class='bcode'>
    <jk>public static</jk> MyBuilder <jsm>create</jsm>() {...}
-                  </p>
-               <li>A public constructor on the POJO class that takes in a single parameter that implements the <a href="org/apache/juneau/transform/Builder.html" title="interface in org.apache.juneau.transform"><code>Builder</code></a> interface.
-                  <br>The builder class must have a public no-arg constructor.
-                  <p class='bcode'>
+               </p>
+            <li>A public constructor on the POJO class that takes in a single parameter that implements the <a href="org/apache/juneau/transform/Builder.html" title="interface in org.apache.juneau.transform"><code>Builder</code></a> interface.
+               <br>The builder class must have a public no-arg constructor.
+               <p class='bcode'>
    <jk>public</jk> MyPojo(MyBuilder b) {...}
-                  </p>
-               <li>A <a href="org/apache/juneau/annotation/Builder.html" title="annotation in org.apache.juneau.annotation"><code>@Builder</code></a> annotation on the POJO class.
-                  <br>The builder class must have a public no-arg constructor.
-                  <p class='bcode'>
+               </p>
+            <li>A <a href="org/apache/juneau/annotation/Builder.html" title="annotation in org.apache.juneau.annotation"><code>@Builder</code></a> annotation on the POJO class.
+               <br>The builder class must have a public no-arg constructor.
+               <p class='bcode'>
    <ja>@Builder</ja>(MyBuilder.<jk>class</jk>)
    <jk>public class</jk> MyPojo {...}
-                  </p>
-            </ul>
-            <p>
-               The second can be accomplished through any of the following:
-            </p>
-            <ul class='spaced-list'>
-               <li>The existence of a <code>build()</code> method on the builder class.
-                  <p class='bcode'>
+               </p>
+         </ul>
+         <p>
+            The second can be accomplished through any of the following:
+         </p>
+         <ul class='spaced-list'>
+            <li>The existence of a <code>build()</code> method on the builder class.
+               <p class='bcode'>
    <jk>public</jk> MyPojo build() {...}
-                  </p>
-               <li>The existence of a public constructor on the POJO class that takes in the builder instance.
-                  <p class='bcode'>
+               </p>
+            <li>The existence of a public constructor on the POJO class that takes in the builder instance.
+               <p class='bcode'>
    <jk>public</jk> MyPojo(MyBuilder b) {...}
-                  </p>
-            </ul>
-            <h5 class='section'>See Also:</h5>
-            <ul>
-               <li class='ja'><a href="org/apache/juneau/annotation/Builder.html" title="annotation in org.apache.juneau.annotation"><code>Builder</code></a>
-               <li class='jic'><a href="org/apache/juneau/transform/Builder.html" title="interface in org.apache.juneau.transform"><code>Builder</code></a>
-            </ul>
-         </div>
-         
-         <!-- =================================================================================================== -->
-         <a id="juneau-marshall.URIs"></a>
-         <h4 class='topic' onclick='toggle(this)'>2.1.7.15 - URIs</h4>
-         <div class='topic'>
-            <p>
-               Juneau serializers have sophisticated support for transforming relative URIs to absolute form.
-            </p>
-            <p>
-               The following example shows a bean containing URIs of various forms and how they end up serialized. 
-            </p>
-            <p class='bcode'>
+               </p>
+         </ul>
+         <h5 class='section'>See Also:</h5>
+         <ul>
+            <li class='ja'><a href="org/apache/juneau/annotation/Builder.html" title="annotation in org.apache.juneau.annotation"><code>Builder</code></a>
+            <li class='jic'><a href="org/apache/juneau/transform/Builder.html" title="interface in org.apache.juneau.transform"><code>Builder</code></a>
+         </ul>
+      </div>
+      
+      <!-- =================================================================================================== -->
+      <a id="juneau-marshall.URIs"></a>
+      <h4 class='topic' onclick='toggle(this)'>2.7.15 - URIs</h4>
+      <div class='topic'>
+         <p>
+            Juneau serializers have sophisticated support for transforming relative URIs to absolute form.
+         </p>
+         <p>
+            The following example shows a bean containing URIs of various forms and how they end up serialized. 
+         </p>
+         <p class='bcode'>
    <jc>// Our bean with properties containing various kinds of URIs.</jc>
    <jk>public class</jk> TestURIs {
       <jk>public</jk> URI
@@ -2888,46 +2853,46 @@
    <jc>//   f4d:'http://foo.com:123/myContext/myServlet',</jc>
    <jc>// }</jc>
    String json = s.serialize(<jk>new</jk> TestURIs());
-            </p>
-            <p>
-               URI resolution is controlled by the following settings:
-            </p>
-            <ul class='doctree'>
-               <li class='jf'><a href="org/apache/juneau/serializer/Serializer.html#SERIALIZER_uriContext"><code>Serializer.SERIALIZER_uriContext</code></a>
-                  <br>Setting that defines the URI contextual information used to resolve relative URIs.
-               <li class='jf'><a href="org/apache/juneau/serializer/Serializer.html#SERIALIZER_uriRelativity"><code>Serializer.SERIALIZER_uriRelativity</code></a>
-                  <br>Setting that defines how relative URIs should be interpreted.
-                  <br>Possible values:
-                  <ul>
-                     <li class='jf'><a href="org/apache/juneau/UriRelativity.html#RESOURCE"><code>UriRelativity.RESOURCE</code></a>
-                        <br>Relative URIs should be considered relative to the servlet URI.
-                        <br>(e.g. <js>"http://host:port/context-root/servlet-path"</js>).
-                     <li class='jf'><a href="org/apache/juneau/UriRelativity.html#PATH_INFO"><code>UriRelativity.PATH_INFO</code></a>
-                        <br>Relative URIs should be considered relative to the request URI.
-                        <br>(e.g. <js>"http://host:port/context-root/servlet-path/path-info"</js>).
-                  </ul>
-               <li class='jf'><a href="org/apache/juneau/serializer/Serializer.html#SERIALIZER_uriResolution"><code>Serializer.SERIALIZER_uriResolution</code></a>
-                  <br>Setting that defines the final format of serialized URIs.
-                  <br>Possible values:
-                  <ul>
-                     <li class='jf'><a href="org/apache/juneau/UriResolution.html#ABSOLUTE"><code>UriResolution.ABSOLUTE</code></a>
-                        <br>Resolve to an absolute URL.
-                        <br>(e.g. <js>"http://host:port/context-root/servlet-path/path-info"</js>).
-                     <li class='jf'><a href="org/apache/juneau/UriResolution.html#ROOT_RELATIVE"><code>UriResolution.ROOT_RELATIVE</code></a>
-                        <br>Resolve to a root-relative URL.
-                        <br>(e.g. <js>"/context-root/servlet-path/path-info"</js>).
-                     <li class='jf'><a href="org/apache/juneau/UriResolution.html#NONE"><code>UriResolution.NONE</code></a>
-                        <br>Don't do any URL resolution.
-                  </ul>
-            </ul>
-            <p>
-               Juneau automatically interprets any <a href="http://docs.oracle.com/javase/7/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net"><code>URL</code></a> and <a href="http://docs.oracle.com/javase/7/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net"><code>URI</code></a> objects as URIs and will
-               resolve them accordingly.
-               <br>The <a href="org/apache/juneau/annotation/URI.html" title="annotation in org.apache.juneau.annotation"><code>@URI</code></a> annotation can be used to extend that to other bean 
-               properties and class types so that they also get interpreted as URIs.
-               <br>For example:
-            </p>
-            <p class='bcode'>
+         </p>
+         <p>
+            URI resolution is controlled by the following settings:
+         </p>
+         <ul class='doctree'>
+            <li class='jf'><a href="org/apache/juneau/serializer/Serializer.html#SERIALIZER_uriContext"><code>Serializer.SERIALIZER_uriContext</code></a>
+               <br>Setting that defines the URI contextual information used to resolve relative URIs.
+            <li class='jf'><a href="org/apache/juneau/serializer/Serializer.html#SERIALIZER_uriRelativity"><code>Serializer.SERIALIZER_uriRelativity</code></a>
+               <br>Setting that defines how relative URIs should be interpreted.
+               <br>Possible values:
+               <ul>
+                  <li class='jf'><a href="org/apache/juneau/UriRelativity.html#RESOURCE"><code>UriRelativity.RESOURCE</code></a>
+                     <br>Relative URIs should be considered relative to the servlet URI.
+                     <br>(e.g. <js>"http://host:port/context-root/servlet-path"</js>).
+                  <li class='jf'><a href="org/apache/juneau/UriRelativity.html#PATH_INFO"><code>UriRelativity.PATH_INFO</code></a>
+                     <br>Relative URIs should be considered relative to the request URI.
+                     <br>(e.g. <js>"http://host:port/context-root/servlet-path/path-info"</js>).
+               </ul>
+            <li class='jf'><a href="org/apache/juneau/serializer/Serializer.html#SERIALIZER_uriResolution"><code>Serializer.SERIALIZER_uriResolution</code></a>
+               <br>Setting that defines the final format of serialized URIs.
+               <br>Possible values:
+               <ul>
+                  <li class='jf'><a href="org/apache/juneau/UriResolution.html#ABSOLUTE"><code>UriResolution.ABSOLUTE</code></a>
+                     <br>Resolve to an absolute URL.
+                     <br>(e.g. <js>"http://host:port/context-root/servlet-path/path-info"</js>).
+                  <li class='jf'><a href="org/apache/juneau/UriResolution.html#ROOT_RELATIVE"><code>UriResolution.ROOT_RELATIVE</code></a>
+                     <br>Resolve to a root-relative URL.
+                     <br>(e.g. <js>"/context-root/servlet-path/path-info"</js>).
+                  <li class='jf'><a href="org/apache/juneau/UriResolution.html#NONE"><code>UriResolution.NONE</code></a>
+                     <br>Don't do any URL resolution.
+               </ul>
+         </ul>
+         <p>
+            Juneau automatically interprets any <a href="http://docs.oracle.com/javase/7/docs/api/java/net/URL.html?is-external=true" title="class or interface in java.net"><code>URL</code></a> and <a href="http://docs.oracle.com/javase/7/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net"><code>URI</code></a> objects as URIs and will
+            resolve them accordingly.
+            <br>The <a href="org/apache/juneau/annotation/URI.html" title="annotation in org.apache.juneau.annotation"><code>@URI</code></a> annotation can be used to extend that to other bean 
+            properties and class types so that they also get interpreted as URIs.
+            <br>For example:
+         </p>
+         <p class='bcode'>
    <jc>// Applied to a class whose toString() method returns a URI.</jc>
    <ja>@URI</ja>
    <jk>public class</jk> MyURI {
@@ -2948,37 +2913,37 @@
          ...
       }
    }
-            </p>
-         </div>
+         </p>
+      </div>
 
-         <!-- ======================================================================================================= -->
-         <a id="juneau-marshall.BeanFilters"></a>
-         <h4 class='topic' onclick='toggle(this)'>2.1.7.16 - BeanFilter Class</h4>
-         <div class='topic'>
-            <p>
-               The <a href="org/apache/juneau/transform/BeanFilter.html" title="class in org.apache.juneau.transform"><code>BeanFilter</code></a> class is the programmatic equivalent to the
-               <a href="org/apache/juneau/annotation/Bean.html" title="annotation in org.apache.juneau.annotation"><code>@Bean</code></a> annotation.
-            </p>
-            <p>
-               In practice, it's usually simpler to use the <a href="org/apache/juneau/annotation/Bean.html" title="annotation in org.apache.juneau.annotation"><code>@Bean</code></a> and 
-               <a href="org/apache/juneau/annotation/BeanProperty.html" title="annotation in org.apache.juneau.annotation"><code>@BeanProperty</code></a> annotations on your bean classes.
-               <br>However, bean filters make it possible to accomplish the same when you can't add annotations
-               to existing code.
-            </p>
-            <p>
-               Bean filters are defined through <a href="org/apache/juneau/transform/BeanFilterBuilder.html" title="class in org.apache.juneau.transform"><code>BeanFilterBuilders</code></a>.
-            </p>
-            <p>
-               In the previous examples, we defined this bean annotation:
-            </p>
-            <p class='bcode'>
+      <!-- ======================================================================================================= -->
+      <a id="juneau-marshall.BeanFilters"></a>
+      <h4 class='topic' onclick='toggle(this)'>2.7.16 - BeanFilter Class</h4>
+      <div class='topic'>
+         <p>
+            The <a href="org/apache/juneau/transform/BeanFilter.html" title="class in org.apache.juneau.transform"><code>BeanFilter</code></a> class is the programmatic equivalent to the
+            <a href="org/apache/juneau/annotation/Bean.html" title="annotation in org.apache.juneau.annotation"><code>@Bean</code></a> annotation.
+         </p>
+         <p>
+            In practice, it's usually simpler to use the <a href="org/apache/juneau/annotation/Bean.html" title="annotation in org.apache.juneau.annotation"><code>@Bean</code></a> and 
+            <a href="org/apache/juneau/annotation/BeanProperty.html" title="annotation in org.apache.juneau.annotation"><code>@BeanProperty</code></a> annotations on your bean classes.
+            <br>However, bean filters make it possible to accomplish the same when you can't add annotations
+            to existing code.
+         </p>
+         <p>
+            Bean filters are defined through <a href="org/apache/juneau/transform/BeanFilterBuilder.html" title="class in org.apache.juneau.transform"><code>BeanFilterBuilders</code></a>.
+         </p>
+         <p>
+            In the previous examples, we defined this bean annotation:
+         </p>
+         <p class='bcode'>
    <ja>@Bean</ja>(properties=<js>"street,city,state"</js>)
    <jk>public class</jk> Address { ... }
-            </p>
-            <p>
-               The programmatic equivalent would be:
-            </p>           
-            <p class='bcode'>
+         </p>
+         <p>
+            The programmatic equivalent would be:
+         </p>           
+         <p class='bcode'>
    <jk>public class</jk> AddressFilter <jk>extends</jk> BeanFilterBuilder&lt;Address&gt; {
       
       <jc>// Must provide a no-arg constructor!</jc>
@@ -2986,36 +2951,36 @@
          includeProperties(<js>"street,city,state"</js>);  <jc>// The properties we want exposed.</jc>
       }
    }  
-            </p>     
-            <p>
-               Bean filters are added to serializers and parsers using the following:
-            </p>
-            <ul>
-               <li class='jf'><a href="org/apache/juneau/BeanContext.html#BEAN_beanFilters"><code>BeanContext.BEAN_beanFilters</code></a>
-               <li class='jm'><a href="org/apache/juneau/BeanContextBuilder.html#beanFilters-java.lang.Object...-"><code>BeanContextBuilder.beanFilters(Object...)</code></a>
-            </ul>
-            <p>
-               For example:
-            </p>
-            <p class='bcode'>       
+         </p>     
+         <p>
+            Bean filters are added to serializers and parsers using the following:
+         </p>
+         <ul>
+            <li class='jf'><a href="org/apache/juneau/BeanContext.html#BEAN_beanFilters"><code>BeanContext.BEAN_beanFilters</code></a>
+            <li class='jm'><a href="org/apache/juneau/BeanContextBuilder.html#beanFilters-java.lang.Object...-"><code>BeanContextBuilder.beanFilters(Object...)</code></a>
+         </ul>
+         <p>
+            For example:
+         </p>
+         <p class='bcode'>       
    <jc>// Create a new JSON serializer and associate a bean filter with it.</jc>
    WriterSerializer s = JsonSerializer
       .<jsm>create</jsm>()
       .beanFilters(AddressFilter.<jk>class</jk>)
       .build();
-            </p>
-            <p>
-               Note that if you use the annotation, you do NOT need to set anything on the serializers/parsers.
-               <br>The annotations will be detected and bean filters will automatically be created for them.
-            </p>
-            <p>
-               The <a href="org/apache/juneau/BeanContextBuilder.html#beanFilters-java.lang.Object...-"><code>BeanContextBuilder.beanFilters(Object...)</code></a> method also allows you to pass in interfaces.
-               <br>Any class that's not a subclass of <a href="org/apache/juneau/transform/BeanFilterBuilder.html" title="class in org.apache.juneau.transform"><code>BeanFilterBuilder</code></a> get interpreted 
-               as bean interface classes.
-               <br>These cause bean implementations of those interfaces to only expose the properties defined on the 
-               interface.
-            </p>
-            <p class='bcode'>
+         </p>
+         <p>
+            Note that if you use the annotation, you do NOT need to set anything on the serializers/parsers.
+            <br>The annotations will be detected and bean filters will automatically be created for them.
+         </p>
+         <p>
+            The <a href="org/apache/juneau/BeanContextBuilder.html#beanFilters-java.lang.Object...-"><code>BeanContextBuilder.beanFilters(Object...)</code></a> method also allows you to pass in interfaces.
+            <br>Any class that's not a subclass of <a href="org/apache/juneau/transform/BeanFilterBuilder.html" title="class in org.apache.juneau.transform"><code>BeanFilterBuilder</code></a> get interpreted 
+            as bean interface classes.
+            <br>These cause bean implementations of those interfaces to only expose the properties defined on the 
+            interface.
+         </p>
+         <p class='bcode'>
    <jc>// An interface with the 3 properties we want serialized.</jc>
    <jk>public interface</jk> AddressInterface {
       <jk>public</jk> String getStreet();
@@ -3037,29 +3002,29 @@
       .<jsm>create</jsm>()
       .beanFilters(AddressInterface.<jk>class</jk>)
       .build();
-            </p>        
-         </div>
+         </p>        
+      </div>
 
-         <!-- =================================================================================================== -->
-         <a id="juneau-marshall.InterfaceFilters"></a>
-         <h4 class='topic' onclick='toggle(this)'>2.1.7.17 - Interface Filters</h4>
-         <div class='topic'>
-            <p>
-               Occasionally, you may want to limit bean properties to only those defined on a parent class or interface.  
-               <br>This is accomplished through interface filters.
-            </p>
-            <p>
-               Interface filters are defined through the following:
-            </p>
-            <ul>
-               <li class='jf'><a href="org/apache/juneau/BeanContext.html#BEAN_beanFilters"><code>BeanContext.BEAN_beanFilters</code></a>
-               <li class='ja'><a href="org/apache/juneau/annotation/Bean.html#interfaceClass--"><code>@Bean.interfaceClass()</code></a>
-               <li class='jm'><a href="org/apache/juneau/transform/BeanFilterBuilder.html#interfaceClass-java.lang.Class-"><code>BeanFilterBuilder.interfaceClass(Class)</code></a>
-            </ul>
-            <p>
-               For example, let's define the following interface and implementation:
-            </p>
-            <p class='bcode'>
+      <!-- =================================================================================================== -->
+      <a id="juneau-marshall.InterfaceFilters"></a>
+      <h4 class='topic' onclick='toggle(this)'>2.7.17 - Interface Filters</h4>
+      <div class='topic'>
+         <p>
+            Occasionally, you may want to limit bean properties to only those defined on a parent class or interface.  
+            <br>This is accomplished through interface filters.
+         </p>
+         <p>
+            Interface filters are defined through the following:
+         </p>
+         <ul>
+            <li class='jf'><a href="org/apache/juneau/BeanContext.html#BEAN_beanFilters"><code>BeanContext.BEAN_beanFilters</code></a>
+            <li class='ja'><a href="org/apache/juneau/annotation/Bean.html#interfaceClass--"><code>@Bean.interfaceClass()</code></a>
+            <li class='jm'><a href="org/apache/juneau/transform/BeanFilterBuilder.html#interfaceClass-java.lang.Class-"><code>BeanFilterBuilder.interfaceClass(Class)</code></a>
+         </ul>
+         <p>
+            For example, let's define the following interface and implementation:
+         </p>
+         <p class='bcode'>
    <jc>// Interface</jc>
    <jk>public class</jk> MyInterface {
       <jk>public</jk> String getFoo();
@@ -3141,33 +3106,33 @@
    <jk>public abstract class</jk> MyAbstractClass {
       <jk>public</jk> String getFoo() {...};
    }
-            </p>
-         </div>
-         
-         <!-- =================================================================================================== -->
-         <a id="juneau-marshall.StopClasses"></a>
-         <h4 class='topic' onclick='toggle(this)'>2.1.7.18 - Stop Classes</h4>
-         <div class='topic'>
-            <p>
-               Whereas interface filters limit properties defined on child classes, stop filters 
-               do the opposite and limit properties defined on parent classes.
-            </p>
-            <p>
-               Stop classes are defined through the following:
-            </p>
-            <ul>
-               <li class='ja'><a href="org/apache/juneau/annotation/Bean.html#stopClass--"><code>@Bean.stopClass()</code></a>
-               <li class='jf'><a href="org/apache/juneau/transform/BeanFilterBuilder.html#stopClass-java.lang.Class-"><code>BeanFilterBuilder.stopClass(Class)</code></a>
-            </ul>
-            <p>
-               Stop classes are identical in purpose to the stop class specified by <a href="http://docs.oracle.com/javase/7/docs/api/java/beans/Introspector.html?is-external=true#getBeanInfo-java.lang.Class-java.lang.Class-" title="class or interface in java.beans"><code>Introspector.getBeanInfo(Class, Class)</code></a>.
-               <br>Any properties in the stop class or in its base classes will be ignored during serialization.
-            </p>
-            <p>
-               For example, in the following class hierarchy, instances of <code>C3</code> will include property <code>p3</code>,
-               but not <code>p1</code> or <code>p2</code>.
-            </p>
-            <p class='bcode'>
+         </p>
+      </div>
+      
+      <!-- =================================================================================================== -->
+      <a id="juneau-marshall.StopClasses"></a>
+      <h4 class='topic' onclick='toggle(this)'>2.7.18 - Stop Classes</h4>
+      <div class='topic'>
+         <p>
+            Whereas interface filters limit properties defined on child classes, stop filters 
+            do the opposite and limit properties defined on parent classes.
+         </p>
+         <p>
+            Stop classes are defined through the following:
+         </p>
+         <ul>
+            <li class='ja'><a href="org/apache/juneau/annotation/Bean.html#stopClass--"><code>@Bean.stopClass()</code></a>
+            <li class='jf'><a href="org/apache/juneau/transform/BeanFilterBuilder.html#stopClass-java.lang.Class-"><code>BeanFilterBuilder.stopClass(Class)</code></a>
+         </ul>
+         <p>
+            Stop classes are identical in purpose to the stop class specified by <a href="http://docs.oracle.com/javase/7/docs/api/java/beans/Introspector.html?is-external=true#getBeanInfo-java.lang.Class-java.lang.Class-" title="class or interface in java.beans"><code>Introspector.getBeanInfo(Class, Class)</code></a>.
+            <br>Any properties in the stop class or in its base classes will be ignored during serialization.
+         </p>
+         <p>
+            For example, in the following class hierarchy, instances of <code>C3</code> will include property <code>p3</code>,
+            but not <code>p1</code> or <code>p2</code>.
+         </p>
+         <p class='bcode'>
    <jk>public class</jk> C1 {
       <jk>public int</jk> getP1();
    }
@@ -3183,19 +3148,19 @@
    
    <jc>// Serializes property 'p3', but NOT 'p1' or 'p2'.</jc>
    String json = JsonSerializer.<jsf>DEFAULT</jsf>.serialize(<jk>new</jk> C3());
-            </p>
-         </div>
+         </p>
+      </div>
 
-         <!-- =================================================================================================== -->
-         <a id="juneau-marshall.BypassSerialization"></a>
-         <h4 class='topic' onclick='toggle(this)'>2.1.7.19 - Bypass Serialization using Readers and InputStreams</h4>
-         <div class='topic'>
-            <p>
-               Juneau serializers treat instances of <code>Readers</code> and <code>InputStreams</code> special by 
-               simply serializing their contents directly to the output stream or writer.
-               <br>This allows you to embed fully customized serializer output.
-            </p>
-            <p class='bcode'>
+      <!-- =================================================================================================== -->
+      <a id="juneau-marshall.BypassSerialization"></a>
+      <h4 class='topic' onclick='toggle(this)'>2.7.19 - Bypass Serialization using Readers and InputStreams</h4>
+      <div class='topic'>
+         <p>
+            Juneau serializers treat instances of <code>Readers</code> and <code>InputStreams</code> special by 
+            simply serializing their contents directly to the output stream or writer.
+            <br>This allows you to embed fully customized serializer output.
+         </p>
+         <p class='bcode'>
    <jk>public class</jk> MyBean {
       <jc>// A bean property that produces raw JSON.</jc>
       <jk>public</jk> Reader f1 = <jk>new</jk> StringReader(<js>"{'foo':'bar'}"</js>); 
@@ -3203,18 +3168,18 @@
    
    <jc>// Produces "{f1:{'foo':'bar'}}"</jc>
    String json = JsonSerializer.<jsf>DEFAULT_LAX</jsf>.toString(<jk>new</jk> MyBean());
-            </p>        
-            <p>
-               Note that if you're serializing Readers and InputStreams, it's up to you to make sure you're producing
-               valid output (in this case JSON).
-            </p>
-            <p>
-               A more typical scenario where this is useful is by using swaps to convert POJOs to Readers whose 
-               contents are determined via the <a href="org/apache/juneau/BeanSession.html#getMediaType--"><code>BeanSession.getMediaType()</code></a> method.
-               <br>In the following example, we're customizing the JSON output for a particular bean type, but leaving
-               all other renditions as-is:
-            </p>        
-            <p class='bcode'>
+         </p>        
+         <p>
+            Note that if you're serializing Readers and InputStreams, it's up to you to make sure you're producing
+            valid output (in this case JSON).
+         </p>
+         <p>
+            A more typical scenario where this is useful is by using swaps to convert POJOs to Readers whose 
+            contents are determined via the <a href="org/apache/juneau/BeanSession.html#getMediaType--"><code>BeanSession.getMediaType()</code></a> method.
+            <br>In the following example, we're customizing the JSON output for a particular bean type, but leaving
+            all other renditions as-is:
+         </p>        
+         <p class='bcode'>
    <ja>@Swap</ja>(MyBeanSwapSometimes.<jk>class</jk>)
    <jk>public class</jk> MyBean {...}
    
@@ -3228,111 +3193,111 @@
          <jk>return</jk> o;  <jc>// Otherwise serialize it as a normal bean</jc>
       }
    }
-            </p>  
-            <ul class='doctree'>
-               <li class='info'>
-                  Due to the nature of the RDF serializers, Readers and InputStreams are serialized as literals,
-                  not as RDF text.
-                  This is due to the fact that the RDF serializers use a DOM for serialization, so we don't have
-                  access to the underlying stream.
-            </ul>
-         </div>
+         </p>  
+         <ul class='doctree'>
+            <li class='info'>
+               Due to the nature of the RDF serializers, Readers and InputStreams are serialized as literals,
+               not as RDF text.
+               This is due to the fact that the RDF serializers use a DOM for serialization, so we don't have
+               access to the underlying stream.
+         </ul>
       </div>
-   
-      <!-- ======================================================================================================= -->
-      <a id="juneau-marshall.BeanDictionaries"></a>
-      <h4 class='topic' onclick='toggle(this)'>2.1.8 - Bean Names and Dictionaries</h4>
-      <div class='topic'>
-         <p>
-            While parsing into beans, Juneau attempts to determine the class types of bean properties through 
-            reflection on the bean property getter or setter.
-            <br>Often this is insufficient if the property type is an interface or abstract class that cannot be 
-            instantiated.
-            <br>This is where bean names and dictionaries come into play.
-         </p>
-         <p>
-            Bean names and dictionaries are used for identifying class types when they cannot be inferred through 
-            reflection.  
-         </p>
-         <p>
-            Bean classes are given names through the <a href="org/apache/juneau/annotation/Bean.html#typeName--"><code>@Bean.typeName()</code></a> 
-            annotation.
-            <br>These names are then added to the serialized output as virtual <js>"_type"</js> properties (or element 
-            names in XML).
-         </p>
-         <p>
-            On the parsing side, these type names are resolved to classes through the use of bean dictionaries.
-         </p>
-         <p>
-            For example, if a bean property is of type <code>Object</code>, then the serializer will add 
-            <js>"_type"</js> attributes so that the class can be determined during parsing.
-         </p>
-         <p class='bcode'>
-   <ja>@Bean</ja>(typeName=<js>"foo"</js>)
-   <jk>public class</jk> Foo {
-      <jc>// A bean property where the object types cannot be inferred since it's an Object[].</jc>
-      <ja>@BeanProperty</ja>(beanDictionary={Bar.<jk>class</jk>,Baz.<jk>class</jk>})
-      <jk>public</jk> Object[] x = <jk>new</jk> Object[]{<jk>new</jk> Bar(), <jk>new</jk> Baz()};
-   }
-      
-   <ja>@Bean</ja>(typeName=<js>"bar"</js>)
-   <jk>public class</jk> Bar {}
+   </div>
+
+   <!-- ======================================================================================================= -->
+   <a id="juneau-marshall.BeanDictionaries"></a>
+   <h3 class='topic' onclick='toggle(this)'>2.8 - Bean Names and Dictionaries</h3>
+   <div class='topic'>
+      <p>
+         While parsing into beans, Juneau attempts to determine the class types of bean properties through 
+         reflection on the bean property getter or setter.
+         <br>Often this is insufficient if the property type is an interface or abstract class that cannot be 
+         instantiated.
+         <br>This is where bean names and dictionaries come into play.
+      </p>
+      <p>
+         Bean names and dictionaries are used for identifying class types when they cannot be inferred through 
+         reflection.  
+      </p>
+      <p>
+         Bean classes are given names through the <a href="org/apache/juneau/annotation/Bean.html#typeName--"><code>@Bean.typeName()</code></a> 
+         annotation.
+         <br>These names are then added to the serialized output as virtual <js>"_type"</js> properties (or element 
+         names in XML).
+      </p>
+      <p>
+         On the parsing side, these type names are resolved to classes through the use of bean dictionaries.
+      </p>
+      <p>
+         For example, if a bean property is of type <code>Object</code>, then the serializer will add 
+         <js>"_type"</js> attributes so that the class can be determined during parsing.
+      </p>
+      <p class='bcode'>
+   <ja>@Bean</ja>(typeName=<js>"foo"</js>)
+   <jk>public class</jk> Foo {
+      <jc>// A bean property where the object types cannot be inferred since it's an Object[].</jc>
+      <ja>@BeanProperty</ja>(beanDictionary={Bar.<jk>class</jk>,Baz.<jk>class</jk>})
+      <jk>public</jk> Object[] x = <jk>new</jk> Object[]{<jk>new</jk> Bar(), <jk>new</jk> Baz()};
+   }
+      
+   <ja>@Bean</ja>(typeName=<js>"bar"</js>)
+   <jk>public class</jk> Bar {}
       
    <ja>@Bean</ja>(typeName=<js>"baz"</js>)
    <jk>public class</jk> Baz {}
-         </p>
-         <p>
-            When serialized as JSON, <js>"_type"</js> attributes would be added when needed to infer the type during 
-            parsing:
-         </p>
-         <p class='bcode'>
+      </p>
+      <p>
+         When serialized as JSON, <js>"_type"</js> attributes would be added when needed to infer the type during 
+         parsing:
+      </p>
+      <p class='bcode'>
    {
       x: [
          {_type:<js>'bar'</js>},
          {_type:<js>'baz'</js>}
       ]
    }   
-         </p>
-         <p>
-            Type names can be represented slightly differently in different languages.
-            <br>For example, the dictionary name is used as element names when serialized to XML.
-            <br>This allows the <code>typeName</code> annotation to be used as a shortcut for defining element names for 
-            beans.
-         </p>
-         <p>
-            When serialized as XML, the bean is rendered as:
-         </p>
-         <p class='bcode'>
+      </p>
+      <p>
+         Type names can be represented slightly differently in different languages.
+         <br>For example, the dictionary name is used as element names when serialized to XML.
+         <br>This allows the <code>typeName</code> annotation to be used as a shortcut for defining element names for 
+         beans.
+      </p>
+      <p>
+         When serialized as XML, the bean is rendered as:
+      </p>
+      <p class='bcode'>
    <xt>&lt;foo&gt;</xt>
       <xt>&lt;x&gt;</xt>
          <xt>&lt;bar/&gt;</xt>
          <xt>&lt;baz/&gt;</xt>
       <xt>&lt;/x&gt;</xt>
    <xt>&lt;/foo&gt;</xt>
-         </p>
-         <p>
-            Bean dictionaries are registered through the following:
-         </p>
-         <ul>
-            <li class='ja'><a href="org/apache/juneau/annotation/BeanProperty.html#beanDictionary--"><code>@BeanProperty.beanDictionary()</code></a> 
-               - On individual bean properties through the annotation.
-            <li class='ja'><a href="org/apache/juneau/annotation/Bean.html#beanDictionary--"><code>@Bean.beanDictionary()</code></a> 
-               - On all properties on a bean and all subclasses.
-            <li class='jf'><a href="org/apache/juneau/BeanContext.html#BEAN_beanDictionary"><code>BeanContext.BEAN_beanDictionary</code></a> 
-               - Configuration property on serializers and parsers.
-            <li class='jm'><a href="org/apache/juneau/BeanContextBuilder.html#beanDictionary-java.lang.Object...-"><code>BeanContextBuilder.beanDictionary(Object...)</code></a>
-               - Builder method on serializers and parsers.
-         </ul>
-         <p>
-            The bean dictionary setting can consist of any of the following types:
-         </p>
-         <ul>
-            <li>Any bean class that specifies a value for <a href="org/apache/juneau/annotation/Bean.html#typeName--"><code>@Bean.typeName()</code></a>.
-            <li>Any subclass of <a href="org/apache/juneau/BeanDictionaryList.html" title="class in org.apache.juneau"><code>BeanDictionaryList</code></a> containing a collection of bean classes with type name annotations.
-            <li>Any subclass of <a href="org/apache/juneau/BeanDictionaryMap.html" title="class in org.apache.juneau"><code>BeanDictionaryMap</code></a> containing a mapping of type names to classes without type name annotations.
-            <li>Any array or collection of the objects above.
-         </ul>
-         <p class='bcode'>
+      </p>
+      <p>
+         Bean dictionaries are registered through the following:
+      </p>
+      <ul>
+         <li class='ja'><a href="org/apache/juneau/annotation/BeanProperty.html#beanDictionary--"><code>@BeanProperty.beanDictionary()</code></a> 
+            - On individual bean properties through the annotation.
+         <li class='ja'><a href="org/apache/juneau/annotation/Bean.html#beanDictionary--"><code>@Bean.beanDictionary()</code></a> 
+            - On all properties on a bean and all subclasses.
+         <li class='jf'><a href="org/apache/juneau/BeanContext.html#BEAN_beanDictionary"><code>BeanContext.BEAN_beanDictionary</code></a> 
+            - Configuration property on serializers and parsers.
+         <li class='jm'><a href="org/apache/juneau/BeanContextBuilder.html#beanDictionary-java.lang.Object...-"><code>BeanContextBuilder.beanDictionary(Object...)</code></a>
+            - Builder method on serializers and parsers.
+      </ul>
+      <p>
+         The bean dictionary setting can consist of any of the following types:
+      </p>
+      <ul>
+         <li>Any bean class that specifies a value for <a href="org/apache/juneau/annotation/Bean.html#typeName--"><code>@Bean.typeName()</code></a>.
+         <li>Any subclass of <a href="org/apache/juneau/BeanDictionaryList.html" title="class in org.apache.juneau"><code>BeanDictionaryList</code></a> containing a collection of bean classes with type name annotations.
+         <li>Any subclass of <a href="org/apache/juneau/BeanDictionaryMap.html" title="class in org.apache.juneau"><code>BeanDictionaryMap</code></a> containing a mapping of type names to classes without type name annotations.
+         <li>Any array or collection of the objects above.
+      </ul>
+      <p class='bcode'>
    <jc>// Create a parser and tell it which classes to try to resolve.</jc>
    ReaderParser p = JsonParser
       .<jsm>create</jsm>()
@@ -3351,23 +3316,23 @@
       .<jsm>create</jsm>()
       .beanDictionary(HtmlBeanDictionary.<jk>class</jk>)
       .build();
-         </p>
-         <p>
-            The <js>"_type"</js> property name can be overridden through the following:
-         </p>
-         <ul>
-            <li class='ja'><a href="org/apache/juneau/annotation/Bean.html#typePropertyName--"><code>@Bean.typePropertyName()</code></a> 
-               - On individual beans through the annotation.
-            <li class='jf'><a href="org/apache/juneau/BeanContext.html#BEAN_beanTypePropertyName"><code>BeanContext.BEAN_beanTypePropertyName</code></a> 
-               - Configuration property on serializers and parsers.
-            <li class='jm'><a href="org/apache/juneau/BeanContextBuilder.html#beanTypePropertyName-java.lang.String-"><code>BeanContextBuilder.beanTypePropertyName(String)</code></a> 
-               - Builder method on serializers and parsers.
-         </ul>
-         <p>
-            When using the annotation, you'll typically want to define it on an interface class so that it can
-            be inherited by all subclasses.
-         </p>
-         <p class='bcode'>
+      </p>
+      <p>
+         The <js>"_type"</js> property name can be overridden through the following:
+      </p>
+      <ul>
+         <li class='ja'><a href="org/apache/juneau/annotation/Bean.html#typePropertyName--"><code>@Bean.typePropertyName()</code></a> 
+            - On individual beans through the annotation.
+         <li class='jf'><a href="org/apache/juneau/BeanContext.html#BEAN_beanTypePropertyName"><code>BeanContext.BEAN_beanTypePropertyName</code></a> 
+            - Configuration property on serializers and parsers.
+         <li class='jm'><a href="org/apache/juneau/BeanContextBuilder.html#beanTypePropertyName-java.lang.String-"><code>BeanContextBuilder.beanTypePropertyName(String)</code></a> 
+            - Builder method on serializers and parsers.
+      </ul>
+      <p>
+         When using the annotation, you'll typically want to define it on an interface class so that it can
+         be inherited by all subclasses.
+      </p>
+      <p class='bcode'>
    <ja>@Bean</ja>(typePropertyName=<js>"mytype"</js>, beanDictionary={MyClass1.<jk>class</jk>,MyClass2.<jk>class</jk>})
    <jk>public interface</jk> MyInterface {...}
 
@@ -3381,40 +3346,40 @@
 
    <jc>// Produces "[{mytype:'C1',...},{mytype:'C2',...}]"</jc>
    String json = JsonSerializer.<jsf>DEFAULT_LAX</jsf>.serialize(x);
+      </p>
+      <ul class='doctree'>
+         <li class='info'>
+            Type names do not need to be universally unique.  
+            However, they must be unique within a dictionary.
+         <li class='info'>
+            The following reserved words cannot be used as type names:  
+            <code>object, array, number, boolean, null</code>.
+         <li class='info'>
+            Serialized type names are DISABLED by default.
+            They must be enabled on the serializer using the 
+            <a href="org/apache/juneau/serializer/Serializer.html#SERIALIZER_addBeanTypeProperties"><code>Serializer.SERIALIZER_addBeanTypeProperties</code></a> 
+            configuration property.
+      </ul>
+   
+      <!-- =================================================================================================== -->
+      <a id="juneau-marshall.BeanSubTypes"></a>
+      <h4 class='topic' onclick='toggle(this)'>2.8.1 - Bean Subtypes</h4>
+      <div class='topic'>
+         <p>
+            In addition to the bean type name support described above, simplified support is provided
+            for bean subtypes.
          </p>
-         <ul class='doctree'>
-            <li class='info'>
-               Type names do not need to be universally unique.  
-               However, they must be unique within a dictionary.
-            <li class='info'>
-               The following reserved words cannot be used as type names:  
-               <code>object, array, number, boolean, null</code>.
-            <li class='info'>
-               Serialized type names are DISABLED by default.
-               They must be enabled on the serializer using the 
-               <a href="org/apache/juneau/serializer/Serializer.html#SERIALIZER_addBeanTypeProperties"><code>Serializer.SERIALIZER_addBeanTypeProperties</code></a> 
-               configuration property.
+         <p>
+            Bean subtypes are similar in concept to bean type names, except for the following differences:
+         </p>
+         <ul>
+            <li>You specify the list of possible subclasses through an annotation on a parent bean class.
+            <li>You do not need to register the subtype classes on the bean dictionary of the parser.
          </ul>
-      
-         <!-- =================================================================================================== -->
-         <a id="juneau-marshall.BeanSubTypes"></a>
-         <h4 class='topic' onclick='toggle(this)'>2.1.8.1 - Bean Subtypes</h4>
-         <div class='topic'>
-            <p>
-               In addition to the bean type name support described above, simplified support is provided
-               for bean subtypes.
-            </p>
-            <p>
-               Bean subtypes are similar in concept to bean type names, except for the following differences:
-            </p>
-            <ul>
-               <li>You specify the list of possible subclasses through an annotation on a parent bean class.
-               <li>You do not need to register the subtype classes on the bean dictionary of the parser.
-            </ul>
-            <p>
-               In the following example, the abstract class has two subclasses:
-            </p>
-            <p class='bcode'>
+         <p>
+            In the following example, the abstract class has two subclasses:
+         </p>
+         <p class='bcode'>
    <jc>// Abstract superclass</jc>
    <ja>@Bean</ja>(
       beanDictionary={A1.<jk>class</jk>, A2.<jk>class</jk>}
@@ -3434,40 +3399,40 @@
    <jk>public class</jk> A2 <jk>extends</jk> A {
       <jk>public</jk> String <jf>f2</jf>;
    }
-            </p>
-            <p>
-               When serialized, the subtype is serialized as a virtual <js>"_type"</js> property:
-            </p>  
-            <p class='bcode'>
+         </p>
+         <p>
+            When serialized, the subtype is serialized as a virtual <js>"_type"</js> property:
+         </p>  
+         <p class='bcode'>
    JsonSerializer s = JsonSerializer.<jsf>DEFAULT_LAX</jsf>;
    A1 a1 = <jk>new</jk> A1();
    a1.<jf>f1</jf> = <js>"f1"</js>;
    String r = s.serialize(a1);
    <jsm>assertEquals</jsm>(<js>"{_type:'A1',f1:'f1',f0:'f0'}"</js>, r);
-            </p>
-            <p>
-               The following shows what happens when parsing back into the original object.
-            </p>
-            <p class='bcode'>
-   JsonParser p = JsonParser.<jsf>DEFAULT</jsf>;
-   A a = p.parse(r, A.<jk>class</jk>);
-   <jsm>assertTrue</jsm>(a <jk>instanceof</jk> A1);
-            </p>
-         </div>
-      </div>
-      
-      <!-- ======================================================================================================= -->
-      <a id="juneau-marshall.VirtualBeans"></a>
-      <h4 class='topic' onclick='toggle(this)'>2.1.9 - Virtual Beans</h4>
-      <div class='topic'>
-         <p>
-            The <a href="org/apache/juneau/BeanContext.html#BEAN_useInterfaceProxies"><code>BeanContext.BEAN_useInterfaceProxies</code></a> setting (enabled by default) allows
-            the Juneau parsers to parse content into virtual beans (bean interfaces without implementation classes).
          </p>
          <p>
-            For example, the following code creates an instance of the specified unimplemented interface:
+            The following shows what happens when parsing back into the original object.
          </p>
          <p class='bcode'>
+   JsonParser p = JsonParser.<jsf>DEFAULT</jsf>;
+   A a = p.parse(r, A.<jk>class</jk>);
+   <jsm>assertTrue</jsm>(a <jk>instanceof</jk> A1);
+         </p>
+      </div>
+   </div>
+   
+   <!-- ======================================================================================================= -->
+   <a id="juneau-marshall.VirtualBeans"></a>
+   <h3 class='topic' onclick='toggle(this)'>2.9 - Virtual Beans</h3>
+   <div class='topic'>
+      <p>
+         The <a href="org/apache/juneau/BeanContext.html#BEAN_useInterfaceProxies"><code>BeanContext.BEAN_useInterfaceProxies</code></a> setting (enabled by default) allows
+         the Juneau parsers to parse content into virtual beans (bean interfaces without implementation classes).
+      </p>
+      <p>
+         For example, the following code creates an instance of the specified unimplemented interface:
+      </p>
+      <p class='bcode'>
    <jc>// Our unimplemented interface</jc> 
    <jk>public interface</jk> Address {
       
@@ -3492,44 +3457,44 @@
    
    <jk>int</jk> zip = address.getZip();
    address.setState(StateEnum.<jsf>NY</jsf>);
-         </p>
-         <p>
-            Getter and setter values can be any parsable values, even other virtual beans.
-         </p>
-         <p>
-            Under-the-covers, a virtual bean is simply a proxy interface on top of an existing <code>BeanMap</code>
-            instance.  From a programmatic point-of-view, they're indistinguishable from real beans, and can be 
-            manipulated and serialized like any other bean.
-         </p>  
-         <p>
-            Virtual beans can also be created programmatically using the <code>BeanContext</code> class:
-         </p>
-         <p class='bcode'>
+      </p>
+      <p>
+         Getter and setter values can be any parsable values, even other virtual beans.
+      </p>
+      <p>
+         Under-the-covers, a virtual bean is simply a proxy interface on top of an existing <code>BeanMap</code>
+         instance.  From a programmatic point-of-view, they're indistinguishable from real beans, and can be 
+         manipulated and serialized like any other bean.
+      </p>  
+      <p>
+         Virtual beans can also be created programmatically using the <code>BeanContext</code> class:
+      </p>
+      <p class='bcode'>
    Address address = BeanContext.<jsf>DEFAULT</jsf>.createSession().newBean(Address.<jk>class</jk>);
-         </p>
-      </div>
+      </p>
+   </div>
 
-      <!-- ======================================================================================================= -->
-      <a id="juneau-marshall.ReadingContinuousStreams"></a>
-      <h4 class='topic' onclick='toggle(this)'>2.1.10 - Reading Continuous Streams</h4>
-      <div class='topic'>
-         <p>
-            The following parsers can be configured to read continous streams of objects from the same input stream:
-         </p>
-         <ul>
-            <li class='jc'><a href="org/apache/juneau/json/JsonParser.html" title="class in org.apache.juneau.json"><code>JsonParser</code></a>
-            <li class='jc'><a href="org/apache/juneau/uon/UonParser.html" title="class in org.apache.juneau.uon"><code>UonParser</code></a>
-            <li class='jc'><a href="org/apache/juneau/msgpack/MsgPackParser.html" title="class in org.apache.juneau.msgpack"><code>MsgPackParser</code></a>
-         </ul>
-         <p>
-            The <a href="org/apache/juneau/json/JsonParser.html" title="class in org.apache.juneau.json"><code>JsonParser</code></a> and <a href="org/apache/juneau/uon/UonParser.html" title="class in org.apache.juneau.uon"><code>UonParser</code></a>
-            classes can read continous streams by using the <a href="org/apache/juneau/parser/Parser.html#PARSER_unbuffered"><code>Parser.PARSER_unbuffered</code></a>
-            setting.
-            <br>This prevents the parsers from using an internal buffer that would read past the end of the currently
-            parsed POJO.
-         </p>
-         <h5 class='figure'>Examples:</h5>
-         <p class='bcode'>
+   <!-- ======================================================================================================= -->
+   <a id="juneau-marshall.ReadingContinuousStreams"></a>
+   <h3 class='topic' onclick='toggle(this)'>2.10 - Reading Continuous Streams</h3>
+   <div class='topic'>
+      <p>
+         The following parsers can be configured to read continous streams of objects from the same input stream:
+      </p>
+      <ul>
+         <li class='jc'><a href="org/apache/juneau/json/JsonParser.html" title="class in org.apache.juneau.json"><code>JsonParser</code></a>
+         <li class='jc'><a href="org/apache/juneau/uon/UonParser.html" title="class in org.apache.juneau.uon"><code>UonParser</code></a>
+         <li class='jc'><a href="org/apache/juneau/msgpack/MsgPackParser.html" title="class in org.apache.juneau.msgpack"><code>MsgPackParser</code></a>
+      </ul>
+      <p>
+         The <a href="org/apache/juneau/json/JsonParser.html" title="class in org.apache.juneau.json"><code>JsonParser</code></a> and <a href="org/apache/juneau/uon/UonParser.html" title="class in org.apache.juneau.uon"><code>UonParser</code></a>
+         classes can read continous streams by using the <a href="org/apache/juneau/parser/Parser.html#PARSER_unbuffered"><code>Parser.PARSER_unbuffered</code></a>
+         setting.
+         <br>This prevents the parsers from using an internal buffer that would read past the end of the currently
+         parsed POJO.
+      </p>
+      <h5 class='figure'>Examples:</h5>
+      <p class='bcode'>
    <jc>// If you're calling parse on the same input multiple times, use a session instead of the parser directly.</jc>
    ReaderParserSession p = JsonParser.<jsm>create</jsm>().unbuffered().build().createSession();
    Object x;
@@ -3542,617 +3507,617 @@
    r = reader(<js>"[123][456]"</js>);
    x = p.parse(r, <jk>int</jk>[].<jk>class</jk>);  <jc>// [123]</jc>
    x = p.parse(r, <jk>int</jk>[].<jk>class</jk>);  <jc>// [456]</jc>
-         </p>
-         <p>
-            Note that this isn't perfect in all cases since you can't combine two JSON numbers into a single
-            reader (e.g. <code>"123" + "456" = "123456"</code>).
-         </p>
-         <p>
-            For obvious reasons, do not use the following properties when reading continuous streams:
-         </p>
-         <ul>
-            <li class='jf'><a href="org/apache/juneau/json/JsonParser.html#JSON_validateEnd"><code>JsonParser.JSON_validateEnd</code></a>
-            <li class='jf'><a href="org/apache/juneau/uon/UonParser.html#UON_validateEnd"><code>UonParser.UON_validateEnd</code></a>
-            <li class='jf'><a href="org/apache/juneau/parser/Parser.html#PARSER_autoCloseStreams"><code>Parser.PARSER_autoCloseStreams</code></a>
-         </ul>
-         <p>
-            The <a href="org/apache/juneau/msgpack/MsgPackParser.html" title="class in org.apache.juneau.msgpack"><code>MsgPackParser</code></a> class doesn't use any internal buffering to begin with, so it can be used with
-            continuous streams without any special properties.
-         </p>
-      </div>
-      
-      <!-- ======================================================================================================= -->
-      <a id="juneau-marshall.JacksonComparison"></a>
-      <h4 class='topic' onclick='toggle(this)'>2.1.11 - Comparison with Jackson</h4>
-      <div class='topic'>
-         <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.
-            Therefore, the terminology and annotations in Juneau are similar, but language-agnostic.   
-         </p>
-         <p>
-            The following charts describe equivalent features between the two libraries:
-         </p>
-      
-         <h5 class='topic'>Annotations</h5>
-         <table class='styled' style='min-width:800px;width:50%'>
-            <tr><th>Jackson</th><th>Juneau</th></tr>
-            <tr>
-               <td>
-                  <ja>@JsonGetter</ja>
-                  <br><ja>@JsonSetter</ja>
-               </td>
-               <td>
-                  <a href="org/apache/juneau/annotation/BeanProperty.html" title="annotation in org.apache.juneau.annotation"><code>@BeanProperty</code></a>
-               </td>
-            </tr>
-            <tr>
-               <td>
-                  <ja>@JsonAnyGetter</ja>
-                  <br><ja>@JsonAnySetter</ja>
-               </td>
-               <td>
-                  <a href="org/apache/juneau/annotation/BeanProperty.html#name--"><code>@BeanProperty(name="*")</code></a>
-               </td>
-            </tr>
-            <tr>
-               <td>
-                  <ja>@JsonIgnore</ja>
-                  <br><ja>@JsonIgnoreType</ja>
-               </td>
-               <td>
-                  <a href="org/apache/juneau/annotation/BeanIgnore.html" title="annotation in org.apache.juneau.annotation"><code>@BeanIgnore</code></a>
-               </td>
-            </tr>
-            <tr>
-               <td><code><ja>@JsonIgnoreProperties</ja>({...})</code></td>
-               <td>
-                  <a href="org/apache/juneau/annotation/Bean.html#excludeProperties--"><code>@Bean(excludeProperties="...")</code></a>
-               </td>
-            </tr>
-            <tr>
-               <td><code><ja>@JsonAutoDetect</ja>(fieldVisibility=...)</code></td>
-               <td>
-                  No equivalent annotation, but can be controlled via: 
-                  <br><a href="org/apache/juneau/BeanContext.html#BEAN_beanFieldVisibility"><code>BeanContext.BEAN_beanFieldVisibility</code></a>
-                  <br><a href="org/apache/juneau/BeanContext.html#BEAN_beanMethodVisibility"><code>BeanContext.BEAN_beanMethodVisibility</code></a>
-                  <br>Future annotation support planned.
-               </td>
-            </tr>
-            <tr>
-               <td>
-                  <ja>@JsonCreator</ja>
-                  <br><ja>@JsonProperty</ja>
-               </td>
-               <td>
-                  <a href="org/apache/juneau/annotation/BeanConstructor.html" title="annotation in org.apache.juneau.annotation"><code>@BeanConstructor</code></a>
-               </td>
-            </tr>
-            <tr>
-               <td><ja>@JacksonInject</ja></td>
-               <td>
-                  No equivalent.
-                  <br>Future support planned.
-               </td>
-                  
-            </tr>
-            <tr>
-               <td>
-                  <ja>@JsonSerialize</ja>
-                  <br><ja>@JsonDeserialize</ja>
-               </td>
-               <td>
-                  Juneau uses swaps to convert non-serializable object to serializable forms:
-                  <br><a href="org/apache/juneau/annotation/Swap.html" title="annotation in org.apache.juneau.annotation"><code>@Swap</code></a>
-               </td>
-            </tr>
-            <tr>
-               <td><ja>@JsonInclude</ja></td>
-               <td>
-                  No equivalent annotation, but can be controlled via various settings:
-                  <br><a href="org/apache/juneau/BeanContext.html" title="class in org.apache.juneau"><code>BeanContext</code></a>
-                  <br><a href="org/apache/juneau/serializer/Serializer.html" title="class in org.apache.juneau.serializer"><code>Serializer</code></a>
-                  <br>Future annotation support planned.
-               </td>
-            </tr>
-            <tr>
-               <td><ja>@JsonPropertyOrder</ja></td>
-               <td>
-                  <a href="org/apache/juneau/annotation/Bean.html#properties--"><code>@Bean(properties="...")</code></a>
-                  <br><a href="org/apache/juneau/annotation/Bean.html#sort--"><code>@Bean(sort=x)</code></a>
-               </td>
-            </tr>
-            <tr>
-               <td>
-                  <ja>@JsonValue</ja>
-                  <br><ja>@JsonRawValue</ja>
-               </td>
-               <td>
-                  Can be replicated using swaps with <code>Reader</code> swapped values.
-               </td>
-            </tr>
-         </table>
-      </div>
-
-      <!-- ======================================================================================================= -->
-      <a id="juneau-marshall.PojoCategories"></a>
-      <h4 class='topic' onclick='toggle(this)'>2.1.12 - POJO Categories</h4>
-      <div class='topic'>
-         <p>
-            The following chart shows POJOs categorized into groups and whether they can be serialized or parsed:
-         </p>
-         <table class='styled' style='border-collapse: collapse;min-width:800px;width:50%'>
-            <tr><th>Group</th><th>Description</th><th>Examples</th><th>Can<br>serialize?</th><th>Can<br>parse?</th></tr>
-            <tr class='dark bb' style='background-color:lightyellow;'>
-               <td style='text-align:center'>1</td>
-               <td><b>Java primitives and primitive objects</b></td>
-               <td>
-                  <ul class='normal'>
-                     <li><code>String</code>
-                     <li><code>Integer</code>
-                     <li><code>Float</code>
-                     <li><code>Boolean</code>
-                  </ul>
-               </td>
-               <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
-               <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
-            </tr>       
-            <tr class='dark bb' style='background-color:lightyellow'>
-               <td style='text-align:center'>2</td>
-               <td><b>Java Collections Framework objects and Java arrays</b></td>
-               <td>&nbsp;</td>
-               <td>&nbsp;</td>
-               <td>&nbsp;</td>
-            </tr>       
-            <tr class='light bb'>
-               <td style='text-align:center'>2a</td>
-               <td>
-                  <b>With standard keys/values</b>
-                  <br>Map keys are group [1, 4a, 6a] objects.
-                  <br>Map, Collection, and array values are group [1, 2, 3ac, 4a, 6a] objects.  
-               </td>
-               <td>
-                  <ul class='normal'>
-                     <li><code>HashSet&lt;String,Integer&gt;</code>
-                     <li><code>TreeMap&lt;Integer,Bean&gt;</code>
-                     <li><code>List&lt;<jk>int</jk>[][]&gt;</code>
-                     <li><code>Bean[]</code>
-                  </ul>
-               </td>
-               <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
-               <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
-            </tr>       
-            <tr class='light bb'>
-               <td style='text-align:center'>2b</td>
-               <td>
-                  <b>With non-standard keys/values</b>
-                  <br>Map keys are group [2, 3, 4b, 5, 6b, 7] objects.
-                  <br>Map, Collection, and array values are group [3b, 4b, 5, 6b, 7] objects.   
-               </td>
-               <td>
-                  <ul class='normal'>
-                     <li><code>HashSet&lt;Bean,Integer&gt;</code>
-                     <li><code>TreeMap&lt;Integer,Reader&gt;</code>
-                  </ul>
-               </td>
-               <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
-               <td style='background-color:salmon;text-align:center'><b>no</b></td>
-            </tr>       
-            <tr class='dark bb' style='background-color:lightyellow'>
-               <td style='text-align:center'>3</td>
-               <td><b>Java Beans</b></td>
-               <td>&nbsp;</td>
-               <td>&nbsp;</td>
-               <td>&nbsp;</td>
-            </tr>       
-            <tr class='light bb'>
-               <td style='text-align:center'>3a</td>
-               <td>
-                  <b>With standard properties</b>
-                  <br>These are beans that have one or more properties defined by public getter 
-                  or public fields.
-                  <br>Properties can also be defined as final read-only fields and passed in as constructor args.
-                  <br>Property values are group [1, 2, 3ac, 4a, 6a] objects.
-               </td>
-               <td>&nbsp;</td>
-               <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
-               <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
-            </tr>       
-            <tr class='light bb'>
-               <td style='text-align:center'>3b</td>
-               <td>
-                  <b>With non-standard properties or not true beans</b>
-                  <br>These include true beans that have one or more properties defined by getter 
-                  and setter methods or properties, but property types include group [3b, 4b, 5, 6b, 7] objects.
-                  <br>This also includes classes that look like beans but aren't true beans.  
-                  For example, classes that have getters but not setters, or classes without no-arg constructors. 
-               </td>
-               <td>&nbsp;</td>
-               <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
-               <td style='background-color:salmon;text-align:center'><b>no</b></td>
-            </tr>    
-            <tr class='light bb'>
-               <td style='text-align:center'>3c</td>
-               <td>
-                  <b>Virtual beans</b>
-                  <br>These are unimplemented bean interfaces with properties of type [1, 2, 3ac, 4a, 6a] objects.
-                  <br>Parsers will automatically  create interface proxies on top of BeanMap instances.  
-               </td>
-               <td>&nbsp;</td>
-               <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
-               <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
-            </tr>    
-            <tr class='light bb'>
-               <td style='text-align:center'>3d</td>
-               <td>
-                  <b>Read-only beans without setters</b>
-                  <br>The same as 3a, but without property setters or constructor args.
-               </td>
-               <td>&nbsp;</td>
-               <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
-               <td style='background-color:salmon;text-align:center'><b>no</b></td>
-            </tr>    
-            <tr class='dark bb' style='background-color:lightyellow'>
-               <td style='text-align:center'>4</td>
-               <td>
-                  <b>Swapped objects</b>
-                  <br>These are objects that are not directly serializable, but have 
-                  <a href="org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwaps</code></a> associated with them.  
-                  The purpose of a POJO swap is to convert an object to another object that is easier to serialize 
-                  and parse.  
-                  For example, the <a href="org/apache/juneau/transforms/DateSwap.ISO8601DT.html" title="class in org.apache.juneau.transforms"><code>DateSwap.ISO8601DT</code></a> class can be used to 
-                  serialize <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util"><code>Date</code></a> objects to ISO8601 strings, and parse them back into 
-                  <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util"><code>Date</code></a> objects.
-               </td>
-               <td>&nbsp;</td>
-               <td>&nbsp;</td>
-               <td>&nbsp;</td>
-            </tr>       
-            <tr class='light bb'>
-               <td style='text-align:center'>4a</td>
-               <td>
-                  <b>2-way swapped to group [1, 2a, 3ac] objects</b>
-                  <br>For example, a swap that converts a <code>Date</code> to a <code>String</code>.
-               </td>
-               <td>
-                  <ul class='normal'>
-                     <li><code>java.util.Date</code>
-                     <li><code>java.util.GregorianCalendar</code>
-                  </ul>
-               </td>
-               <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
-               <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
-            </tr>       
-            <tr class='light bb'>
-               <td style='text-align:center'>4b</td>
-               <td>
-                  <b>1-way swapped to group [1, 2, 3] objects</b>
-                  <br>For example, a swap that converts an <code>Iterator</code> to a <code>List</code>.  
-                  This would be one way, since you cannot reconstruct an <code>Iterator</code>.
-               </td>
-               <td>
-                  <ul class='normal'>
-                     <li><code>java.util.Iterator</code>
-                  </ul>
-               </td>
-               <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
-               <td style='background-color:salmon;text-align:center'><b>no</b></td>
-            </tr>    
-            <tr class='dark bb' style='background-color:lightyellow'>
-               <td style='text-align:center'>5</td>
-               <td>
-                  <b>Readers and InputStreams</b>
-                  <br>Contents are serialized directly to the output stream or writer.
-                  <br>Typically used for low-level language-specific replacement of POJOs using per-Media-Type 
-                  POJO swaps.
-               </td>
-               <td>              
-                  <ul class='normal'>
-                     <li><code>FileInputStream</code>
-                     <li><code>StringReader</code>
-                  </ul>
-               </td>
-               <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
-               <td style='background-color:salmon;text-align:center'><b>no</b></td>
-            </tr>    
+      </p>
+      <p>
+         Note that this isn't perfect in all cases since you can't combine two JSON numbers into a single
+         reader (e.g. <code>"123" + "456" = "123456"</code>).
+      </p>
+      <p>
+         For obvious reasons, do not use the following properties when reading continuous streams:
+      </p>
+      <ul>
+         <li class='jf'><a href="org/apache/juneau/json/JsonParser.html#JSON_validateEnd"><code>JsonParser.JSON_validateEnd</code></a>
+         <li class='jf'><a href="org/apache/juneau/uon/UonParser.html#UON_validateEnd"><code>UonParser.UON_validateEnd</code></a>
+         <li class='jf'><a href="org/apache/juneau/parser/Parser.html#PARSER_autoCloseStreams"><code>Parser.PARSER_autoCloseStreams</code></a>
+      </ul>
+      <p>
+         The <a href="org/apache/juneau/msgpack/MsgPackParser.html" title="class in org.apache.juneau.msgpack"><code>MsgPackParser</code></a> class doesn't use any internal buffering to begin with, so it can be used with
+         continuous streams without any special properties.
+      </p>
+   </div>
    
-            <tr class='dark bb' style='background-color:lightyellow'>
-               <td style='text-align:center'>6</td>
-               <td>
-                  <b>Non-serializable objects with standard methods for converting to a serializable form</b><br>
-               </td>
-               <td>&nbsp;</td>
-               <td>&nbsp;</td>
-               <td>&nbsp;</td>
-            </tr>    
-            <tr class='light bb' style='background-color:lightyellow'>
-               <td style='text-align:center'>6a</td>
-               <td>
-                  Classes with a method that converts it to a serializable form:
-                  <ul>
-                     <li><code><jk>public</jk> X swap(BeanSession);</code> where <code>X</code> is in groups 
-                        [1, 2a, 3ac].
-                     <li><code><jk>public</jk> String toString();</code> where the string is any meaningful data.
-                  </ul>
-                  And a method that converts it back into the original object:
-                  <ul>
-                     <li><code><jk>public static</jk> T fromString(String);</code>     
-                     <li><code><jk>public static</jk> T valueOf(String);</code>     
-                     <li><code><jk>public static</jk> T parse(String);</code>    
-                     <li><code><jk>public static</jk> T parseString(String);</code>    
-                     <li><code><jk>public static</jk> T forName(String);</code>     
-                     <li><code><jk>public static</jk> T forString(String);</code>      
-                     <li><code><jk>public</jk> T(X);</code> where <code>X</code> is in groups [1, 2a, 3ac].
-                     <li><code><jk>public static</jk> T unswap(BeanSession,X);</code> where <code>X</code> is in 
-                        groups [1, 2a, 3ac].    
-                  </ul>
-               </td>
-               <td>
-                  <ul class='normal'>
-                     <li><code>java.lang.Class</code>
-                     <li><code>java.sql.Time</code>
-                     <li><code>java.sql.Timestamp</code>
-                     <li><code>java.text.MessageFormat</code>
-                     <li><code>java.text.NumberFormat</code>
-                     <li><code>java.util.Date</code>
-                     <li><code>java.util.UUID</code>
-                     <li><code>java.util.logging.Level</code>
-                     <li><code>javax.xml.bind.DatatypeConverter</code>
-                  </ul>
-               </td>
-               <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
-               <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
-            </tr>    
-            <tr class='light bb' style='background-color:lightyellow'>
-               <td style='text-align:center'>6b</td>
-               <td>
-                  Classes that only have a method to convert to a serializable form:
-                  <ul>
-                     <li><code><jk>public</jk> X swap(BeanSession);</code> where <code>X</code> is in groups 
-                        [1, 2, 3].
-                     <li><code><jk>public</jk> String toString();</code> where the string is any meaningful data.
-                  </ul>
-               </td>
-               <td>&nbsp;</td>
-               <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
-               <td style='background-color:salmon;text-align:center'><b>no</b></td>
-            </tr>       
-            <tr class='dark' style='background-color:lightyellow'>
-               <td style='text-align:center'>7</td>
-               <td>
-                  <b>All other objects</b>
-                  <br>Anything that doesn't fall into one of the groups above are simply converted to <code>Strings</code> 
-                  using the <code>toString()</code> method.
-               </td>
-               <td>&nbsp;</td>
-               <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
-               <td style='background-color:salmon;text-align:center'><b>no</b></td>
-            </tr>       
-         </table>
-         <ul class='doctree'>
-            <li class='info'>
-               Serializers are designed to work on tree-shaped POJO models.  
-               These are models where there are no referential loops (e.g. leaves with references to nodes, or nodes 
-               in one branch referencing nodes in another branch).  
-               There is a serializer setting <code>detectRecursions</code> to look for and handle these kinds of loops 
-               (by setting these references to <jk>null</jk>), but it is not enabled by default since it introduces 
-               a moderate performance penalty. 
-         </ul>
-      </div>
+   <!-- ======================================================================================================= -->
+   <a id="juneau-marshall.JacksonComparison"></a>
+   <h3 class='topic' onclick='toggle(this)'>2.11 - Comparison with Jackson</h3>
+   <div class='topic'>
+      <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.
+         Therefore, the terminology and annotations in Juneau are similar, but language-agnostic.   
+      </p>
+      <p>
+         The following charts describe equivalent features between the two libraries:
+      </p>
    
-      <!-- ======================================================================================================= -->
-      <a id="juneau-marshall.BestPractices"></a>
-      <h4 class='topic' onclick='toggle(this)'>2.1.13 - Best Practices</h4>
+      <h5 class='topic'>Annotations</h5>
+      <table class='styled' style='min-width:800px;width:50%'>
+         <tr><th>Jackson</th><th>Juneau</th></tr>
+         <tr>
+            <td>
+               <ja>@JsonGetter</ja>
+               <br><ja>@JsonSetter</ja>
+            </td>
+            <td>
+               <a href="org/apache/juneau/annotation/BeanProperty.html" title="annotation in org.apache.juneau.annotation"><code>@BeanProperty</code></a>
+            </td>
+         </tr>
+         <tr>
+            <td>
+               <ja>@JsonAnyGetter</ja>
+               <br><ja>@JsonAnySetter</ja>
+            </td>
+            <td>
+               <a href="org/apache/juneau/annotation/BeanProperty.html#name--"><code>@BeanProperty(name="*")</code></a>
+            </td>
+         </tr>
+         <tr>
+            <td>
+               <ja>@JsonIgnore</ja>
+               <br><ja>@JsonIgnoreType</ja>
+            </td>
+            <td>
+               <a href="org/apache/juneau/annotation/BeanIgnore.html" title="annotation in org.apache.juneau.annotation"><code>@BeanIgnore</code></a>
+            </td>
+         </tr>
+         <tr>
+            <td><code><ja>@JsonIgnoreProperties</ja>({...})</code></td>
+            <td>
+               <a href="org/apache/juneau/annotation/Bean.html#excludeProperties--"><code>@Bean(excludeProperties="...")</code></a>
+            </td>
+         </tr>
+         <tr>
+            <td><code><ja>@JsonAutoDetect</ja>(fieldVisibility=...)</code></td>
+            <td>
+               No equivalent annotation, but can be controlled via: 
+               <br><a href="org/apache/juneau/BeanContext.html#BEAN_beanFieldVisibility"><code>BeanContext.BEAN_beanFieldVisibility</code></a>
+               <br><a href="org/apache/juneau/BeanContext.html#BEAN_beanMethodVisibility"><code>BeanContext.BEAN_beanMethodVisibility</code></a>
+               <br>Future annotation support planned.
+            </td>
+         </tr>
+         <tr>
+            <td>
+               <ja>@JsonCreator</ja>
+               <br><ja>@JsonProperty</ja>
+            </td>
+            <td>
+               <a href="org/apache/juneau/annotation/BeanConstructor.html" title="annotation in org.apache.juneau.annotation"><code>@BeanConstructor</code></a>
+            </td>
+         </tr>
+         <tr>
+            <td><ja>@JacksonInject</ja></td>
+            <td>
+               No equivalent.
+               <br>Future support planned.
+            </td>
+               
+         </tr>
+         <tr>
+            <td>
+               <ja>@JsonSerialize</ja>
+               <br><ja>@JsonDeserialize</ja>
+            </td>
+            <td>
+               Juneau uses swaps to convert non-serializable object to serializable forms:
+               <br><a href="org/apache/juneau/annotation/Swap.html" title="annotation in org.apache.juneau.annotation"><code>@Swap</code></a>
+            </td>
+         </tr>
+         <tr>
+            <td><ja>@JsonInclude</ja></td>
+            <td>
+               No equivalent annotation, but can be controlled via various settings:
+               <br><a href="org/apache/juneau/BeanContext.html" title="class in org.apache.juneau"><code>BeanContext</code></a>
+               <br><a href="org/apache/juneau/serializer/Serializer.html" title="class in org.apache.juneau.serializer"><code>Serializer</code></a>
+               <br>Future annotation support planned.
+            </td>
+         </tr>
+         <tr>
+            <td><ja>@JsonPropertyOrder</ja></td>
+            <td>
+               <a href="org/apache/juneau/annotation/Bean.html#properties--"><code>@Bean(properties="...")</code></a>
+               <br><a href="org/apache/juneau/annotation/Bean.html#sort--"><code>@Bean(sort=x)</code></a>
+            </td>
+         </tr>
+         <tr>
+            <td>
+               <ja>@JsonValue</ja>
+               <br><ja>@JsonRawValue</ja>
+            </td>
+            <td>
+               Can be replicated using swaps with <code>Reader</code> swapped values.
+            </td>
+         </tr>
+      </table>
+   </div>
+
+   <!-- ======================================================================================================= -->
+   <a id="juneau-marshall.PojoCategories"></a>
+   <h3 class='topic' onclick='toggle(this)'>2.12 - POJO Categories</h3>
+   <div class='topic'>
+      <p>
+         The following chart shows POJOs categorized into groups and whether they can be serialized or parsed:
+      </p>
+      <table class='styled' style='border-collapse: collapse;min-width:800px;width:50%'>
+         <tr><th>Group</th><th>Description</th><th>Examples</th><th>Can<br>serialize?</th><th>Can<br>parse?</th></tr>
+         <tr class='dark bb' style='background-color:lightyellow;'>
+            <td style='text-align:center'>1</td>
+            <td><b>Java primitives and primitive objects</b></td>
+            <td>
+               <ul class='normal'>
+                  <li><code>String</code>
+                  <li><code>Integer</code>
+                  <li><code>Float</code>
+                  <li><code>Boolean</code>
+               </ul>
+            </td>
+            <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
+            <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
+         </tr>       
+         <tr class='dark bb' style='background-color:lightyellow'>
+            <td style='text-align:center'>2</td>
+            <td><b>Java Collections Framework objects and Java arrays</b></td>
+            <td>&nbsp;</td>
+            <td>&nbsp;</td>
+            <td>&nbsp;</td>
+         </tr>       
+         <tr class='light bb'>
+            <td style='text-align:center'>2a</td>
+            <td>
+               <b>With standard keys/values</b>
+               <br>Map keys are group [1, 4a, 6a] objects.
+               <br>Map, Collection, and array values are group [1, 2, 3ac, 4a, 6a] objects.  
+            </td>
+            <td>
+               <ul class='normal'>
+                  <li><code>HashSet&lt;String,Integer&gt;</code>
+                  <li><code>TreeMap&lt;Integer,Bean&gt;</code>
+                  <li><code>List&lt;<jk>int</jk>[][]&gt;</code>
+                  <li><code>Bean[]</code>
+               </ul>
+            </td>
+            <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
+            <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
+         </tr>       
+         <tr class='light bb'>
+            <td style='text-align:center'>2b</td>
+            <td>
+               <b>With non-standard keys/values</b>
+               <br>Map keys are group [2, 3, 4b, 5, 6b, 7] objects.
+               <br>Map, Collection, and array values are group [3b, 4b, 5, 6b, 7] objects.   
+            </td>
+            <td>
+               <ul class='normal'>
+                  <li><code>HashSet&lt;Bean,Integer&gt;</code>
+                  <li><code>TreeMap&lt;Integer,Reader&gt;</code>
+               </ul>
+            </td>
+            <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
+            <td style='background-color:salmon;text-align:center'><b>no</b></td>
+         </tr>       
+         <tr class='dark bb' style='background-color:lightyellow'>
+            <td style='text-align:center'>3</td>
+            <td><b>Java Beans</b></td>
+            <td>&nbsp;</td>
+            <td>&nbsp;</td>
+            <td>&nbsp;</td>
+         </tr>       
+         <tr class='light bb'>
+            <td style='text-align:center'>3a</td>
+            <td>
+               <b>With standard properties</b>
+               <br>These are beans that have one or more properties defined by public getter 
+               or public fields.
+               <br>Properties can also be defined as final read-only fields and passed in as constructor args.
+               <br>Property values are group [1, 2, 3ac, 4a, 6a] objects.
+            </td>
+            <td>&nbsp;</td>
+            <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
+            <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
+         </tr>       
+         <tr class='light bb'>
+            <td style='text-align:center'>3b</td>
+            <td>
+               <b>With non-standard properties or not true beans</b>
+               <br>These include true beans that have one or more properties defined by getter 
+               and setter methods or properties, but property types include group [3b, 4b, 5, 6b, 7] objects.
+               <br>This also includes classes that look like beans but aren't true beans.  
+               For example, classes that have getters but not setters, or classes without no-arg constructors. 
+            </td>
+            <td>&nbsp;</td>
+            <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
+            <td style='background-color:salmon;text-align:center'><b>no</b></td>
+         </tr>    
+         <tr class='light bb'>
+            <td style='text-align:center'>3c</td>
+            <td>
+               <b>Virtual beans</b>
+               <br>These are unimplemented bean interfaces with properties of type [1, 2, 3ac, 4a, 6a] objects.
+               <br>Parsers will automatically  create interface proxies on top of BeanMap instances.  
+            </td>
+            <td>&nbsp;</td>
+            <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
+            <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
+         </tr>    
+         <tr class='light bb'>
+            <td style='text-align:center'>3d</td>
+            <td>
+               <b>Read-only beans without setters</b>
+               <br>The same as 3a, but without property setters or constructor args.
+            </td>
+            <td>&nbsp;</td>
+            <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
+            <td style='background-color:salmon;text-align:center'><b>no</b></td>
+         </tr>    
+         <tr class='dark bb' style='background-color:lightyellow'>
+            <td style='text-align:center'>4</td>
+            <td>
+               <b>Swapped objects</b>
+               <br>These are objects that are not directly serializable, but have 
+               <a href="org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwaps</code></a> associated with them.  
+               The purpose of a POJO swap is to convert an object to another object that is easier to serialize 
+               and parse.  
+               For example, the <a href="org/apache/juneau/transforms/DateSwap.ISO8601DT.html" title="class in org.apache.juneau.transforms"><code>DateSwap.ISO8601DT</code></a> class can be used to 
+               serialize <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util"><code>Date</code></a> objects to ISO8601 strings, and parse them back into 
+               <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util"><code>Date</code></a> objects.
+            </td>
+            <td>&nbsp;</td>
+            <td>&nbsp;</td>
+            <td>&nbsp;</td>
+         </tr>       
+         <tr class='light bb'>
+            <td style='text-align:center'>4a</td>
+            <td>
+               <b>2-way swapped to group [1, 2a, 3ac] objects</b>
+               <br>For example, a swap that converts a <code>Date</code> to a <code>String</code>.
+            </td>
+            <td>
+               <ul class='normal'>
+                  <li><code>java.util.Date</code>
+                  <li><code>java.util.GregorianCalendar</code>
+               </ul>
+            </td>
+            <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
+            <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
+         </tr>       
+         <tr class='light bb'>
+            <td style='text-align:center'>4b</td>
+            <td>
+               <b>1-way swapped to group [1, 2, 3] objects</b>
+               <br>For example, a swap that converts an <code>Iterator</code> to a <code>List</code>.  
+               This would be one way, since you cannot reconstruct an <code>Iterator</code>.
+            </td>
+            <td>
+               <ul class='normal'>
+                  <li><code>java.util.Iterator</code>
+               </ul>
+            </td>
+            <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
+            <td style='background-color:salmon;text-align:center'><b>no</b></td>
+         </tr>    
+         <tr class='dark bb' style='background-color:lightyellow'>
+            <td style='text-align:center'>5</td>
+            <td>
+               <b>Readers and InputStreams</b>
+               <br>Contents are serialized directly to the output stream or writer.
+               <br>Typically used for low-level language-specific replacement of POJOs using per-Media-Type 
+               POJO swaps.
+            </td>
+            <td>              
+               <ul class='normal'>
+                  <li><code>FileInputStream</code>
+                  <li><code>StringReader</code>
+               </ul>
+            </td>
+            <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
+            <td style='background-color:salmon;text-align:center'><b>no</b></td>
+         </tr>    
+
+         <tr class='dark bb' style='background-color:lightyellow'>
+            <td style='text-align:center'>6</td>
+            <td>
+               <b>Non-serializable objects with standard methods for converting to a serializable form</b><br>
+            </td>
+            <td>&nbsp;</td>
+            <td>&nbsp;</td>
+            <td>&nbsp;</td>
+         </tr>    
+         <tr class='light bb' style='background-color:lightyellow'>
+            <td style='text-align:center'>6a</td>
+            <td>
+               Classes with a method that converts it to a serializable form:
+               <ul>
+                  <li><code><jk>public</jk> X swap(BeanSession);</code> where <code>X</code> is in groups 
+                     [1, 2a, 3ac].
+                  <li><code><jk>public</jk> String toString();</code> where the string is any meaningful data.
+               </ul>
+               And a method that converts it back into the original object:
+               <ul>
+                  <li><code><jk>public static</jk> T fromString(String);</code>     
+                  <li><code><jk>public static</jk> T valueOf(String);</code>     
+                  <li><code><jk>public static</jk> T parse(String);</code>    
+                  <li><code><jk>public static</jk> T parseString(String);</code>    
+                  <li><code><jk>public static</jk> T forName(String);</code>     
+                  <li><code><jk>public static</jk> T forString(String);</code>      
+                  <li><code><jk>public</jk> T(X);</code> where <code>X</code> is in groups [1, 2a, 3ac].
+                  <li><code><jk>public static</jk> T unswap(BeanSession,X);</code> where <code>X</code> is in 
+                     groups [1, 2a, 3ac].    
+               </ul>
+            </td>
+            <td>
+               <ul class='normal'>
+                  <li><code>java.lang.Class</code>
+                  <li><code>java.sql.Time</code>
+                  <li><code>java.sql.Timestamp</code>
+                  <li><code>java.text.MessageFormat</code>
+                  <li><code>java.text.NumberFormat</code>
+                  <li><code>java.util.Date</code>
+                  <li><code>java.util.UUID</code>
+                  <li><code>java.util.logging.Level</code>
+                  <li><code>javax.xml.bind.DatatypeConverter</code>
+               </ul>
+            </td>
+            <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
+            <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
+         </tr>    
+         <tr class='light bb' style='background-color:lightyellow'>
+            <td style='text-align:center'>6b</td>
+            <td>
+               Classes that only have a method to convert to a serializable form:
+               <ul>
+                  <li><code><jk>public</jk> X swap(BeanSession);</code> where <code>X</code> is in groups 
+                     [1, 2, 3].
+                  <li><code><jk>public</jk> String toString();</code> where the string is any meaningful data.
+               </ul>
+            </td>
+            <td>&nbsp;</td>
+            <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
+            <td style='background-color:salmon;text-align:center'><b>no</b></td>
+         </tr>       
+         <tr class='dark' style='background-color:lightyellow'>
+            <td style='text-align:center'>7</td>
+            <td>
+               <b>All other objects</b>
+               <br>Anything that doesn't fall into one of the groups above are simply converted to <code>Strings</code> 
+               using the <code>toString()</code> method.
+            </td>
+            <td>&nbsp;</td>
+            <td style='background-color:lightgreen;text-align:center'><b>yes</b></td>
+            <td style='background-color:salmon;text-align:center'><b>no</b></td>
+         </tr>       
+      </table>
+      <ul class='doctree'>
+         <li class='info'>
+            Serializers are designed to work on tree-shaped POJO models.  
+            These are models where there are no referential loops (e.g. leaves with references to nodes, or nodes 
+            in one branch referencing nodes in another branch).  
+            There is a serializer setting <code>detectRecursions</code> to look for and handle these kinds of loops 
+            (by setting these references to <jk>null</jk>), but it is not enabled by default since it introduces 
+            a moderate performance penalty. 
+      </ul>
+   </div>
+
+   <!-- ======================================================================================================= -->
+   <a id="juneau-marshall.BestPractices"></a>
+   <h3 class='topic' onclick='toggle(this)'>2.13 - Best Practices</h3>
+   <div class='topic'>
+      <ol class='spaced-list'>
+         <li>
+            Reuse instances of serializers and parsers whenever possible.
+            <br>They are designed to be thread safe and maintain internal caches of bean metadata to increase performance.
+         <li>
+            The <a href="org/apache/juneau/serializer/Serializer.html#SERIALIZER_detectRecursions"><code>SERIALIZER_detectRecursions</code></a> 
+            option on the <a href="org/apache/juneau/serializer/Serializer.html" title="class in org.apache.juneau.serializer"><code>Serializer</code></a> class can cause a performance penalty of 
+            around 20%.  
+            Therefore, it's recommended that this option be used only when necessary. 
+         <li>
+            In general, JSON serialization and parsing is about 20% faster than XML.  
+            JSON is also more compact than XML.
+            MessagePack is fastest and most compact of all.
+         <li>
+            The RDF parsers are SLOW.
+            RDF simply isn't efficient with node traversal, so creating tree structures out of RDF models
+            is highly inefficient.     
+         <li>
+            The <a href="org/apache/juneau/parser/Parser.html" title="class in org.apache.juneau.parser"><code>Parser</code></a> methods that take in <a href="org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau"><code>ClassMeta</code></a> 
+            parameters are slightly faster than methods that 
+            take in <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang"><code>Class</code></a> or <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><code>Object</code></a> parameters, since the latter methods involve 
+            hash lookups to resolve to <a href="org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau"><code>ClassMeta</code></a> parameters.
+      </ol>
+   </div>
+
+   <!-- ======================================================================================================= -->
+   <a id="juneau-marshall.AdditionalInfo"></a>
+   <h3 class='topic' onclick='toggle(this)'>2.14 - Additional Information</h3>
+   <div class='topic'>
+      <p>
+         Extensive javadocs exist for individual language support.
+         Refer to these docs for language-specific information.
+      </p>
+
+      <!-- =================================================================================================== -->
+      <a id="juneau-marshall.AdditionalInfo.JSON"></a>
+      <h4 class='topic' onclick='toggle(this)'>2.13.1 - JSON</h4>
       <div class='topic'>
-         <ol class='spaced-list'>
-            <li>
-               Reuse instances of serializers and parsers whenever possible.
-               <br>They are designed to be thread safe and maintain internal caches of bean metadata to increase performance.
-            <li>
-               The <a href="org/apache/juneau/serializer/Serializer.html#SERIALIZER_detectRecursions"><code>SERIALIZER_detectRecursions</code></a> 
-               option on the <a href="org/apache/juneau/serializer/Serializer.html" title="class in org.apache.juneau.serializer"><code>Serializer</code></a> class can cause a performance penalty of 
-               around 20%.  
-               Therefore, it's recommended that this option be used only when necessary. 
-            <li>
-               In general, JSON serialization and parsing is about 20% faster than XML.  
-               JSON is also more compact than XML.
-               MessagePack is fastest and most compact of all.
-            <li>
-               The RDF parsers are SLOW.
-               RDF simply isn't efficient with node traversal, so creating tree structures out of RDF models
-               is highly inefficient.     
-            <li>
-               The <a href="org/apache/juneau/parser/Parser.html" title="class in org.apache.juneau.parser"><code>Parser</code></a> methods that take in <a href="org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau"><code>ClassMeta</code></a> 
-               parameters are slightly faster than methods that 
-               take in <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang"><code>Class</code></a> or <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><code>Object</code></a> parameters, since the latter methods involve 
-               hash lookups to resolve to <a href="org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau"><code>ClassMeta</code></a> parameters.
+         <h5 class='toc'>Additional Information - org.apache.juneau.json</h5>
+         <ol class='toc'>
+            <li><p><a class='doclink' href='org/apache/juneau/json/package-summary.html#Overview'>JSON support overview</a></p> 
+            <ol>
+               <li><p><a class='doclink' href='org/apache/juneau/json/package-summary.html#OverviewExample'>Example</a></p>
+            </ol>
+            <li><p><a class='doclink' href='org/apache/juneau/json/package-summary.html#JsonSerializer'>JsonSerializer class</a></p> 
+            <ol>
+               <li><p><a class='doclink' href='org/apache/juneau/json/package-summary.html#BeanAnnotations'>@Bean and @BeanProperty annotations</a></p>
+               <li><p><a class='doclink' href='org/apache/juneau/json/package-summary.html#Collections'>Collections</a></p>
+               <li><p><a class='doclink' href='org/apache/juneau/json/package-summary.html#JsonSchemaSupport'>JSON-Schema support</a></p>
+               <li><p><a class='doclink' href='org/apache/juneau/json/package-summary.html#Recursion'> Non-tree models and recursion detection</a></p>
+               <li><p><a class='doclink' href='org/apache/juneau/json/package-summary.html#SerializerConfigurableProperties'>Configurable properties</a></p>
+               <li><p><a class='doclink' href='org/apache/juneau/json/package-summary.html#SerializerOtherNotes'>Other notes</a></p>
+            </ol>
+            <li><p><a class='doclink' href='org/apache/juneau/json/package-summary.html#JsonParser'>JsonParser class</a></p> 
+            <ol>
+               <li><p><a class='doclink' href='org/apache/juneau/json/package-summary.html#GenericParsing'>Parsing into generic POJO models</a></p>
+               <li><p><a class='doclink' href='org/apache/juneau/json/package-summary.html#ParserConfigurableProperties'>Configurable properties</a></p>
+               <li><p><a class='doclink' href='org/apache/juneau/json/package-summary.html#ParserOtherNotes'>Other notes</a></p>
+            </ol>
          </ol>
       </div>
 
-      <!-- ======================================================================================================= -->
-      <a id="juneau-marshall.AdditionalInfo"></a>
-      <h4 class='topic' onclick='toggle(this)'>2.1.14 - Additional Information</h4>
+      <!-- =================================================================================================== -->
+      <a id="juneau-marshall.AdditionalInfo.XML"></a>
+      <h4 class='topic' onclick='toggle(this)'>2.13.2 - XML</h4>
       <div class='topic'>
-         <p>
-            Extensive javadocs exist for individual language support.
-            Refer to these docs for language-specific information.
-         </p>
-
-         <!-- =================================================================================================== -->
-         <a id="juneau-marshall.AdditionalInfo.JSON"></a>
-         <h4 class='topic' onclick='toggle(this)'>2.1.13.1 - JSON</h4>
-         <div class='topic'>
-            <h5 class='toc'>Additional Information - org.apache.juneau.json</h5>
-            <ol class='toc'>
-               <li><p><a class='doclink' href='org/apache/juneau/json/package-summary.html#Overview'>JSON support overview</a></p> 
-               <ol>
-                  <li><p><a class='doclink' href='org/apache/juneau/json/package-summary.html#OverviewExample'>Example</a></p>
-               </ol>
-               <li><p><a class='doclink' href='org/apache/juneau/json/package-summary.html#JsonSerializer'>JsonSerializer class</a></p> 
-               <ol>
-                  <li><p><a class='doclink' href='org/apache/juneau/json/package-summary.html#BeanAnnotations'>@Bean and @BeanProperty annotations</a></p>
-                  <li><p><a class='doclink' href='org/apache/juneau/json/package-summary.html#Collections'>Collections</a></p>
-                  <li><p><a class='doclink' href='org/apache/juneau/json/package-summary.html#JsonSchemaSupport'>JSON-Schema support</a></p>
-                  <li><p><a class='doclink' href='org/apache/juneau/json/package-summary.html#Recursion'> Non-tree models and recursion detection</a></p>
-                  <li><p><a class='doclink' href='org/apache/juneau/json/package-summary.html#SerializerConfigurableProperties'>Configurable properties</a></p>
-                  <li><p><a class='doclink' href='org/apache/juneau/json/package-summary.html#SerializerOtherNotes'>Other notes</a></p>
-               </ol>
-               <li><p><a class='doclink' href='org/apache/juneau/json/package-summary.html#JsonParser'>JsonParser class</a></p> 
-               <ol>
-                  <li><p><a class='doclink' href='org/apache/juneau/json/package-summary.html#GenericParsing'>Parsing into generic POJO models</a></p>
-                  <li><p><a class='doclink' href='org/apache/juneau/json/package-summary.html#ParserConfigurableProperties'>Configurable properties</a></p>
-                  <li><p><a class='doclink' href='org/apache/juneau/json/package-summary.html#ParserOtherNotes'>Other notes</a></p>
-               </ol>
+         <h5 class='toc'>Additional Information - org.apache.juneau.xml</h5>
+         <ol class='toc'>
+            <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#Overview'>XML support overview</a></p> 
+            <ol>
+               <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#OverviewExample'>XML support overview - example</a></p>
             </ol>
-         </div>
-
-         <!-- =================================================================================================== -->
-         <a id="juneau-marshall.AdditionalInfo.XML"></a>
-         <h4 class='topic' onclick='toggle(this)'>2.1.13.2 - XML</h4>
-         <div class='topic'>
-            <h5 class='toc'>Additional Information - org.apache.juneau.xml</h5>
-            <ol class='toc'>
-               <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#Overview'>XML support overview</a></p> 
-               <ol>
-                  <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#OverviewExample'>XML support overview - example</a></p>
-               </ol>
-               <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#XmlSerializer'>XmlSerializer class</a></p> 
+            <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#XmlSerializer'>XmlSerializer class</a></p> 
+            <ol>
+               <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#Methodology'>XML support methodology</a></p>
+               <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#XmlAnnotation'>@Xml annotations</a></p>
                <ol>
-                  <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#Methodology'>XML support methodology</a></p>
-                  <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#XmlAnnotation'>@Xml annotations</a></p>
-                  <ol>
-                     <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#XmlName'>@Bean.typeName()</a></p>
-                     <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#XmlChildName'>@Xml.childName()</a></p>
-                     <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#XmlFormat'>@Xml.format()</a></p>
-                  </ol>
-                  <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#Namespaces'>Namespaces</a></p>
-                  <ol>
-                     <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#AutoDetectNamespaces'>Auto-detection of namespaces</a></p>
-                  </ol>
-                  <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#BeanAnnotations'>@Bean and @BeanProperty annotations</a></p>
-                  <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#Collections'>Collections</a></p>
-                  <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#XmlSchemaSupport'>XML-Schema support</a></p>
-                  <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#Recursion'> Non-tree models and recursion detection</a></p>
-                  <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#SerializerConfigurableProperties'>Configurable properties</a></p>
-                  <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#SerializerOtherNotes'>Other notes</a></p>
+                  <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#XmlName'>@Bean.typeName()</a></p>
+                  <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#XmlChildName'>@Xml.childName()</a></p>
+                  <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#XmlFormat'>@Xml.format()</a></p>
                </ol>
-               <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#XmlParser'>XmlParser class</a></p> 
+               <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#Namespaces'>Namespaces</a></p>
                <ol>
-                  <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#GenericParsing'>Parsing into generic POJO models</a></p>
-                  <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#ParserConfigurableProperties'>Configurable properties</a></p>
-                  <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#ParserOtherNotes'>Other notes</a></p>
+                  <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#AutoDetectNamespaces'>Auto-detection of namespaces</a></p>
                </ol>
+               <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#BeanAnnotations'>@Bean and @BeanProperty annotations</a></p>
+               <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#Collections'>Collections</a></p>
+               <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#XmlSchemaSupport'>XML-Schema support</a></p>
+               <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#Recursion'> Non-tree models and recursion detection</a></p>
+               <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#SerializerConfigurableProperties'>Configurable properties</a></p>
+               <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#SerializerOtherNotes'>Other notes</a></p>
             </ol>
-         </div>
-         
-         <!-- =================================================================================================== -->
-         <a id="juneau-marshall.AdditionalInfo.HTML"></a>
-         <h4 class='topic' onclick='toggle(this)'>2.1.13.3 - HTML</h4>
-         <div class='topic'>
-            <h5 class='toc'>Additional Information - org.apache.juneau.html</h5>
-            <ol class='toc'>
-               <li><p><a class='doclink' href='org/apache/juneau/html/package-summary.html#HtmlSerializer'>HTML serialization support</a></p> 
-               <li><p><a class='doclink' href='org/apache/juneau/html/package-summary.html#HtmlParser'>HTML parsing support</a></p> 
+            <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#XmlParser'>XmlParser class</a></p> 
+            <ol>
+               <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#GenericParsing'>Parsing into generic POJO models</a></p>
+               <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#ParserConfigurableProperties'>Configurable properties</a></p>
+               <li><p><a class='doclink' href='org/apache/juneau/xml/package-summary.html#ParserOtherNotes'>Other notes</a></p>
             </ol>
-         </div>
-         
-         <!-- =================================================================================================== -->
-         <a id="juneau-marshall.AdditionalInfo.UON"></a>
-         <h4 class='topic' onclick='toggle(this)'>2.1.13.4 - UON</h4>
-         <div class='topic'>
-            <h5 class='toc'>Additional Information - org.apache.juneau.uon</h5>
-            <ol class='toc'>
-               <li><p><a class='doclink' href='org/apache/juneau/uon/package-summary.html#Overview'>UON support overview</a></p> 
-               <ol>
-                  <li><p><a class='doclink' href='org/apache/juneau/uon/package-summary.html#OverviewExample'>Example</a></p>
-               </ol>
-               <li><p><a class='doclink' href='org/apache/juneau/uon/package-summary.html#UrlEncodingSerializer'>UrlEncodingSerializer and UonSerializer classes</a></p> 
-               <ol>
-                  <li><p><a class='doclink' href='org/apache/juneau/uon/package-summary.html#BeanAnnotations'>@Bean and @BeanProperty annotations</a></p>
-                  <li><p><a class='doclink' href='org/apache/juneau/uon/package-summary.html#Collections'>Collections</a></p>
-                  <li><p><a class='doclink' href='org/apache/juneau/uon/package-summary.html#Recursion'> Non-tree models and recursion detection</a></p>
-                  <li><p><a class='doclink' href='org/apache/juneau/uon/package-summary.html#SerializerConfigurableProperties'>Configurable properties</a></p>
-                  <li><p><a class='doclink' href='org/apache/juneau/uon/package-summary.html#SerializerOtherNotes'>Other notes</a></p>
-               </ol>
-               <li><p><a class='doclink' href='org/apache/juneau/uon/package-summary.html#UrlEncodingParser'>UrlEncodingParser and UonParser classes</a></p> 
-               <ol>
-                  <li><p><a class='doclink' href='org/apache/juneau/uon/package-summary.html#GenericParsing'>Parsing into generic POJO models</a></p>
-                  <li><p><a class='doclink' href='org/apache/juneau/uon/package-summary.html#ParserConfigurableProperties'>Configurable properties</a></p>
-                  <li><p><a class='doclink' href='org/apache/juneau/uon/package-summary.html#ParserOtherNotes'>Other notes</a></p>
-               </ol>
+         </ol>
+      </div>
+      
+      <!-- =================================================================================================== -->
+      <a id="juneau-marshall.AdditionalInfo.HTML"></a>
+      <h4 class='topic' onclick='toggle(this)'>2.13.3 - HTML</h4>
+      <div class='topic'>
+         <h5 class='toc'>Additional Information - org.apache.juneau.html</h5>
+         <ol class='toc'>
+            <li><p><a class='doclink' href='org/apache/juneau/html/package-summary.html#HtmlSerializer'>HTML serialization support</a></p> 
+            <li><p><a class='doclink' href='org/apache/juneau/html/package-summary.html#HtmlParser'>HTML parsing support</a></p> 
+         </ol>
+      </div>
+      
+      <!-- =================================================================================================== -->
+      <a id="juneau-marshall.AdditionalInfo.UON"></a>
+      <h4 class='topic' onclick='toggle(this)'>2.13.4 - UON</h4>
+      <div class='topic'>
+         <h5 class='toc'>Additional Information - org.apache.juneau.uon</h5>
+         <ol class='toc'>
+            <li><p><a class='doclink' href='org/apache/juneau/uon/package-summary.html#Overview'>UON support overview</a></p> 
+            <ol>
+               <li><p><a class='doclink' href='org/apache/juneau/uon/package-summary.html#OverviewExample'>Example</a></p>
             </ol>
-         </div>
-                  
-         <!-- =================================================================================================== -->
-         <a id="juneau-marshall.AdditionalInfo.URLEncoding"></a>
-         <h4 class='topic' onclick='toggle(this)'>2.1.13.5 - URL-Encoding</h4>
-         <div class='topic'>
-            <h5 class='toc'>Additional Information - org.apache.juneau.urlencoding</h5>
-            <ol class='toc'>
-               <li><p><a class='doclink' href='org/apache/juneau/urlencoding/package-summary.html#Overview'>URL encoding support overview</a></p> 
-               <ol>
-                  <li><p><a class='doclink' href='org/apache/juneau/urlencoding/package-summary.html#OverviewExample'>Example</a></p>
-               </ol>
-               <li><p><a class='doclink' href='org/apache/juneau/urlencoding/package-summary.html#UrlEncodingSerializer'>UrlEncodingSerializer and UonSerializer classes</a></p> 
-               <ol>
-                  <li><p><a class='doclink' href='org/apache/juneau/urlencoding/package-summary.html#BeanAnnotations'>@Bean and @BeanProperty annotations</a></p>
-                  <li><p><a class='doclink' href='org/apache/juneau/urlencoding/package-summary.html#Collections'>Collections</a></p>
-                  <li><p><a class='doclink' href='org/apache/juneau/urlencoding/package-summary.html#Recursion'> Non-tree models and recursion detection</a></p>
-                  <li><p><a class='doclink' href='org/apache/juneau/urlencoding/package-summary.html#SerializerConfigurableProperties'>Configurable properties</a></p>
-                  <li><p><a class='doclink' href='org/apache/juneau/urlencoding/package-summary.html#SerializerOtherNotes'>Other notes</a></p>
-               </ol>
-               <li><p><a class='doclink' href='org/apache/juneau/urlencoding/package-summary.html#UrlEncodingParser'>UrlEncodingParser and UonParser classes</a></p> 
-               <ol>
-                  <li><p><a class='doclink' href='org/apache/juneau/urlencoding/package-summary.html#GenericParsing'>Parsing into generic POJO models</a></p>
-                  <li><p><a class='doclink' href='org/apache/juneau/urlencoding/package-summary.html#ParserConfigurableProperties'>Configurable properties</a></p>
-                  <li><p><a class='doclink' href='org/apache/juneau/urlencoding/package-summary.html#ParserOtherNotes'>Other notes</a></p>
-               </ol>
+            <li><p><a class='doclink' href='org/apache/juneau/uon/package-summary.html#UrlEncodingSerializer'>UrlEncodingSerializer and UonSerializer classes</a></p> 
+            <ol>
+               <li><p><a class='doclink' href='org/apache/juneau/uon/package-summary.html#BeanAnnotations'>@Bean and @BeanProperty annotations</a></p>
+               <li><p><a class='doclink' href='org/apache/juneau/uon/package-summary.html#Collections'>Collections</a></p>
+               <li><p><a class='doclink' href='org/apache/juneau/uon/package-summary.html#Recursion'> Non-tree models and recursion detection</a></p>
+               <li><p><a class='doclink' href='org/apache/juneau/uon/package-summary.html#SerializerConfigurableProperties'>Configurable properties</a></p>
+               <li><p><a class='doclink' href='org/apache/juneau/uon/package-summary.html#SerializerOtherNotes'>Other notes</a></p>
+            </ol>
+            <li><p><a class='doclink' href='org/apache/juneau/uon/package-summary.html#UrlEncodingParser'>UrlEncodingParser and UonParser classes</a></p> 
+            <ol>
+               <li><p><a class='doclink' href='org/apache/juneau/uon/package-summary.html#GenericParsing'>Parsing into generic POJO models</a></p>
+               <li><p><a class='doclink' href='org/apache/juneau/uon/package-summary.html#ParserConfigurableProperties'>Configurable properties</a></p>
+               <li><p><a class='doclink' href='org/apache/juneau/uon/package-summary.html#ParserOtherNotes'>Other notes</a></p>
             </ol>
-         </div>
+         </ol>
+      </div>
+               
+      <!-- =================================================================================================== -->
+      <a id="juneau-marshall.AdditionalInfo.URLEncoding"></a>
+      <h4 class='topic' onclick='toggle(this)'>2.13.5 - URL-Encoding</h4>
+      <div class='topic'>
+         <h5 class='toc'>Additional Information - org.apache.juneau.urlencoding</h5>
+         <ol class='toc'>
+            <li><p><a class='doclink' href='org/apache/juneau/urlencoding/package-summary.html#Overview'>URL encoding support overview</a></p> 
+            <ol>
+               <li><p><a class='doclink' href='org/apache/juneau/urlencoding/package-summary.html#OverviewExample'>Example</a></p>
+            </ol>
+            <li><p><a class='doclink' href='org/apache/juneau/urlencoding/package-summary.html#UrlEncodingSerializer'>UrlEncodingSerializer and UonSerializer classes</a></p> 
+            <ol>
+               <li><p><a class='doclink' href='org/apache/juneau/urlencoding/package-summary.html#BeanAnnotations'>@Bean and @BeanProperty annotations</a></p>
+               <li><p><a class='doclink' href='org/apache/juneau/urlencoding/package-summary.html#Collections'>Collections</a></p>
+               <li><p><a class='doclink' href='org/apache/juneau/urlencoding/package-summary.html#Recursion'> Non-tree models and recursion detection</a></p>
+               <li><p><a class='doclink' href='org/apache/juneau/urlencoding/package-summary.html#SerializerConfigurableProperties'>Configurable properties</a></p>
+               <li><p><a class='doclink' href='org/apache/juneau/urlencoding/package-summary.html#SerializerOtherNotes'>Other notes</a></p>
+            </ol>
+            <li><p><a class='doclink' href='org/apache/juneau/urlencoding/package-summary.html#UrlEncodingParser'>UrlEncodingParser and UonParser classes</a></p> 
+            <ol>
+               <li><p><a class='doclink' href='org/apache/juneau/urlencoding/package-summary.html#GenericParsing'>Parsing into generic POJO models</a></p>
+               <li><p><a class='doclink' href='org/apache/juneau/urlencoding/package-summary.html#ParserConfigurableProperties'>Configurable properties</a></p>
+               <li><p><a class='doclink' href='org/apache/juneau/urlencoding/package-summary.html#ParserOtherNotes'>Other notes</a></p>
+            </ol>
+         </ol>
       </div>
    </div>
+</div>
 
-   <!-- =========================================================================================================== -->
-   <a id="juneau-marshall-rdf"></a>
-   <h3 class='topic' onclick='toggle(this)'>2.2 - juneau-marshall-rdf</h3>
-   <div class='topic'>
-   
-      <h5 class='figure'>Maven Dependency</h5>
-      <p class='bcode' style='width:500px;'>
+<!-- =========================================================================================================== -->
+<a id="juneau-marshall-rdf"></a>
+<h2 class='topic' onclick='toggle(this)'>3 - juneau-marshall-rdf</h2>
+<div class='topic'>
+
+   <h5 class='figure'>Maven Dependency</h5>
+   <p class='bcode' style='width:500px;'>
    <xt>&lt;dependency&gt;</xt>
       <xt>&lt;groupId&gt;</xt>org.apache.juneau<xt>&lt;/groupId&gt;</xt>
       <xt>&lt;artifactId&gt;</xt>juneau-marshall-rdf<xt>&lt;/artifactId&gt;</xt>
       <xt>&lt;version&gt;</xt>7.0.0<xt>&lt;/version&gt;</xt>
    <xt>&lt;/dependency&gt;</xt>
-      </p>  
-      
-      <h5 class='figure'>Java Library</h5>
-      <p class='bcode' style='width:500px;'>
-   juneau-marshall-rdf-7.0.0.jar 
-      </p>  
+   </p>  
    
-      <h5 class='figure'>OSGi Module</h5>
-      <p class='bcode' style='width:500px;'>
+   <h5 class='figure'>Java Library</h5>
+   <p class='bcode' style='width:500px;'>
+   juneau-marshall-rdf-7.0.0.jar 
+   </p>  
+
+   <h5 class='figure'>OSGi Module</h5>
+   <p class='bcode' style='width:500px;'>
    org.apache.juneau.marshall.rdf_7.0.0.jar 
-      </p>  
-   
-      <p>
-         The <code>juneau-marshall-rdf</code> library provides additional serializers and parsers for RDF.
-         These rely on the Apache Jena library to provide support for the following languages:
-      </p>
-      <ul>
-         <li>RDF/XML
-         <li>RDF/XML-Abbrev   
-         <li>N-Triple
-         <li>Turtle
-         <li>N3
-      </ul>          
-      <p>
-         The serializers and parsers work identically to those in <code>juneau-marshall</code>, but are
-         packaged separately so that you don't need to pull in the Jena dependency unless you need it.
-      </p>
-   
-      <p class='bcode'>
+   </p>  
+
+   <p>
+      The <code>juneau-marshall-rdf</code> library provides additional serializers and parsers for RDF.
+      These rely on the Apache Jena library to provide support for the following languages:
+   </p>
+   <ul>
+      <li>RDF/XML
+      <li>RDF/XML-Abbrev   
+      <li>N-Triple
+      <li>Turtle
+      <li>N3
+   </ul>          
+   <p>
+      The serializers and parsers work identically to those in <code>juneau-marshall</code>, but are
+      packaged separately so that you don't need to pull in the Jena dependency unless you need it.
+   </p>
+
+   <p class='bcode'>
    <jc>// A simple bean</jc>
    <jk>public class</jk> Person {
       <jk>public</jk> String name = <js>"John Smith"</js>;
@@ -4185,87 +4150,87 @@
    // _:A3bf53c85X3aX157cf407e2dX3aXX2dX7ffd &lt;http://www.apache.org/juneaubp/name&gt; "John Smith" .
    // _:A3bf53c85X3aX157cf407e2dX3aXX2dX7ffd &lt;http://www.apache.org/juneaubp/age&gt; "21" .</jc>
    String rdfNTriple = RdfSerializer.<jsf>DEFAULT_NTRIPLE</jsf>.serialize(p);
-      </p>
+   </p>
 
-      <h5 class='toc'>Additional Information - org.apache.juneau.jena</h5>
-      <ol class='toc'>
-         <li><p><a class='doclink' href='org/apache/juneau/jena/package-summary.html#RdfOverview'>RDF support overview</a></p> 
-         <ol>
-            <li><p><a class='doclink' href='org/apache/juneau/jena/package-summary.html#RdfOverviewExample'>Example</a></p>
-         </ol>
-         <li><p><a class='doclink' href='org/apache/juneau/jena/package-summary.html#RdfSerializer'>RdfSerializer class</a></p> 
-         <ol>
-            <li><p><a class='doclink' href='org/apache/juneau/jena/package-summary.html#Namespaces'>Namespaces</a></p>
-            <li><p><a class='doclink' href='org/apache/juneau/jena/package-summary.html#UriProperties'>URI properties</a></p>
-            <li><p><a class='doclink' href='org/apache/juneau/jena/package-summary.html#BeanAnnotations'>@Bean and @BeanProperty annotations</a></p>
-            <li><p><a class='doclink' href='org/apache/juneau/jena/package-summary.html#Collections'>Collections</a></p>
-            <li><p><a class='doclink' href='org/apache/juneau/jena/package-summary.html#RootProperty'>Root property</a></p>
-            <li><p><a class='doclink' href='org/apache/juneau/jena/package-summary.html#TypedLiterals'>Typed literals</a></p>
-            <li><p><a class='doclink' href='org/apache/juneau/jena/package-summary.html#Recursion'>Non-tree models and recursion detection</a></p>
-            <li><p><a class='doclink' href='org/apache/juneau/jena/package-summary.html#SerializerConfigurableProperties'>Configurable properties</a></p>
-            <li><p><a class='doclink' href='org/apache/juneau/jena/package-summary.html#SerializerOtherNotes'>Other notes</a></p>
-         </ol> 
-         <li><p><a class='doclink' href='org/apache/juneau/jena/package-summary.html#RdfParser'>RdfParser class</a></p> 
-         <ol>
-            <li><p><a class='doclink' href='org/apache/juneau/jena/package-summary.html#GenericParsing'>Parsing into generic POJO models</a></p>
-            <li><p><a class='doclink' href='org/apache/juneau/jena/package-summary.html#ParserConfigurableProperties'>Configurable properties</a></p>
-            <li><p><a class='doclink' href='org/apache/juneau/jena/package-summary.html#ParserOtherNotes'>Other notes</a></p>
-         </ol> 
+   <h5 class='toc'>Additional Information - org.apache.juneau.jena</h5>
+   <ol class='toc'>
+      <li><p><a class='doclink' href='org/apache/juneau/jena/package-summary.html#RdfOverview'>RDF support overview</a></p> 
+      <ol>
+         <li><p><a class='doclink' href='org/apache/juneau/jena/package-summary.html#RdfOverviewExample'>Example</a></p>
       </ol>
-   </div>
-   
-   <!-- =========================================================================================================== -->
-   <a id="juneau-dto"></a>
-   <h3 class='topic' onclick='toggle(this)'>2.3 - juneau-dto</h3>
-   <div class='topic'>
+      <li><p><a class='doclink' href='org/apache/juneau/jena/package-summary.html#RdfSerializer'>RdfSerializer class</a></p> 
+      <ol>
+         <li><p><a class='doclink' href='org/apache/juneau/jena/package-summary.html#Namespaces'>Namespaces</a></p>
+         <li><p><a class='doclink' href='org/apache/juneau/jena/package-summary.html#UriProperties'>URI properties</a></p>
+         <li><p><a class='doclink' href='org/apache/juneau/jena/package-summary.html#BeanAnnotations'>@Bean and @BeanProperty annotations</a></p>
+         <li><p><a class='doclink' href='org/apache/juneau/jena/package-summary.html#Collections'>Collections</a></p>
+         <li><p><a class='doclink' href='org/apache/juneau/jena/package-summary.html#RootProperty'>Root property</a></p>
+         <li><p><a class='doclink' href='org/apache/juneau/jena/package-summary.html#TypedLiterals'>Typed literals</a></p>
+         <li><p><a class='doclink' href='org/apache/juneau/jena/package-summary.html#Recursion'>Non-tree models and recursion detection</a></p>
+         <li><p><a class='doclink' href='org/apache/juneau/jena/package-summary.html#SerializerConfigurableProperties'>Configurable properties</a></p>
+         <li><p><a class='doclink' href='org/apache/juneau/jena/package-summary.html#SerializerOtherNotes'>Other notes</a></p>
+      </ol> 
+      <li><p><a class='doclink' href='org/apache/juneau/jena/package-summary.html#RdfParser'>RdfParser class</a></p> 
+      <ol>
+         <li><p><a class='doclink' href='org/apache/juneau/jena/package-summary.html#GenericParsing'>Parsing into generic POJO models</a></p>
+         <li><p><a class='doclink' href='org/apache/juneau/jena/package-summary.html#ParserConfigurableProperties'>Configurable properties</a></p>
+         <li><p><a class='doclink' href='org/apache/juneau/jena/package-summary.html#ParserOtherNotes'>Other notes</a></p>
+      </ol> 
+   </ol>
+</div>
    
-      <h5 class='figure'>Maven Dependency</h5>
-      <p class='bcode' style='width:500px;'>
+<!-- =========================================================================================================== -->
+<a id="juneau-dto"></a>
+<h2 class='topic' onclick='toggle(this)'>4 - juneau-dto</h2>
+<div class='topic'>
+
+   <h5 class='figure'>Maven Dependency</h5>
+   <p class='bcode' style='width:500px;'>
    <xt>&lt;dependency&gt;</xt>
       <xt>&lt;groupId&gt;</xt>org.apache.juneau<xt>&lt;/groupId&gt;</xt>
       <xt>&lt;artifactId&gt;</xt>juneau-dto<xt>&lt;/artifactId&gt;</xt>
       <xt>&lt;version&gt;</xt>7.0.0<xt>&lt;/version&gt;</xt>
    <xt>&lt;/dependency&gt;</xt>
-      </p>  
-      
-      <h5 class='figure'>Java Library</h5>
-      <p class='bcode' style='width:500px;'>
-   juneau-dto-7.0.0.jar 
-      </p>  
+   </p>  
    
-      <h5 class='figure'>OSGi Module</h5>
-      <p class='bcode' style='width:500px;'>
+   <h5 class='figure'>Java Library</h5>
+   <p class='bcode' style='width:500px;'>
+   juneau-dto-7.0.0.jar 
+   </p>  
+
+   <h5 class='figure'>OSGi Module</h5>
+   <p class='bcode' style='width:500px;'>
    org.apache.juneau.dto_7.0.0.jar 
-      </p>  
+   </p>  
+
+   <p>
+      The <code>juneau-dto</code> library contains several predefined POJOs for generating commonly-used document types.
+      This section describes support for these POJOs.
+   </p>
    
+   <!-- ======================================================================================================= -->
+   <a id="juneau-dto.HTML5"></a>
+   <h3 class='topic' onclick='toggle(this)'>4.1 - HTML5</h3>
+   <div class='topic'>
       <p>
-         The <code>juneau-dto</code> library contains several predefined POJOs for generating commonly-used document types.
-         This section describes support for these POJOs.
+         The Juneau HTML5 DTOs are simply beans with fluent-style setters that allow you to quickly construct HTML
+         fragments as Java objects.  These object can then be serialized to HTML using one of the existing HTML 
+         serializers, or to other languages such as JSON using the JSON serializers.
       </p>
-      
-      <!-- ======================================================================================================= -->
-      <a id="juneau-dto.HTML5"></a>
-      <h4 class='topic' onclick='toggle(this)'>2.3.1 - HTML5</h4>
-      <div class='topic'>
-         <p>
-            The Juneau HTML5 DTOs are simply beans with fluent-style setters that allow you to quickly construct HTML
-            fragments as Java objects.  These object can then be serialized to HTML using one of the existing HTML 
-            serializers, or to other languages such as JSON using the JSON serializers.
-         </p>
-         <p>
-            The <a href="org/apache/juneau/dto/html5/HtmlBuilder.html" title="class in org.apache.juneau.dto.html5"><code>HtmlBuilder</code></a> class is a utility class with predefined static methods
-            that allow you to easily construct DTO instances in a minimal amount of code. 
-         </p>
-         <p>
-            The following examples show how to create HTML tables.
-         </p>
-         <table class='styled' style='width:auto'>
-            <tr>
-               <th>Java code</th>
-               <th>HTML</th>
-            </tr>
-            <tr>
-               <td class='code'>
+      <p>
+         The <a href="org/apache/juneau/dto/html5/HtmlBuilder.html" title="class in org.apache.juneau.dto.html5"><code>HtmlBuilder</code></a> class is a utility class with predefined static methods
+         that allow you to easily construct DTO instances in a minimal amount of code. 
+      </p>
+      <p>
+         The following examples show how to create HTML tables.
+      </p>
+      <table class='styled' style='width:auto'>
+         <tr>
+            <th>Java code</th>
+            <th>HTML</th>
+         </tr>
+         <tr>
+            <td class='code'>
    <jk>import static</jk> org.apache.juneau.dto.html5.HtmlBuilder.*;
    
    Object mytable =  
@@ -4281,8 +4246,8 @@
       );
 
    String html = HtmlSerializer.<jsf>DEFAULT</jsf>.serialize(mytable);
-               </td>
-               <td class='code'><xt>
+            </td>
+            <td class='code'><xt>
    &lt;table&gt;
       &lt;tr&gt;
          &lt;th&gt;<xv>c1</xv>&lt;/th&gt;
@@ -4293,10 +4258,10 @@
          &lt;td&gt;<xv>v2</xv>&lt;/td&gt;
       &lt;/tr&gt;
    &lt;/table&gt;
-               </xt></td>
-            </tr>
-            <tr>
-               <td class='code'>
+            </xt></td>
+         </tr>
+         <tr>
+            <td class='code'>
    <jk>import static</jk> org.apache.juneau.dto.html5.HtmlBuilder.*;
       
    Object mydiv =    
@@ -4306,15 +4271,15 @@
       );
 
    String html = HtmlSerializer.<jsf>DEFAULT</jsf>.serialize(mydiv);
-               </td>
-               <td class='code'><xt>
+            </td>
+            <td class='code'><xt>
    &lt;div <xa>align</xa>=<xs>'center'</xs> <xa>onmouseover</xa>=<xs>'alert("boo!");'</xs>&gt;
       &lt;p&gt;<xv>Juneau supports </xv>&lt;b&gt;&lt;i&gt;<xv>mixed</xv>&lt;/i&gt;&lt;/b&gt; <xv>content!</xv>&lt;/p&gt;
    &lt;/table&gt;
-               </xt></td>
-            </tr>
-            <tr>
-               <td class='code'>
+            </xt></td>
+         </tr>
+         <tr>
+            <td class='code'>
    <jk>import static</jk> org.apache.juneau.dto.html5.HtmlBuilder.*;
       
    Object myform =
@@ -4327,8 +4292,8 @@
       );    
 
    String html = HtmlSerializer.<jsf>DEFAULT</jsf>.serialize(myform);
-               </td>
-               <td class='code'><xt>
+            </td>
+            <td class='code'><xt>
       &lt;form <xa>action</xa>=<xs>'/submit'</xs> <xa>method</xa>=<xs>'POST'</xs>&gt;
          <xv>Position (1-10000):</xv> &lt;input <xa>name</xa>=<xs>'pos'</xs> <xa>type</xa>=<xs>'number'</xs> 
             <xa>value</xa>=<xs>'1'</xs>/&gt;&lt;br/&gt;
@@ -4337,43 +4302,43 @@
          &lt;button <xa>type</xa>=<xs>'submit'</xs>&gt;<xv>Submit</xv>&lt;/button&gt;
          &lt;button <xa>type</xa>=<xs>'reset'</xs>&gt;<xv>Reset</xv>&lt;/button&gt;        
       &lt;/form&gt;
-               </xt></td>
-            </tr>
-         </table>
-         <p>
-            Using the HTML5 DTOs, you should be able to construct any valid HTML5 from full document bodies
-            to any possible fragments.
-         </p>
-         <p>
-            The <a href="org/apache/juneau/html/HtmlParser.html" title="class in org.apache.juneau.html"><code>HtmlParser</code></a> class can be used convert these HTML documents back
-            into POJOs.
-         </p>
-         <p>
-            Other serializers and parsers (e.g. <a href="org/apache/juneau/json/JsonSerializer.html" title="class in org.apache.juneau.json"><code>JsonSerializer</code></a>) can be used to 
-            represent these POJOs in languages other than HTML.
-         </p>
-         
-         <h5 class='toc'>Additional Information - org.apache.juneau.dto.html5</h5>
-         <ol class='toc'>
-            <li><p><a class='doclink' href='org/apache/juneau/dto/html5/package-summary.html#Overview'>Overview</a></p>
-            <ol>
-               <li><p><a class='doclink' href='org/apache/juneau/dto/html5/package-summary.html#Serialize'>Generating HTML5</a></p>
-               <li><p><a class='doclink' href='org/apache/juneau/dto/html5/package-summary.html#Parse'>Parsing HTML5</a></p>
-               <li><p><a class='doclink' href='org/apache/juneau/dto/html5/package-summary.html#Templates'>HTML5 Templates</a></p>
-            </ol>
+            </xt></td>
+         </tr>
+      </table>
+      <p>
+         Using the HTML5 DTOs, you should be able to construct any valid HTML5 from full document bodies
+         to any possible fragments.
+      </p>
+      <p>
+         The <a href="org/apache/juneau/html/HtmlParser.html" title="class in org.apache.juneau.html"><code>HtmlParser</code></a> class can be used convert these HTML documents back
+         into POJOs.
+      </p>
+      <p>
+         Other serializers and parsers (e.g. <a href="org/apache/juneau/json/JsonSerializer.html" title="class in org.apache.juneau.json"><code>JsonSerializer</code></a>) can be used to 
+         represent these POJOs in languages other than HTML.
+      </p>
+      
+      <h5 class='toc'>Additional Information - org.apache.juneau.dto.html5</h5>
+      <ol class='toc'>
+         <li><p><a class='doclink' href='org/apache/juneau/dto/html5/package-summary.html#Overview'>Overview</a></p>
+         <ol>
+            <li><p><a class='doclink' href='org/apache/juneau/dto/html5/package-summary.html#Serialize'>Generating HTML5</a></p>
+            <li><p><a class='doclink' href='org/apache/juneau/dto/html5/package-summary.html#Parse'>Parsing HTML5</a></p>
+            <li><p><a class='doclink' href='org/apache/juneau/dto/html5/package-summary.html#Templates'>HTML5 Templates</a></p>
          </ol>
-      </div>
+      </ol>
+   </div>
 
-      <!-- ======================================================================================================= -->
-      <a id="juneau-dto.Atom"></a>
-      <h4 class='topic' onclick='toggle(this)'>2.3.2 - Atom</h4>
-      <div class='topic'>
-         <p>
-            The Juneau ATOM feed DTOs are simply beans with fluent-style setters.
-            <br>The following code shows a feed being created programmatically using the 
-            <a href="org/apache/juneau/dto/atom/AtomBuilder.html" title="class in org.apache.juneau.dto.atom"><code>AtomBuilder</code></a> class.
-         </p>
-         <p class='bcode'>
+   <!-- ======================================================================================================= -->
+   <a id="juneau-dto.Atom"></a>
+   <h3 class='topic' onclick='toggle(this)'>4.2 - Atom</h3>
+   <div class='topic'>
+      <p>
+         The Juneau ATOM feed DTOs are simply beans with fluent-style setters.
+         <br>The following code shows a feed being created programmatically using the 
+         <a href="org/apache/juneau/dto/atom/AtomBuilder.html" title="class in org.apache.juneau.dto.atom"><code>AtomBuilder</code></a> class.
+      </p>
+      <p class='bcode'>
    <jk>import static</jk> org.apache.juneau.dto.atom.AtomBuilder.*;
    
    Feed feed = 
@@ -4407,22 +4372,22 @@
             .text(<js>"&lt;div&gt;&lt;p&gt;&lt;i&gt;[Update: Juneau supports ATOM.]&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;"</js>)
          )
       );
-         </p>
-         <p>
-            To serialize this to ATOM, use the <a href="org/apache/juneau/xml/XmlSerializer.html" title="class in org.apache.juneau.xml"><code>XmlSerializer</code></a> class:
-         </p>
-         
-         <h5 class='figure'>Example with no namespaces</h5>
-         <p class='bcode'>
+      </p>
+      <p>
+         To serialize this to ATOM, use the <a href="org/apache/juneau/xml/XmlSerializer.html" title="class in org.apache.juneau.xml"><code>XmlSerializer</code></a> class:
+      </p>
+      
+      <h5 class='figure'>Example with no namespaces</h5>
+      <p class='bcode'>
    <jc>// Create a serializer with readable output, no namespaces yet.</jc>
    XmlSerializer s = XmlSerializer.<jsm>create</jsm>().sq().ws().build();
 
    <jc>// Serialize to ATOM/XML</jc>
    String atomXml = s.serialize(feed);
-         </p>
-         
-         <h5 class='figure'>Results</h5>
-         <p class='bcode'>
+      </p>
+      
+      <h5 class='figure'>Results</h5>
+      <p class='bcode'>
    <xt>&lt;feed&gt;</xt>
       <xt>&lt;id&gt;</xt>
          tag:juneau.apache.org
@@ -4472,49 +4437,49 @@
          <xt>&lt;published&gt;</xt>2016-01-02T03:04:05Z<xt>&lt;/published&gt;</xt>
       <xt>&lt;/entry&gt;</xt>
    <xt>&lt;/feed&gt;</xt>     
-         </p>
-         <p>
-            The <a href="org/apache/juneau/xml/XmlParser.html" title="class in org.apache.juneau.xml"><code>XmlParser</code></a> class can be used convert these Atom documents back into POJOs.
-         </p>
-         <p>
-            Other serializers and parsers (e.g. <a href="org/apache/juneau/json/JsonSerializer.html" title="class in org.apache.juneau.json"><code>JsonSerializer</code></a>) can be used to 
-            represent these POJOs in languages other than XML.
-         </p>
-         
-         <h5 class='toc'>Additional Information - org.apache.juneau.dto.atom</h5>
-         <ol class='toc'>
-            <li><p><a class='doclink' href='org/apache/juneau/dto/atom/package-summary.html#Overview'>Overview</a></p>
+      </p>
+      <p>
+         The <a href="org/apache/juneau/xml/XmlParser.html" title="class in org.apache.juneau.xml"><code>XmlParser</code></a> class can be used convert these Atom documents back into POJOs.
+      </p>
+      <p>
+         Other serializers and parsers (e.g. <a href="org/apache/juneau/json/JsonSerializer.html" title="class in org.apache.juneau.json"><code>JsonSerializer</code></a>) can be used to 
+         represent these POJOs in languages other than XML.
+      </p>
+      
+      <h5 class='toc'>Additional Information - org.apache.juneau.dto.atom</h5>
+      <ol class='toc'>
+         <li><p><a class='doclink' href='org/apache/juneau/dto/atom/package-summary.html#Overview'>Overview</a></p>
+         <ol>
+            <li><p><a class='doclink' href='org/apache/juneau/dto/atom/package-summary.html#Serialize'>Serializing ATOM feeds</a></p>
             <ol>
-               <li><p><a class='doclink' href='org/apache/juneau/dto/atom/package-summary.html#Serialize'>Serializing ATOM feeds</a></p>
-               <ol>
-                  <li><p><a class='doclink' href='org/apache/juneau/dto/atom/package-summary.html#AtomJson'>ATOM/JSON</a></p>
-                  <li><p><a class='doclink' href='org/apache/juneau/dto/atom/package-summary.html#AtomRdfXml'>ATOM/RDF/XML</a></p>
-                  <li><p><a class='doclink' href='org/apache/juneau/dto/atom/package-summary.html#AtomHtml'>ATOM/HTML</a></p>
-               </ol>
-               <li><p><a class='doclink' href='org/apache/juneau/dto/atom/package-summary.html#Parse'>Parsing ATOM feeds</a></p>
+               <li><p><a class='doclink' href='org/apache/juneau/dto/atom/package-summary.html#AtomJson'>ATOM/JSON</a></p>
+               <li><p><a class='doclink' href='org/apache/juneau/dto/atom/package-summary.html#AtomRdfXml'>ATOM/RDF/XML</a></p>
+               <li><p><a class='doclink' href='org/apache/juneau/dto/atom/package-summary.html#AtomHtml'>ATOM/HTML</a></p>
             </ol>
+            <li><p><a class='doclink' href='org/apache/juneau/dto/atom/package-summary.html#Parse'>Parsing ATOM feeds</a></p>
          </ol>
-      </div>
+      </ol>
+   </div>
 
-      <!-- ======================================================================================================= -->
-      <a id="juneau-dto.Swagger"></a>
-      <h4 class='topic' onclick='toggle(this)'>2.3.3 - Swagger</h4>
-      <div class='topic'>
-         <p>
-            The Juneau Swagger DTOs are simply beans with fluent-style setters that allow you to quickly construct 
-            Swagger documents as Java objects.  
-            These object can then be serialized to JSON using one of the existing JSON serializers, or to other 
-            languages such as XML or HTML using the other serializers.
-         </p>
-         <p>
-            The <a href="org/apache/juneau/dto/swagger/SwaggerBuilder.html" title="class in org.apache.juneau.dto.swagger"><code>SwaggerBuilder</code></a> class is a utility class with predefined static 
-            methods that allow you to easily construct DTO instances in a minimal amount of code. 
-         </p>
-         <p>
-            The following is an example Swagger document from the 
-            <a href="http://petstore.swagger.io/">Swagger website</a>.
-         </p>
-         <p class='bcode'>
+   <!-- ======================================================================================================= -->
+   <a id="juneau-dto.Swagger"></a>
+   <h3 class='topic' onclick='toggle(this)'>4.3 - Swagger</h3>
+   <div class='topic'>
+      <p>
+         The Juneau Swagger DTOs are simply beans with fluent-style setters that allow you to quickly construct 
+         Swagger documents as Java objects.  
+         These object can then be serialized to JSON using one of the existing JSON serializers, or to other 
+         languages such as XML or HTML using the other serializers.
+      </p>
+      <p>
+         The <a href="org/apache/juneau/dto/swagger/SwaggerBuilder.html" title="class in org.apache.juneau.dto.swagger"><code>SwaggerBuilder</code></a> class is a utility class with predefined static 
+         methods that allow you to easily construct DTO instances in a minimal amount of code. 
+      </p>
+      <p>
+         The following is an example Swagger document from the 
+         <a href="http://petstore.swagger.io/">Swagger website</a>.
+      </p>
+      <p class='bcode'>
    {
       <jf>"swagger"</jf>: <js>"2.0"</js>,
       <jf>"info"</jf>: {
@@ -4579,11 +4544,11 @@
          }
       },
    }     
-         </p>
-         <p>
-            This document can be generated by the following Java code:
-         </p>
-         <p class='bcode'>
+      </p>
+      <p>
+         This document can be generated by the following Java code:
+      </p>
+      <p class='bcode'>
    <jk>static import</jk> org.apache.juneau.dto.swagger.SwaggerBuilder.*;
 
    Swagger swagger = <jsm>swagger</jsm>()
@@ -4629,133 +4594,132 @@
    
    <jc>// Or just use toString().</jc>
    String swaggerJson = swagger.toString();
-         </p>
-         <p>
-            Methods that take in beans and collections of beans can also take in JSON representations
-            of those objects.
-         </p>
-         <p class='bcode'>
+      </p>
+      <p>
+         Methods that take in beans and collections of beans can also take in JSON representations
+         of those objects.
+      </p>
+      <p class='bcode'>
    <jc>// Pass in a JSON object representation of an Info object.</jc>
    swagger.info(<js>"{title:'Swagger Petstore',...}"</js>);
-         </p>
-         <p>
-            Properties can also be accessed via the <a href="org/apache/juneau/dto/swagger/SwaggerElement.html#get-java.lang.String-java.lang.Class-"><code>SwaggerElement.get(String,Class)</code></a>
-            and <a href="org/apache/juneau/dto/swagger/SwaggerElement.html#set-java.lang.String-java.lang.Object-"><code>SwaggerElement.set(String,Object)</code></a> methods.
-            <br>These methods can also be used to set and retrieve non-Swagger attributes such as 
-            <js>"$ref"</js> (which is not a part of the Swagger spec, but is part of the JSON Schema spec).
-         </p>
-         <p class='bcode'>
+      </p>
+      <p>
+         Properties can also be accessed via the <a href="org/apache/juneau/dto/swagger/SwaggerElement.html#get-java.lang.String-java.lang.Class-"><code>SwaggerElement.get(String,Class)</code></a>
+         and <a href="org/apache/juneau/dto/swagger/SwaggerElement.html#set-java.lang.String-java.lang.Object-"><code>SwaggerElement.set(String,Object)</code></a> methods.
+         <br>These methods can also be used to set and retrieve non-Swagger attributes such as 
+         <js>"$ref"</js> (which is not a part of the Swagger spec, but is part of the JSON Schema spec).
+      </p>
+      <p class='bcode'>
    <jc>// Set a non-standard attribute.</jc>
    swagger.set(<js>"$ref"</js>, <js>"http://foo.com"</js>);
    
    <jc>// Retrieve a non-standard attribute.</jc>
    URI ref = swagger.get(<js>"$ref"</js>, URI.<jk>class</jk>);
-         </p>
-         <p>
-            Swagger docs can be parsed back into Swagger beans using the following code:
-         </p>
-         <p class='bcode'>
+      </p>
+      <p>
+         Swagger docs can be parsed back into Swagger beans using the following code:
+      </p>
+      <p class='bcode'>
    Swagger swagger = JsonParser.<jsf>DEFAULT</jsf>.parse(swaggerJson, Swagger.<jk>class</jk>);
-         </p>
-      </div>
-
+      </p>
    </div>
 
-   <!-- =========================================================================================================== -->
-   <a id="juneau-svl"></a>
-   <h3 class='topic' onclick='toggle(this)'>2.4 - juneau-svl</h3>
-   <div class='topic'>
-   
-      <h5 class='figure'>Maven Dependency</h5>
-      <p class='bcode' style='width:500px;'>
+</div>
+
+<!-- =========================================================================================================== -->
+<a id="juneau-svl"></a>
+<h2 class='topic' onclick='toggle(this)'>5 - juneau-svl</h2>
+<div class='topic'>
+
+   <h5 class='figure'>Maven Dependency</h5>
+   <p class='bcode' style='width:500px;'>
    <xt>&lt;dependency&gt;</xt>
       <xt>&lt;groupId&gt;</xt>org.apache.juneau<xt>&lt;/groupId&gt;</xt>
       <xt>&lt;artifactId&gt;</xt>juneau-svl<xt>&lt;/artifactId&gt;</xt>
       <xt>&lt;version&gt;</xt>7.0.0<xt>&lt;/version&gt;</xt>
    <xt>&lt;/dependency&gt;</xt>
-      </p>  
-      
-      <h5 class='figure'>Java Library</h5>
-      <p class='bcode' style='width:500px;'>
-   juneau-svl-7.0.0.jar 
-      </p>  
+   </p>  
    
-      <h5 class='figure'>OSGi Module</h5>
-      <p class='bcode' style='width:500px;'>
+   <h5 class='figure'>Java Library</h5>
+   <p class='bcode' style='width:500px;'>
+   juneau-svl-7.0.0.jar 
+   </p>  
+
+   <h5 class='figure'>OSGi Module</h5>
+   <p class='bcode' style='width:500px;'>
    org.apache.juneau.svl_7.0.0.jar 
-      </p>  
-   
-      <p>
-         The <code>juneau-svl</code> library defines an API for a language called "Simple Variable Language".
-         In a nutshell, Simple Variable Language (or SVL) is text that contains variables of the form
-         <js>"$varName{varKey}"</js>.
-      </p>
-      <p>
-         Variables can be recursively nested within the varKey (e.g. <js>"$FOO{$BAR{xxx},$BAZ{xxx}}"</js>).
-         Variables can also return values that themselves contain more variables.
-      </p>
-      <p class='bcode'>
+   </p>  
+
+   <p>
+      The <code>juneau-svl</code> library defines an API for a language called "Simple Variable Language".
+      In a nutshell, Simple Variable Language (or SVL) is text that contains variables of the form
+      <js>"$varName{varKey}"</js>.
+   </p>
+   <p>
+      Variables can be recursively nested within the varKey (e.g. <js>"$FOO{$BAR{xxx},$BAZ{xxx}}"</js>).
+      Variables can also return values that themselves contain more variables.
+   </p>
+   <p class='bcode'>
    <jc>// Use the default variable resolver to resolve a string that contains $S (system property) variables</jc>
    String myProperty = VarResolver.<jsf>DEFAULT</jsf>.resolve(<js>"The Java home directory is $S{java.home}"</js>);
-      </p>
-      <p>
-         The following shows how variables can be arbitrarily nested...
-      </p>
-      <p class='bcode'>
+   </p>
+   <p>
+      The following shows how variables can be arbitrarily nested...
+   </p>
+   <p class='bcode'>
    <jc>// Look up a property in the following order:
    // 1) MYPROPERTY environment variable.
    // 2) 'my.property' system property if environment variable not found.
    // 3) 'not found' string if system property not found.</jc>
    String myproperty = VarResolver.<jsf>DEFAULT</jsf>.resolve(<js>"$E{MYPROPERTY,$S{my.property,not found}}"</js>);
-      </p>
-      <p>
-         SVL is a large topic on it's own. 
-         It is used extensively in the ConfigFile, REST and Microservice APIs.
-      </p>
-      
-      <h5 class='toc'>Additional Information - org.apache.juneau.svl</h5>
-      <ol class='toc'>
-         <li><p><a class='doclink' href='org/apache/juneau/svl/package-summary.html#SimpleVarLanguage'>Simple Variable Language</a></p>
-            <ol>
-               <li><p><a class='doclink' href='org/apache/juneau/svl/package-summary.html#Vars'>Vars</a></p>
-               <li><p><a class='doclink' href='org/apache/juneau/svl/package-summary.html#VarResolvers'>VarResolvers and VarResolverSessions</a></p>
-               <li><p><a class='doclink' href='org/apache/juneau/svl/package-summary.html#OtherNotes'>Other Notes</a></p>
-            </ol>
-         </li>
-      </ol>
-   </div>
-
-   <!-- =========================================================================================================== -->
-   <a id="juneau-config"></a>
-   <h3 class='topic' onclick='toggle(this)'>2.5 - juneau-config</h3>
-   <div class='topic'>
+   </p>
+   <p>
+      SVL is a large topic on it's own. 
+      It is used extensively in the ConfigFile, REST and Microservice APIs.
+   </p>
    
-      <h5 class='figure'>Maven Dependency</h5>
-      <p class='bcode' style='width:500px;'>
+   <h5 class='toc'>Additional Information - org.apache.juneau.svl</h5>
+   <ol class='toc'>
+      <li><p><a class='doclink' href='org/apache/juneau/svl/package-summary.html#SimpleVarLanguage'>Simple Variable Language</a></p>
+         <ol>
+            <li><p><a class='doclink' href='org/apache/juneau/svl/package-summary.html#Vars'>Vars</a></p>
+            <li><p><a class='doclink' href='org/apache/juneau/svl/package-summary.html#VarResolvers'>VarResolvers and VarResolverSessions</a></p>
+            <li><p><a class='doclink' href='org/apache/juneau/svl/package-summary.html#OtherNotes'>Other Notes</a></p>
+         </ol>
+      </li>
+   </ol>
+</div>
+
+<!-- =========================================================================================================== -->
+<a id="juneau-config"></a>
+<h2 class='topic' onclick='toggle(this)'>6 - juneau-config</h2>
+<div class='topic'>
+
+   <h5 class='figure'>Maven Dependency</h5>
+   <p class='bcode' style='width:500px;'>
    <xt>&lt;dependency&gt;</xt>
       <xt>&lt;groupId&gt;</xt>org.apache.juneau<xt>&lt;/groupId&gt;</xt>
       <xt>&lt;artifactId&gt;</xt>juneau-config<xt>&lt;/artifactId&gt;</xt>
       <xt>&lt;version&gt;</xt>7.0.0<xt>&lt;/version&gt;</xt>
    <xt>&lt;/dependency&gt;</xt>
-      </p>  
-      
-      <h5 class='figure'>Java Library</h5>
-      <p class='bcode' style='width:500px;'>
-   juneau-config-7.0.0.jar 
-      </p>  
-   
-      <h5 class='figure'>OSGi Module</h5>
-      <p class='bcode' style='width:500px;'>
-   org.apache.juneau.config_7.0.0.jar 
-      </p>  
+   </p>  
    
-      <p>
-         The <code>juneau-config</code> library contains a powerful API for creating and using INI-style config files.
-      </p>
-      <p>
-         An example of an INI file:
-      </p>
-      <p class='bcode'>
+   <h5 class='figure'>Java Library</h5>
+   <p class='bcode' style='width:500px;'>
+   juneau-config-7.0.0.jar 
+   </p>  
+
+   <h5 class='figure'>OSGi Module</h5>
+   <p class='bcode' style='width:500px;'>
+   org.apache.juneau.config_7.0.0.jar 
+   </p>  
+   <p>
+      The <code>juneau-config</code> library contains a powerful API for creating and using INI-style config files.
+   </p>
+   <p>
+      An example of an INI file:
+   </p>
+   <p class='bcode'>
    <cc># Default section</cc>
    <ck>key1</ck> = <cv>1</cv>
    <ck>key2</ck> = <cv>true</cv>
@@ -4768,11 +4732,11 @@
    <ck>key2</ck> = <cv>false</cv>
    <ck>key3</ck> = <cv>[4,5,6]</cv>
    <ck>key4</ck> = <cv>http://bar</cv>
-      </p>
-      <p>
-         This class can be used to easily access contents of the file:
-      </p>
-      <p class='bcode'>
+   </p>
+   <p>
+      This class can be used to easily access contents of the file:
+   </p>
+   <p class='bcode'>
    <jk>int</jk> key1;
    <jk>boolean</jk> key2;
    <jk>int</jk>[] key3;
@@ -4792,11 +4756,11 @@
    key2 = f.getBoolean(<js>"Section1/key2"</js>);
    key3 = f.getObject(<jk>int</jk>[].<jk>class</jk>, <js>"Section1/key3"</js>);
    key4 = f.getObject(URL.<jk>class</jk>, <js>"Section1/key4"</js>);
-      </p>
-      <p>
-         The interface also allows a config file to be easily constructed programmatically:
-      </p>
-      <p class='bcode'>
+   </p>
+   <p>
+      The interface also allows a config file to be easily constructed programmatically:
+   </p>
+   <p class='bcode'>
    <jc>// Construct the sample INI file programmatically</jc>
    ConfigFile cf = ConfigFile.<jsm>create</jsm>().build(<js>"MyConfig.cfg"</js>)
       .addLines(<jk>null</jk>,
@@ -4814,12 +4778,12 @@
          <js>"key3 = [4,5,6]"</js>,
          <js>"key4 = http://bar"</js>)
       .save();
-      </p>
-      <p>
-         The following is equivalent, except that it uses <a href="org/apache/juneau/ini/ConfigFile.html#put-java.lang.String-java.lang.Object-"><code>ConfigFile.put(String, Object)</code></a> 
-         to set values:
-      </p>
-      <p class='bcode'>
+   </p>
+   <p>
+      The following is equivalent, except that it uses <a href="org/apache/juneau/ini/ConfigFile.html#put-java.lang.String-java.lang.Object-"><code>ConfigFile.put(String, Object)</code></a> 
+      to set values:
+   </p>
+   <p class='bcode'>
    <jc>// Construct the sample INI file programmatically</jc>
    ConfigFile cf = ConfigFile.<jsm>create</jsm>().build(<js>"MyConfig.cfg"</js>)
       .addLines(<jk>null</jk>,
@@ -4835,29 +4799,29 @@
    cf.put(<js>"Section1/key3"</js>, <jk>new int</jk>[]{4,5,6});
    cf.put(<js>"Section1/key4"</js>, <jk>new</jk> URL(<js>"http://bar"</js>));
    cf.save();
-      </p>
-      <p>
-         Values are LAX JSON (i.e. unquoted attributes, single quotes) except for top-level strings which are left 
-         unquoted.  
-         Any parsable object types are supported as values (e.g. arrays, collections, beans, swappable objects, 
-         enums, etc...).
-      </p>
-      <p>
-         The config file looks deceptively simple, the config file API is a very powerful feature with many 
-         capabilities, including:
-      </p>
-      <ul class='spaced-list'>
-         <li>
-            The ability to use variables to reference environment variables, system properties, other config file 
-            entries, and a host of other types.
-         <li>
-            APIs for updating, modifying, and saving configuration files <b style='text-decoration: underline;'>without losing comments or formatting</b>.
-         <li>
-            Extensive listener APIs.
-      </ul>
-      
-      <h5 class='figure'>Example:</h5>
-      <p class='bcode'>
+   </p>
+   <p>
+      Values are LAX JSON (i.e. unquoted attributes, single quotes) except for top-level strings which are left 
+      unquoted.  
+      Any parsable object types are supported as values (e.g. arrays, collections, beans, swappable objects, 
+      enums, etc...).
+   </p>
+   <p>
+      The config file looks deceptively simple, the config file API is a very powerful feature with many 
+      capabilities, including:
+   </p>
+   <ul class='spaced-list'>
+      <li>
+         The ability to use variables to reference environment variables, system properties, other config file 
+         entries, and a host of other types.
+      <li>
+         APIs for updating, modifying, and saving configuration files <b style='text-decoration: underline;'>without losing comments or formatting</b>.
+      <li>
+         Extensive listener APIs.
+   </ul>
+   
+   <h5 class='figure'>Example:</h5>
+   <p class='bcode'>
    <cc>#--------------------------</cc>
    <cc># My section</cc>
    <cc>#--------------------------</cc>
@@ -4901,9 +4865,8 @@
 
    <cc># A POJO with embedded variables</cc>
    <ck>aBean2</ck> = <cv>{foo:'$ARG{0}',baz:$C{MySection/anInt}}</cv>
-
-      </p>
-      <p class='bcode'>
+   </p>
+   <p class='bcode'>
    <jc>// Java code for accessing config entries above.</jc>
    ConfigFile cf = Microservice.<jsm>getConfig</jsm>();
    
@@ -4918,12 +4881,12 @@
    <jk>int</jk> sameAsAnInt = cf.getInt(<js>"MySection/sameAsAnInt"</js>); 
    String myArg = cf.getString(<js>"MySection/myArg"</js>); 
    String firstArg = cf.getString(<js>"MySection/firstArg"</js>); 
-      </p>
-      <p>
-         Config files can also be used to directly populate beans using the 
-         <a href="org/apache/juneau/ini/ConfigFile.html#getSectionAsBean-java.lang.String-java.lang.Class-boolean-"><code>ConfigFile.getSectionAsBean(String,Class,boolean)</code></a>:
-      </p>
-      <p class='bcode'>
+   </p>
+   <p>
+      Config files can also be used to directly populate beans using the 
+      <a href="org/apache/juneau/ini/ConfigFile.html#getSectionAsBean-java.lang.String-java.lang.Class-boolean-"><code>ConfigFile.getSectionAsBean(String,Class,boolean)</code></a>:
+   </p>
+   <p class='bcode'>
    <jc>// Example config file</jc>
    <cs>[MyAddress]</cs>
    <ck>name</ck> = <cv>John Smith</cv>
@@ -4942,12 +4905,12 @@
    <jc>// Example usage</jc>
    ConfigFile cf = ConfigFile.<jsm>create</jsm>().build(<js>"MyConfig.cfg"</js>);
    Address myAddress = cf.getSectionAsBean(<js>"MySection"</js>, Address.<jk>class</jk>);
-      </p>
-      <p>
-         Config file sections can also be accessed via interface proxies using 
-         <a href="org/apache/juneau/ini/ConfigFile.html#getSectionAsInterface-java.lang.String-java.lang.Class-"><code>ConfigFile.getSectionAsInterface(String,Class)</code></a>:
-      </p>
-      <p class='bcode'>
+   </p>
+   <p>
+      Config file sections can also be accessed via interface proxies using 
+      <a href="org/apache/juneau/ini/ConfigFile.html#getSectionAsInterface-java.lang.String-java.lang.Class-"><code>ConfigFile.getSectionAsInterface(String,Class)</code></a>:
+   </p>
+   <p class='bcode'>
    <jc>// Example config file</jc>
    <cs>[MySection]</cs>
    <ck>string</ck> = <cv>foo</cv>
@@ -4985,170 +4948,151 @@
    <jk>int</jk> myInt = ci.getInt();
    ci.setBean(<jk>new</jk> MyBean());
    cf.save();
-      </p>
-      
-      <h5 class='toc'>Additional Information - org.apache.juneau.ini</h5>
-      <ol class='toc'>
-         <li><p><a class='doclink' href='org/apache/juneau/ini/package-summary.html#Overview'>Overview</a></p> 
-         <li><p><a class='doclink' href='org/apache/juneau/ini/package-summary.html#Variables'>Variables</a></p> 
-         <li><p><a class='doclink' href='org/apache/juneau/ini/package-summary.html#Encoded'>Encoded Entries</a></p> 
-         <li><p><a class='doclink' href='org/apache/juneau/ini/package-summary.html#Listeners'>Listeners</a></p> 
-         <li><p><a class='doclink' href='org/apache/juneau/ini/package-summary.html#CommandLine'>Command Line API</a></p> 
-         <li><p><a class='doclink' href='org/apache/juneau/ini/package-summary.html#Serializing'>Serializing Config Files</a></p> 
-         <li><p><a class='doclink' href='org/apache/juneau/ini/package-summary.html#Merging'>Merging Config Files</a></p> 
-      </ol>
-   </div>
+   </p>
    
+   <h5 class='toc'>Additional Information - org.apache.juneau.ini</h5>
+   <ol class='toc'>
+      <li><p><a class='doclink' href='org/apache/juneau/ini/package-summary.html#Overview'>Overview</a></p> 
+      <li><p><a class='doclink' href='org/apache/juneau/ini/package-summary.html#Variables'>Variables</a></p> 
+      <li><p><a class='doclink' href='org/apache/juneau/ini/package-summary.html#Encoded'>Encoded Entries</a></p> 
+      <li><p><a class='doclink' href='org/apache/juneau/ini/package-summary.html#Listeners'>Listeners</a></p> 
+      <li><p><a class='doclink' href='org/apache/juneau/ini/package-summary.html#CommandLine'>Command Line API</a></p> 
+      <li><p><a class='doclink' href='org/apache/juneau/ini/package-summary.html#Serializing'>Serializing Config Files</a></p> 
+      <li><p><a class='doclink' href='org/apache/juneau/ini/package-summary.html#Merging'>Merging Config Files</a></p> 
+   </ol>
 </div>
 
-<!-- =============================================================================================================== -->
-<a id="juneau-rest"></a>
-<h2 class='topic' onclick='toggle(this)'>3 - juneau-rest</h2>
+<!-- =========================================================================================================== -->
+<a id="juneau-rest-server"></a>
+<h2 class='topic' onclick='toggle(this)'>7 - juneau-rest-server</h2>
 <div class='topic'>
 
-   <p>
-      The REST Maven artifacts of Juneau consist of the following:
-   </p>
-   <ul class='spaced-list'>
-      <li><a class='doclink' href='#juneau-rest-server'>juneau-rest-server</a> 
-         - Server-side REST APIs built on top of Servlet 3.1+.
-      <li><a class='doclink' href='#juneau-rest-server-jaxrs'>juneau-rest-server-jaxrs</a> 
-         - Optional APIs for using Juneau with JAX/RS.
-      <li><a class='doclink' href='#juneau-rest-client'>juneau-rest-client</a> 
-         - Client-side REST APIs built on top of Apache HttpClient.
-   </ul>
-
-   <!-- =========================================================================================================== -->
-   <a id="juneau-rest-server"></a>
-   <h3 class='topic' onclick='toggle(this)'>3.1 - juneau-rest-server</h3>
-   <div class='topic'>
-   
-      <h5 class='figure'>Maven Dependency</h5>
-      <p class='bcode' style='width:500px;'>
+   <h5 class='figure'>Maven Dependency</h5>
+   <p class='bcode' style='width:500px;'>
    <xt>&lt;dependency&gt;</xt>
       <xt>&lt;groupId&gt;</xt>org.apache.juneau<xt>&lt;/groupId&gt;</xt>
       <xt>&lt;artifactId&gt;</xt>juneau-rest-server<xt>&lt;/artifactId&gt;</xt>
       <xt>&lt;version&gt;</xt>7.0.0<xt>&lt;/version&gt;</xt>
    <xt>&lt;/dependency&gt;</xt>
-      </p>  
-      
-      <h5 class='figure'>Java Library</h5>
-      <p class='bcode' style='width:500px;'>
-   juneau-rest-server-7.0.0.jar 
-      </p>  
+   </p>  
    
-      <h5 class='figure'>OSGi Module</h5>
-      <p class='bcode' style='width:500px;'>
+   <h5 class='figure'>Java Library</h5>
+   <p class='bcode' style='width:500px;'>
+   juneau-rest-server-7.0.0.jar 
+   </p>  
+
+   <h5 class='figure'>OSGi Module</h5>
+   <p class='bcode' style='width:500px;'>
    org.apache.juneau.rest.server_7.0.0.jar 
       </p>  
+
+   <p>
+      The <l>juneau-rest-server</l> library allows you to quickly wrap POJOs and expose them as full-fledged REST 
+      resources served up in a servlet container using a bare-minimum amount of code.
+      <br>The primary goal for Juneau was to make it as easy as possible to implement easy-to-read and self-documenting 
+      REST resources using very little code.
+   </p>
+   <p>
+      One of the biggest advantages of the Juneau REST framework over similar architectures is that it hides the 
+      serialization layer from the developer.  
+      <br>The developer can work entirely with POJOs and let the Juneau framework handle all the serialization and 
+      parsing work.  
+      <br>The developer need never know what the <l>Accept</l> or <l>Content-Type</l> or <l>Accept-Encoding</l> (etc...) 
+      header values are because those details are all handled by the framework. 
+   </p>
+   <p> 
+      The API builds upon the existing JEE Servlet API.  
+      <br>The root class, <a href="org/apache/juneau/rest/RestServlet.html" title="class in org.apache.juneau.rest"><code>RestServlet</code></a> is nothing but a specialized 
+      <code>HttpServlet</code>, and the <a href="org/apache/juneau/rest/RestRequest.html" title="class in org.apache.juneau.rest"><code>RestRequest</code></a> and 
+      <a href="org/apache/juneau/rest/RestResponse.html" title="class in org.apache.juneau.rest"><code>RestResponse</code></a> classes are nothing more than specialized 
+      <code>HttpServletRequest</code> and <code>HttpServletResponse</code> objects.  
+      <br>This allows maximum flexibility for the developer since you can let Juneau handle operations such as 
+      serialization, or you can revert to the existing servlet APIs to do low-level processing of requests yourself. 
+      <br>It also means you need nothing more than a Servlet container such as Jetty to use the REST framework.
+   </p>
    
+   <h5 class='topic'>Features</h5>
+   <ul class='spaced-list'>
+      <li>
+         Serializes POJOs to JSON, XML, HTML, URL-Encoding, UON, RDF/XML, N-Triple, Turtle, N3, SOAP, or 
+         Java-serialized-object based on value of <l>Accept</l> header.  
+         <br>No user code is required to handle these types.
+         <ul>
+            <li>Extensible design that provides ability to override existing content type handlers, or add the 
+               ability to handle other kinds of content types.
+         </ul>
+      <li>
+         Parses content of POST/PUT request bodies to POJOs.
+      <li>
+         Automatic built-in ability to serialize POJO metadata to JSON+SCHEMA, XML+SCHEMA, or HTML+SCHEMA based on 
+         <l>Accept</l> header.
+      <li>
+         Automatic negotiation of output Writer based on HTTP headers.
+         <ul>
+            <li>Automatic handling of <l>Accept-Charset</l> header for all character sets supported by the JVM.
+            <li>Automatic handling of <l>Accept-Encoding</l> header with registered encoders.
+         </ul>
+      <li>
+         Automatic error handling.
+         <ul>
+            <li>Automatic 401 errors (Unauthorized) on failed guards.
+            <li>Automatic 404 errors (Not Found) on unmatched path patterns.
+            <li>Automatic 405 errors (Method Not Implemented) on unimplemented methods.
+            <li>Automatic 406 errors (Not Acceptable) when no matching serializer was found to handle the 
+               <l>Accept</l> header.
+            <li>Automatic 412 errors (Precondition Failed) when all matchers failed to match.
+            <li>Automatic 415 errors (Unsupported Media Type) when no matching parser was found was found to handle 
+               the <l>Content-Type</l> header.
+            <li>Automatic 500 errors on uncaught exceptions.
+         </ul>
+      <li>
+         Self-documenting Swagger-based REST interfaces.
+      <li>
+         Various useful debugging features that make debugging using a browser extremely simple...
+         <ul>
+            <li>Ability to pass HTTP header values as URL GET parameters (e.g. <l>&amp;Accept=text/xml</l>).
+            <li>Ability to pass HTTP content on PUT/POST requests as a URL GET parameter 
+               (e.g. <l>&amp;content={foo:"bar"}</l>).
+            <li>Ability to simulate non-GET requests using a <l>&amp;method</l> GET parameter 
+               (e.g. <l>&amp;method=POST</l>).
+            <li>Ability to force <js>"text/plain"</js> on response using GET parameter <l>&amp;plainText=true</l>.
+         </ul>
+      <li>
+         Ability to implement overloaded HTTP methods through the use of the <l>&amp;method</l> attribute 
+         (e.g. <l>&amp;method=FOO</l>).
+      <li>
+         Ability to match URL patterns (e.g. <l>/foo/{fooId}/bar/{barId}</l>) against URLs 
+         (e.g. <l>/foo/123/bar/456/bing</l>).
+      <li>
+         Ability to associate guards at the resource or method levels through annotations.
+         <br>Typically useful for security, but can be used for a variety of purposes.
+      <li>
+         Ability to associate converters at the resource or method levels through annotations.
+         <br>Typically useful for performing conversions on input and output, such as for supporting older input and 
+         output formats.
+   </ul>
+   <p>
+      Many of the examples in this document are pulled directly from <l>juneau-examples-rest</l>.
+   </p>
+
+   <!-- ======================================================================================================== -->
+   <a id="juneau-rest-server.HelloWorldExample"></a>
+   <h3 class='topic' onclick='toggle(this)'>7.1 - Hello World Example</h3>
+   <div class='topic'>
       <p>
-         The <l>juneau-rest-server</l> library allows you to quickly wrap POJOs and expose them as full-fledged REST 
-         resources served up in a servlet container using a bare-minimum amount of code.
-         <br>The primary goal for Juneau was to make it as easy as possible to implement easy-to-read and self-documenting 
-         REST resources using very little code.
+         A REST resource is simply a Java class annotated with <a href="org/apache/juneau/rest/annotation/RestResource.html" title="annotation in org.apache.juneau.rest.annotation"><code>RestResource</code></a>.
+         <br>The most common case is a class that extends <a href="org/apache/juneau/rest/RestServlet.html" title="class in org.apache.juneau.rest"><code>RestServlet</code></a>, which itself is simply an 
+         extension of <code>HttpServlet</code> which allows it to be deployed as a servlet.  
       </p>
       <p>
-         One of the biggest advantages of the Juneau REST framework over similar architectures is that it hides the 
-         serialization layer from the developer.  
-         <br>The developer can work entirely with POJOs and let the Juneau framework handle all the serialization and 
-         parsing work.  
-         <br>The developer need never know what the <l>Accept</l> or <l>Content-Type</l> or <l>Accept-Encoding</l> (etc...) 
-         header values are because those details are all handled by the framework. 
+         In this example, we define a resource called <l>HelloWorldResource</l>.  
+         <br>This example is located in the <l>juneau-examples-rest</l> project.
+         <br>It's assumed the reader is familiar with defining servlets in web applications.
       </p>
-      <p> 
-         The API builds upon the existing JEE Servlet API.  
-         <br>The root class, <a href="org/apache/juneau/rest/RestServlet.html" title="class in org.apache.juneau.rest"><code>RestServlet</code></a> is nothing but a specialized 
-         <code>HttpServlet</code>, and the <a href="org/apache/juneau/rest/RestRequest.html" title="class in org.apache.juneau.rest"><code>RestRequest</code></a> and 
-         <a href="org/apache/juneau/rest/RestResponse.html" title="class in org.apache.juneau.rest"><code>RestResponse</code></a> classes are nothing more than specialized 
-         <code>HttpServletRequest</code> and <code>HttpServletResponse</code> objects.  
-         <br>This allows maximum flexibility for the developer since you can let Juneau handle operations such as 
-         serialization, or you can revert to the existing servlet APIs to do low-level processing of requests yourself. 
-         <br>It also means you need nothing more than a Servlet container such as Jetty to use the REST framework.
-      </p>
-      
-      <h5 class='topic'>Features</h5>
-      <ul class='spaced-list'>
-         <li>
-            Serializes POJOs to JSON, XML, HTML, URL-Encoding, UON, RDF/XML, N-Triple, Turtle, N3, SOAP, or 
-            Java-serialized-object based on value of <l>Accept</l> header.  
-            <br>No user code is required to handle these types.
-            <ul>
-               <li>Extensible design that provides ability to override existing content type handlers, or add the 
-                  ability to handle other kinds of content types.
-            </ul>
-         <li>
-            Parses content of POST/PUT request bodies to POJOs.
-         <li>
-            Automatic built-in ability to serialize POJO metadata to JSON+SCHEMA, XML+SCHEMA, or HTML+SCHEMA based on 
-            <l>Accept</l> header.
-         <li>
-            Automatic negotiation of output Writer based on HTTP headers.
-            <ul>
-               <li>Automatic handling of <l>Accept-Charset</l> header for all character sets supported by the JVM.
-               <li>Automatic handling of <l>Accept-Encoding</l> header with registered encoders.
-            </ul>
-         <li>
-            Automatic error handling.
-            <ul>
-               <li>Automatic 401 errors (Unauthorized) on failed guards.
-               <li>Automatic 404 errors (Not Found) on unmatched path patterns.
-               <li>Automatic 405 errors (Method Not Implemented) on unimplemented methods.
-               <li>Automatic 406 errors (Not Acceptable) when no matching serializer was found to handle the 
-                  <l>Accept</l> header.
-               <li>Automatic 412 errors (Precondition Failed) when all matchers failed to match.
-               <li>Automatic 415 errors (Unsupported Media Type) when no matching parser was found was found to handle 
-                  the <l>Content-Type</l> header.
-               <li>Automatic 500 errors on uncaught exceptions.
-            </ul>
-         <li>
-            Self-documenting Swagger-based REST interfaces.
-         <li>
-            Various useful debugging features that make debugging using a browser extremely simple...
-            <ul>
-               <li>Ability to pass HTTP header values as URL GET parameters (e.g. <l>&amp;Accept=text/xml</l>).
-               <li>Ability to pass HTTP content on PUT/POST requests as a URL GET parameter 
-                  (e.g. <l>&amp;content={foo:"bar"}</l>).
-               <li>Ability to simulate non-GET requests using a <l>&amp;method</l> GET parameter 
-                  (e.g. <l>&amp;method=POST</l>).
-               <li>Ability to force <js>"text/plain"</js> on response using GET parameter <l>&amp;plainText=true</l>.
-            </ul>
-         <li>
-            Ability to implement overloaded HTTP methods through the use of the <l>&amp;method</l> attribute 
-            (e.g. <l>&amp;method=FOO</l>).
-         <li>
-            Ability to match URL patterns (e.g. <l>/foo/{fooId}/bar/{barId}</l>) against URLs 
-            (e.g. <l>/foo/123/bar/456/bing</l>).
-         <li>
-            Ability to associate guards at the resource or method levels through annotations.
-            <br>Typically useful for security, but can be used for a variety of purposes.
-         <li>
-            Ability to associate converters at the resource or method levels through annotations.
-            <br>Typically useful for performing conversions on input and output, such as for supporting older input and 
-            output formats.
-      </ul>
       <p>
-         Many of the examples in this document are pulled directly from <l>juneau-examples-rest</l>.
+         Like any servlet, we could define our resource in the <l>web.xml</l> file of the web application like so...
       </p>
-   
-      <!-- ======================================================================================================== -->
-      <a id="juneau-rest-server.HelloWorldExample"></a>
-      <h4 class='topic' onclick='toggle(this)'>3.1.1 - Hello World Example</h4>
-      <div class='topic'>
-         <p>
-            A REST resource is simply a Java class annotated with <a href="org/apache/juneau/rest/annotation/RestResource.html" title="annotation in org.apache.juneau.rest.annotation"><code>RestResource</code></a>.
-            <br>The most common case is a class that extends <a href="org/apache/juneau/rest/RestServlet.html" title="class in org.apache.juneau.rest"><code>RestServlet</code></a>, which itself is simply an 
-            extension of <code>HttpServlet</code> which allows it to be deployed as a servlet.  
-         </p>
-         <p>
-            In this example, we define a resource called <l>HelloWorldResource</l>.  
-            <br>This example is located in the <l>juneau-examples-rest</l> project.
-            <br>It's assumed the reader is familiar with defining servlets in web applications.
-         </p>
-         <p>
-            Like any servlet, we could define our resource in the <l>web.xml</l> file of the web application like so...
-         </p>
-         <p class='bcode'>
+      <p class='bcode'>
    <xt>&lt;?xml</xt> <xa>version</xa>=<xs>"1.0"</xs> <xa>encoding</xa>=<xs>"UTF-8"</xs><xt>?&gt;</xt>
    <xt>&lt;web-app</xt> <xa>version</xa>=<xs>"2.3"</xs><xt>&gt;</xt>
       <xt>&lt;servlet&gt;</xt>
@@ -5160,11 +5104,11 @@
          <xt>&lt;url-pattern&gt;</xt>/*<xt>&lt;/url-pattern&gt;</xt>
       <xt>&lt;/servlet-mapping&gt;</xt>
    <xt>&lt;/web-app&gt;</xt>
-         </p>
-         <p>
-            Our servlet code is shown below:
-         </p>
-         <p class='bcode'>
+      </p>
+      <p>
+         Our servlet code is shown below:
+      </p>
+      <p class='bcode'>
    <jd>/** 
     * Sample REST resource that prints out a simple "Hello world!" message.
     */</jd>
@@ -5192,151 +5136,151 @@
          <jk>return</jk> <js>"Hello world!"</js>;
       }
    }
-         </p>
-         <p>
-            This is what it looks like in a browser:
-         </p>
-         <img class='bordered' src='doc-files/HelloWorldResource.png' style='width:800px'>
-         <p>
-            It doesn't much simpler than that.  
-            <br>In this case, we're simply returning a string that will be converted to any of the supported languages (e.g. 
-            JSON, XML, HTML, ...).
-            <br>However, we could have returned any POJO consisting of beans, maps, collections, etc...
-         </p>
-         <p>
-            The <a href="org/apache/juneau/rest/RestServletDefault.html" title="class in org.apache.juneau.rest"><code>RestServletDefault</code></a> class that we're using here is a subclass of 
-            <a href="org/apache/juneau/rest/RestServlet.html" title="class in org.apache.juneau.rest"><code>RestServlet</code></a> that provides default support for a variety of content types.  
-            <br>Implementers can choose to use this class, or create their own subclass of 
-            <a href="org/apache/juneau/rest/RestServlet.html" title="class in org.apache.juneau.rest"><code>RestServlet</code></a> with their own specialized serializers and parsers.
-         </p>
-      </div>
+      </p>
+      <p>
+         This is what it looks like in a browser:
+      </p>
+      <img class='bordered' src='doc-files/HelloWorldResource.png' style='width:800px'>
+      <p>
+         It doesn't much simpler than that.  
+         <br>In this case, we're simply returning a string that will be converted to any of the supported languages (e.g. 
+         JSON, XML, HTML, ...).
+         <br>However, we could have returned any POJO consisting of beans, maps, collections, etc...
+      </p>
+      <p>
+         The <a href="org/apache/juneau/rest/RestServletDefault.html" title="class in org.apache.juneau.rest"><code>RestServletDefault</code></a> class that we're using here is a subclass of 
+         <a href="org/apache/juneau/rest/RestServlet.html" title="class in org.apache.juneau.rest"><code>RestServlet</code></a> that provides default support for a variety of content types.  
+         <br>Implementers can choose to use this class, or create their own subclass of 
+         <a href="org/apache/juneau/rest/RestServlet.html" title="class in org.apache.juneau.rest"><code>RestServlet</code></a> with their own specialized serializers and parsers.
+      </p>
+   </div>
+
+   <!-- ======================================================================================================== -->
+   <a id="juneau-rest-server.ClassHierarchy"></a>
+   <h3 class='topic' onclick='toggle(this)'>7.2 - Class Hierarchy</h3>
+   <div class='topic'>
+      <p>
+         The class hierarchy for the REST servlet class is shown below:
+      </p>
+      <ul class='doctree'>
+         <li class='jac'>
+            <code>javax.servlet.http.HttpServlet</code> 
+            <ul>
+               <li class='jac'>
+                  <a href="org/apache/juneau/rest/RestServlet.html" title="class in org.apache.juneau.rest"><code>org.apache.juneau.rest.RestServlet</code></a>
+                  <br>Contains all the main logic.
+                  <ul>
+                     <li class='jac'>
+                        <a href="org/apache/juneau/rest/RestServletDefault.html" title="class in org.apache.juneau.rest"><code>org.apache.juneau.rest.RestServletDefault</code></a>
+                        <br>Provides a default set of serializers, parsers, options page, stylesheet, and other common settings.
+                        <br><b>Developers will typically subclass this when creating REST resources in JEE environments.</b> 
+                        <ul>
+                           <li class='jac'>
+                              <a href="org/apache/juneau/microservice/Resource.html" title="class in org.apache.juneau.microservice"><code>org.apache.juneau.microservice.Resource</code></a>
+                              <br>Subclass intended to be used in REST microservices.
+                              <br><b>Developers will typically subclass this when creating microservices.</b> 
+                           <li class='jac'>
+                              <a href="org/apache/juneau/rest/RestServletGroupDefault.html" title="class in org.apache.juneau.rest"><code>org.apache.juneau.rest.RestServletGroupDefault</code></a>
+                              <br>A default implementation for "router" pages.
+                              <ul>
+                                 <li class='jac'>
+                                    <a href="org/apache/juneau/microservice/ResourceGroup.html" title="class in org.apache.juneau.microservice"><code>org.apache.juneau.microservice.ResourceGroup</code></a>
+                                    <br>Subclass intended to be used in REST microservices.
+                              </ul>
+                           </li>
+                        </ul>
+                     </li>
+                  </ul>
+               </li>
+            </ul>
+         </li>
+      </ul>
+      <p>
+         The servlets with RDF support require Jena on the classpath.  
+         <br>All other serializers and parsers do not have any external library dependencies.
+         <br>For this reason, we have separate servlets for supporting RDF so that you don't need Jena if you don't need to 
+         support RDF. 
+      </p>
+      <p>
+         Everything is configured through the following classes which you will see a lot:
+      </p>
+      <ul>
+         <li class='jc'><a href="org/apache/juneau/rest/RestContext.html" title="class in org.apache.juneau.rest"><code>RestContext</code></a> - Each resource class instance has one copy that holds all of its configuration.
+         <li class='jc'><a href="org/apache/juneau/rest/RestContextBuilder.html" title="class in org.apache.juneau.rest"><code>RestContextBuilder</code></a> - Builder for the class above.
+      </ul>
+   </div>
+   
+   <!-- ======================================================================================================== -->
+   <a id="juneau-rest-server.Instantiation"></a>
+   <h3 class='topic' onclick='toggle(this)'>7.3 - Instantiation</h3>
+   <div class='topic'>
+      <p>
+         REST resources are deployed in one of two ways:
+      </p>
+      <ul>
+         <li>Deployed in a J2EE container as a servlet.
+         <li>Deployed as a child of another REST resource.
+      </ul>
+      <p>
+         When deployed in a J2EE container, you MUST extend from one of the servlet classes.
+         <br>When deployed as a child of another resource, you MAY extend from one of the servlet classes but it's 
+         not necessary.
+      </p>
 
       <!-- ======================================================================================================== -->
-      <a id="juneau-rest-server.ClassHierarchy"></a>
-      <h4 class='topic' onclick='toggle(this)'>3.1.2 - Class Hierarchy</h4>
+      <a id="juneau-rest-server.RestServlet"></a>
+      <h4 class='topic' onclick='toggle(this)'>7.3.1 - RestServlet</h4>
       <div class='topic'>
          <p>
-            The class hierarchy for the REST servlet class is shown below:
+            The <a href="org/apache/juneau/rest/RestServlet.html" title="class in org.apache.juneau.rest"><code>RestServlet</code></a> class is the entry point for your REST resources.
+            <br>It extends directly from <l>HttpServlet</l> and is deployed like any other servlet.
          </p>
-         <ul class='doctree'>
-            <li class='jac'>
-               <code>javax.servlet.http.HttpServlet</code> 
-               <ul>
-                  <li class='jac'>
-                     <a href="org/apache/juneau/rest/RestServlet.html" title="class in org.apache.juneau.rest"><code>org.apache.juneau.rest.RestServlet</code></a>
-                     <br>Contains all the main logic.
-                     <ul>
-                        <li class='jac'>
-                           <a href="org/apache/juneau/rest/RestServletDefault.html" title="class in org.apache.juneau.rest"><code>org.apache.juneau.rest.RestServletDefault</code></a>
-                           <br>Provides a default set of serializers, parsers, options page, stylesheet, and other common settings.
-                           <br><b>Developers will typically subclass this when creating REST resources in JEE environments.</b> 
-                           <ul>
-                              <li class='jac'>
-                                 <a href="org/apache/juneau/microservice/Resource.html" title="class in org.apache.juneau.microservice"><code>org.apache.juneau.microservice.Resource</code></a>
-                                 <br>Subclass intended to be used in REST microservices.
-                                 <br><b>Developers will typically subclass this when creating microservices.</b> 
-                              <li class='jac'>
-                                 <a href="org/apache/juneau/rest/RestServletGroupDefault.html" title="class in org.apache.juneau.rest"><code>org.apache.juneau.rest.RestServletGroupDefault</code></a>
-                                 <br>A default implementation for "router" pages.
-                                 <ul>
-                                    <li class='jac'>
-                                       <a href="org/apache/juneau/microservice/ResourceGroup.html" title="class in org.apache.juneau.microservice"><code>org.apache.juneau.microservice.ResourceGroup</code></a>
-                                       <br>Subclass intended to be used in REST microservices.
-                                 </ul>
-                              </li>
-                           </ul>
-                        </li>
-                     </ul>
-                  </li>
-               </ul>
-            </li>
-         </ul>
          <p>
-            The servlets with RDF support require Jena on the classpath.  
-            <br>All other serializers and parsers do not have any external library dependencies.
-            <br>For this reason, we have separate servlets for supporting RDF so that you don't need Jena if you don't need to 
-            support RDF. 
+            When the servlet <l>init()</l> method is called, it triggers the code to find and process the <l>@RestResource</l>
+            annotations on that class and all child classes.
+            <br>These get constructed into a <a href="org/apache/juneau/rest/RestContext.html" title="class in org.apache.juneau.rest"><code>RestContext</code></a> object that holds all the configuration
+            information about your resource in a read-only object.
          </p>
          <p>
-            Everything is configured through the following classes which you will see a lot:
+            Most developers are not going to be using the <l>RestServlet</l> class itself, and instead will
+            extend from one of the preconfigured default servlets such as <a href="org/apache/juneau/rest/RestServletDefault.html" title="class in org.apache.juneau.rest"><code>RestServletDefault</code></a>.
+            <br>The <l>RestServlet</l> class by itself is not configured with any serializers and parsers, and therefore
+            not very useful on it's own.
+            <br>However, the class does provide a couple of convenience methods to be aware of:
          </p>
-         <ul>
-            <li class='jc'><a href="org/apache/juneau/rest/RestContext.html" title="class in org.apache.juneau.rest"><code>RestContext</code></a> - Each resource class instance has one copy that holds all of its configuration.
-            <li class='jc'><a href="org/apache/juneau/rest/RestContextBuilder.html" title="class in org.apache.juneau.rest"><code>RestContextBuilder</code></a> - Builder for the class above.
+         <ul class='doctree'>
+            <li class='jac'><code><a href="org/apache/juneau/rest/RestServlet.html" title="class in org.apache.juneau.rest"><code>RestServlet</code></a> <jk>extends</jk> HttpServlet</code>
+            <ul>
+               <li class='jf'><a href="org/apache/juneau/rest/RestServlet.html#log-java.util.logging.Level-java.lang.String-java.lang.Object...-"><code>log(Level,String,Object...)</code></a>
+               <li class='jf'><a href="org/apache/juneau/rest/RestServlet.html#log-java.util.logging.Level-java.lang.Throwable-java.lang.String-java.lang.Object...-"><code>log(Level,Throwable,String,Object...)</code></a>
+               <li class='jf'><a href="org/apache/juneau/rest/RestServlet.html#getContext--"><code>getContext()</code></a>
+            </ul>
          </ul>
+         <p>
+            Since this is a servlet, you also have the ability to intercept calls to the <l>init</l> and <l>service</l> methods
+            in your subclass.
       </div>
-      
+
       <!-- ======================================================================================================== -->
-      <a id="juneau-rest-server.Instantiation"></a>
-      <h4 class='topic' onclick='toggle(this)'>3.1.3 - Instantiation</h4>
+      <a id="juneau-rest-server.RestServletDefault"></a>
+      <h4 class='topic' onclick='toggle(this)'>7.3.2 - RestServletDefault</h4>
       <div class='topic'>
          <p>
-            REST resources are deployed in one of two ways:
+            The <a href="org/apache/juneau/rest/RestServletDefault.html" title="class in org.apache.juneau.rest"><code>RestServletDefault</code></a> class is a subclass of <a href="org/apache/juneau/rest/RestServlet.html" title="class in org.apache.juneau.rest"><code>RestServlet</code></a>
+            preconfigured with the following:
          </p>
-         <ul>
-            <li>Deployed in a J2EE container as a servlet.
-            <li>Deployed as a child of another REST resource.
+         <ul class='spaced-list'>
+            <li>A default set of serializers and parsers (pretty much all of them except for the RDF ones).
+            <li>Some basic HTML boilerplate for the HTML representation of your POJOs.
+            <li>Support for auto-generated Swagger documentation through OPTIONS page requests.
+            <li>Configuration of default CSS stylesheets.
          </ul>
          <p>
-            When deployed in a J2EE container, you MUST extend from one of the servlet classes.
-            <br>When deployed as a child of another resource, you MAY extend from one of the servlet classes but it's 
-            not necessary.
+            The entirety of the class is shown below.
+            <br>You should notice that very little code is being used and everything is configurable through
+            annotations:
          </p>
-
-         <!-- ======================================================================================================== -->
-         <a id="juneau-rest-server.RestServlet"></a>
-         <h4 class='topic' onclick='toggle(this)'>3.1.3.1 - RestServlet</h4>
-         <div class='topic'>
-            <p>
-               The <a href="org/apache/juneau/rest/RestServlet.html" title="class in org.apache.juneau.rest"><code>RestServlet</code></a> class is the entry point for your REST resources.
-               <br>It extends directly from <l>HttpServlet</l> and is deployed like any other servlet.
-            </p>
-            <p>
-               When the servlet <l>init()</l> method is called, it triggers the code to find and process the <l>@RestResource</l>
-               annotations on that class and all child classes.
-               <br>These get constructed into a <a href="org/apache/juneau/rest/RestContext.html" title="class in org.apache.juneau.rest"><code>RestContext</code></a> object that holds all the configuration
-               information about your resource in a read-only object.
-            </p>
-            <p>
-               Most developers are not going to be using the <l>RestServlet</l> class itself, and instead will
-               extend from one of the preconfigured default servlets such as <a href="org/apache/juneau/rest/RestServletDefault.html" title="class in org.apache.juneau.rest"><code>RestServletDefault</code></a>.
-               <br>The <l>RestServlet</l> class by itself is not configured with any serializers and parsers, and therefore
-               not very useful on it's own.
-               <br>However, the class does provide a couple of convenience methods to be aware of:
-            </p>
-            <ul class='doctree'>
-               <li class='jac'><code><a href="org/apache/juneau/rest/RestServlet.html" title="class in org.apache.juneau.rest"><code>RestServlet</code></a> <jk>extends</jk> HttpServlet</code>
-               <ul>
-                  <li class='jf'><a href="org/apache/juneau/rest/RestServlet.html#log-java.util.logging.Level-java.lang.String-java.lang.Object...-"><code>log(Level,String,Object...)</code></a>
-                  <li class='jf'><a href="org/apache/juneau/rest/RestServlet.html#log-java.util.logging.Level-java.lang.Throwable-java.lang.String-java.lang.Object...-"><code>log(Level,Throwable,String,Object...)</code></a>
-                  <li class='jf'><a href="org/apache/juneau/rest/RestServlet.html#getContext--"><code>getContext()</code></a>
-               </ul>
-            </ul>
-            <p>
-               Since this is a servlet, you also have the ability to intercept calls to the <l>init</l> and <l>service</l> methods
-               in your subclass.
-         </div>
-
-         <!-- ======================================================================================================== -->
-         <a id="juneau-rest-server.RestServletDefault"></a>
-         <h4 class='topic' onclick='toggle(this)'>3.1.3.2 - RestServletDefault</h4>
-         <div class='topic'>
-            <p>
-               The <a href="org/apache/juneau/rest/RestServletDefault.html" title="class in org.apache.juneau.rest"><code>RestServletDefault</code></a> class is a subclass of <a href="org/apache/juneau/rest/RestServlet.html" title="class in org.apache.juneau.rest"><code>RestServlet</code></a>
-               preconfigured with the following:
-            </p>
-            <ul class='spaced-list'>
-               <li>A default set of serializers and parsers (pretty much all of them except for the RDF ones).
-               <li>Some basic HTML boilerplate for the HTML representation of your POJOs.
-               <li>Support for auto-generated Swagger documentation through OPTIONS page requests.
-               <li>Configuration of default CSS stylesheets.
-            </ul>
-            <p>
-               The entirety of the class is shown below.
-               <br>You should notice that very little code is being used and everything is configurable through
-               annotations:
-            </p>
-            <p class='bcode'>
+         <p class='bcode'>
    <ja>@RestResource</ja>(
       serializers={
          HtmlDocSerializer.<jk>class</jk>,
@@ -5406,69 +5350,69 @@
          <jk>return</jk> req.getSwagger();
       }
    }
-            </p>
-            <p>
-               Your top-level resource will simply extend from this class, as shown in the Hello World example
-               from a couple sections back.
-            </p>
-            <p>
-               There's a lot going on in this class.
-               <br>But not to worry, the details will be described later.
-            </p>
-         </div>
+         </p>
+         <p>
+            Your top-level resource will simply extend from this class, as shown in the Hello World example
+            from a couple sections back.
+         </p>
+         <p>
+            There's a lot going on in this class.
+            <br>But not to worry, the details will be described later.
+         </p>
+      </div>
 
-         <!-- ======================================================================================================== -->
-         <a id="juneau-rest-server.Children"></a>
-         <h4 class='topic' onclick='toggle(this)'>3.1.3.3 - Children</h4>
-         <div class='topic'>
-            <p>
-               Child Resources are REST servlets or objects that are linked to parent resources through the 
-               <a href="org/apache/juneau/rest/annotation/RestResource.html#children--"><code>@RestResource.children()</code></a> annotation.
-            </p>
-            <h5 class='figure'>Example:</h5>
-            <p class='bcode'>
+      <!-- ======================================================================================================== -->
+      <a id="juneau-rest-server.Children"></a>
+      <h4 class='topic' onclick='toggle(this)'>7.3.3 - Children</h4>
+      <div class='topic'>
+         <p>
+            Child Resources are REST servlets or objects that are linked to parent resources through the 
+            <a href="org/apache/juneau/rest/annotation/RestResource.html#children--"><code>@RestResource.children()</code></a> annotation.
+         </p>
+         <h5 class='figure'>Example:</h5>
+         <p class='bcode'>
    <jd>/** Parent Resource */</jd>
    <ja>@RestResource</ja>(
       path=<js>"/parent"</js>,
       children={FooResource.<jk>class</jk>}
    )
    <jk>public</jk> MyResource <jk>extends</jk> RestServletDefault {...}
-            </p>
-            <p class='bcode'>
+         </p>
+         <p class='bcode'>
    <jd>/** Child Resource */</jd>
    <ja>@RestResource</ja>(
       path=<js>"/foo"</js>  <jc>// Path relative to parent resource.</jc>
    )
    <jk>public</jk> FooResource {...} <jc>// Note that we don't need to extend from RestServlet.</jc>
-            </p>
-            <p>
-               The path of the child resource gets appended to the path of the parent resource. 
-               <br>So in the example above, the child resource is accessed through the URL <l>/parent/foo</l>.
-            </p>
-            <p>
-               A HUGE advantage of using child resources is that they do not need to be declared in the JEE <l>web.xml</l> 
-               file.
-               <br>Initialization of and access to the child resources occurs through the parent resource.
-               <br>Children can be nested arbitrary deep to create complex REST interfaces with a single top-level REST servlet.
-            </p>
-            <h5 class='section'>See Also:</h5>
-            <ul>
-               <li class='jf'><a href="org/apache/juneau/rest/RestContext.html#REST_children"><code>RestContext.REST_children</code></a>
-            </ul>
-         </div>
+         </p>
+         <p>
+            The path of the child resource gets appended to the path of the parent resource. 
+            <br>So in the example above, the child resource is accessed through the URL <l>/parent/foo</l>.
+         </p>
+         <p>
+            A HUGE advantage of using child resources is that they do not need to be declared in the JEE <l>web.xml</l> 
+            file.
+            <br>Initialization of and access to the child resources occurs through the parent resource.
+            <br>Children can be nested arbitrary deep to create complex REST interfaces with a single top-level REST servlet.
+         </p>
+         <h5 class='section'>See Also:</h5>
+         <ul>
+            <li class='jf'><a href="org/apache/juneau/rest/RestContext.html#REST_children"><code>RestContext.REST_children</code></a>
+         </ul>
+      </div>
 
-         <!-- ======================================================================================================== -->
-         <a id="juneau-rest-server.RouterPages"></a>
-         <h4 class='topic' onclick='toggle(this)'>3.1.3.4 - Router Pages</h4>
-         <div class='topic'>
-            <p>
-               The <a href="org/apache/juneau/rest/RestServletGroupDefault.html" title="class in org.apache.juneau.rest"><code>RestServletGroupDefault</code></a> class provides a default "router" page for 
-               child resources when a parent resource is nothing more than a grouping of child resources.
-            </p>     
-            <p>
-               The <l>RootResources</l> class in the Samples project is an example of a router page:
-            </p>
-            <p class='bcode'>    
+      <!-- ======================================================================================================== -->
+      <a id="juneau-rest-server.RouterPages"></a>
+      <h4 class='topic' onclick='toggle(this)'>7.3.4 - Router Pages</h4>
+      <div class='topic'>
+         <p>
+            The <a href="org/apache/juneau/rest/RestServletGroupDefault.html" title="class in org.apache.juneau.rest"><code>RestServletGroupDefault</code></a> class provides a default "router" page for 
+            child resources when a parent resource is nothing more than a grouping of child resources.
+         </p>     
+         <p>
+            The <l>RootResources</l> class in the Samples project is an example of a router page:
+         </p>
+         <p class='bcode'>    
    <jd>/**
     * Sample REST resource showing how to implement a "router" resource page.
     */</jd>
@@ -5500,19 +5444,19 @@
    <jk>public class</jk> RootResources <jk>extends</jk> RestServletGroupDefault {
       <jc>// NO CODE!!!</jc>
    }
-            </p>
-            <p>
-               When you bring up this resource in a browser, you see the following that provides a list
-               of navigable links to your child resources:
-            </p>
-            <img class='bordered' src="doc-files/Samples_RootResources.png" style='width:800px;'/>
-            <p> 
-               The <a href="org/apache/juneau/rest/RestServletGroupDefault.html" title="class in org.apache.juneau.rest"><code>RestServletGroupDefault</code></a> class is nothing more than a subclass of 
-               <a href="org/apache/juneau/rest/RestServletDefault.html" title="class in org.apache.juneau.rest"><code>RestServletDefault</code></a> with a <l>getChildren()</l> method mapped to the servlet 
-               root path.
-               <br>The method returns a POJO with is just a linked-list of beans with name/description properties.
-            </p>  
-            <p class='bcode'>
+         </p>
+         <p>
+            When you bring up this resource in a browser, you see the following that provides a list
+            of navigable links to your child resources:
+         </p>
+         <img class='bordered' src="doc-files/Samples_RootResources.png" style='width:800px;'/>
+         <p> 
+            The <a href="org/apache/juneau/rest/RestServletGroupDefault.html" title="class in org.apache.juneau.rest"><code>RestServletGroupDefault</code></a> class is nothing more than a subclass of 
+            <a href="org/apache/juneau/rest/RestServletDefault.html" title="class in org.apache.juneau.rest"><code>RestServletDefault</code></a> with a <l>getChildren()</l> method mapped to the servlet 
+            root path.
+            <br>The method returns a POJO with is just a linked-list of beans with name/description properties.
+         </p>  
+         <p class='bcode'>
    <jk>public class</jk> RestServletGroupDefault <jk>extends</jk> RestServletDefault {
    
       <ja>@RestMethod</ja>(name=<jsf>GET</jsf>, path=<js>"/"</js>, description=<js>"Child resources"</js>)
@@ -5520,53 +5464,53 @@
          <jk>return new</jk> ChildResourceDescriptions(<jk>this</jk>, req);
       }
    }     
-            </p>
-         </div>
-         <!-- ======================================================================================================== -->
-         <a id="juneau-rest-server.ResourceResolvers"></a>
-         <h4 class='topic' onclick='toggle(this)'>3.1.3.5 - Resource Resolvers</h4>
-         <div class='topic'>
-            <p>
-               By default, you can add the <a href="org/apache/juneau/rest/annotation/RestResource.html" title="annotation in org.apache.juneau.rest.annotation"><code>@RestResource</code></a>
-               to any class as long as it has one of the following constructors:
-            </p>
-            <ul>
-               <li><code><jk>public</jk> T(RestContextBuilder)</code>
-               <li><code><jk>public</jk> T()</code>
-            </ul>
-            <p>
-               The former constructor can be used to get access to the <a href="org/apache/juneau/rest/RestContextBuilder.html" title="class in org.apache.juneau.rest"><code>RestContextBuilder</code></a> object to make
-               any configurations to the resource before it's initialized.
-            </p>
-            <p>
-               Resource object resolution is controlled through the following API:
-            </p>
-            <ul class='doctree'>
-               <li class='jic'><a href="org/apache/juneau/rest/RestResourceResolver.html" title="interface in org.apache.juneau.rest"><code>RestResourceResolver</code></a>
-               <ul>
-                  <li class='jc'><a href="org/apache/juneau/rest/RestResourceResolverDefault.html" title="class in org.apache.juneau.rest"><code>RestResourceResolverDefault</code></a>
-               </ul>
-            </ul>
+         </p>
+      </div>
+      <!-- ======================================================================================================== -->
+      <a id="juneau-rest-server.ResourceResolvers"></a>
+      <h4 class='topic' onclick='toggle(this)'>7.3.5 - Resource Resolvers</h4>
+      <div class='topic'>
+         <p>
+            By default, you can add the <a href="org/apache/juneau/rest/annotation/RestResource.html" title="annotation in org.apache.juneau.rest.annotation"><code>@RestResource</code></a>
+            to any class as long as it has one of the following constructors:
+         </p>
+         <ul>
+            <li><code><jk>public</jk> T(RestContextBuilder)</code>
+            <li><code><jk>public</jk> T()</code>
+         </ul>
             <p>
-               This API can be extended to provide your own custom resource resolution.
-               <br>Later topics discuss how to use this API to instantiate resources using Spring.
-            </p>
-            <h5 class='section'>See Also:</h5>
+            The former constructor can be used to get access to the <a href="org/apache/juneau/rest/RestContextBuilder.html" title="class in org.apache.juneau.rest"><code>RestContextBuilder</code></a> object to make
+            any configurations to the resource before it's initialized.
+         </p>
+         <p>
+            Resource object resolution is controlled through the following API:
+         </p>
+         <ul class='doctree'>
+            <li class='jic'><a href="org/apache/juneau/rest/RestResourceResolver.html" title="interface in org.apache.juneau.rest"><code>RestResourceResolver</code></a>
             <ul>
-               <li class='jf'><a href="org/apache/juneau/rest/RestContext.html#REST_resourceResolver"><code>RestContext.REST_resourceResolver</code></a>
+               <li class='jc'><a href="org/apache/juneau/rest/RestResourceResolverDefault.html" title="class in org.apache.juneau.rest"><code>RestResourceResolverDefault</code></a>
             </ul>
-         </div>
-         
-         <!-- ======================================================================================================== -->
-         <a id="juneau-rest-server.LifecycleHooks"></a>
-         <h4 class='topic' onclick='toggle(this)'>3.1.3.6 - Lifecycle Hooks</h4>
-         <div class='topic'>
-            <p>
-               Lifecycle hooks allow you to hook into lifecycle events of the servlet/resource creation and REST calls.
-            </p>
-            <p>
-               For example, if you want to add an initialization method to your resource:
-            </p>
+         </ul>
+         <p>
+            This API can be extended to provide your own custom resource resolution.
+            <br>Later topics discuss how to use this API to instantiate resources using Spring.
+         </p>
+         <h5 class='section'>See Also:</h5>
+         <ul>
+            <li class='jf'><a href="org/apache/juneau/rest/RestContext.html#REST_resourceResolver"><code>RestContext.REST_resourceResolver</code></a>
+         </ul>
+      </div>
+      
+      <!-- ======================================================================================================== -->
+      <a id="juneau-rest-server.LifecycleHooks"></a>
+      <h4 class='topic' onclick='toggle(this)'>7.3.6 - Lifecycle Hooks</h4>
+      <div class='topic'>
+         <p>
+            Lifecycle hooks allow you to hook into lifecycle events of the servlet/resource creation and REST calls.
+         </p>
+         <p>
+            For example, if you want to add an initialization method to your resource:
+         </p>
       <p class='bcode'>
    <ja>@RestResource</ja>(...)
    <jk>public class</jk> MyResource  {
@@ -5579,11 +5523,11 @@
          <jf>myDatabase</jf> = <jk>new</jk> LinkedHashMap&lt;&gt;();
       }
    }
-            </p>
-            <p>
-               Or if you want to intercept REST calls:
-            </p>
-            <p class='bcode'>
+         </p>
+         <p>
+            Or if you want to intercept REST calls:
+         </p>
+         <p class='bcode'>
    <ja>@RestResource</ja>(...)
    <jk>public class</jk> MyResource {
 
@@ -5593,213 +5537,213 @@
          req.setAttribute(<js>"foo"</js>, <js>"bar"</js>);
       }
    }
-            </p>
-            <p>
-               The hook events can be broken down into two categories:
-            </p>
-            <ul class='spaced-list'>
-               <li>Resource lifecycle events:
-                  <ul>
-                     <li class='jf'><a href="org/apache/juneau/rest/annotation/HookEvent.html#INIT"><code>INIT</code></a> - Right before initialization.
-                     <li class='jf'><a href="org/apache/juneau/rest/annotation/HookEvent.html#POST_INIT"><code>POST_INIT</code></a> - Right after initialization.
-                     <li class='jf'><a href="org/apache/juneau/rest/annotation/HookEvent.html#POST_INIT_CHILD_FIRST"><code>POST_INIT_CHILD_FIRST</code></a> - Right after initialization, but run child methods first.
-                     <li class='jf'><a href="org/apache/juneau/rest/annotation/HookEvent.html#DESTROY"><code>DESTROY</code></a> - Right before servlet destroy.
-                  </ul>
-               <li>REST call lifecycle events:
-                  <ul>
-                     <li class='jf'><a href="org/apache/juneau/rest/annotation/HookEvent.html#START_CALL"><code>START_CALL</code></a> - At the beginning of a REST call.
-                     <li class='jf'><a href="org/apache/juneau/rest/annotation/HookEvent.html#PRE_CALL"><code>PRE_CALL</code></a> - Right before the <ja>@RestMethod</ja> method is invoked.
-                     <li class='jf'><a href="org/apache/juneau/rest/annotation/HookEvent.html#POST_CALL"><code>POST_CALL</code></a> - Right after the <ja>@RestMethod</ja> method is invoked.
-                     <li class='jf'><a href="org/apache/juneau/rest/annotation/HookEvent.html#END_CALL"><code>END_CALL</code></a> - At the end of the REST call after the response has been flushed.
-                  </ul>
-            </ul>
-   
-            <h5 class='section'>See Also:</h5>
-            <ul>
-               <li class='ja'><a href="org/apache/juneau/rest/annotation/RestHook.html" title="annotation in org.apache.juneau.rest.annotation"><code>RestHook</code></a>
-            </ul>
-         </div>
-
-      </div>
-      
-      <!-- ======================================================================================================== -->
-      <a id="juneau-rest-server.RestResource"></a>
-      <h4 class='topic' onclick='toggle(this)'>3.1.4 - @RestResource</h4>
-      <div class='topic'>
+         </p>
          <p>
-            The <a href="org/apache/juneau/rest/annotation/RestResource.html" title="annotation in org.apache.juneau.rest.annotation"><code>@RestResource</code></a> annotation is the primary way of defining
-            and configuring REST resource classes.
-            <br>The functionality of the class itself is covered in detail in the topics below.
+            The hook events can be broken down into two categories:
          </p>
+         <ul class='spaced-list'>
+            <li>Resource lifecycle events:
+               <ul>
+                  <li class='jf'><a href="org/apache/juneau/rest/annotation/HookEvent.html#INIT"><code>INIT</code></a> - Right before initialization.
+                  <li class='jf'><a href="org/apache/juneau/rest/annotation/HookEvent.html#POST_INIT"><code>POST_INIT</code></a> - Right after initialization.
+                  <li class='jf'><a href="org/apache/juneau/rest/annotation/HookEvent.html#POST_INIT_CHILD_FIRST"><code>POST_INIT_CHILD_FIRST</code></a> - Right after initialization, but run child methods first.
+                  <li class='jf'><a href="org/apache/juneau/rest/annotation/HookEvent.html#DESTROY"><code>DESTROY</code></a> - Right before servlet destroy.
+               </ul>
+            <li>REST call lifecycle events:
+               <ul>
+                  <li class='jf'><a href="org/apache/juneau/rest/annotation/HookEvent.html#START_CALL"><code>START_CALL</code></a> - At the beginning of a REST call.
+                  <li class='jf'><a href="org/apache/juneau/rest/annotation/HookEvent.html#PRE_CALL"><code>PRE_CALL</code></a> - Right before the <ja>@RestMethod</ja> method is invoked.
+                  <li class='jf'><a href="org/apache/juneau/rest/annotation/HookEvent.html#POST_CALL"><code>POST_CALL</code></a> - Right after the <ja>@RestMethod</ja> method is invoked.
+                  <li class='jf'><a href="org/apache/juneau/rest/annotation/HookEvent.html#END_CALL"><code>END_CALL</code></a> - At the end of the REST call after the response has been flushed.
+               </ul>
+         </ul>
 
-         <!-- ======================================================================================================== -->
-         <a id="juneau-rest-server.AnnotationInheritance"></a>
-         <h4 class='topic' onclick='toggle(this)'>3.1.4.1 - Annotation Inheritance</h4>
-         <div class='topic'>
-            <p>
-               The <a href="org/apache/juneau/rest/annotation/RestResource.html" title="annotation in org.apache.juneau.rest.annotation"><code>@RestResource</code></a> annotation can also be used on parents and interfaces of resource classes.
-               <br>When multiple annotations are defined at different levels, the annotation values are combined.
-            </p>
-            <p>
-               This is a particularly useful feature because it allows you to define your own configured parent
-               resource classes that can be extended by all your child resources so that they all share common
-               settings.
-            </p>
-            <table class='styled' style='max-width: 800px;'>
-               <tr>
-                  <th><l>Annotation</l></th>
-                  <th><l>Inheritence Rules</l></th>
-               </tr>
-               <tr>
-                  <td><a href="org/apache/juneau/rest/annotation/RestResource.html#guards--"><code>guards()</code></a></td>
-                  <td>
-                     Guards on child are combined with those on parent class.
-                     <br>Guards are executed child-to-parent in the order they appear in the annotation.
-                     <br>Guards on methods are executed before those on classes.
-                  </td>
-               </tr>
-               <tr>
-                  <td><a href="org/apache/juneau/rest/annotation/RestResource.html#converters--"><code>converters()</code></a></td>
-                  <td>
-                     Converters on child are combined with those on parent class.
-                     <br>Converters are executed child-to-parent in the order they appear in the annotation.
-                     <br>Converters on methods are executed before those on classes.
-                  </td>
-               </tr>
-               <tr>
-                  <td><a href="org/apache/juneau/rest/annotation/RestResource.html#beanFilters--"><code>beanFilters()</code></a></td>
-                  <td>
-                     Bean filters on child are combined with those on parent class.
-                  </td>
-               </tr>
-               <tr>
-                  <td><a href="org/apache/juneau/rest/annotation/RestResource.html#pojoSwaps--"><code>pojoSwaps()</code></a></td>
-                  <td>
-                     POJO swaps on child are combined with those on parent class.
-                  </td>
-               </tr>
-               <tr>
-                  <td><a href="org/apache/juneau/rest/annotation/RestResource.html#properties--"><code>properties()</code></a></td>
-                  <td>
-                     Properties on child are combined with those on parent class.
-                     <br>Properties are applied parent-to-child in the order they appear in the annotation.
-                     <br>Properties on methods take precedence over those on classes.           
-                  </td>
-               </tr>
-               <tr>
-                  <td><a href="org/apache/juneau/rest/annotation/RestResource.html#serializers--"><code>serializers()</code></a></td>
-                  <td>
-                     Serializers on child are combined with those on parent class.
-                     <br>Serializers on methods take precedence over those on classes.
-                  </td>
-               </tr>
-               <tr>
-                  <td><a href="org/apache/juneau/rest/annotation/RestResource.html#parsers--"><code>parsers()</code></a></td>
-                  <td>
-                     Parsers on child are combined with those on parent class.
-                     <br>Parsers on methods take precedence over those on classes.
-                  </td>
-               </tr>
-               <tr>
-                  <td><a href="org/apache/juneau/rest/annotation/RestResource.html#responseHandlers--"><code>responseHandlers()</code></a></td>
-                  <td>
-                     Response handlers on child are combined with those on parent class.
-                  </td>
-               </tr>
-               <tr>
-                  <td><a href="org/apache/juneau/rest/annotation/RestResource.html#encoders--"><code>encoders()</code></a></td>
-                  <td>
-                     Encoders on child are combined with those on parent class.
-                  </td>
-               </tr>
-               <tr>
-                  <td><a href="org/apache/juneau/rest/annotation/RestResource.html#defaultRequestHeaders--"><code>defaultRequestHeaders()</code></a></td>
-                  <td>
-                     Headers on child are combined with those on parent class.
-                     <br>Headers are applied parent-to-child in the order they appear in the annotation.
-                     <br>Headers on methods take precedence over those on classes.
-                  </td>
-               </tr>
-               <tr>
-                  <td><a href="org/apache/juneau/rest/annotation/RestResource.html#defaultResponseHeaders--"><code>defaultResponseHeaders()</code></a></td>
-                  <td>
-                     Headers on child are combined with those on parent class.
-                     <br>Headers are applied parent-to-child in the order they appear in the annotation.
-                  </td>
-               </tr>
-               <tr>
-                  <td><a href="org/apache/juneau/rest/annotation/RestResource.html#children--"><code>children()</code></a></td>
-                  <td>
-                     Children on child are combined with those on parent class.
-                     <br>Children are list parent-to-child in the order they appear in the annotation.
-                  </td>
-               </tr>
-               <tr>
-                  <td><a href="org/apache/juneau/rest/annotation/RestResource.html#path--"><code>path()</code></a></td>
-                  <td>
-                     Path is searched for in child-to-parent order.
-                  </td>
-               </tr>
-               <tr>
-                  <td><a href="org/apache/juneau/rest/annotation/RestResource.html#title--"><code>title()</code></a></td>
-                  <td>
-                     Label is searched for in child-to-parent order.
-                  </td>
-               </tr>
-               <tr>
-                  <td><a href="org/apache/juneau/rest/annotation/RestResource.html#description--"><code>description()</code></a></td>
-                  <td>
-                     Description is searched for in child-to-parent order.
-                  </td>
-               </tr>
-               <tr>
-                  <td><a href="org/apache/juneau/rest/annotation/RestResource.html#config--"><code>config()</code></a></td>
-                  <td>
-                     Config file is searched for in child-to-parent order.
-                  </td>
-               </tr>
-               <tr>
-                  <td><a href="org/apache/juneau/rest/annotation/RestResource.html#staticFiles--"><code>staticFiles()</code></a></td>
-                  <td>
-                     Static files on child are combined with those on parent class.
-                     <br>Static files are are executed child-to-parent in the order they appear in the annotation.
-                  </td>
-               </tr>
-            </table>
-         </div>
+         <h5 class='section'>See Also:</h5>
+         <ul>
+            <li class='ja'><a href="org/apache/juneau/rest/annotation/RestHook.html" title="annotation in org.apache.juneau.rest.annotation"><code>RestHook</code></a>
+         </ul>
       </div>
-      
+
+   </div>
+   
+   <!-- ======================================================================================================== -->
+   <a id="juneau-rest-server.RestResource"></a>
+   <h3 class='topic' onclick='toggle(this)'>7.4 - @RestResource</h3>
+   <div class='topic'>
+      <p>
+         The <a href="org/apache/juneau/rest/annotation/RestResource.html" title="annotation in org.apache.juneau.rest.annotation"><code>@RestResource</code></a> annotation is the primary way of defining
+         and configuring REST resource classes.
+         <br>The functionality of the class itself is covered in detail in the topics below.
+      </p>
+
       <!-- ======================================================================================================== -->
-      <a id="juneau-rest-server.RestContext"></a>
-      <h4 class='topic' onclick='toggle(this)'>3.1.5 - RestContext</h4>
+      <a id="juneau-rest-server.AnnotationInheritance"></a>
+      <h4 class='topic' onclick='toggle(this)'>7.4.1 - Annotation Inheritance</h4>
       <div class='topic'>
          <p>
-            The <a href="org/apache/juneau/rest/RestContext.html" title="class in org.apache.juneau.rest"><code>RestContext</code></a> object is the workhorse class for all of the configuration
-            of a single REST resource class.
-            <br>It's by-far the most important class in the REST API.
-         </p>
-         <p>
-            Every class annotated with <l>@RestResource</l> ends up with an instance of this object.
-            <br>The object itself is read-only and unchangeable.
-            <br>It is populated through the following:
-         </p>
-         <ul>
-            <li class='ja'><a href="org/apache/juneau/rest/annotation/RestResource.html" title="annotation in org.apache.juneau.rest.annotation"><code>RestResource</code></a> - Settings copied from the annotation during servlet initialization.
-            <li class='jm'><a href="org/apache/juneau/rest/RestContextBuilder.html" title="class in org.apache.juneau.rest"><code>RestContextBuilder</code></a> - Builder used during servlet initialization.
-         </ul>
-         <p>
-            The annotation should be self-explanatory at this point.
-            <br>The builder allows you to perform all of the same configuration as the annotation programmatically.
-         </p>
-         <p>
-            The <a href="org/apache/juneau/rest/RestContextBuilder.html" title="class in org.apache.juneau.rest"><code>RestContextBuilder</code></a> class extends <a href="org/apache/juneau/BeanContextBuilder.html" title="class in org.apache.juneau"><code>BeanContextBuilder</code></a>
-            allowing you to programmatically set any properties defined on that builder class.
-            <br>It also implements <code>ServletConfig</code>
+            The <a href="org/apache/juneau/rest/annotation/RestResource.html" title="annotation in org.apache.juneau.rest.annotation"><code>@RestResource</code></a> annotation can also be used on parents and interfaces of resource classes.
+            <br>When multiple annotations are defined at different levels, the annotation values are combined.
          </p>
          <p>
-            To access this object, simply pass it in as a constructor argument or in an INIT hook:
+            This is a particularly useful feature because it allows you to define your own configured parent
+            resource classes that can be extended by all your child resources so that they all share common
+            settings.
          </p>
-         <p class='bcode'>
+         <table class='styled' style='max-width: 800px;'>
+            <tr>
+               <th><l>Annotation</l></th>
+               <th><l>Inheritence Rules</l></th>
+            </tr>
+            <tr>
+               <td><a href="org/apache/juneau/rest/annotation/RestResource.html#guards--"><code>guards()</code></a></td>
+               <td>
+                  Guards on child are combined with those on parent class.
+                  <br>Guards are executed child-to-parent in the order they appear in the annotation.
+                  <br>Guards on methods are executed before those on classes.
+               </td>
+            </tr>
+            <tr>
+               <td><a href="org/apache/juneau/rest/annotation/RestResource.html#converters--"><code>converters()</code></a></td>
+               <td>
+                  Converters on child are combined with those on parent class.
+                  <br>Converters are executed child-to-parent in the order they appear in the annotation.
+                  <br>Converters on methods are executed before those on classes.
+               </td>
+            </tr>
+            <tr>
+               <td><a href="org/apache/juneau/rest/annotation/RestResource.html#beanFilters--"><code>beanFilters()</code></a></td>
+               <td>
+                  Bean filters on child are combined with those on parent class.
+               </td>
+            </tr>
+            <tr>
+               <td><a href="org/apache/juneau/rest/annotation/RestResource.html#pojoSwaps--"><code>pojoSwaps()</code></a></td>
+               <td>
+                  POJO swaps on child are combined with those on parent class.
+               </td>
+            </tr>
+            <tr>
+               <td><a href="org/apache/juneau/rest/annotation/RestResource.html#properties--"><code>properties()</code></a></td>
+               <td>
+                  Properties on child are combined with those on parent class.
+                  <br>Properties are applied parent-to-child in the order they appear in the annotation.
+                  <br>Properties on methods take precedence over those on classes.           
+               </td>
+            </tr>
+            <tr>
+               <td><a href="org/apache/juneau/rest/annotation/RestResource.html#serializers--"><code>serializers()</code></a></td>
+               <td>
+                  Serializers on child are combined with those on parent class.
+                  <br>Serializers on methods take precedence over those on classes.
+               </td>
+            </tr>
+            <tr>
+               <td><a href="org/apache/juneau/rest/annotation/RestResource.html#parsers--"><code>parsers()</code></a></td>
+               <td>
+                  Parsers on child are combined with those on parent class.
+                  <br>Parsers on methods take precedence over those on classes.
+               </td>
+            </tr>
+            <tr>
+               <td><a href="org/apache/juneau/rest/annotation/RestResource.html#responseHandlers--"><code>responseHandlers()</code></a></td>
+               <td>
+                  Response handlers on child are combined with those on parent class.
+               </td>
+            </tr>
+            <tr>
+               <td><a href="org/apache/juneau/rest/annotation/RestResource.html#encoders--"><code>encoders()</code></a></td>
+               <td>
+                  Encoders on child are combined with those on parent class.
+               </td>
+            </tr>
+            <tr>
+               <td><a href="org/apache/juneau/rest/annotation/RestResource.html#defaultRequestHeaders--"><code>defaultRequestHeaders()</code></a></td>
+               <td>
+                  Headers on child are combined with those on parent class.
+                  <br>Headers are applied parent-to-child in the order they appear in the annotation.
+                  <br>Headers on methods take precedence over those on classes.
+               </td>
+            </tr>
+            <tr>
+               <td><a href="org/apache/juneau/rest/annotation/RestResource.html#defaultResponseHeaders--"><code>defaultResponseHeaders()</code></a></td>
+               <td>
+                  Headers on child are combined with those on parent class.
+                  <br>Headers are applied parent-to-child in the order they appear in the annotation.
+               </td>
+            </tr>
+            <tr>
+               <td><a href="org/apache/juneau/rest/annotation/RestResource.html#children--"><code>children()</code></a></td>
+               <td>
+                  Children on child are combined with those on parent class.
+                  <br>Children are list parent-to-child in the order they appear in the annotation.
+               </td>
+            </tr>
+            <tr>
+               <td><a href="org/apache/juneau/rest/annotation/RestResource.html#path--"><code>path()</code></a></td>
+               <td>
+                  Path is searched for in child-to-parent order.
+               </td>
+            </tr>
+            <tr>
+               <td><a href="org/apache/juneau/rest/annotation/RestResource.html#title--"><code>title()</code></a></td>
+               <td>
+                  Label is searched for in child-to-parent order.
+               </td>
+            </tr>
+            <tr>
+               <td><a href="org/apache/juneau/rest/annotation/RestResource.html#description--"><code>description()</code></a></td>
+               <td>
+                  Description is searched for in child-to-parent order.
+               </td>
+            </tr>
+            <tr>
+               <td><a href="org/apache/juneau/rest/annotation/RestResource.html#config--"><code>config()</code></a></td>
+               <td>
+                  Config file is searched for in child-to-parent order.
+               </td>
+            </tr>
+            <tr>
+               <td><a href="org/apache/juneau/rest/annotation/RestResource.html#staticFiles--"><code>staticFiles()</code></a></td>
+               <td>
+                  Static files on child are combined with those on parent class.
+                  <br>Static files are are executed child-to-parent in the order they appear in the annotation.
+               </td>
+            </tr>
+         </table>
+      </div>
+   </div>
+   
+   <!-- ======================================================================================================== -->
+   <a id="juneau-rest-server.RestContext"></a>
+   <h3 class='topic' onclick='toggle(this)'>7.5 - RestContext</h3>
+   <div class='topic'>
+      <p>
+         The <a href="org/apache/juneau/rest/RestContext.html" title="class in org.apache.juneau.rest"><code>RestContext</code></a> object is the workhorse class for all of the configuration
+         of a single REST resource class.
+         <br>It's by-far the most important class in the REST API.
+      </p>
+      <p>
+         Every class annotated with <l>@RestResource</l> ends up with an instance of this object.
+         <br>The object itself is read-only and unchangeable.
+         <br>It is populated through the following:
+      </p>
+      <ul>
+         <li class='ja'><a href="org/apache/juneau/rest/annotation/RestResource.html" title="annotation in org.apache.juneau.rest.annotation"><code>RestResource</code></a> - Settings copied from the annotation during servlet initialization.
+         <li class='jm'><a href="org/apache/juneau/rest/RestContextBuilder.html" title="class in org.apache.juneau.rest"><code>RestContextBuilder</code></a> - Builder used during servlet initialization.
+      </ul>
+      <p>
+         The annotation should be self-explanatory at this point.
+         <br>The builder allows you to perform all of the same configuration as the annotation programmatically.
+      </p>
+      <p>
+         The <a href="org/apache/juneau/rest/RestContextBuilder.html" title="class in org.apache.juneau.rest"><code>RestContextBuilder</code></a> class extends <a href="org/apache/juneau/BeanContextBuilder.html" title="class in org.apache.juneau"><code>BeanContextBuilder</code></a>
+         allowing you to programmatically set any properties defined on that builder class.
+         <br>It also implements <code>ServletConfig</code>
+      </p>
+      <p>
+         To access this object, simply pass it in as a constructor argument or in an INIT hook:
+      </p>
+      <p class='bcode'>
    <jc>// Option #1 - Pass in through constructor.</jc>
    <jk>public</jk> MyResource(RestContextBuilder builder) {
          builder
@@ -5814,134 +5758,134 @@
             .pojoSwaps(CalendarSwap.<jsf>RFC2822DTZ</jsf>.<jk>class</jk>)
             .set(<jsf>PARSER_debug</jsf>, <jk>true</jk>);
    }
-         </p>
-         <p>
-            Warning:  This class is huge.
-            <br>Through it, you can configure bean/serializer/parser settings, define config files, children, 
-               resource finders, info providers, etc...
-         </p>
-      </div>
-      
+      </p>
+      <p>
+         Warning:  This class is huge.
+         <br>Through it, you can configure bean/serializer/parser settings, define config files, children, 
+            resource finders, info providers, etc...
+      </p>
+   </div>
+   
+   <!-- ======================================================================================================== -->
+   <a id="juneau-rest-server.RestMethod"></a>
+   <h3 class='topic' onclick='toggle(this)'>7.6 - @RestMethod</h3>
+   <div class='topic'>
+      <p>
+         REST Java methods are identified on REST servlets using the 
+         <a href="org/apache/juneau/rest/annotation/RestMethod.html" title="annotation in org.apache.juneau.rest.annotation"><code>@RestMethod</code></a> annotation. 
+         <br>The annotation allows the framework to identify the available REST methods through reflection.
+      </p>
+      <h5 class='figure'>Example:</h5>
+      <p class='bcode'>
+   <ja>@RestMethod</ja>(name=<jsf>GET</jsf>, path=<js>"/"</js>)
+   <jk>public</jk> String sayHello() {
+      <jk>return</jk> <js>"Hello world!"</js>;
+   }
+      </p>
+   
+      <p>
+         There are no restrictions on the name of the Java method.  
+      </p>
+   
       <!-- ======================================================================================================== -->
-      <a id="juneau-rest-server.RestMethod"></a>
-      <h4 class='topic' onclick='toggle(this)'>3.1.6 - @RestMethod</h4>
+      <a id="juneau-rest-server.MethodParameters"></a>
+      <h4 class='topic' onclick='toggle(this)'>7.6.1 - Java Method Parameters</h4>
       <div class='topic'>
          <p>
-            REST Java methods are identified on REST servlets using the 
-            <a href="org/apache/juneau/rest/annotation/RestMethod.html" title="annotation in org.apache.juneau.rest.annotation"><code>@RestMethod</code></a> annotation. 
-            <br>The annotation allows the framework to identify the available REST methods through reflection.
+            Java methods can contain any of the following parameters in any order:
          </p>
+         <ul class='spaced-list'>
+            <li>
+               <b>Parameters based on class types:</b>
+               <ul>
+                  <li><b>Request/response objects:</b>
+                     <ul>
+                        <li class='jc'><a href="org/apache/juneau/rest/RestRequest.html" title="class in org.apache.juneau.rest"><code>RestRequest</code></a> - The request object.
+                        <li class='jc'><code>HttpServletRequest</code> - The superclass of <code>RestRequest</code>.
+                        <li class='jc'><a href="org/apache/juneau/rest/RestResponse.html" title="class in org.apache.juneau.rest"><code>RestResponse</code></a> - The response object.
+                        <li class='jc'><code>HttpServletResponse</code> - The superclass of <code>RestResponse</code>.
+                     </ul>
+                  <li><b>Parsed request header values:</b>
+                     <ul>
+                        <li class='jc'><a href="org/apache/juneau/http/Accept.html" title="class in org.apache.juneau.http"><code>Accept</code></a>
+                        <li class='jc'><a href="org/apache/juneau/http/AcceptCharset.html" title="class in org.apache.juneau.http"><code>AcceptCharset</code></a>
+                        <li class='jc'><a href="org/apache/juneau/http/AcceptEncoding.html" title="class in org.apache.juneau.http"><code>AcceptEncoding</code></a>
+                        <li class='jc'><a href="org/apache/juneau/http/AcceptLanguage.html" title="class in org.apache.juneau.http"><code>AcceptLanguage</code></a>
+                        <li class='jc'><a href="org/apache/juneau/http/Authorization.html" title="class in org.apache.juneau.http"><code>Authorization</code></a>
+                        <li class='jc'><a href="org/apache/juneau/http/CacheControl.html" title="class in org.apache.juneau.http"><code>CacheControl</code></a>
+                        <li class='jc'><a href="org/apache/juneau/http/Connection.html" title="class in org.apache.juneau.http"><code>Connection</code></a>
+                        <li class='jc'><a href="org/apache/juneau/http/ContentLength.html" title="class in org.apache.juneau.http"><code>ContentLength</code></a>
+                        <li class='jc'><a href="org/apache/juneau/http/ContentType.html" title="class in org.apache.juneau.http"><code>ContentType</code></a>
+                        <li class='jc'><a href="org/apache/juneau/http/Date.html" title="class in org.apache.juneau.http"><code>Date</code></a>
+                        <li class='jc'><a href="org/apache/juneau/http/Expect.html" title="class in org.apache.juneau.http"><code>Expect</code></a>
+                        <li class='jc'><a href="org/apache/juneau/http/From.html" title="class in org.apache.juneau.http"><code>From</code></a>
+                        <li class='jc'><a href="org/apache/juneau/http/Host.html" title="class in org.apache.juneau.http"><code>Host</code></a>
+                        <li class='jc'><a href="org/apache/juneau/http/IfMatch.html" title="class in org.apache.juneau.http"><code>IfMatch</code></a>
+                        <li class='jc'><a href="org/apache/juneau/http/IfModifiedSince.html" title="class in org.apache.juneau.http"><code>IfModifiedSince</code></a>
+                        <li class='jc'><a href="org/apache/juneau/http/IfNoneMatch.html" title="class in org.apache.juneau.http"><code>IfNoneMatch</code></a>
+                        <li class='jc'><a href="org/apache/juneau/http/IfRange.html" title="class in org.apache.juneau.http"><code>IfRange</code></a>
+                        <li class='jc'><a href="org/apache/juneau/http/IfUnmodifiedSince.html" title="class in org.apache.juneau.http"><code>IfUnmodifiedSince</code></a>
+                        <li class='jc'><a href="org/apache/juneau/http/MaxForwards.html" title="class in org.apache.juneau.http"><code>MaxForwards</code></a>
+                        <li class='jc'><a href="org/apache/juneau/http/Pragma.html" title="class in org.apache.juneau.http"><code>Pragma</code></a>
+                        <li class='jc'><a href="org/apache/juneau/http/ProxyAuthorization.html" title="class in org.apache.juneau.http"><code>ProxyAuthorization</code></a>
+                        <li class='jc'><a href="org/apache/juneau/http/Range.html" title="class in org.apache.juneau.http"><code>Range</code></a>
+                        <li class='jc'><a href="org/apache/juneau/http/Referer.html" title="class in org.apache.juneau.http"><code>Referer</code></a>
+                        <li class='jc'><a href="org/apache/juneau/http/TE.html" title="class in org.apache.juneau.http"><code>TE</code></a>
+                        <li class='jc'><a href="org/apache/juneau/http/UserAgent.html" title="class in org.apache.juneau.http"><code>UserAgent</code></a>
+                        <li class='jc'><a href="org/apache/juneau/http/Upgrade.html" title="class in org.apache.juneau.http"><code>Upgrade</code></a>
+                        <li class='jc'><a href="org/apache/juneau/http/Via.html" title="class in org.apache.juneau.http"><code>Via</code></a>
+                        <li class='jc'><a href="org/apache/juneau/http/Warning.html" title="class in org.apache.juneau.http"><code>Warning</code></a>
+                        <li class='jc'><a href="http://docs.oracle.com/javase/7/docs/api/java/util/TimeZone.html?is-external=true" title="class or interface in java.util"><code>TimeZone</code></a>
+                     </ul>
+                  <li><b>Direct streams on request/response:</b>
+                     <ul>
+                        <li class='jc'><a href="http://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io"><code>InputStream</code></a>
+                        <li class='jc'><code>ServletInputStream</code>
+                        <li class='jc'><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io"><code>Reader</code></a>
+                        <li class='jc'><a href="http://docs.oracle.com/javase/7/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io"><code>OutputStream</code></a>
+                        <li class='jc'><code>ServletOutputStream</code>
+                        <li class='jc'><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io"><code>Writer</code></a>
+                     </ul>
+                  <li><b>Localization:</b>
+                     <ul>
+                        <li class='jc'><a href="http://docs.oracle.com/javase/7/docs/api/java/util/ResourceBundle.html?is-external=true" title="class or interface in java.util"><code>ResourceBundle</code></a> - Client-localized resource bundle.
+                        <li class='jc'><a href="org/apache/juneau/utils/MessageBundle.html" title="class in org.apache.juneau.utils"><code>MessageBundle</code></a> - A resource bundle with additional features.
+                        <li class='jc'><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util"><code>Locale</code></a> - Client locale.
+                     </ul>
+                  <li><b>Request APIs:</b>
+                     <ul>
+                        <li class='jc'><a href="org/apache/juneau/rest/RequestHeaders.html" title="class in org.apache.juneau.rest"><code>RequestHeaders</code></a> - API for accessing request headers.
+                        <li class='jc'><a href="org/apache/juneau/rest/RequestQuery.html" title="class in org.apache.juneau.rest"><code>RequestQuery</code></a> - API for accessing request query parameters.
+                        <li class='jc'><a href="org/apache/juneau/rest/RequestFormData.html" title="class in org.apache.juneau.rest"><code>RequestFormData</code></a> - API for accessing request form data.
+                        <li class='jc'><a href="org/apache/juneau/rest/RequestPathMatch.html" title="class in org.apache.juneau.rest"><code>RequestPathMatch</code></a> - API for accessing path variables.
+                        <li class='jc'><a href="org/apache/juneau/rest/RequestBody.html" title="class in org.apache.juneau.rest"><code>RequestBody</code></a> - API for accessing request body.
+                     </ul>
+                  <li><b>Other:</b>
+                     <ul>
+                        <li class='jc'><a href="org/apache/juneau/http/HttpMethod.html" title="enum in org.apache.juneau.http"><code>HttpMethod</code></a> - The method name matched (when using <code><ja>@RestMethod</ja>(name=<js>"*"</js>)</code>)
+                        <li class='jc'><a href="org/apache/juneau/rest/RestLogger.html" title="interface in org.apache.juneau.rest"><code>RestLogger</code></a> - Logger with additional features.
+                        <li class='jc'><a href="org/apache/juneau/rest/RestContext.html" title="class in org.apache.juneau.rest"><code>RestContext</code></a> - The resource read-only context.
+                        <li class='jc'><a href="org/apache/juneau/parser/Parser.html" title="class in org.apache.juneau.parser"><code>Parser</code></a> - The parser matching the request content type.
+                        <li class='jc'><a href="org/apache/juneau/dto/swagger/Swagger.html" title="class in org.apache.juneau.dto.swagger"><code>Swagger</code></a> - The auto-generated Swagger doc.
+                        <li class='jc'><a href="org/apache/juneau/ini/ConfigFile.html" title="class in org.apache.juneau.ini"><code>ConfigFile</code></a> - The external config file for the resource.
+                        <li class='jc'><a href="org/apache/juneau/rest/RequestProperties.html" title="class in org.apache.juneau.rest"><code>RequestProperties</code></a> - API for modifying request-time configuration properties.
+                     </ul>
+               </ul>
+            <li><b>Annotated parameters:</b>
+               <ul>
+                  <li class='ja'><a href="org/apache/juneau/rest/annotation/Path.html" title="annotation in org.apache.juneau.rest.annotation"><code>Path</code></a> - Variables in matched URL path patterns.
+                  <li class='ja'><a href="org/apache/juneau/rest/annotation/FormData.html" title="annotation in org.apache.juneau.rest.annotation"><code>FormData</code></a> - Multipart form post parameter values.
+                  <li class='ja'><a href="org/apache/juneau/rest/annotation/HasFormData.html" title="annotation in org.apache.juneau.rest.annotation"><code>HasFormData</code></a> - Denotes whether the form data parameter exists.
+                  <li class='ja'><a href="org/apache/juneau/rest/annotation/Query.html" title="annotation in org.apache.juneau.rest.annotation"><code>Query</code></a> - Query parameters.  Using this prevents the HTTP body from being processed as a URL-Encoded form post.
+                  <li class='ja'><a href="org/apache/juneau/rest/annotation/HasQuery.html" title="annotation in org.apache.juneau.rest.annotation"><code>HasQuery</code></a> - Denotes whether the query parameter exists.
+                  <li class='ja'><a href="org/apache/juneau/rest/annotation/Header.html" title="annotation in org.apache.juneau.rest.annotation"><code>Header</code></a> - A header value.
+                  <li class='ja'><a href="org/apache/juneau/rest/annotation/Method.html" title="annotation in org.apache.juneau.rest.annotation"><code>Method</code></a> - The HTTP method name. 
+                  <li class='ja'><a href="org/apache/juneau/rest/annotation/PathRemainder.html" title="annotation in org.apache.juneau.rest.annotation"><code>PathRemainder</code></a> - The remainder value after path pattern match.
+                  <li class='ja'><a href="org/apache/juneau/rest/annotation/Body.html" title="annotation in org.apache.juneau.rest.annotation"><code>Body</code></a> - The HTTP content parsed as a POJO.
+               </ul>
+         </ul>
          <h5 class='figure'>Example:</h5>
          <p class='bcode'>
-   <ja>@RestMethod</ja>(name=<jsf>GET</jsf>, path=<js>"/"</js>)
-   <jk>public</jk> String sayHello() {
-      <jk>return</jk> <js>"Hello world!"</js>;
-   }
-         </p>
-      
-         <p>
-            There are no restrictions on the name of the Java method.  
-         </p>
-      
-         <!-- ======================================================================================================== -->
-         <a id="juneau-rest-server.MethodParameters"></a>
-         <h4 class='topic' onclick='toggle(this)'>3.1.6.1 - Java Method Parameters</h4>
-         <div class='topic'>
-            <p>
-               Java methods can contain any of the following parameters in any order:
-            </p>
-            <ul class='spaced-list'>
-               <li>
-                  <b>Parameters based on class types:</b>
-                  <ul>
-                     <li><b>Request/response objects:</b>
-                        <ul>
-                           <li class='jc'><a href="org/apache/juneau/rest/RestRequest.html" title="class in org.apache.juneau.rest"><code>RestRequest</code></a> - The request object.
-                           <li class='jc'><code>HttpServletRequest</code> - The superclass of <code>RestRequest</code>.
-                           <li class='jc'><a href="org/apache/juneau/rest/RestResponse.html" title="class in org.apache.juneau.rest"><code>RestResponse</code></a> - The response object.
-                           <li class='jc'><code>HttpServletResponse</code> - The superclass of <code>RestResponse</code>.
-                        </ul>
-                     <li><b>Parsed request header values:</b>
-                        <ul>
-                           <li class='jc'><a href="org/apache/juneau/http/Accept.html" title="class in org.apache.juneau.http"><code>Accept</code></a>
-                           <li class='jc'><a href="org/apache/juneau/http/AcceptCharset.html" title="class in org.apache.juneau.http"><code>AcceptCharset</code></a>
-                           <li class='jc'><a href="org/apache/juneau/http/AcceptEncoding.html" title="class in org.apache.juneau.http"><code>AcceptEncoding</code></a>
-                           <li class='jc'><a href="org/apache/juneau/http/AcceptLanguage.html" title="class in org.apache.juneau.http"><code>AcceptLanguage</code></a>
-                           <li class='jc'><a href="org/apache/juneau/http/Authorization.html" title="class in org.apache.juneau.http"><code>Authorization</code></a>
-                           <li class='jc'><a href="org/apache/juneau/http/CacheControl.html" title="class in org.apache.juneau.http"><code>CacheControl</code></a>
-                           <li class='jc'><a href="org/apache/juneau/http/Connection.html" title="class in org.apache.juneau.http"><code>Connection</code></a>
-                           <li class='jc'><a href="org/apache/juneau/http/ContentLength.html" title="class in org.apache.juneau.http"><code>ContentLength</code></a>
-                           <li class='jc'><a href="org/apache/juneau/http/ContentType.html" title="class in org.apache.juneau.http"><code>ContentType</code></a>
-                           <li class='jc'><a href="org/apache/juneau/http/Date.html" title="class in org.apache.juneau.http"><code>Date</code></a>
-                           <li class='jc'><a href="org/apache/juneau/http/Expect.html" title="class in org.apache.juneau.http"><code>Expect</code></a>
-                           <li class='jc'><a href="org/apache/juneau/http/From.html" title="class in org.apache.juneau.http"><code>From</code></a>
-                           <li class='jc'><a href="org/apache/juneau/http/Host.html" title="class in org.apache.juneau.http"><code>Host</code></a>
-                           <li class='jc'><a href="org/apache/juneau/http/IfMatch.html" title="class in org.apache.juneau.http"><code>IfMatch</code></a>
-                           <li class='jc'><a href="org/apache/juneau/http/IfModifiedSince.html" title="class in org.apache.juneau.http"><code>IfModifiedSince</code></a>
-                           <li class='jc'><a href="org/apache/juneau/http/IfNoneMatch.html" title="class in org.apache.juneau.http"><code>IfNoneMatch</code></a>
-                           <li class='jc'><a href="org/apache/juneau/http/IfRange.html" title="class in org.apache.juneau.http"><code>IfRange</code></a>
-                           <li class='jc'><a href="org/apache/juneau/http/IfUnmodifiedSince.html" title="class in org.apache.juneau.http"><code>IfUnmodifiedSince</code></a>
-                           <li class='jc'><a href="org/apache/juneau/http/MaxForwards.html" title="class in org.apache.juneau.http"><code>MaxForwards</code></a>
-                           <li class='jc'><a href="org/apache/juneau/http/Pragma.html" title="class in org.apache.juneau.http"><code>Pragma</code></a>
-                           <li class='jc'><a href="org/apache/juneau/http/ProxyAuthorization.html" title="class in org.apache.juneau.http"><code>ProxyAuthorization</code></a>
-                           <li class='jc'><a href="org/apache/juneau/http/Range.html" title="class in org.apache.juneau.http"><code>Range</code></a>
-                           <li class='jc'><a href="org/apache/juneau/http/Referer.html" title="class in org.apache.juneau.http"><code>Referer</code></a>
-                           <li class='jc'><a href="org/apache/juneau/http/TE.html" title="class in org.apache.juneau.http"><code>TE</code></a>
-                           <li class='jc'><a href="org/apache/juneau/http/UserAgent.html" title="class in org.apache.juneau.http"><code>UserAgent</code></a>
-                           <li class='jc'><a href="org/apache/juneau/http/Upgrade.html" title="class in org.apache.juneau.http"><code>Upgrade</code></a>
-                           <li class='jc'><a href="org/apache/juneau/http/Via.html" title="class in org.apache.juneau.http"><code>Via</code></a>
-                           <li class='jc'><a href="org/apache/juneau/http/Warning.html" title="class in org.apache.juneau.http"><code>Warning</code></a>
-                           <li class='jc'><a href="http://docs.oracle.com/javase/7/docs/api/java/util/TimeZone.html?is-external=true" title="class or interface in java.util"><code>TimeZone</code></a>
-                        </ul>
-                     <li><b>Direct streams on request/response:</b>
-                        <ul>
-                           <li class='jc'><a href="http://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io"><code>InputStream</code></a>
-                           <li class='jc'><code>ServletInputStream</code>
-                           <li class='jc'><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io"><code>Reader</code></a>
-                           <li class='jc'><a href="http://docs.oracle.com/javase/7/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io"><code>OutputStream</code></a>
-                           <li class='jc'><code>ServletOutputStream</code>
-                           <li class='jc'><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io"><code>Writer</code></a>
-                        </ul>
-                     <li><b>Localization:</b>
-                        <ul>
-                           <li class='jc'><a href="http://docs.oracle.com/javase/7/docs/api/java/util/ResourceBundle.html?is-external=true" title="class or interface in java.util"><code>ResourceBundle</code></a> - Client-localized resource bundle.
-                           <li class='jc'><a href="org/apache/juneau/utils/MessageBundle.html" title="class in org.apache.juneau.utils"><code>MessageBundle</code></a> - A resource bundle with additional features.
-                           <li class='jc'><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util"><code>Locale</code></a> - Client locale.
-                        </ul>
-                     <li><b>Request APIs:</b>
-                        <ul>
-                           <li class='jc'><a href="org/apache/juneau/rest/RequestHeaders.html" title="class in org.apache.juneau.rest"><code>RequestHeaders</code></a> - API for accessing request headers.
-                           <li class='jc'><a href="org/apache/juneau/rest/RequestQuery.html" title="class in org.apache.juneau.rest"><code>RequestQuery</code></a> - API for accessing request query parameters.
-                           <li class='jc'><a href="org/apache/juneau/rest/RequestFormData.html" title="class in org.apache.juneau.rest"><code>RequestFormData</code></a> - API for accessing request form data.
-                           <li class='jc'><a href="org/apache/juneau/rest/RequestPathMatch.html" title="class in org.apache.juneau.rest"><code>RequestPathMatch</code></a> - API for accessing path variables.
-                           <li class='jc'><a href="org/apache/juneau/rest/RequestBody.html" title="class in org.apache.juneau.rest"><code>RequestBody</code></a> - API for accessing request body.
-                        </ul>
-                     <li><b>Other:</b>
-                        <ul>
-                           <li class='jc'><a href="org/apache/juneau/http/HttpMethod.html" title="enum in org.apache.juneau.http"><code>HttpMethod</code></a> - The method name matched (when using <code><ja>@RestMethod</ja>(name=<js>"*"</js>)</code>)
-                           <li class='jc'><a href="org/apache/juneau/rest/RestLogger.html" title="interface in org.apache.juneau.rest"><code>RestLogger</code></a> - Logger with additional features.
-                           <li class='jc'><a href="org/apache/juneau/rest/RestContext.html" title="class in org.apache.juneau.rest"><code>RestContext</code></a> - The resource read-only context.
-                           <li class='jc'><a href="org/apache/juneau/parser/Parser.html" title="class in org.apache.juneau.parser"><code>Parser</code></a> - The parser matching the request content type.
-                           <li class='jc'><a href="org/apache/juneau/dto/swagger/Swagger.html" title="class in org.apache.juneau.dto.swagger"><code>Swagger</code></a> - The auto-generated Swagger doc.
-                           <li class='jc'><a href="org/apache/juneau/ini/ConfigFile.html" title="class in org.apache.juneau.ini"><code>ConfigFile</code></a> - The external config file for the resource.
-                           <li class='jc'><a href="org/apache/juneau/rest/RequestProperties.html" title="class in org.apache.juneau.rest"><code>RequestProperties</code></a> - API for modifying request-time configuration properties.
-                        </ul>
-                  </ul>
-               <li><b>Annotated parameters:</b>
-                  <ul>
-                     <li class='ja'><a href="org/apache/juneau/rest/annotation/Path.html" title="annotation in org.apache.juneau.rest.annotation"><code>Path</code></a> - Variables in matched URL path patterns.
-                     <li class='ja'><a href="org/apache/juneau/rest/annotation/FormData.html" title="annotation in org.apache.juneau.rest.annotation"><code>FormData</code></a> - Multipart form post parameter values.
-                     <li class='ja'><a href="org/apache/juneau/rest/annotation/HasFormData.html" title="annotation in org.apache.juneau.rest.annotation"><code>HasFormData</code></a> - Denotes whether the form data parameter exists.
-                     <li class='ja'><a href="org/apache/juneau/rest/annotation/Query.html" title="annotation in org.apache.juneau.rest.annotation"><code>Query</code></a> - Query parameters.  Using this prevents the HTTP body from being processed as a URL-Encoded form post.
-                     <li class='ja'><a href="org/apache/juneau/rest/annotation/HasQuery.html" title="annotation in org.apache.juneau.rest.annotation"><code>HasQuery</code></a> - Denotes whether the query parameter exists.
-                     <li class='ja'><a href="org/apache/juneau/rest/annotation/Header.html" title="annotation in org.apache.juneau.rest.annotation"><code>Header</code></a> - A header value.
-                     <li class='ja'><a href="org/apache/juneau/rest/annotation/Method.html" title="annotation in org.apache.juneau.rest.annotation"><code>Method</code></a> - The HTTP method name. 
-                     <li class='ja'><a href="org/apache/juneau/rest/annotation/PathRemainder.html" title="annotation in org.apache.juneau.rest.annotation"><code>PathRemainder</code></a> - The remainder value after path pattern match.
-                     <li class='ja'><a href="org/apache/juneau/rest/annotation/Body.html" title="annotation in org.apache.juneau.rest.annotation"><code>Body</code></a> - The HTTP content parsed as a POJO.
-                  </ul>
-            </ul>
-            <h5 class='figure'>Example:</h5>
-            <p class='bcode'>
    <ja>@RestMethod</ja>(name=<jsf>GET</jsf>, path=<js>"/example1/{a1}/{a2}/{a3}/*"</js>)
    <jk>public</jk> String doGetExample1(
       RestRequest req,
@@ -5963,132 +5907,132 @@
    ) {
       <jc>// Do something with all of those</jc>
    }
-            </p>
-            <h5 class='section'>Notes:</h5>
-            <ul>
-               <li>All annotations have programmatic equivalents on the <a href="org/apache/juneau/rest/RestRequest.html" title="class in org.apache.juneau.rest"><code>RestRequest</code></a> class.
-            </ul>
-            <h5 class='section'>See Also:</h5>
-            <ul>
-               <li class='jf'><a href="org/apache/juneau/rest/RestContext.html#REST_paramResolvers"><code>RestContext.REST_paramResolvers</code></a> - For configuring custom parameter types.
-            </ul>
-         </div>
+         </p>
+         <h5 class='section'>Notes:</h5>
+         <ul>
+            <li>All annotations have programmatic equivalents on the <a href="org/apache/juneau/rest/RestRequest.html" title="class in org.apache.juneau.rest"><code>RestRequest</code></a> class.
+         </ul>
+         <h5 class='section'>See Also:</h5>
+         <ul>
+            <li class='jf'><a href="org/apache/juneau/rest/RestContext.html#REST_paramResolvers"><code>RestContext.REST_paramResolvers</code></a> - For configuring custom parameter types.
+         </ul>
+      </div>
 
-         <!-- ======================================================================================================== -->
-         <a id="juneau-rest-server.RestRequest"></a>
-         <h4 class='topic' onclick='toggle(this)'>3.1.6.2 - RestRequest</h4>
-         <div class='topic'>
-            <p>
-               The <a href="org/apache/juneau/rest/RestRequest.html" title="class in org.apache.juneau.rest"><code>RestRequest</code></a> object is an extension of the <l>HttpServletRequest</l> class
-               with various built-in convenience methods for use in building REST interfaces.
-               <br>It can be accessed by passing it as a parameter on your REST Java method:
-            </p>
-            <p class='bcode'>
+      <!-- ======================================================================================================== -->
+      <a id="juneau-rest-server.RestRequest"></a>
+      <h4 class='topic' onclick='toggle(this)'>7.6.2 - RestRequest</h4>
+      <div class='topic'>
+         <p>
+            The <a href="org/apache/juneau/rest/RestRequest.html" title="class in org.apache.juneau.rest"><code>RestRequest</code></a> object is an extension of the <l>HttpServletRequest</l> class
+            with various built-in convenience methods for use in building REST interfaces.
+            <br>It can be accessed by passing it as a parameter on your REST Java method:
+         </p>
+         <p class='bcode'>
    <ja>@RestMethod</ja>(...)
    <jk>public</jk> Object myMethod(RestRequest req) {...}         
-            </p>
-            <p>
-               There are many useful methods on this object, but the main ones are shown below:
-            </p>
-            <ul class='doctree'>
-               <li class='jc'><code><a href="org/apache/juneau/rest/RestRequest.html" title="class in org.apache.juneau.rest"><code>RestRequest</code></a> <jk>extends</jk> HttpServletRequest</code>
-               <ul>
-                  <li class='jm'><a href="org/apache/juneau/rest/RestRequest.html#getHeaders--"><code>getHeaders()</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RestRequest.html#getQuery--"><code>getQuery()</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RestRequest.html#getFormData--"><code>getFormData()</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RestRequest.html#getBody--"><code>getBody()</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RestRequest.html#getPathMatch--"><code>getPathMatch()</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RestRequest.html#getLogger--"><code>getLogger()</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RestRequest.html#getInfoProvider--"><code>getInfoProvider()</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RestRequest.html#getSwagger--"><code>getSwagger()</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RestRequest.html#getConfigFile--"><code>getConfigFile()</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RestRequest.html#getVarResolverSession--"><code>getVarResolverSession()</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RestRequest.html#getMessageBundle--"><code>getMessageBundle()</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RestRequest.html#getProperties--"><code>getProperties()</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RestRequest.html#getClasspathReaderResource-java.lang.String-boolean-org.apache.juneau.http.MediaType-"><code>getClasspathReaderResource(String,boolean,MediaType)</code></a>
-               </ul>
+         </p>
+         <p>
+            There are many useful methods on this object, but the main ones are shown below:
+         </p>
+         <ul class='doctree'>
+            <li class='jc'><code><a href="org/apache/juneau/rest/RestRequest.html" title="class in org.apache.juneau.rest"><code>RestRequest</code></a> <jk>extends</jk> HttpServletRequest</code>
+            <ul>
+               <li class='jm'><a href="org/apache/juneau/rest/RestRequest.html#getHeaders--"><code>getHeaders()</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RestRequest.html#getQuery--"><code>getQuery()</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RestRequest.html#getFormData--"><code>getFormData()</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RestRequest.html#getBody--"><code>getBody()</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RestRequest.html#getPathMatch--"><code>getPathMatch()</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RestRequest.html#getLogger--"><code>getLogger()</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RestRequest.html#getInfoProvider--"><code>getInfoProvider()</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RestRequest.html#getSwagger--"><code>getSwagger()</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RestRequest.html#getConfigFile--"><code>getConfigFile()</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RestRequest.html#getVarResolverSession--"><code>getVarResolverSession()</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RestRequest.html#getMessageBundle--"><code>getMessageBundle()</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RestRequest.html#getProperties--"><code>getProperties()</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RestRequest.html#getClasspathReaderResource-java.lang.String-boolean-org.apache.juneau.http.MediaType-"><code>getClasspathReaderResource(String,boolean,MediaType)</code></a>
             </ul>
-         </div>
-         
-         <!-- ======================================================================================================== -->
-         <a id="juneau-rest-server.RestResponse"></a>
-         <h4 class='topic' onclick='toggle(this)'>3.1.6.3 - RestResponse</h4>
-         <div class='topic'>
-            <p>
-               The <a href="org/apache/juneau/rest/RestResponse.html" title="class in org.apache.juneau.rest"><code>RestResponse</code></a> object is an extension of the <l>HttpServletResponse</l> class
-               with various built-in convenience methods for use in building REST interfaces.
-               <br>It can be accessed by passing it as a parameter on your REST Java method:
-            </p>
-            <p class='bcode'>
+         </ul>
+      </div>
+      
+      <!-- ======================================================================================================== -->
+      <a id="juneau-rest-server.RestResponse"></a>
+      <h4 class='topic' onclick='toggle(this)'>7.6.3 - RestResponse</h4>
+      <div class='topic'>
+         <p>
+            The <a href="org/apache/juneau/rest/RestResponse.html" title="class in org.apache.juneau.rest"><code>RestResponse</code></a> object is an extension of the <l>HttpServletResponse</l> class
+            with various built-in convenience methods for use in building REST interfaces.
+            <br>It can be accessed by passing it as a parameter on your REST Java method:
+         </p>
+         <p class='bcode'>
    <ja>@RestMethod</ja>(...)
    <jk>public</jk> Object myMethod(RestResponse req) {...}        
-            </p>
-            <p>
-               The important methods on this class are shown below:
-            </p>
-            <ul class='doctree'>
-               <li class='jc'><code><a href="org/apache/juneau/rest/RestResponse.html" title="class in org.apache.juneau.rest"><code>RestResponse</code></a> <jk>extends</jk> HttpServletResponse</code>
-               <ul>
-                  <li class='jm'><a href="org/apache/juneau/rest/RestResponse.html#setOutput-java.lang.Object-"><code>setOutput(Object)</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RestResponse.html#getProperties--"><code>getProperties()</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RestResponse.html#getHtmlDocBuilder--"><code>getHtmlDocBuilder()</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RestResponse.html#getDirectWriter-java.lang.String-"><code>getDirectWriter(String)</code></a>
-               </ul>
+         </p>
+         <p>
+            The important methods on this class are shown below:
+         </p>
+         <ul class='doctree'>
+            <li class='jc'><code><a href="org/apache/juneau/rest/RestResponse.html" title="class in org.apache.juneau.rest"><code>RestResponse</code></a> <jk>extends</jk> HttpServletResponse</code>
+            <ul>
+               <li class='jm'><a href="org/apache/juneau/rest/RestResponse.html#setOutput-java.lang.Object-"><code>setOutput(Object)</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RestResponse.html#getProperties--"><code>getProperties()</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RestResponse.html#getHtmlDocBuilder--"><code>getHtmlDocBuilder()</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RestResponse.html#getDirectWriter-java.lang.String-"><code>getDirectWriter(String)</code></a>
             </ul>
-         </div>
+         </ul>
+      </div>
 
-         <!-- ======================================================================================================== -->
-         <a id="juneau-rest-server.RequestBody"></a>
-         <h4 class='topic' onclick='toggle(this)'>3.1.6.4 - RequestBody</h4>
-         <div class='topic'>
-            <p>
-               The <a href="org/apache/juneau/rest/RequestBody.html" title="class in org.apache.juneau.rest"><code>RequestBody</code></a> object is the API for accessing the body of an HTTP request.
-               <br>It can be accessed by passing it as a parameter on your REST Java method:
-            </p>
-            <p class='bcode'>
+      <!-- ======================================================================================================== -->
+      <a id="juneau-rest-server.RequestBody"></a>
+      <h4 class='topic' onclick='toggle(this)'>7.6.4 - RequestBody</h4>
+      <div class='topic'>
+         <p>
+            The <a href="org/apache/juneau/rest/RequestBody.html" title="class in org.apache.juneau.rest"><code>RequestBody</code></a> object is the API for accessing the body of an HTTP request.
+            <br>It can be accessed by passing it as a parameter on your REST Java method:
+         </p>
+         <p class='bcode'>
    <ja>@RestMethod</ja>(...)
    <jk>public</jk> Object myMethod(RequestBody body) {...}        
-            </p>
-            <h5 class='figure'>Example:</h5>
-            <p class='bcode'>
+         </p>
+         <h5 class='figure'>Example:</h5>
+         <p class='bcode'>
    <ja>@RestMethod</ja>(...)
    <jk>public void</jk> doPost(RequestBody body) {
       <jc>// Convert body to a linked list of Person objects.</jc>
       List&lt;Person&gt; l = body.asType(LinkedList.<jk>class</jk>, Person.<jk>class</jk>);
       ...
    }
-            </p>
-            <p>
-               The important methods on this class are:
-            </p>
-            <ul class='doctree'>
-               <li class='jc'><a href="org/apache/juneau/rest/RequestBody.html" title="class in org.apache.juneau.rest"><code>RequestBody</code></a> 
-               <ul>
-                  <li class='jm'><a href="org/apache/juneau/rest/RequestBody.html#getReader--"><code>getReader()</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RequestBody.html#getInputStream--"><code>getInputStream()</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RequestBody.html#asType-java.lang.Class-"><code>asType(Class)</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RequestBody.html#asType-java.lang.reflect.Type-java.lang.reflect.Type...-"><code>asType(Type,Type...)</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RequestBody.html#asString--"><code>asString()</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RequestBody.html#asHex--"><code>asHex()</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RequestBody.html#asSpacedHex--"><code>asSpacedHex()</code></a>
-               </ul>
+         </p>
+         <p>
+            The important methods on this class are:
+         </p>
+         <ul class='doctree'>
+            <li class='jc'><a href="org/apache/juneau/rest/RequestBody.html" title="class in org.apache.juneau.rest"><code>RequestBody</code></a> 
+            <ul>
+               <li class='jm'><a href="org/apache/juneau/rest/RequestBody.html#getReader--"><code>getReader()</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RequestBody.html#getInputStream--"><code>getInputStream()</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RequestBody.html#asType-java.lang.Class-"><code>asType(Class)</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RequestBody.html#asType-java.lang.reflect.Type-java.lang.reflect.Type...-"><code>asType(Type,Type...)</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RequestBody.html#asString--"><code>asString()</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RequestBody.html#asHex--"><code>asHex()</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RequestBody.html#asSpacedHex--"><code>asSpacedHex()</code></a>
             </ul>
-         </div>
+         </ul>
+      </div>
 
-         <!-- ======================================================================================================== -->
-         <a id="juneau-rest-server.RequestHeaders"></a>
-         <h4 class='topic' onclick='toggle(this)'>3.1.6.5 - RequestHeaders</h4>
-         <div class='topic'>
-            <p>
-               The <a href="org/apache/juneau/rest/RequestHeaders.html" title="class in org.apache.juneau.rest"><code>RequestHeaders</code></a> object is the API for accessing the headers of an HTTP request.
-               <br>It can be accessed by passing it as a parameter on your REST Java method:
-            </p>
-            <p class='bcode'>
+      <!-- ======================================================================================================== -->
+      <a id="juneau-rest-server.RequestHeaders"></a>
+      <h4 class='topic' onclick='toggle(this)'>7.6.5 - RequestHeaders</h4>
+      <div class='topic'>
+         <p>
+            The <a href="org/apache/juneau/rest/RequestHeaders.html" title="class in org.apache.juneau.rest"><code>RequestHeaders</code></a> object is the API for accessing the headers of an HTTP request.
+            <br>It can be accessed by passing it as a parameter on your REST Java method:
+         </p>
+         <p class='bcode'>
    <ja>@RestMethod</ja>(...)
    <jk>public</jk> Object myMethod(RequestHeaders headers) {...}        
-            </p>
-            <h5 class='figure'>Example:</h5>
-            <p class='bcode'>
+         </p>
+         <h5 class='figure'>Example:</h5>
+         <p class='bcode'>
    <ja>@RestMethod</ja>(...)
    <jk>public</jk> Object myMethod(RequestHeaders headers) {
 
@@ -6101,32 +6045,32 @@
       <jc>// Get a standard header.</jc>
       CacheControl = headers.getCacheControl();
     }       
-            </p>
-            <p>
-               The important methods on this class are:
-            </p>
-            <ul class='doctree'>
-               <li class='jc'><code><a href="org/apache/juneau/rest/RequestHeaders.html" title="class in org.apache.juneau.rest"><code>RequestHeaders</code></a> <jk>extends</jk> TreeMap&lt;String,String[]&gt;</code>
-               <ul>
-                  <li class='jm'><a href="org/apache/juneau/rest/RequestHeaders.html#get-java.lang.String-java.lang.Class-"><code>get(String,Class)</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RequestHeaders.html#get-java.lang.String-java.lang.reflect.Type-java.lang.reflect.Type...-"><code>get(String,Type,Type)</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RequestHeaders.html#getString-java.lang.String-java.lang.String-"><code>getString(String,String)</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RequestHeaders.html#getInt-java.lang.String-int-"><code>getInt(String,int)</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RequestHeaders.html#getBoolean-java.lang.String-boolean-"><code>getBoolean(String,boolean)</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RequestHeaders.html#addDefault-java.lang.String-java.lang.Object-"><code>addDefault(String,Object)</code></a>
-               </ul>
+         </p>
+         <p>
+            The important methods on this class are:
+         </p>
+         <ul class='doctree'>
+            <li class='jc'><code><a href="org/apache/juneau/rest/RequestHeaders.html" title="class in org.apache.juneau.rest"><code>RequestHeaders</code></a> <jk>extends</jk> TreeMap&lt;String,String[]&gt;</code>
+            <ul>
+               <li class='jm'><a href="org/apache/juneau/rest/RequestHeaders.html#get-java.lang.String-java.lang.Class-"><code>get(String,Class)</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RequestHeaders.html#get-java.lang.String-java.lang.reflect.Type-java.lang.reflect.Type...-"><code>get(String,Type,Type)</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RequestHeaders.html#getString-java.lang.String-java.lang.String-"><code>getString(String,String)</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RequestHeaders.html#getInt-java.lang.String-int-"><code>getInt(String,int)</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RequestHeaders.html#getBoolean-java.lang.String-boolean-"><code>getBoolean(String,boolean)</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RequestHeaders.html#addDefault-java.lang.String-java.lang.Object-"><code>addDefault(String,Object)</code></a>
             </ul>
-         </div>
+         </ul>
+      </div>
 
-         <!-- ======================================================================================================== -->
-         <a id="juneau-rest-server.RequestQuery"></a>
-         <h4 class='topic' onclick='toggle(this)'>3.1.6.6 - RequestQuery</h4>
-         <div class='topic'>
-            <p>
-               The <a href="org/apache/juneau/rest/RequestQuery.html" title="class in org.apache.juneau.rest"><code>RequestQuery</code></a> object is the API for accessing the GET query parameters of an HTTP request.
-               <br>It can be accessed by passing it as a parameter on your REST Java method:
-            </p>
-            <p class='bcode'>
+      <!-- ======================================================================================================== -->
+      <a id="juneau-rest-server.RequestQuery"></a>
+      <h4 class='topic' onclick='toggle(this)'>7.6.6 - RequestQuery</h4>
+      <div class='topic'>
+         <p>
+            The <a href="org/apache/juneau/rest/RequestQuery.html" title="class in org.apache.juneau.rest"><code>RequestQuery</code></a> object is the API for accessing the GET query parameters of an HTTP request.
+            <br>It can be accessed by passing it as a parameter on your REST Java method:
+         </p>
+         <p class='bcode'>
    <ja>@RestMethod</ja>(...)
    <jk>public</jk> Object myMethod(RequestQuery query) {...}         
             </p>
@@ -6140,45 +6084,45 @@
       String p2 = query.get(<js>"p2"</js>, String.<jk>class</jk>);
       UUID p3 = query.get(<js>"p3"</js>, UUID.<jk>class</jk>);
     }       
-            </p>
-            <p>
-               An important distinction between the behavior of this object and <l>HttpServletRequest.getParameter(String)</l> is
-               that the former will NOT load the body of the request on FORM POSTS and will only look at parameters
-               found in the query string.
-               <br>This can be useful in cases where you're mixing GET parameters and FORM POSTS and you don't want to 
-               inadvertantly read the body of the request to get a query parameter.
-            </p>
-            <p>
-               The important methods on this class are:
-            </p>
-            <ul class='doctree'>
-               <li class='jc'><code><a href="org/apache/juneau/rest/RequestQuery.html" title="class in org.apache.juneau.rest"><code>RequestQuery</code></a> <jk>extends</jk> LinkedHashMap&lt;String,String[]&gt;</code>
-               <ul>
-                  <li class='jm'><a href="org/apache/juneau/rest/RequestQuery.html#get-java.lang.String-java.lang.Class-"><code>get(String,Class)</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RequestQuery.html#get-java.lang.String-java.lang.reflect.Type-java.lang.reflect.Type...-"><code>get(String,Type,Type)</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RequestQuery.html#getString-java.lang.String-java.lang.String-"><code>getString(String,String)</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RequestQuery.html#getInt-java.lang.String-int-"><code>getInt(String,int)</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RequestQuery.html#getBoolean-java.lang.String-boolean-"><code>getBoolean(String,boolean)</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RequestQuery.html#addDefault-java.lang.String-java.lang.Object-"><code>addDefault(String,Object)</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RequestQuery.html#getSearchArgs--"><code>getSearchArgs()</code></a>
-               </ul>
+         </p>
+         <p>
+            An important distinction between the behavior of this object and <l>HttpServletRequest.getParameter(String)</l> is
+            that the former will NOT load the body of the request on FORM POSTS and will only look at parameters
+            found in the query string.
+            <br>This can be useful in cases where you're mixing GET parameters and FORM POSTS and you don't want to 
+            inadvertantly read the body of the request to get a query parameter.
+         </p>
+         <p>
+            The important methods on this class are:
+         </p>
+         <ul class='doctree'>
+            <li class='jc'><code><a href="org/apache/juneau/rest/RequestQuery.html" title="class in org.apache.juneau.rest"><code>RequestQuery</code></a> <jk>extends</jk> LinkedHashMap&lt;String,String[]&gt;</code>
+            <ul>
+               <li class='jm'><a href="org/apache/juneau/rest/RequestQuery.html#get-java.lang.String-java.lang.Class-"><code>get(String,Class)</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RequestQuery.html#get-java.lang.String-java.lang.reflect.Type-java.lang.reflect.Type...-"><code>get(String,Type,Type)</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RequestQuery.html#getString-java.lang.String-java.lang.String-"><code>getString(String,String)</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RequestQuery.html#getInt-java.lang.String-int-"><code>getInt(String,int)</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RequestQuery.html#getBoolean-java.lang.String-boolean-"><code>getBoolean(String,boolean)</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RequestQuery.html#addDefault-java.lang.String-java.lang.Object-"><code>addDefault(String,Object)</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RequestQuery.html#getSearchArgs--"><code>getSearchArgs()</code></a>
             </ul>
-         </div>
+         </ul>
+      </div>
 
-         <!-- ======================================================================================================== -->
-         <a id="juneau-rest-server.RequestFormData"></a>
-         <h4 class='topic' onclick='toggle(this)'>3.1.6.7 - RequestFormData</h4>
-         <div class='topic'>
-            <p>
-               The <a href="org/apache/juneau/rest/RequestFormData.html" title="class in org.apache.juneau.rest"><code>RequestFormData</code></a> object is the API for accessing the HTTP request body as form data.
-               <br>It can be accessed by passing it as a parameter on your REST Java method:
-            </p>
-            <p class='bcode'>
+      <!-- ======================================================================================================== -->
+      <a id="juneau-rest-server.RequestFormData"></a>
+      <h4 class='topic' onclick='toggle(this)'>7.6.7 - RequestFormData</h4>
+      <div class='topic'>
+         <p>
+            The <a href="org/apache/juneau/rest/RequestFormData.html" title="class in org.apache.juneau.rest"><code>RequestFormData</code></a> object is the API for accessing the HTTP request body as form data.
+            <br>It can be accessed by passing it as a parameter on your REST Java method:
+         </p>
+         <p class='bcode'>
    <ja>@RestMethod</ja>(...)
    <jk>public</jk> Object myMethod(RequestFormData query) {...}         
-            </p>
-            <h5 class='figure'>Example:</h5>
-            <p class='bcode'>
+         </p>
+         <h5 class='figure'>Example:</h5>
+         <p class='bcode'>
    <ja>@RestMethod</ja>(...)
    <jk>public</jk> Object myMethod(RequestFormData formData) {
 
@@ -6187,42 +6131,42 @@
       String p2 = formData.get(<js>"p2"</js>, String.<jk>class</jk>);
       UUID p3 = formData.get(<js>"p3"</js>, UUID.<jk>class</jk>);
     }       
-            </p>
-            <p>
-               Note that this object does NOT take GET parameters into account and only returns values found in the body of the request.
-            </p>
-            <p>
-               The important methods on this class are:
-            </p>
-            <ul class='doctree'>
-               <li class='jc'><code><a href="org/apache/juneau/rest/RequestFormData.html" title="class in org.apache.juneau.rest"><code>RequestFormData</code></a> <jk>extends</jk> LinkedHashMap&lt;String,String[]&gt;</code>
-               <ul>
-                  <li class='jm'><a href="org/apache/juneau/rest/RequestFormData.html#get-java.lang.String-java.lang.Class-"><code>get(String,Class)</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RequestFormData.html#get-java.lang.String-java.lang.reflect.Type-java.lang.reflect.Type...-"><code>get(String,Type,Type)</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RequestFormData.html#getString-java.lang.String-java.lang.String-"><code>getString(String,String)</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RequestFormData.html#getInt-java.lang.String-int-"><code>getInt(String,int)</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RequestFormData.html#getBoolean-java.lang.String-boolean-"><code>getBoolean(String,boolean)</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RequestFormData.html#addDefault-java.lang.String-java.lang.Object-"><code>addDefault(String,Object)</code></a>
-               </ul>
+         </p>
+         <p>
+            Note that this object does NOT take GET parameters into account and only returns values found in the body of the request.
+         </p>
+         <p>
+            The important methods on this class are:
+         </p>
+         <ul class='doctree'>
+            <li class='jc'><code><a href="org/apache/juneau/rest/RequestFormData.html" title="class in org.apache.juneau.rest"><code>RequestFormData</code></a> <jk>extends</jk> LinkedHashMap&lt;String,String[]&gt;</code>
+            <ul>
+               <li class='jm'><a href="org/apache/juneau/rest/RequestFormData.html#get-java.lang.String-java.lang.Class-"><code>get(String,Class)</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RequestFormData.html#get-java.lang.String-java.lang.reflect.Type-java.lang.reflect.Type...-"><code>get(String,Type,Type)</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RequestFormData.html#getString-java.lang.String-java.lang.String-"><code>getString(String,String)</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RequestFormData.html#getInt-java.lang.String-int-"><code>getInt(String,int)</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RequestFormData.html#getBoolean-java.lang.String-boolean-"><code>getBoolean(String,boolean)</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RequestFormData.html#addDefault-java.lang.String-java.lang.Object-"><code>addDefault(String,Object)</code></a>
             </ul>
-         </div>
+         </ul>
+      </div>
 
-         <!-- ======================================================================================================== -->
-         <a id="juneau-rest-server.RestMethodPath"></a>
-         <h4 class='topic' onclick='toggle(this)'>3.1.6.8 - @RestMethod.path()</h4>
-         <div class='topic'>
-            <p>
-               The <a href="org/apache/juneau/rest/annotation/RestMethod.html#path--"><code>@RestMethod.path()</code></a> annotation allows 
-               you to define URL path patterns to match against.
-               <br>These patterns can contain variables of the form <l>"{xxx}"</l> that can be passed in directly to the
-               Java methods as extra parameters.
-            </p>
-            <p>
-               In the following example, 3 separate GET request handlers are defined with different path patterns.
-               <br>Note how the variables are passed in as additional arguments on the method, and how those arguments are 
-               automatically converted to the specified class type...
-            </p>
-            <p class='bcode'>
+      <!-- ======================================================================================================== -->
+      <a id="juneau-rest-server.RestMethodPath"></a>
+      <h4 class='topic' onclick='toggle(this)'>7.6.8 - @RestMethod.path()</h4>
+      <div class='topic'>
+         <p>
+            The <a href="org/apache/juneau/rest/annotation/RestMethod.html#path--"><code>@RestMethod.path()</code></a> annotation allows 
+            you to define URL path patterns to match against.
+            <br>These patterns can contain variables of the form <l>"{xxx}"</l> that can be passed in directly to the
+            Java methods as extra parameters.
+         </p>
+         <p>
+            In the following example, 3 separate GET request handlers are defined with different path patterns.
+            <br>Note how the variables are passed in as additional arguments on the method, and how those arguments are 
+            automatically converted to the specified class type...
+         </p>
+         <p class='bcode'>
    <jc>// Default method</jc>
    <ja>@RestMethod</ja>(name=<jsf>GET</jsf>, path=<js>"/*"</js>)
    <jk>public void</jk> doGetDefault() {
@@ -6240,12 +6184,12 @@
    <jk>public void</jk> doGetWithArgs(<ja>@Path</ja> String foo, <ja>@Path</ja> <jk>int</jk> bar, <ja>@Path</ja> MyEnum baz, <ja>@Path</ja> UUID bing) {
       ...
    }
-            </p>
-            <p>
-               By default, path patterns are matched using a best-match heuristic. 
-               <br>When overlaps occur, URLs are matched from most-specific to most-general order:
-            </p>
-            <p class='bcode'>
+         </p>
+         <p>
+            By default, path patterns are matched using a best-match heuristic. 
+            <br>When overlaps occur, URLs are matched from most-specific to most-general order:
+         </p>
+         <p class='bcode'>
    <jc>// Try first </jc>
    <ja>@RestMethod</ja>(name=<jsf>GET</jsf>, path=<js>"/foo/bar"</js>)
    <jk>public void</jk> method1() {
@@ -6268,26 +6212,26 @@
    <ja>@RestMethod</ja>(name=<jsf>GET</jsf>, path=<js>"/*"</js>)
    <jk>public void</jk> method4(...) {
       ...
-   }
-            </p>
-            <p>
-               The match heuristic behavior can be overridden by the 
-               <a href="org/apache/juneau/rest/annotation/RestMethod.html#priority--"><code>@RestMethod.priority()</code></a> annotation 
-               property.
-               <br>However, in practice this is almost never needed.
-            </p>
-            <p>
-               Paths that end with <js>"/*"</js> will do a prefix match on the incoming URL.  
-               <br>Any remainder after the match can be accessed through 
-               <a href="org/apache/juneau/rest/RequestPathMatch.html#getRemainder--"><code>RequestPathMatch.getRemainder()</code></a> or parameters with the 
-               <a href="org/apache/juneau/rest/annotation/PathRemainder.html" title="annotation in org.apache.juneau.rest.annotation"><code>@PathRemainder</code></a> annotation.
-               <br>On the other hand, paths that don't end with <js>"/*"</js> (e.g. <js>"/"</js> or <js>"/foo"</js>) will 
-               require an exact URL match, and if any remainder exists, a 404 (not found) error will be thrown.
-            </p>
-            <p>
-               The following example shows the distinction.
-            </p>
-            <p class='bcode'>
+   }
+         </p>
+         <p>
+            The match heuristic behavior can be overridden by the 
+            <a href="org/apache/juneau/rest/annotation/RestMethod.html#priority--"><code>@RestMethod.priority()</code></a> annotation 
+            property.
+            <br>However, in practice this is almost never needed.
+         </p>
+         <p>
+            Paths that end with <js>"/*"</js> will do a prefix match on the incoming URL.  
+            <br>Any remainder after the match can be accessed through 
+            <a href="org/apache/juneau/rest/RequestPathMatch.html#getRemainder--"><code>RequestPathMatch.getRemainder()</code></a> or parameters with the 
+            <a href="org/apache/juneau/rest/annotation/PathRemainder.html" title="annotation in org.apache.juneau.rest.annotation"><code>@PathRemainder</code></a> annotation.
+            <br>On the other hand, paths that don't end with <js>"/*"</js> (e.g. <js>"/"</js> or <js>"/foo"</js>) will 
+            require an exact URL match, and if any remainder exists, a 404 (not found) error will be thrown.
+         </p>
+         <p>
+            The following example shows the distinction.
+         </p>
+         <p class='bcode'>
    <ja>@RestMethod</ja>(name=<jsf>GET</jsf>, path=<js>"/*"</js>)
    <jk>public void</jk> doGet(<ja>@PathRemainder</ja> String remainder) {
       <jc>// URL path pattern can have remainder accessible through req.getRemainder().</jc>
@@ -6297,41 +6241,41 @@
    <jk>public void</jk> doPut() {
       <jc>// URL path pattern must match exactly and will cause a 404 error if a remainder exists.</jc>
    }
-            </p>
-            <p>
-               Annotations are provided for easy access to URL parameters with automatic conversion to any parsable object type.
-               <br>For example, the following example can process the URL <l>"/urlWithParams?foo=foo&amp;bar=[1,2,3]&amp;baz=067e6162-3b6f-4ae2-a171-2470b63dff00"</l>...
-            </p>
-            <p class='bcode'>
+         </p>
+         <p>
+            Annotations are provided for easy access to URL parameters with automatic conversion to any parsable object type.
+            <br>For example, the following example can process the URL <l>"/urlWithParams?foo=foo&amp;bar=[1,2,3]&amp;baz=067e6162-3b6f-4ae2-a171-2470b63dff00"</l>...
+         </p>
+         <p class='bcode'>
    <jc>// Example GET request with access to query parameters</jc>
    <ja>@RestMethod</ja>(name=<jsf>GET</jsf>, path=<js>"/urlWithParams"</js>)
    <jk>public</jk> String doGetWithParams(<ja>@Query</ja>(<js>"foo"</js>) String foo, <ja>@Query</ja>(<js>"bar"</js>) <jk>int</jk> bar, <ja>@Query</ja>(<js>"baz"</js>) UUID baz) <jk>throws</jk> Exception {
       <jk>return</jk> <js>"GET /urlWithParams?foo="</js>+foo+<js>"&amp;bar="</js>+bar+<js>"&amp;baz="</js>+baz;
    }
-            </p>
-            <h5 class='section'>See Also:</h5>
-            <ul>
-               <li class='jf'><a href="org/apache/juneau/rest/RestContext.html#REST_path"><code>RestContext.REST_path</code></a>
-               <li class='ja'><a href="org/apache/juneau/rest/annotation/Path.html" title="annotation in org.apache.juneau.rest.annotation"><code>Path</code></a>
-               <li class='ja'><a href="org/apache/juneau/rest/annotation/PathRemainder.html" title="annotation in org.apache.juneau.rest.annotation"><code>PathRemainder</code></a>
-               <li class='jc'><a href="org/apache/juneau/rest/RequestPathMatch.html" title="class in org.apache.juneau.rest"><code>RequestPathMatch</code></a>
-            </ul>
-         </div>   
-   
-         <!-- ======================================================================================================== -->
-         <a id="juneau-rest-server.RequestPathMatch"></a>
-         <h4 class='topic' onclick='toggle(this)'>3.1.6.9 - RequestPathMatch</h4>
-         <div class='topic'>
-            <p>
-               The <a href="org/apache/juneau/rest/RequestPathMatch.html" title="class in org.apache.juneau.rest"><code>RequestPathMatch</code></a> object is the API for accessing the matched variables
-               and remainder on the URL path.
-            </p>
-            <p class='bcode'>
+         </p>
+         <h5 class='section'>See Also:</h5>
+         <ul>
+            <li class='jf'><a href="org/apache/juneau/rest/RestContext.html#REST_path"><code>RestContext.REST_path</code></a>
+            <li class='ja'><a href="org/apache/juneau/rest/annotation/Path.html" title="annotation in org.apache.juneau.rest.annotation"><code>Path</code></a>
+            <li class='ja'><a href="org/apache/juneau/rest/annotation/PathRemainder.html" title="annotation in org.apache.juneau.rest.annotation"><code>PathRemainder</code></a>
+            <li class='jc'><a href="org/apache/juneau/rest/RequestPathMatch.html" title="class in org.apache.juneau.rest"><code>RequestPathMatch</code></a>
+         </ul>
+      </div>   
+
+      <!-- ======================================================================================================== -->
+      <a id="juneau-rest-server.RequestPathMatch"></a>
+      <h4 class='topic' onclick='toggle(this)'>7.6.9 - RequestPathMatch</h4>
+      <div class='topic'>
+         <p>
+            The <a href="org/apache/juneau/rest/RequestPathMatch.html" title="class in org.apache.juneau.rest"><code>RequestPathMatch</code></a> object is the API for accessing the matched variables
+            and remainder on the URL path.
+         </p>
+         <p class='bcode'>
    <ja>@RestMethod</ja>(...)
    <jk>public</jk> Object myMethod(RequestPathMatch path) {...}         
-            </p>
-            <h5 class='figure'>Example:</h5>
-            <p class='bcode'>
+         </p>
+         <h5 class='figure'>Example:</h5>
+         <p class='bcode'>
    <ja>@RestMethod</ja>(..., path=<js>"/{foo}/{bar}/{baz}/*"</js>)
    <jk>public void</jk> doGet(RequestPathMatch path) {
       <jc>// Example URL:  /123/qux/true/quux</jc>
@@ -6341,93 +6285,93 @@
       <jk>boolean</jk> baz = pm.getBoolean(<js>"baz"</js>);  <jc>// =true</jc>
       String remainder = pm.getRemainder();  <jc>// =quux</jc>
    }
-            </p>
-            <p>
-               The important methods on this class are:
-            </p>
-            <ul class='doctree'>
-               <li class='jc'><code><a href="org/apache/juneau/rest/RequestPathMatch.html" title="class in org.apache.juneau.rest"><code>RequestPathMatch</code></a> <jk>extends</jk> TreeMap&lt;String,String&gt;</code>
-               <ul>
-                  <li class='jm'><a href="org/apache/juneau/rest/RequestPathMatch.html#get-java.lang.String-java.lang.Class-"><code>get(String,Class)</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RequestPathMatch.html#get-java.lang.String-java.lang.reflect.Type-java.lang.reflect.Type...-"><code>get(String,Type,Type)</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RequestPathMatch.html#getString-java.lang.String-"><code>getString(String)</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RequestPathMatch.html#getInt-java.lang.String-"><code>getInt(String)</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RequestPathMatch.html#getBoolean-java.lang.String-"><code>getBoolean(String)</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/RequestPathMatch.html#getRemainder--"><code>getRemainder()</code></a>
-               </ul>
+         </p>
+         <p>
+            The important methods on this class are:
+         </p>
+         <ul class='doctree'>
+            <li class='jc'><code><a href="org/apache/juneau/rest/RequestPathMatch.html" title="class in org.apache.juneau.rest"><code>RequestPathMatch</code></a> <jk>extends</jk> TreeMap&lt;String,String&gt;</code>
+            <ul>
+               <li class='jm'><a href="org/apache/juneau/rest/RequestPathMatch.html#get-java.lang.String-java.lang.Class-"><code>get(String,Class)</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RequestPathMatch.html#get-java.lang.String-java.lang.reflect.Type-java.lang.reflect.Type...-"><code>get(String,Type,Type)</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RequestPathMatch.html#getString-java.lang.String-"><code>getString(String)</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RequestPathMatch.html#getInt-java.lang.String-"><code>getInt(String)</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RequestPathMatch.html#getBoolean-java.lang.String-"><code>getBoolean(String)</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/RequestPathMatch.html#getRemainder--"><code>getRemainder()</code></a>
             </ul>
-         </div>
+         </ul>
+      </div>
 
-         <!-- ======================================================================================================== -->
-         <a id="juneau-rest-server.MethodReturnTypes"></a>
-         <h4 class='topic' onclick='toggle(this)'>3.1.6.10 - Method Return Types</h4>
-         <div class='topic'>
-            <p>
-               The return type can be any serializable POJO as defined in <a class='doclink' href='#juneau-marshall.PojoCategories'>POJO Categories</a>.
-               <br>It can also be <jk>void</jk> if the method is not sending any output (e.g. a request redirect) or is 
-               setting the output using the <a href="org/apache/juneau/rest/RestResponse.html#setOutput-java.lang.Object-"><code>RestResponse.setOutput(Object)</code></a> method.
-            </p>
-            <h5 class='figure'>Example:</h5>
-            <p class='bcode'>
+      <!-- ======================================================================================================== -->
+      <a id="juneau-rest-server.MethodReturnTypes"></a>
+      <h4 class='topic' onclick='toggle(this)'>7.6.10 - Method Return Types</h4>
+      <div class='topic'>
+         <p>
+            The return type can be any serializable POJO as defined in <a class='doclink' href='#juneau-marshall.PojoCategories'>POJO Categories</a>.
+            <br>It can also be <jk>void</jk> if the method is not sending any output (e.g. a request redirect) or is 
+            setting the output using the <a href="org/apache/juneau/rest/RestResponse.html#setOutput-java.lang.Object-"><code>RestResponse.setOutput(Object)</code></a> method.
+         </p>
+         <h5 class='figure'>Example:</h5>
+         <p class='bcode'>
    <ja>@RestMethod</ja>(name=<jsf>GET</jsf>)
    <jk>public</jk> String doGet() {
       <jk>return</jk> <js>"Hello World!"</js>;
    }
-            </p>
-            <p>
-               Out-of-the-box, besides POJOs, the following return types are handled as special cases:
-            </p>
-            <ul class='spaced-list'>
-               <li class='jc'><a href="http://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io"><code>InputStream</code></a>
-                  <br>The contents are simply piped to the output stream returned by 
-                  <a href="org/apache/juneau/rest/RestResponse.html#getNegotiatedOutputStream--"><code>RestResponse.getNegotiatedOutputStream()</code></a>.
-                  <br>Note that you should call <code>ServletResponseWrapper.setContentType(String)</code> to set 
-                  the <l>Content-Type</l> header if you use this object type.
-               <li class='jc'><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io"><code>Reader</code></a>
-                  <br>The contents are simply piped to the output stream returned by 
-                  <a href="org/apache/juneau/rest/RestResponse.html#getNegotiatedWriter--"><code>RestResponse.getNegotiatedWriter()</code></a>.
-                  <br>Note that you should call <code>ServletResponseWrapper.setContentType(String)</code> to set 
-                  the <l>Content-Type</l> header if you use this object type.
-               <li class='jc'><a href="org/apache/juneau/rest/Redirect.html" title="class in org.apache.juneau.rest"><code>Redirect</code></a>
-                  <br>Represents an HTTP redirect response.
-               <li class='jc'><a href="org/apache/juneau/Streamable.html" title="interface in org.apache.juneau"><code>Streamable</code></a>
-                  <br>Interface that identifies that an object can be serialized directly to an output stream.
-               <li class='jc'><a href="org/apache/juneau/Writable.html" title="interface in org.apache.juneau"><code>Writable</code></a>
-                  <br>Interface that identifies that an object can be serialized directly to a writer.
-               <li class='jc'><a href="org/apache/juneau/utils/ZipFileList.html" title="class in org.apache.juneau.utils"><code>ZipFileList</code></a>
-                  <br>Special interface for sending zip files as responses.
-            </ul>
-            <p>
-               This is controlled through the following extensible API:
-            </p>
-            <ul class='doctree'>
-               <li class='jic'><a href="org/apache/juneau/rest/ResponseHandler.html" title="interface in org.apache.juneau.rest"><code>ResponseHandler</code></a>
-               <ul>
-                  <li class='jc'><a href="org/apache/juneau/rest/response/DefaultHandler.html" title="class in org.apache.juneau.rest.response"><code>DefaultHandler</code></a>
-                  <li class='jc'><a href="org/apache/juneau/rest/response/InputStreamHandler.html" title="class in org.apache.juneau.rest.response"><code>InputStreamHandler</code></a>
-                  <li class='jc'><a href="org/apache/juneau/rest/response/ReaderHandler.html" title="class in org.apache.juneau.rest.response"><code>ReaderHandler</code></a>
-                  <li class='jc'><a href="org/apache/juneau/rest/response/RedirectHandler.html" title="class in org.apache.juneau.rest.response"><code>RedirectHandler</code></a>
-                  <li class='jc'><a href="org/apache/juneau/rest/response/StreamableHandler.html" title="class in org.apache.juneau.rest.response"><code>StreamableHandler</code></a>
-                  <li class='jc'><a href="org/apache/juneau/rest/response/WritableHandler.html" title="class in org.apache.juneau.rest.response"><code>WritableHandler</code></a>
-                  <li class='jc'><a href="org/apache/juneau/rest/response/ZipFileListResponseHandler.html" title="class in org.apache.juneau.rest.response"><code>ZipFileListResponseHandler</code></a>
-               </ul>
-            </ul>
-            <p>
-               REST Java methods can generate output in any of the following ways:
-            </p>
-            <ul class='spaced-list'>
-               <li>
-                  By returning a serializable POJO, or any of the following:
-                  <br><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io"><code>Reader</code></a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io"><code>InputStream</code></a>, <a href="org/apache/juneau/Streamable.html" title="interface in org.apache.juneau"><code>Streamable</code></a>, 
-                  <a href="org/apache/juneau/Writable.html" title="interface in org.apache.juneau"><code>Writable</code></a> 
-               <li>
-                  By calling <a href="org/apache/juneau/rest/RestResponse.html#setOutput-java.lang.Object-"><code>RestResponse.setOutput(Object)</code></a> with any of the types above.
-               <li>
-                  By accessing the <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io"><code>Writer</code></a> directly by calling 
-                  <a href="org/apache/juneau/rest/RestResponse.html#getNegotiatedWriter--"><code>RestResponse.getNegotiatedWriter()</code></a> and writing the output yourself.
+         </p>
+         <p>
+            Out-of-the-box, besides POJOs, the following return types are handled as special cases:
+         </p>
+         <ul class='spaced-list'>
+            <li class='jc'><a href="http://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io"><code>InputStream</code></a>
+               <br>The contents are simply piped to the output stream returned by 
+               <a href="org/apache/juneau/rest/RestResponse.html#getNegotiatedOutputStream--"><code>RestResponse.getNegotiatedOutputStream()</code></a>.
+               <br>Note that you should call <code>ServletResponseWrapper.setContentType(String)</code> to set 
+               the <l>Content-Type</l> header if you use this object type.
+            <li class='jc'><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io"><code>Reader</code></a>
+               <br>The contents are simply piped to the output stream returned by 
+               <a href="org/apache/juneau/rest/RestResponse.html#getNegotiatedWriter--"><code>RestResponse.getNegotiatedWriter()</code></a>.
+               <br>Note that you should call <code>ServletResponseWrapper.setContentType(String)</code> to set 
+               the <l>Content-Type</l> header if you use this object type.
+            <li class='jc'><a href="org/apache/juneau/rest/Redirect.html" title="class in org.apache.juneau.rest"><code>Redirect</code></a>
+               <br>Represents an HTTP redirect response.
+            <li class='jc'><a href="org/apache/juneau/Streamable.html" title="interface in org.apache.juneau"><code>Streamable</code></a>
+               <br>Interface that identifies that an object can be serialized directly to an output stream.
+            <li class='jc'><a href="org/apache/juneau/Writable.html" title="interface in org.apache.juneau"><code>Writable</code></a>
+               <br>Interface that identifies that an object can be serialized directly to a writer.
+            <li class='jc'><a href="org/apache/juneau/utils/ZipFileList.html" title="class in org.apache.juneau.utils"><code>ZipFileList</code></a>
+               <br>Special interface for sending zip files as responses.
+         </ul>
+         <p>
+            This is controlled through the following extensible API:
+         </p>
+         <ul class='doctree'>
+            <li class='jic'><a href="org/apache/juneau/rest/ResponseHandler.html" title="interface in org.apache.juneau.rest"><code>ResponseHandler</code></a>
+            <ul>
+               <li class='jc'><a href="org/apache/juneau/rest/response/DefaultHandler.html" title="class in org.apache.juneau.rest.response"><code>DefaultHandler</code></a>
+               <li class='jc'><a href="org/apache/juneau/rest/response/InputStreamHandler.html" title="class in org.apache.juneau.rest.response"><code>InputStreamHandler</code></a>
+               <li class='jc'><a href="org/apache/juneau/rest/response/ReaderHandler.html" title="class in org.apache.juneau.rest.response"><code>ReaderHandler</code></a>
+               <li class='jc'><a href="org/apache/juneau/rest/response/RedirectHandler.html" title="class in org.apache.juneau.rest.response"><code>RedirectHandler</code></a>
+               <li class='jc'><a href="org/apache/juneau/rest/response/StreamableHandler.html" title="class in org.apache.juneau.rest.response"><code>StreamableHandler</code></a>
+               <li class='jc'><a href="org/apache/juneau/rest/response/WritableHandler.html" title="class in org.apache.juneau.rest.response"><code>WritableHandler</code></a>
+               <li class='jc'><a href="org/apache/juneau/rest/response/ZipFileListResponseHandler.html" title="class in org.apache.juneau.rest.response"><code>ZipFileListResponseHandler</code></a>
             </ul>
-            <h5 class='figure'>Example:</h5>
-            <p class='bcode'>
+         </ul>
+         <p>
+            REST Java methods can generate output in any of the following ways:
+         </p>
+         <ul class='spaced-list'>
+            <li>
+               By returning a serializable POJO, or any of the following:
+               <br><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io"><code>Reader</code></a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io"><code>InputStream</code></a>, <a href="org/apache/juneau/Streamable.html" title="interface in org.apache.juneau"><code>Streamable</code></a>, 
+               <a href="org/apache/juneau/Writable.html" title="interface in org.apache.juneau"><code>Writable</code></a> 
+            <li>
+               By calling <a href="org/apache/juneau/rest/RestResponse.html#setOutput-java.lang.Object-"><code>RestResponse.setOutput(Object)</code></a> with any of the types above.
+            <li>
+               By accessing the <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io"><code>Writer</code></a> directly by calling 
+               <a href="org/apache/juneau/rest/RestResponse.html#getNegotiatedWriter--"><code>RestResponse.getNegotiatedWriter()</code></a> and writing the output yourself.
+         </ul>
+         <h5 class='figure'>Example:</h5>
+         <p class='bcode'>
    <jc>// Equivalent method 1</jc>
    <ja>@RestMethod</ja>(name=<jsf>GET</jsf>, path=<js>"/example1/{personId}"</js>)
    <jk>public</jk> Person doGet1(<ja>@Path</ja> UUID personId) {
@@ -6452,30 +6396,30 @@
       res.setContentType(s.getResponseContentType());
       s.serialize(p, res.getNegotiatedWriter());
    }
-            </p>
-            <h5 class='section'>See Also:</h5>
-            <ul>
-               <li class='jf'><a href="org/apache/juneau/rest/RestContext.html#REST_responseHandlers"><code>RestContext.REST_responseHandlers</code></a> - For configuring custom response handlers.
-            </ul>
-         </div>
-      
-         <!-- ======================================================================================================== -->
-         <a id="juneau-rest-server.ReaderResource"></a>
-         <h4 class='topic' onclick='toggle(this)'>3.1.6.11 - ReaderResource</h4>
-         <div class='topic'>
-            <p>
-               The <a href="org/apache/juneau/rest/ReaderResource.html" title="class in org.apache.juneau.rest"><code>ReaderResource</code></a> class is a convenience object for defining thread-safe
-               reusable character-based responses.
-               <br>In essence, it's a container for character data with optional response headers and support for
-               resolving SVL variables.
-            </p>
-            <p>
-               The <a href="org/apache/juneau/rest/ReaderResource.html" title="class in org.apache.juneau.rest"><code>ReaderResource</code></a> class implements the <a href="org/apache/juneau/Writable.html" title="interface in org.apache.juneau"><code>Writable</code></a>
-               interface which is handled by the <a href="org/apache/juneau/rest/response/WritableHandler.html" title="class in org.apache.juneau.rest.response"><code>WritableHandler</code></a> class.
-               <br>This allows these objects to be returned as responses by REST methods.
-            </p>
-            <h5 class='figure'>Example:</h5>
-            <p class='bcode'>
+         </p>
+         <h5 class='section'>See Also:</h5>
+         <ul>
+            <li class='jf'><a href="org/apache/juneau/rest/RestContext.html#REST_responseHandlers"><code>RestContext.REST_responseHandlers</code></a> - For configuring custom response handlers.
+         </ul>
+      </div>
+   
+      <!-- ======================================================================================================== -->
+      <a id="juneau-rest-server.ReaderResource"></a>
+      <h4 class='topic' onclick='toggle(this)'>7.6.11 - ReaderResource</h4>
+      <div class='topic'>
+         <p>
+            The <a href="org/apache/juneau/rest/ReaderResource.html" title="class in org.apache.juneau.rest"><code>ReaderResource</code></a> class is a convenience object for defining thread-safe
+            reusable character-based responses.
+            <br>In essence, it's a container for character data with optional response headers and support for
+            resolving SVL variables.
+         </p>
+         <p>
+            The <a href="org/apache/juneau/rest/ReaderResource.html" title="class in org.apache.juneau.rest"><code>ReaderResource</code></a> class implements the <a href="org/apache/juneau/Writable.html" title="interface in org.apache.juneau"><code>Writable</code></a>
+            interface which is handled by the <a href="org/apache/juneau/rest/response/WritableHandler.html" title="class in org.apache.juneau.rest.response"><code>WritableHandler</code></a> class.
+            <br>This allows these objects to be returned as responses by REST methods.
+         </p>
+         <h5 class='figure'>Example:</h5>
+         <p class='bcode'>
    <ja>@RestMethod</ja>(...)
    <jk>public</jk> Object sayHello(RestRequest req) {
    
@@ -6487,36 +6431,36 @@
          .mediaType(<jsf>TEXT_PLAIN</jsf>)
          .build();
    }
-            </p>
-            <p>
-               The important methods on this class are:
-            </p>
-            <ul class='doctree'>
-               <li class='jc'><a href="org/apache/juneau/rest/ReaderResourceBuilder.html" title="class in org.apache.juneau.rest"><code>ReaderResourceBuilder</code></a>
-               <ul>
-                  <li class='jm'><a href="org/apache/juneau/rest/ReaderResourceBuilder.html#contents-java.lang.Object...-"><code>contents(Object...)</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/ReaderResourceBuilder.html#header-java.lang.String-java.lang.Object-"><code>header(String,Object)</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/ReaderResourceBuilder.html#mediaType-org.apache.juneau.http.MediaType-"><code>mediaType(MediaType)</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/ReaderResourceBuilder.html#varResolver-org.apache.juneau.svl.VarResolverSession-"><code>varResolver(VarResolverSession)</code></a>
-               </ul>
+         </p>
+         <p>
+            The important methods on this class are:
+         </p>
+         <ul class='doctree'>
+            <li class='jc'><a href="org/apache/juneau/rest/ReaderResourceBuilder.html" title="class in org.apache.juneau.rest"><code>ReaderResourceBuilder</code></a>
+            <ul>
+               <li class='jm'><a href="org/apache/juneau/rest/ReaderResourceBuilder.html#contents-java.lang.Object...-"><code>contents(Object...)</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/ReaderResourceBuilder.html#header-java.lang.String-java.lang.Object-"><code>header(String,Object)</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/ReaderResourceBuilder.html#mediaType-org.apache.juneau.http.MediaType-"><code>mediaType(MediaType)</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/ReaderResourceBuilder.html#varResolver-org.apache.juneau.svl.VarResolverSession-"><code>varResolver(VarResolverSession)</code></a>
             </ul>
-         </div>
-      
-         <!-- ======================================================================================================== -->
-         <a id="juneau-rest-server.StreamResource"></a>
-         <h4 class='topic' onclick='toggle(this)'>3.1.6.12 - StreamResource</h4>
-         <div class='topic'>
-            <p>
-               The <a href="org/apache/juneau/rest/StreamResource.html" title="class in org.apache.juneau.rest"><code>StreamResource</code></a> class is the binary equivalent to the <a href="org/apache/juneau/rest/ReaderResource.html" title="class in org.apache.juneau.rest"><code>ReaderResource</code></a> object.
-               <br>In essence, it's a container for binary data with optional response headers.
-            </p>
-            <p>
-               The <a href="org/apache/juneau/rest/StreamResource.html" title="class in org.apache.juneau.rest"><code>StreamResource</code></a> class implements the <a href="org/apache/juneau/Streamable.html" title="interface in org.apache.juneau"><code>Streamable</code></a>
-               interface which is handled by the <a href="org/apache/juneau/rest/response/StreamableHandler.html" title="class in org.apache.juneau.rest.response"><code>StreamableHandler</code></a> class.
-               <br>This allows these objects to be returned as responses by REST methods.
-            </p>
-            <h5 class='figure'>Example:</h5>
-            <p class='bcode'>
+         </ul>
+      </div>
+   
+      <!-- ======================================================================================================== -->
+      <a id="juneau-rest-server.StreamResource"></a>
+      <h4 class='topic' onclick='toggle(this)'>7.6.12 - StreamResource</h4>
+      <div class='topic'>
+         <p>
+            The <a href="org/apache/juneau/rest/StreamResource.html" title="class in org.apache.juneau.rest"><code>StreamResource</code></a> class is the binary equivalent to the <a href="org/apache/juneau/rest/ReaderResource.html" title="class in org.apache.juneau.rest"><code>ReaderResource</code></a> object.
+            <br>In essence, it's a container for binary data with optional response headers.
+         </p>
+         <p>
+            The <a href="org/apache/juneau/rest/StreamResource.html" title="class in org.apache.juneau.rest"><code>StreamResource</code></a> class implements the <a href="org/apache/juneau/Streamable.html" title="interface in org.apache.juneau"><code>Streamable</code></a>
+            interface which is handled by the <a href="org/apache/juneau/rest/response/StreamableHandler.html" title="class in org.apache.juneau.rest.response"><code>StreamableHandler</code></a> class.
+            <br>This allows these objects to be returned as responses by REST methods.
+         </p>
+         <h5 class='figure'>Example:</h5>
+         <p class='bcode'>
    <ja>@RestMethod</ja>(...)
    <jk>public</jk> Object showPicture(RestRequest req) {
    
@@ -6527,36 +6471,36 @@
          .mediaType(<jsf>IMAGE_PNG</jsf>)
          .build();
    }
-            </p>
-            <p>
-               The important methods on this class are:
-            </p>
-            <ul class='doctree'>
-               <li class='jc'><a href="org/apache/juneau/rest/StreamResourceBuilder.html" title="class in org.apache.juneau.rest"><code>StreamResourceBuilder</code></a>
-               <ul>
-                  <li class='jm'><a href="org/apache/juneau/rest/StreamResourceBuilder.html#contents-java.lang.Object...-"><code>contents(Object...)</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/StreamResourceBuilder.html#header-java.lang.String-java.lang.Object-"><code>header(String,Object)</code></a>
-                  <li class='jm'><a href="org/apache/juneau/rest/StreamResourceBuilder.html#mediaType-org.apache.juneau.http.MediaType-"><code>mediaType(MediaType)</code></a>
-               </ul>
+         </p>
+         <p>
+            The important methods on this class are:
+         </p>
+         <ul class='doctree'>
+            <li class='jc'><a href="org/apache/juneau/rest/StreamResourceBuilder.html" title="class in org.apache.juneau.rest"><code>StreamResourceBuilder</code></a>
+            <ul>
+               <li class='jm'><a href="org/apache/juneau/rest/StreamResourceBuilder.html#contents-java.lang.Object...-"><code>contents(Object...)</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/StreamResourceBuilder.html#header-java.lang.String-java.lang.Object-"><code>header(String,Object)</code></a>
+               <li class='jm'><a href="org/apache/juneau/rest/StreamResourceBuilder.html#mediaType-org.apache.juneau.http.MediaType-"><code>mediaType(MediaType)</code></a>
             </ul>
-         </div>
+         </ul>
+      </div>
 
-         <!-- ======================================================================================================== -->
-         <a id="juneau-rest-server.Redirect"></a>
-         <h4 class='topic' onclick='toggle(this)'>3.1.6.13 - Redirect</h4>
-         <div class='topic'>
-            <p>
-               The <a href="org/apache/juneau/rest/Redirect.html" title="class in org.apache.juneau.rest"><code>Redirect</code></a> object is a convenience shortcut for performing <code>HTTP 302</code> redirects.
-            </p>
-            <p>
-               <l>Redirect</l> objects are handled by the <a href="org/apache/juneau/rest/response/RedirectHandler.html" title="class in org.apache.juneau.rest.response"><code>RedirectHandler</code></a> class.
-               <br>This allows these objects to be returned as responses by REST methods.
-            </p>
-            <p>
-               The following example shows the difference between handling redirects via <l>RestResponse</l> and the simplified approach of using this class.
-            </p>
-            <h5 class='figure'>Example:</h5>
-            <p class='bcode'>
+      <!-- ======================================================================================================== -->
+      <a id="juneau-rest-server.Redirect"></a>
+      <h4 class='topic' onclick='toggle(this)'>7.6.13 - Redirect</h4>
+      <div class='topic'>
+         <p>
+            The <a href="org/apache/juneau/rest/Redirect.html" title="class in org.apache.juneau.rest"><code>Redirect</code></a> object is a convenience shortcut for performing <code>HTTP 302</code> redirects.
+         </p>
+         <p>
+            <l>Redirect</l> objects are handled by the <a href="org/apache/juneau/rest/response/RedirectHandler.html" title="class in org.apache.juneau.rest.response"><code>RedirectHandler</code></a> class.
+            <br>This allows these objects to be returned as responses by REST methods.
+         </p>
+         <p>
+            The following example shows the difference between handling redirects via <l>RestResponse</l> and the simplified approach of using this class.
+         </p>
+         <h5 class='figure'>Example:</h5>
+         <p class='bcode'>
    <jc>// Redirect to "/contextPath/servletPath/foobar"</jc>
 
    <jc>// Using RestRequest/RestResponse</jc>
@@ -6570,44 +6514,44 @@
    <jk>public</jk> Redirect redirectExample2() {
       <jk>return new</jk> Redirect(<js>"foobar"</js>);
    }
-            </p>
-            <p>
-               The constructor can use a <l>MessageFormat</l>-style pattern with multiple arguments.
-            </p>
-            <h5 class='figure'>Example:</h5>
-            <p class='bcode'>
+         </p>
+         <p>
+            The constructor can use a <l>MessageFormat</l>-style pattern with multiple arguments.
+         </p>
+         <h5 class='figure'>Example:</h5>
+         <p class='bcode'>
    <ja>@RestMethod</ja>(...)
    <jk>public</jk> Redirect redirectExample3() {
       <jk>return new</jk> Redirect(<js>"foo/{0}/bar/{1}"</js>, id1, id2);
    }
-            </p>
-            <p>
-               The arguments are automatically URL-encoded.
-            </p>
-            <p>
-               Redirecting to the servlet root can be accomplished by simply using the no-arg constructor.
-            <h5 class='figure'>Example:</h5>
-            <p class='bcode'>
+         </p>
+         <p>
+            The arguments are automatically URL-encoded.
+         </p>
+         <p>
+            Redirecting to the servlet root can be accomplished by simply using the no-arg constructor.
+         <h5 class='figure'>Example:</h5>
+         <p class='bcode'>
    <jc>// Simply redirect to the servlet root.
    // Equivalent to res.sendRedirect(req.getServletURI()).</jc>
    <ja>@RestMethod</ja>(...)
    <jk>public</jk> Redirect redirectExample4() {
       <jk>return new</jk> Redirect();
    }
-            </p>
-         </div>
-         
-         <!-- ======================================================================================================== -->
-         <a id="juneau-rest-server.RestMethodMatchers"></a>
-         <h4 class='topic' onclick='toggle(this)'>3.1.6.14 - @RestMethod.matchers()</h4>
-         <div class='topic'>
-            <p>
-               <a href="org/apache/juneau/rest/RestMatcher.html" title="class in org.apache.juneau.rest"><code>RestMatchers</code></a> are used to allow multiple Java methods to be 
-               tied to the same HTTP method and path, but differentiated by some request attribute such as a specific 
-               header value.
-            </p>
-            <h5 class='figure'>Example:</h5>
-            <p class='bcode'>
+         </p>
+      </div>
+      
+      <!-- ======================================================================================================== -->
+      <a id="juneau-rest-server.RestMethodMatchers"></a>
+      <h4 class='topic' onclick='toggle(this)'>7.6.14 - @RestMethod.matchers()</h4>
+      <div class='topic'>
+         <p>
+            <a href="org/apache/juneau/rest/RestMatcher.html" title="class in org.apache.juneau.rest"><code>RestMatchers</code></a> are used to allow multiple Java methods to be 
+            tied to the same HTTP method and path, but differentiated by some request attribute such as a specific 
+            header value.
+         </p>
+         <h5 class='figure'>Example:</h5>
+         <p class='bcode'>
    <jc>// GET method that gets invoked for administrators</jc>
    <ja>@RestMethod</ja>(name=<jsf>GET</jsf>, path=<js>"/*"</js>, matchers=IsAdminMatcher.<jk>class</jk>)
    <jk>public</jk> Object doGetForAdmin() {
@@ -6619,11 +6563,11 @@
    <jk>public</jk> Object doGetForEveryoneElse() {
       ...
    }
-            </p>
-            <p>
-               The interface for matchers is simple:
-            </p>
-            <p class='bcode'>
+         </p>
+         <p>
+            The interface for matchers is simple:
+         </p>
+         <p class='bcode'>
    <jk>public class</jk> IsAdminMatcher <jk>extends</jk> RestMatcher {
 
       <ja>@Override</ja> <jc>/* RestMatcher */</jc>
@@ -6631,56 +6575,56 @@
          <jk>return</jk> req.isUserInRole(<js>"ADMINS_GROUP"</js>);
       }
    }
-            </p>
-            
-            <h5 class='section'>Notes:</h5>
-            <ul class='spaced-list'>
-               <li>
-                  If no methods are found with a matching matcher, a <l>412 Precondition Failed</l> status is returned.
-               <li>
-                  If multiple matchers are specified on the same method, ONLY ONE matcher needs to match for the 
-                  method to be invoked.
-               <li>
-                  Note that you CANNOT define identical paths on different methods UNLESS you use matchers.
-                  <br>That includes paths that are only different in variable names (e.g. <l>"/foo/{bar}"</l> and 
-                  <l>"/foo/{baz}"</l>).
-                  <br>If you try to do so, a <l>ServletException</l> will be thrown on startup.
-               <li>
-                  Methods with matchers take precedence over methods without.
-                  <br>Otherwise, methods are attempted in the order they appear in the class.
-            </ul>
-            
-            <h5 class='section'>See Also:</h5>
-            <ul>
-               <li class='ja'><a href="org/apache/juneau/rest/annotation/RestMethod.html#matchers--"><code>RestMethod.matchers()</code></a>
-               <li class='jc'><a href="org/apache/juneau/rest/matchers/MultipartFormDataMatcher.html" title="class in org.apache.juneau.rest.matchers"><code>MultipartFormDataMatcher</code></a>
-               <li class='jc'><a href="org/apache/juneau/rest/matchers/UrlEncodedFormMatcher.html" title="class in org.apache.juneau.rest.matchers"><code>UrlEncodedFormMatcher</code></a>
-            </ul>
-         </div>
-      </div>
-
-      <!-- ======================================================================================================== -->
-      <a id="juneau-rest-server.Body"></a>
-      <h4 class='topic' onclick='toggle(this)'>3.1.7 - @Body</h4>
-      <div class='topic'>
-         <p>
-            The <a href="org/apache/juneau/rest/annotation/Body.html" title="annotation in org.apache.juneau.rest.annotation"><code>@Body</code></a> annotation provides easy access to the HTTP body content as any parsable POJO type
-            (See <a class='doclink' href='#juneau-marshall.PojoCategories'>POJO Categories</a>).
-            <br>In the example below, we're POSTing beans.
          </p>
-         <p class='bcode'>
+         
+         <h5 class='section'>Notes:</h5>
+         <ul class='spaced-list'>
+            <li>
+               If no methods are found with a matching matcher, a <l>412 Precondition Failed</l> status is returned.
+            <li>
+               If multiple matchers are specified on the same method, ONLY ONE matcher needs to match for the 
+               method to be invoked.
+            <li>
+               Note that you CANNOT define identical paths on different methods UNLESS you use matchers.
+               <br>That includes paths that are only different in variable names (e.g. <l>"/foo/{bar}"</l> and 
+               <l>"/foo/{baz}"</l>).
+               <br>If you try to do so, a <l>ServletException</l> will be thrown on startup.
+            <li>
+               Methods with matchers take precedence over methods without.
+               <br>Otherwise, methods are attempted in the order they appear in the class.
+         </ul>
+         
+         <h5 class='section'>See Also:</h5>
+         <ul>
+            <li class='ja'><a href="org/apache/juneau/rest/annotation/RestMethod.html#matchers--"><code>RestMethod.matchers()</code></a>
+            <li class='jc'><a href="org/apache/juneau/rest/matchers/MultipartFormDataMatcher.html" title="class in org.apache.juneau.rest.matchers"><code>MultipartFormDataMatcher</code></a>
+            <li class='jc'><a href="org/apache/juneau/rest/matchers/UrlEncodedFormMatcher.html" title="class in org.apache.juneau.rest.matchers"><code>UrlEncodedFormMatcher</code></a>
+         </ul>
+      </div>
+   </div>
+
+   <!-- ======================================================================================================== -->
+   <a id="juneau-rest-server.Body"></a>
+   <h3 class='topic' onclick='toggle(this)'>7.7 - @Body</h3>
+   <div class='topic'>
+      <p>
+         The <a href="org/apache/juneau/rest/annotation/Body.html" title="annotation in org.apache.juneau.rest.annotation"><code>@Body</code></a> annotation provides easy access to the HTTP body content as any parsable POJO type
+         (See <a class='doclink' href='#juneau-marshall.PojoCategories'>POJO Categories</a>).
+         <br>In the example below, we're POSTing beans.
+      </p>
+      <p class='bcode'>
    <jc>// Example POST of a bean</jc>
    <ja>@RestMethod</ja>(name=<jsf>POST</jsf>, path=<js>"/"</js>)
    <jk>public void</jk> doPost(<ja>@Body</ja> Person person) <jk>throws</jk> Exception {
       <jc>// Do something with person.</jc>
    }
-         </p>
-         <p>
-            The HTTP body of a request can be retrieved as a parsed POJO using either the 
-            <a href="org/apache/juneau/rest/RestRequest.html#getBody--"><code>RestRequest.getBody()</code></a> method, or a parameter annotated with 
-            <a href="org/apache/juneau/rest/annotation/Body.html" title="annotation in org.apache.juneau.rest.annotation"><code>@Body</code></a>.
-         </p>
-         <p class='bcode'>
+      </p>
+      <p>
+         The HTTP body of a request can be retrieved as a parsed POJO using either the 
+         <a href="org/apache/juneau/rest/RestRequest.html#getBody--"><code>RestRequest.getBody()</code></a> method, or a parameter annotated with 
+         <a href="org/apache/juneau/rest/annotation/Body.html" title="annotation in org.apache.juneau.rest.annotation"><code>@Body</code></a>.
+      </p>
+      <p class='bcode'>
    <jc>// Equivalent method 1</jc>
    <ja>@RestMethod</ja>(name=<jsf>POST</jsf>, path=<js>"/example1"</js>)
    <jk>public void</jk> doPost1(<ja>@Body</ja> Person p) {
@@ -6693,29 +6637,29 @@
       Person p = req.getBody).asType(Person.<jk>class</jk>);
       <jc>// Do something with p.</jc>
    }
-         </p>
+      </p>
+      <p>
+         The Juneau framework will automatically determine the appropriate <l>Parser</l> to use based on the 
+         <l>Content-Type</l> HTTP header.  
+         <br>So the body content could be JSON or XML or any other supported parsing types.
+      </p>
+      <h5 class='section'>See Also:</h5>
+      <ul>
+         <li class='ja'><a href="org/apache/juneau/rest/annotation/Body.html" title="annotation in org.apache.juneau.rest.annotation"><code>Body</code></a>
+         <li class='jc'><a href="org/apache/juneau/rest/RequestBody.html" title="class in org.apache.juneau.rest"><code>RequestBody</code></a>
+      </ul>
+
+      <!-- ======================================================================================================== -->
+      <a id="juneau-rest-server.HandlingFormPosts"></a>
+      <h4 class='topic' onclick='toggle(this)'>7.7.1 - Handling Form Posts</h4>
+      <div class='topic'>
          <p>
-            The Juneau framework will automatically determine the appropriate <l>Parser</l> to use based on the 
-            <l>Content-Type</l> HTTP header.  
-            <br>So the body content could be JSON or XML or any other supported parsing types.
+            The best way to handle a form post is by using an input bean.
+            <br>The samples include a <l>UrlEncodedFormResource</l> class that takes in URL-Encoded form post of the 
+            form <l>"aString=foo&amp;aNumber=123&amp;aDate=2001-07-04T15:30:45Z"</l>.
+            <br>The code is shown here:
          </p>
-         <h5 class='section'>See Also:</h5>
-         <ul>
-            <li class='ja'><a href="org/apache/juneau/rest/annotation/Body.html" title="annotation in org.apache.juneau.rest.annotation"><code>Body</code></a>
-            <li class='jc'><a href="org/apache/juneau/rest/RequestBody.html" title="class in org.apache.juneau.rest"><code>RequestBody</code></a>
-         </ul>
-
-         <!-- ======================================================================================================== -->
-         <a id="juneau-rest-server.HandlingFormPosts"></a>
-         <h4 class='topic' onclick='toggle(this)'>3.1.7.1 - Handling Form Posts</h4>
-         <div class='topic'>
-            <p>
-               The best way to handle a form post is by using an input bean.
-               <br>The samples include a <l>UrlEncodedFormResource</l> class that takes in URL-Encoded form post of the 
-               form <l>"aString=foo&amp;aNumber=123&amp;aDate=2001-07-04T15:30:45Z"</l>.
-               <br>The code is shown here:
-            </p>
-            <p class='bcode'>          
+         <p class='bcode'>          
    <ja>@RestResource</ja>(
       path=<js>"/urlEncodedForm"</js>
    )
@@ -6735,46 +6679,47 @@
          <jk>public</jk> Calendar <jf>aDate</jf>;
       }
    }     
-            </p>  
-            <p>
-               Another possibility is to access the form parameters individually:   
-            </p>  
-            <p class='bcode'>
+         </p>  
+         <p>
+            Another possibility is to access the form parameters individually:   
+         </p>  
+         <p class='bcode'>
    <jd>/** POST request handler */</jd>
    <ja>@RestMethod</ja>(name=<jsf>POST</jsf>, path=<js>"/"</js>)
    <jk>public</jk> Object doPost(<ja>@FormData</ja>(<js>"aString"</js>) String aString, <ja>@FormData</ja>(<js>"aNumber"</js>) <jk>int</jk> aNumber, <ja>@FormData</ja>(<js>"aDate"</js>) Calendar aDate) <jk>throws</jk> Exception {
       ...
    }
-            </p>
-            <p>
-               The advantage to the form input bean is that it can handle any of the parsable types (e.g. JSON, XML...) 
-               in addition to URL-Encoding.  
-               <br>The latter approach only supports URL-Encoding.
-            </p>
-            <ul class='doctree'>
-               <li class='warn'>
-                  If you're using form input beans, DO NOT use the <l>@FormData</l> attribute or 
-                  <code>ServletRequestWrapper.getParameter(String)</code> method since this will cause the 
-                  underlying JEE servlet to parse the HTTP body as a form post.
-                  <br>Your input bean will end up being null since there won't be any content left after the servlet 
-                  has parsed the body of the request.
-                  <br>This applies to WHENEVER you use <l>@Body</l> or <a href="org/apache/juneau/rest/RestRequest.html#getBody--"><code>RestRequest.getBody()</code></a>
-            </ul>
-         </div>
-         <!-- ======================================================================================================== -->
-         <a id="juneau-rest-server.HandlingMultiPartFormPosts"></a>
-         <h4 class='topic' onclick='toggle(this)'>3.1.7.2 - Handling Multi-Part Form Posts</h4>
-         <div class='topic'>
-            <p>
-               The Juneau framework does not natively support multipart form posts.  
-               <br>However, it can be done in conjunction with the Apache Commons File Upload library.
-            </p>  
-            <p>
-               The samples include a <l>TempDirResource</l> class that uses the File Upload library to allow files to 
-               be uploaded as multipart form posts.
-            </p>
-            <h5 class='figure'>Example:</h5>
-            <p class='bcode'>
+         </p>
+         <p>
+            The advantage to the form input bean is that it can handle any of the parsable types (e.g. JSON, XML...) 
+            in addition to URL-Encoding.  
+            <br>The latter approach only supports URL-Encoding.
+         </p>
+         <ul class='doctree'>
+            <li class='warn'>
+               If you're using form input beans, DO NOT use the <l>@FormData</l> attribute or 
+               <code>ServletRequestWrapper.getParameter(String)</code> method since this will cause the 
+               underlying JEE servlet to parse the HTTP body as a form post.
+               <br>Your input bean will end up being null since there won't be any content left after the servlet 
+               has parsed the body of the request.
+               <br>This applies to WHENEVER you use <l>@Body</l> or <a href="org/apache/juneau/rest/RestRequest.html#getBody--"><code>RestRequest.getBody()</code></a>
+         </ul>
+      </div>
+      
+      <!-- ======================================================================================================== -->
+      <a id="juneau-rest-server.HandlingMultiPartFormPosts"></a>
+      <h4 class='topic' onclick='toggle(this)'>7.7.2 - Handling Multi-Part Form Posts</h4>
+      <div class='topic'>
+         <p>
+            The Juneau framework does not natively support multipart form posts.  
+            <br>However, it can be done in conjunction with the Apache Commons File Upload library.
+         </p>  
+         <p>
+            The samples include a <l>TempDirResource</l> class that uses the File Upload library to allow files to 
+            be uploaded as multipart form posts.
+         </p>
+         <h5 class='figure'>Example:</h5>
+         <p class='bcode'>
    <ja>@RestResource</ja>(
       path=<js>"/tempDir"</js>
    )
@@ -6807,29 +6752,29 @@
             <jk>return</jk> contentType != <jk>null</jk> &amp;&amp; contentType.startsWith(<js>"multipart/form-data"</js>); 
          }
       }
-            </p>
-         </div>
-      </div>
-      
-      <!-- ======================================================================================================== -->
-      <a id="juneau-rest-server.FormData"></a>
-      <h4 class='topic' onclick='toggle(this)'>3.1.8 - @FormData</h4>
-      <div class='topic'>
-         <p>
-            The <a href="org/apache/juneau/rest/annotation/FormData.html" title="annotation in org.apache.juneau.rest.annotation"><code>@FormData</code></a> annotation is used to retrieve request form post entries.
          </p>
-         <h5 class='figure'>Example:</h5>
-         <p class='bcode'> 
+      </div>
+   </div>
+   
+   <!-- ======================================================================================================== -->
+   <a id="juneau-rest-server.FormData"></a>
+   <h3 class='topic' onclick='toggle(this)'>7.8 - @FormData</h3>
+   <div class='topic'>
+      <p>
+         The <a href="org/apache/juneau/rest/annotation/FormData.html" title="annotation in org.apache.juneau.rest.annotation"><code>@FormData</code></a> annotation is used to retrieve request form post entries.
+      </p>
+      <h5 class='figure'>Example:</h5>
+      <p class='bcode'> 
    <ja>@RestMethod</ja>(name=<jsf>POST</jsf>)
    <jk>public void</jk> doPost(RestRequest req, RestResponse res,
       <ja>@FormData</ja>(<js>"p1"</js>) <jk>int</jk> p1, 
       <ja>@FormData</ja>(<js>"p2"</js>) String p2, 
       <ja>@FormData</ja>(<js>"p3"</js>) UUID p3) {...}
-         </p>
-         <p>
-            This is functionally equivalent to the following code:
-         </p>
-         <p class='bcode'>
+      </p>
+      <p>
+         This is functionally equivalent to the following code:
+      </p>
+      <p class='bcode'>
    <ja>@RestMethod</ja>(name=<jsf>POST</jsf>)
    <jk>public void</jk> doPost(RestRequest req, RestResponse res) {
       RequestFormData fd = req.getFormData();
@@ -6837,43 +6782,44 @@
       String p2 = fd.get(<js>"p2"</js>, String.<jk>class</jk>);
       UUID p3 = fd.get(<js>"p3"</js>, UUID.<jk>class</jk>);
    }
-         </p>
-         <p>
-            The registered <a href="org/apache/juneau/rest/RestContext.html#REST_partParser"><code>RestContext.REST_partParser</code></a> is used to convert strings
-            to POJOs and controls what POJO types are supported.
-            <br>As a general rule, any POJO convertable from a String is supported.
-         </p>
-         <ul class='doctree'>
-            <li class='warn'>
-               This annotation should not be combined with the <a href="org/apache/juneau/rest/annotation/Body.html" title="annotation in org.apache.juneau.rest.annotation"><code>@Body</code></a> annotation or <a href="org/apache/juneau/rest/RestRequest.html#getBody--"><code>RestRequest.getBody()</code></a> method
-               for <code>application/x-www-form-urlencoded POST</code> posts, since it will trigger the underlying servlet
-               API to parse the body content as key-value pairs resulting in empty content.
-               <br>The <a href="org/apache/juneau/rest/annotation/Query.html" title="annotation in org.apache.juneau.rest.annotation"><code>@Query</code></a> annotation can be used to retrieve a URL parameter in the URL string without triggering the
-               servlet to drain the body content.
-         </ul>
-         <h5 class='section'>See Also:</h5>
-         <ul>
-            <li class='ja'><a href="org/apache/juneau/rest/annotation/FormData.html" title="annotation in org.apache.juneau.rest.annotation"><code>FormData</code></a>
-            <li class='ja'><a href="org/apache/juneau/rest/annotation/HasFormData.html" title="annotation in org.apache.juneau.rest.annotation"><code>HasFormData</code></a>
-            <li class='jc'><a href="org/apache/juneau/rest/RequestFormData.html" title="class in org.apache.juneau.rest"><code>RequestFormData</code></a>
-         </ul>
-      </div>
-      <!-- ======================================================================================================== -->
-      <a id="juneau-rest-server.Query"></a>
-      <h4 class='topic' onclick='toggle(this)'>3.1.9 - @Query</h4>
-      <div class='topic'>
-         <p>
-            The <a href="org/apache/juneau/rest/annotation/Query.html" title="annotation in org.apache.juneau.rest.annotation"><code>@Query</code></a> annotation is used to retrieve request URL query parameters.
-            <br>It's identical to <a href="org/apache/juneau/rest/annotation/FormData.html" title="annotation in org.apache.juneau.rest.annotation"><code>@FormData</code></a>, but only retrieves the parameter from the URL string, not URL-encoded form posts.
-         </p>
-         <p>
-            Unlike <a href="org/apache/juneau/rest/annotation/FormData.html" title="annotation in org.apache.juneau.rest.annotation"><code>@FormData</code></a>, using this annotation does not result in the servlet reading the contents of
-            URL-encoded form posts.
-            <br>Therefore, this annotation can be used in conjunction with the <a href="org/apache/juneau/rest/annotation/Body.html" title="annotation in org.apache.juneau.rest.annotation"><code>@Body</code></a> annotation or
-            <a href="org/apache/juneau/rest/RestRequest.html#getBody--"><code>RestRequest.getBody()</code></a> method for <code>application/x-www-form-urlencoded POST</code> calls.
-         </p>
-         <h5 class='figure'>Example:</h5>
-         <p class='bcode'>
+      </p>
+      <p>
+         The registered <a href="org/apache/juneau/rest/RestContext.html#REST_partParser"><code>RestContext.REST_partParser</code></a> is used to convert strings
+         to POJOs and controls what POJO types are supported.
+         <br>As a general rule, any POJO convertable from a String is supported.
+      </p>
+      <ul class='doctree'>
+         <li class='warn'>
+            This annotation should not be combined with the <a href="org/apache/juneau/rest/annotation/Body.html" title="annotation in org.apache.juneau.rest.annotation"><code>@Body</code></a> annotation or <a href="org/apache/juneau/rest/RestRequest.html#getBody--"><code>RestRequest.getBody()</code></a> method
+            for <code>application/x-www-form-urlencoded POST</code> posts, since it will trigger the underlying servlet
+            API to parse the body content as key-value pairs resulting in empty content.
+            <br>The <a href="org/apache/juneau/rest/annotation/Query.html" title="annotation in org.apache.juneau.rest.annotation"><code>@Query</code></a> annotation can be used to retrieve a URL parameter in the URL string without triggering the
+            servlet to drain the body content.
+      </ul>
+      <h5 class='section'>See Also:</h5>
+      <ul>
+         <li class='ja'><a href="org/apache/juneau/rest/annotation/FormData.html" title="annotation in org.apache.juneau.rest.annotation"><code>FormData</code></a>
+         <li class='ja'><a href="org/apache/juneau/rest/annotation/HasFormData.html" title="annotation in org.apache.juneau.rest.annotation"><code>HasFormData</code></a>
+         <li class='jc'><a href="org/apache/juneau/rest/RequestFormData.html" title="class in org.apache.juneau.rest"><code>RequestFormData</code></a>
+      </ul>
+   </div>
+   
+   <!-- ======================================================================================================== -->
+   <a id="juneau-rest-server.Query"></a>
+   <h3 class='topic' onclick='toggle(this)'>7.9 - @Query</h3>
+   <div class='topic'>
+      <p>
+         The <a href="org/apache/juneau/rest/annotation/Query.html" title="annotation in org.apache.juneau.rest.annotation"><code>@Query</code></a> annotation is used to retrieve request URL query parameters.
+         <br>It's identical to <a href="org/apache/juneau/rest/annotation/FormData.html" title="annotation in org.apache.juneau.rest.annotation"><code>@FormData</code></a>, but only retrieves the parameter from the URL string, not URL-encoded form posts.
+      </p>
+      <p>
+         Unlike <a href="org/apache/juneau/rest/annotation/FormData.html" title="annotation in org.apache.juneau.rest.annotation"><code>@FormData</code></a>, using this annotation does not result in the servlet reading the contents of
+         URL-encoded form posts.
+         <br>Therefore, this annotation can be used in conjunction with the <a href="org/apache/juneau/rest/annotation/Body.html" title="annotation in org.apache.juneau.rest.annotation"><code>@Body</code></a> annotation or
+         <a href="org/apache/juneau/rest/RestRequest.html#getBody--"><code>RestRequest.getBody()</code></a> method for <code>application/x-www-form-urlencoded POST</code> calls.
+      </p>
+      <h5 class='figure'>Example:</h5>
+      <p class='bcode'>
    <ja>@RestMethod</ja>(name=<jsf>GET</jsf>)
    <jk>public void</jk> doGet(RestRequest req, RestResponse res,
       <ja>@Query</ja>(<js>"p1"</js>) <jk>int</jk> p1, 
@@ -6891,84 +6837,84 @@
       String p2 = q.get(<js>"p2"</js>, String.<jk>class</jk>);
       UUID p3 = q.get(<js>"p3"</js>, UUID.<jk>class</jk>);
    }
-         </p>
-         <p>
-            The registered <a href="org/apache/juneau/rest/RestContext.html#REST_partParser"><code>RestContext.REST_partParser</code></a> is used to convert strings
-            to POJOs and controls what POJO types are supported.
-            <br>As a general rule, any POJO convertable from a String is supported.
-         </p>
-         <h5 class='section'>See Also:</h5>
-         <ul>
-            <li class='ja'><a href="org/apache/juneau/rest/annotation/Query.html" title="annotation in org.apache.juneau.rest.annotation"><code>Query</code></a>
-            <li class='ja'><a href="org/apache/juneau/rest/annotation/HasQuery.html" title="annotation in org.apache.juneau.rest.annotation"><code>HasQuery</code></a>
-            <li class='jc'><a href="org/apache/juneau/rest/RequestQuery.html" title="class in org.apache.juneau.rest"><code>RequestQuery</code></a>
-         </ul>
-      </div>
-      
-      <!-- ======================================================================================================== -->
-      <a id="juneau-rest-server.Header"></a>
-      <h4 class='topic' onclick='toggle(this)'>3.1.10 - @Header</h4>
-      <div class='topic'>
-         <p>
-            The <a href="org/apache/juneau/rest/annotation/Header.html" title="annotation in org.apache.juneau.rest.annotation"><code>@Header</code></a> is used to retrieve request headers.
-         </p>
-         <h5 class='figure'>Example:</h5>
-         <p class='bcode'>
+      </p>
+      <p>
+         The registered <a href="org/apache/juneau/rest/RestContext.html#REST_partParser"><code>RestContext.REST_partParser</code></a> is used to convert strings
+         to POJOs and controls what POJO types are supported.
+         <br>As a general rule, any POJO convertable from a String is supported.
+      </p>
+      <h5 class='section'>See Also:</h5>
+      <ul>
+         <li class='ja'><a href="org/apache/juneau/rest/annotation/Query.html" title="annotation in org.apache.juneau.rest.annotation"><code>Query</code></a>
+         <li class='ja'><a href="org/apache/juneau/rest/annotation/HasQuery.html" title="annotation in org.apache.juneau.rest.annotation"><code>HasQuery</code></a>
+         <li class='jc'><a href="org/apache/juneau/rest/RequestQuery.html" title="class in org.apache.juneau.rest"><code>RequestQuery</code></a>
+      </ul>
+   </div>
+   
+   <!-- ======================================================================================================== -->
+   <a id="juneau-rest-server.Header"></a>
+   <h3 class='topic' onclick='toggle(this)'>7.10 - @Header</h3>
+   <div class='topic'>
+      <p>
+         The <a href="org/apache/juneau/rest/annotation/Header.html" title="annotation in org.apache.juneau.rest.annotation"><code>@Header</code></a> is used to retrieve request headers.
+      </p>
+      <h5 class='figure'>Example:</h5>
+      <p class='bcode'>
    <ja>@RestMethod</ja>(name=<jsf>GET</jsf>)
    <jk>public void</jk> doGet(RestRequest req, RestResponse res, <ja>@Header</ja>(<js>"ETag"</js>) UUID etag) {...}
-         </p>
-         <p>
-            This is functionally equivalent to the following code:
-         </p>
-         <p class='bcode'>
+      </p>
+      <p>
+         This is functionally equivalent to the following code:
+      </p>
+      <p class='bcode'>
    <ja>@RestMethod</ja>(name=<jsf>GET</jsf>)
    <jk>public void</jk> doPostPerson(RestRequest req, RestResponse res) {
       RequestHeaders h = req.getHeaders();
       UUID etag = h.get(<js>"ETag"</js>, UUID.<jk>class</jk>);
    }
-         </p>
-         <p>
-            The registered <a href="org/apache/juneau/rest/RestContext.html#REST_partParser"><code>RestContext.REST_partParser</code></a> is used to convert strings
-            to POJOs and controls what POJO types are supported.
-            <br>As a general rule, any POJO convertible from a String is supported.
-         </p>
-         <h5 class='section'>See Also:</h5>
-         <ul>
-            <li class='ja'><a href="org/apache/juneau/rest/annotation/Header.html" title="annotation in org.apache.juneau.rest.annotation"><code>Header</code></a>
-            <li class='jc'><a href="org/apache/juneau/rest/RequestHeaders.html" title="class in org.apache.juneau.rest"><code>RequestHeaders</code></a>
-         </ul>
-      </div>
-      
-      <!-- ======================================================================================================== -->
-      <a id="juneau-rest-server.Serializers"></a>
-      <h4 class='topic' onclick='toggle(this)'>3.1.11 - Serializers</h4>
-      <div class='topic'>
-         <p>
-            REST resources use the <a href="org/apache/juneau/serializer/Serializer.html" title="class in org.apache.juneau.serializer"><code>Serializer</code></a> API for defining serializers for 
-            serializing response POJOs.
-         </p>
-         <p>
-            The servlet will pick which serializer to use by matching the request <l>Accept</l> header with the
-            media types defined through the <a href="org/apache/juneau/serializer/Serializer.html#getMediaTypes--"><code>Serializer.getMediaTypes()</code></a> method.
-         </p>
-         <p>
-            Serializers can be associated with REST servlets in the following ways:
-         </p>
-         <ul class='doctree'>
-            <li class='ja'>
-               <a href="org/apache/juneau/rest/annotation/RestResource.html#serializers--"><code>RestResource.serializers()</code></a> 
-               - Annotation on resource Java class.
-            <li class='ja'>
-               <a href="org/apache/juneau/rest/annotation/RestMethod.html#serializers--"><code>RestMethod.serializers()</code></a> 
-               - Annotation on resource Java method.
-            <li class='jf'>
-               <a href="org/apache/juneau/rest/RestContext.html#REST_serializers"><code>RestContext.REST_serializers</code></a> 
-               - Programmatic.
-         </ul>
-         <p>
-            The following are all equivalent ways of defining serializers used by a resource:
-         </p>     
-         <p class='bcode'>
+      </p>
+      <p>
+         The registered <a href="org/apache/juneau/rest/RestContext.html#REST_partParser"><code>RestContext.REST_partParser</code></a> is used to convert strings
+         to POJOs and controls what POJO types are supported.
+         <br>As a general rule, any POJO convertible from a String is supported.
+      </p>
+      <h5 class='section'>See Also:</h5>
+      <ul>
+         <li class='ja'><a href="org/apache/juneau/rest/annotation/Header.html" title="annotation in org.apache.juneau.rest.annotation"><code>Header</code></a>
+         <li class='jc'><a href="org/apache/juneau/rest/RequestHeaders.html" title="class in org.apache.juneau.rest"><code>RequestHeaders</code></a>
+      </ul>
+   </div>
+   
+   <!-- ======================================================================================================== -->
+   <a id="juneau-rest-server.Serializers"></a>
+   <h3 class='topic' onclick='toggle(this)'>7.11 - Serializers</h3>
+   <div class='topic'>
+      <p>
+         REST resources use the <a href="org/apache/juneau/serializer/Serializer.html" title="class in org.apache.juneau.serializer"><code>Serializer</code></a> API for defining serializers for 
+         serializing response POJOs.
+      </p>
+      <p>
+         The servlet will pick which serializer to use by matching the request <l>Accept</l> header with the
+         media types defined through the <a href="org/apache/juneau/serializer/Serializer.html#getMediaTypes--"><code>Serializer.getMediaTypes()</code></a> method.
+      </p>
+      <p>
+         Serializers can be associated with REST servlets in the following ways:
+      </p>
+      <ul class='doctree'>
+         <li class='ja'>
+            <a href="org/apache/juneau/rest/annotation/RestResource.html#serializers--"><code>RestResource.serializers()</code></a> 
+            - Annotation on resource Java class.
+         <li class='ja'>
+            <a href="org/apache/juneau/rest/annotation/RestMethod.html#serializers--"><code>RestMethod.serializers()</code></a> 
+            - Annotation on resource Java method.
+         <li class='jf'>
+            <a href="org/apache/juneau/rest/RestContext.html#REST_serializers"><code>RestContext.REST_serializers</code></a> 
+            - Programmatic.
+      </ul>
+      <p>
+         The following are all equivalent ways of defining serializers used by a resource:
+      </p>     
+      <p class='bcode'>
    <jc>// Option #1 - Defined via annotation.</jc>
    <ja>@RestResource</ja>(serializers={JsonSerializer.<jk>class</jk>, XmlSerializer.<jk>class</jk>})
    <jk>public class</jk> MyResource {
@@ -6999,43 +6945,43 @@
          <jk>return new</jk> MyPojo(); 
       }
    }
-         </p>
-         
-         <h5 class='section'>See Also:</h5>
-         <ul class='doctree'>
-            <li class='jf'><a href="org/apache/juneau/rest/RestContext.html#REST_serializers"><code>RestContext.REST_serializers</code></a>
-         </ul>
-      </div>
+      </p>
+      
+      <h5 class='section'>See Also:</h5>
+      <ul class='doctree'>
+         <li class='jf'><a href="org/apache/juneau/rest/RestContext.html#REST_serializers"><code>RestContext.REST_serializers</code></a>
+      </ul>
+   </div>
 
-      <!-- ======================================================================================================== -->
-      <a id="juneau-rest-server.Parsers"></a>
-      <h4 class='topic' onclick='toggle(this)'>3.1.12 - Parsers</h4>
-      <div class='topic'>
-         <p>
-            REST resources use the <a href="org/apache/juneau/parser/Parser.html" title="class in org.apache.juneau.parser"><code>Parser</code></a> API for defining parsers for parsing request
-            body content and converting them into POJOs.
-         </p>
-         <p>
-            The servlet will pick which parser to use by matching the request <l>Content-Type</l> header with the
-            media types defined through the <a href="org/apache/juneau/parser/Parser.html#getMediaTypes--"><code>Parser.getMediaTypes()</code></a> method.
-         </p>
-         <p>
-            Parsers can be associated with REST servlets in the following ways:
-         </p>
-         <ul class='doctree'>
-            <li class='ja'>
-               <a href="org/apache/juneau/rest/annotation/RestResource.html#parsers--"><code>RestResource.parsers()</code></a> 
-               - Annotation on resource Java class.
-            <li class='ja'>
-               <a href="org/apache/juneau/rest/annotation/RestMethod.html#parsers--"><code>RestMethod.parsers()</code></a> 
-               - Annotation on resource Java method.
-            <li class='jm'>
-               <a href="org/apache/juneau/rest/RestContextBuilder.html#parsers-java.lang.Class...-"><code>RestContextBuilder.parsers(Class[])</code></a> 
-               - Programmatic.
-         </ul>
-         <p>
-            The following are all equivalent ways of defining parsers used by a resource:
-         </p>
+   <!-- ======================================================================================================== -->
+   <a id="juneau-rest-server.Parsers"></a>
+   <h3 class='topic' onclick='toggle(this)'>7.12 - Parsers</h3>
+   <div class='topic'>
+      <p>
+         REST resources use the <a href="org/apache/juneau/parser/Parser.html" title="class in org.apache.juneau.parser"><code>Parser</code></a> API for defining parsers for parsing request
+         body content and converting them into POJOs.
+      </p>
+      <p>
+         The servlet will pick which parser to use by matching the request <l>Content-Type</l> header with the
+         media types defined through the <a href="org/apache/juneau/parser/Parser.html#getMediaTypes--"><code>Parser.getMediaTypes()</code></a> method.
+      </p>
+      <p>
+         Parsers can be associated with REST servlets in the following ways:
+      </p>
+      <ul class='doctree'>
+         <li class='ja'>
+            <a href="org/apache/juneau/rest/annotation/RestResource.html#parsers--"><code>RestResource.parsers()</code></a> 
+            - Annotation on resource Java class.
+         <li class='ja'>
+            <a href="org/apache/juneau/rest/annotation/RestMethod.html#parsers--"><code>RestMethod.parsers()</code></a> 
+            - Annotation on resource Java method.
+         <li class='jm'>
+            <a href="org/apache/juneau/rest/RestContextBuilder.html#parsers-java.lang.Class...-"><code>RestContextBuilder.parsers(Class[])</code></a> 
+            - Programmatic.
+      </ul>
+      <p>
+         The following are all equivalent ways of defining parsers used by a resource:
+      </p>
       <p class='bcode'>
    <jc>// Option #1 - Defined via annotation.</jc>
    <ja>@RestResource</ja>(parsers={JsonParser.<jk>class</jk>, XmlParser.<jk>class</jk>})
@@ -7059,37 +7005,37 @@
       <jk>public void</jk> init(RestContextBuilder builder) <jk>throws</jk> Exception {
          builder.parsers(JsonParser.<jk>class</jk>, XmlParser.<jk>class</jk>);
       }
-
-      <jc>// Override at the method level.</jc>
-      <ja>@RestMethod</ja>(parsers={HtmlParser.<jk>class</jk>})
-      <jk>public</jk> Object myMethod(<ja>@Body</ja> MyPojo myPojo) {
-         <jc>// Do something with your parsed POJO.</jc>
-      }
-   }
-         </p>
-         <h5 class='section'>See Also:</h5>
-         <ul class='doctree'>
-            <li class='jf'><a href="org/apache/juneau/rest/RestContext.html#REST_parsers"><code>RestContext.REST_parsers</code></a>
-         </ul>
-      </div>
-      
-      <!-- ======================================================================================================== -->
-      <a id="juneau-rest-server.Properties"></a>
-      <h4 class='topic' onclick='toggle(this)'>3.1.13 - Properties</h4>
-      <div class='topic'>
-         <p>
-            As shown in previous sections, Juneau serializers and parsers are highly-configurable through properties.
-            (See <a class='doclink' href='#juneau-marshall.ConfigurableProperties'>Configurable Properties</a>)
-         </p>
-         <p>
-            These properties can be defined for serializers and parsers registered on a REST resource via the following:
-         </p>
-         <ul>
-            <li class='ja'><a href="org/apache/juneau/rest/annotation/RestResource.html#properties--"><code>RestResource.properties()</code></a> 
-            <li class='jc'><a href="org/apache/juneau/rest/RestContextBuilder.html" title="class in org.apache.juneau.rest"><code>RestContextBuilder</code></a> - Various methods on the context builder.
-         </ul>
-         <h5 class='figure'>Example:</h5>
-         <p class='bcode'>
+
+      <jc>// Override at the method level.</jc>
+      <ja>@RestMethod</ja>(parsers={HtmlParser.<jk>class</jk>})
+      <jk>public</jk> Object myMethod(<ja>@Body</ja> MyPojo myPojo) {
+         <jc>// Do something with your parsed POJO.</jc>
+      }
+   }
+      </p>
+      <h5 class='section'>See Also:</h5>
+      <ul class='doctree'>
+         <li class='jf'><a href="org/apache/juneau/rest/RestContext.html#REST_parsers"><code>RestContext.REST_parsers</code></a>
+      </ul>
+   </div>
+   
+   <!-- ======================================================================================================== -->
+   <a id="juneau-rest-server.Properties"></a>
+   <h3 class='topic' onclick='toggle(this)'>7.13 - Properties</h3>
+   <div class='topic'>
+      <p>
+         As shown in previous sections, Juneau serializers and parsers are highly-configurable through properties.
+         (See <a class='doclink' href='#juneau-marshall.ConfigurableProperties'>Configurable Properties</a>)
+      </p>
+      <p>
+         These properties can be defined for serializers and parsers registered on a REST resource via the following:
+      </p>
+      <ul>
+         <li class='ja'><a href="org/apache/juneau/rest/annotation/RestResource.html#properties--"><code>RestResource.properties()</code></a> 
+         <li class='jc'><a href="org/apache/juneau/rest/RestContextBuilder.html" title="class in org.apache.juneau.rest"><code>RestContextBuilder</code></a> - Various methods on the context builder.
+      </ul>
+      <h5 class='figure'>Example:</h5>
+      <p class='bcode'>
    <jk>import static</jk> org.apache.juneau.BeanContext.*;
    <jk>import static</jk> org.apache.juneau.serializer.Serializer.*;
    <jk>import static</jk> org.apache.juneau.json.JsonSerializer.*;
@@ -7108,11 +7054,11 @@
       }
    )
    <jk>public</jk> MyRestServlet <jk>extends</jk> RestServletDefault {...}
-         </p>
-         <p>
-            The programmatic equivalent to this is:
-         </p>
-         <p class='bcode'>
+      </p>
+      <p>
+         The programmatic equivalent to this is:
+      </p>
+      <p class='bcode'>
    <jc>// Servlet with properties applied</jc>
    <ja>@RestResource</ja>(...)
    <jk>public</jk> MyRestServlet <jk>extends</jk> RestServletDefault {
@@ -7125,15 +7071,15 @@
             .set(<jsf>JSON_escapeSolidus</jsf>, <jk>true</jk>);
       }
    }
-         </p>
-         <p>
-            Properties can also be overridden at the Java method level:
-         </p>
-         <ul>
-            <li class='ja'><a href="org/apache/juneau/rest/annotation/RestMethod.html#properties--"><code>RestMethod.properties()</code></a> 
-            <li class='jc'><a href="org/apache/juneau/rest/RequestProperties.html" title="class in org.apache.juneau.rest"><code>RequestProperties</code></a> 
-         </ul>
-         <p class='bcode'>
+      </p>
+      <p>
+         Properties can also be overridden at the Java method level:
+      </p>
+      <ul>
+         <li class='ja'><a href="org/apache/juneau/rest/annotation/RestMethod.html#properties--"><code>RestMethod.properties()</code></a> 
+         <li class='jc'><a href="org/apache/juneau/rest/RequestProperties.html" title="class in org.apache.juneau.rest"><code>RequestProperties</code></a> 
+      </ul>
+      <p class='bcode'>
    <jc>// GET method with method-level properties</jc>
    <ja>@RestMethod</ja>(
       name=<jsf>GET</jsf>, path=<js>"/*"</js>,
@@ -7150,11 +7096,11 @@
    <jk>public</jk> Object doGet() {
       ...
    }
-         </p>
-         <p>
-            Using the <a href="org/apache/juneau/rest/RequestProperties.html" title="class in org.apache.juneau.rest"><code>RequestProperties</code></a> object:
-         </p>
-         <p class='bcode'>
+      </p>
+      <p>
+         Using the <a href="org/apache/juneau/rest/RequestProperties.html" title="class in org.apache.juneau.rest"><code>RequestProperties</code></a> object:
+      </p>
+      <p class='bcode'>
    <jc>// Access it from RestRequest.</jc>
    <jk>public</jk> Object doGet(RestRequest req) {
       RequestProperties properties = req.getProperties();
@@ -7165,51 +7111,51 @@
    <jk>public</jk> Object doGet(RequestProperties properties) {
       properties.put(<jsf>JSON_escapeSolidus</jsf>, <jk>true</jk>);
    }
-         </p>
-         <p>
-            Properties set via <a href="org/apache/juneau/rest/RequestProperties.html" title="class in org.apache.juneau.rest"><code>RequestProperties</code></a> are session-override
-            properties that are passed in through <a href="org/apache/juneau/serializer/SerializerSessionArgs.html" title="class in org.apache.juneau.serializer"><code>SerializerSessionArgs</code></a>
-            and <a href="org/apache/juneau/parser/ParserSessionArgs.html" title="class in org.apache.juneau.parser"><code>ParserSessionArgs</code></a> and can only be used on configuration settings
-            marked as <code>Session-overridable: <jk>true</jk></code>.
-         </p>        
-         <p>
-            Properties are open-ended and can be used for other purposes.
-            <br>They're made available through the following methods:
-         </p>
-         <ul>
-            <li class='jm'><a href="org/apache/juneau/rest/RestContext.html#getProperties--"><code>RestContext.getProperties()</code></a>
-            <li class='jm'><a href="org/apache/juneau/rest/RestRequest.html#getProperties--"><code>RestRequest.getProperties()</code></a>
-         </ul>
-         <h5 class='section'>See Also:</h5>
-         <ul>
-            <li class='ja'><a href="org/apache/juneau/rest/annotation/RestResource.html#flags--"><code>RestResource.flags()</code></a> - Shorthand for boolean properties.
-            <li class='ja'><a href="org/apache/juneau/rest/annotation/RestMethod.html#flags--"><code>RestMethod.flags()</code></a> - Shorthand for boolean properties.
-            <li class='jc'><a href="org/apache/juneau/rest/RestContextProperties.html" title="class in org.apache.juneau.rest"><code>RestContextProperties</code></a> 
-            <li class='jc'><a href="org/apache/juneau/rest/RestMethodProperties.html" title="class in org.apache.juneau.rest"><code>RestMethodProperties</code></a> 
-            <li class='jc'><a href="org/apache/juneau/rest/RequestProperties.html" title="class in org.apache.juneau.rest"><code>RequestProperties</code></a> 
-         </ul>
-      </div>
-      
-      <!-- ======================================================================================================== -->
-      <a id="juneau-rest-server.Transforms"></a>
-      <h4 class='topic' onclick='toggle(this)'>3.1.14 - Transforms</h4>
-      <div class='topic'>
-         <p>
-            The Juneau serializers and parsers can be configured on how to handle POJOs through the use of Transforms.
-            (See <a class='doclink' href='#juneau-marshall.Transforms'>Transforms</a>)
-         </p>
-         <p>
-            Transforms are associated serializers and parsers registered on a REST resource via the following:
-         </p>
-         <ul>
-            <li class='ja'><a href="org/apache/juneau/rest/annotation/RestResource.html#beanFilters--"><code>RestResource.beanFilters()</code></a> 
-            <li class='ja'><a href="org/apache/juneau/rest/annotation/RestResource.html#pojoSwaps--"><code>RestResource.pojoSwaps()</code></a> 
-            <li class='ja'><a href="org/apache/juneau/rest/annotation/RestMethod.html#beanFilters--"><code>RestMethod.beanFilters()</code></a> 
-            <li class='ja'><a href="org/apache/juneau/rest/annotation/RestMethod.html#pojoSwaps--"><code>RestMethod.pojoSwaps()</code></a>
-            <li class='jm'><a href="org/apache/juneau/rest/RestContextBuilder.html#beanFilters-java.lang.Object...-"><code>RestContextBuilder.beanFilters(Object...)</code></a> 
-            <li class='jm'><a href="org/apache/juneau/rest/RestContextBuilder.html#pojoSwaps-java.lang.Object...-"><code>RestContextBuilder.pojoSwaps(Object...)</code></a> 
-         </ul>
-         <p class='bcode'>
+      </p>
+      <p>
+         Properties set via <a href="org/apache/juneau/rest/RequestProperties.html" title="class in org.apache.juneau.rest"><code>RequestProperties</code></a> are session-override
+         properties that are passed in through <a href="org/apache/juneau/serializer/SerializerSessionArgs.html" title="class in org.apache.juneau.serializer"><code>SerializerSessionArgs</code></a>
+         and <a href="org/apache/juneau/parser/ParserSessionArgs.html" title="class in org.apache.juneau.parser"><code>ParserSessionArgs</code></a> and can only be used on configuration settings
+         marked as <code>Session-overridable: <jk>true</jk></code>.
+      </p>        
+      <p>
+         Properties are open-ended and can be used for other purposes.
+         <br>They're made available through the following methods:
+      </p>
+      <ul>
+         <li class='jm'><a href="org/apache/juneau/rest/RestContext.html#getProperties--"><code>RestContext.getProperties()</code></a>
+         <li class='jm'><a href="org/apache/juneau/rest/RestRequest.html#getProperties--"><code>RestRequest.getProperties()</code></a>
+      </ul>
+      <h5 class='section'>See Also:</h5>
+      <ul>
+         <li class='ja'><a href="org/apache/juneau/rest/annotation/RestResource.html#flags--"><code>RestResource.flags()</code></a> - Shorthand for boolean properties.
+         <li class='ja'><a href="org/apache/juneau/rest/annotation/RestMethod.html#flags--"><code>RestMethod.flags()</code></a> - Shorthand for boolean properties.
+         <li class='jc'><a href="org/apache/juneau/rest/RestContextProperties.html" title="class in org.apache.juneau.rest"><code>RestContextProperties</code></a> 
+         <li class='jc'><a href="org/apache/juneau/rest/RestMethodProperties.html" title="class in org.apache.juneau.rest"><code>RestMethodProperties</code></a> 
+         <li class='jc'><a href="org/apache/juneau/rest/RequestProperties.html" title="class in org.apache.juneau.rest"><code>RequestProperties</code></a> 
+      </ul>
+   </div>
+   
+   <!-- ======================================================================================================== -->
+   <a id="juneau-rest-server.Transforms"></a>
+   <h3 class='topic' onclick='toggle(this)'>7.14 - Transforms</h3>
+   <div class='topic'>
+      <p>
+         The Juneau serializers and parsers can be configured on how to handle POJOs through the use of Transforms.
+         (See <a class='doclink' href='#juneau-marshall.Transforms'>Transforms</a>)
+      </p>
+      <p>
+         Transforms are associated serializers and parsers registered on a REST resource via the following:
+      </p>
+      <ul>
+         <li class='ja'><a href="org/apache/juneau/rest/annotation/RestResource.html#beanFilters--"><code>RestResource.beanFilters()</code></a> 
+         <li class='ja'><a href="org/apache/juneau/rest/annotation/RestResource.html#pojoSwaps--"><code>RestResource.pojoSwaps()</code></a> 
+         <li class='ja'><a href="org/apache/juneau/rest/annotation/RestMethod.html#beanFilters--"><code>RestMethod.beanFilters()</code></a> 
+         <li class='ja'><a href="org/apache/juneau/rest/annotation/RestMethod.html#pojoSwaps--"><code>RestMethod.pojoSwaps()</code></a>
+         <li class='jm'><a href="org/apache/juneau/rest/RestContextBuilder.html#beanFilters-java.lang.Object...-"><code>RestContextBuilder.beanFilters(Object...)</code></a> 
+         <li class='jm'><a href="org/apache/juneau/rest/RestContextBuilder.html#pojoSwaps-java.lang.Object...-"><code>RestContextBuilder.pojoSwaps(Object...)</code></a> 
+      </ul>
+      <p class='bcode'>
    <jc>// Servlet with transforms applied</jc>
    <ja>@RestResource</ja>(
       pojoSwaps={
@@ -7225,11 +7171,11 @@
       }
    )
    <jk>public</jk> MyRestServlet <jk>extends</jk> RestServletDefault {...}
-         </p>
-         <p>
-            The programmatic equivalent to this is:
-         </p>
-         <p class='bcode'>
+      </p>
+      <p>
+         The programmatic equivalent to this is:
+      </p>
+      <p class='bcode'>
    <jc>// Servlet with properties applied</jc>
    <ja>@RestResource</ja>(...)
    <jk>public</jk> MyRestServlet <jk>extends</jk> RestServletDefault {
@@ -7244,25 +7190,25 @@
             .beanFilters(MyInterface.<jk>class</jk>);
       }
    }
-         </p>
-      </div>
-      
-      <!-- ======================================================================================================== -->
-      <a id="juneau-rest-server.Guards"></a>
-      <h4 class='topic' onclick='toggle(this)'>3.1.15 - Guards</h4>
-      <div class='topic'>
-         <p>
-            Guards are classes that control access to REST classes and methods.
-         </p>
-         <p>
-            Guards are associated with resource classes and methods via the following:
-         </p>
-         <ul>
-            <li class='ja'><a href="org/apache/juneau/rest/annotation/RestResource.html#guards--"><code>RestResource.guards()</code></a> 
-            <li class='ja'><a href="org/apache/juneau/rest/annotation/RestMethod.html#guards--"><code>RestMethod.guards()</code></a> 
-            <li class='jm'><a href="org/apache/juneau/rest/RestContextBuilder.html#guards-java.lang.Class...-"><code>RestContextBuilder.guards(Class...)</code></a> 
-         </ul>
-         <p class='bcode'>
+      </p>
+   </div>
+   
+   <!-- ======================================================================================================== -->
+   <a id="juneau-rest-server.Guards"></a>
+   <h3 class='topic' onclick='toggle(this)'>7.15 - Guards</h3>
+   <div class='topic'>
+      <p>
+         Guards are classes that control access to REST classes and methods.
+      </p>
+      <p>
+         Guards are associated with resource classes and methods via the following:
+      </p>
+      <ul>
+         <li class='ja'><a href="org/apache/juneau/rest/annotation/RestResource.html#guards--"><code>RestResource.guards()</code></a> 
+         <li class='ja'><a href="org/apache/juneau/rest/annotation/RestMethod.html#guards--"><code>RestMethod.guards()</code></a> 
+         <li class='jm'><a href="org/apache/juneau/rest/RestContextBuilder.html#guards-java.lang.Class...-"><code>RestContextBuilder.guards(Class...)</code></a> 
+      </ul>
+      <p class='bcode'>
    <jc>// Define a guard that only lets Billy make a request</jc>
    <jk>public</jk> BillyGuard <jk>extends</jk> RestGuard {
 
@@ -7280,16 +7226,16 @@
       <ja>@RestMethod</ja>(name=<js>"DELETE"</js>)
       <jk>public</jk> doDelete(RestRequest req, RestResponse res) <jk>throws</jk> Exception {...}
    }
-         </p>
-         <p>
-            A common use for guards is to only allow admin access to certain Java methods...
-         </p>
-         <p class='bcode'>
+      </p>
+      <p>
+         A common use for guards is to only allow admin access to certain Java methods...
+      </p>
+      <p class='bcode'>
    <jc>// DELETE method</jc>
    <ja>@RestMethod</ja>(name=<jsf>DELETE</jsf>, guards={AdminGuard.<jk>class</jk>})
    <jk>public void</jk> doDelete(RestRequest req, RestResponse res) <jk>throws</jk> Exception {...}
-         </p>
-         <p class='bcode'>
+      </p>
+      <p class='bcode'>
    <jk>public class</jk> AdminGuard <jk>extends</jk> RestGuard {
 
       <ja>@Override</ja> <jc>/* RestGuard */</jc>
@@ -7297,14 +7243,14 @@
          <jk>return</jk> req.getUserPrincipal().isUserInRole(<js>"ADMIN"</js>);
       }
    }
-         </p>
-         <p>
-            A guard failure results in an <l>HTTP 401 Unauthorized</l> response.
-            <br>However, this can be configured by overriding the 
-            <a href="org/apache/juneau/rest/RestGuard.html#guard-org.apache.juneau.rest.RestRequest-org.apache.juneau.rest.RestResponse-"><code>RestGuard.guard(RestRequest,RestResponse)</code></a> and processing the response 
-            yourself.
-         </p>
-         <p class='bcode'>
+      </p>
+      <p>
+         A guard failure results in an <l>HTTP 401 Unauthorized</l> response.
+         <br>However, this can be configured by overriding the 
+         <a href="org/apache/juneau/rest/RestGuard.html#guard-org.apache.juneau.rest.RestRequest-org.apache.juneau.rest.RestResponse-"><code>RestGuard.guard(RestRequest,RestResponse)</code></a> and processing the response 
+         yourself.
+      </p>
+      <p class='bcode'>
    <jk>public class</jk> AdminGuard <jk>extends</jk> RestGuard {
 
       <ja>@Override</ja> <jc>/* RestGuard */</jc>
@@ -7314,45 +7260,45 @@
          <jk>return true</jk>;
       }
    }
-         </p>
-         <p>
-            When guards are associated at the class-level, it's equivalent to associating guards on all Java methods on 
-            the servlet.
-            <br>If multiple guards are present, ALL guards must pass.
-         </p>
-         <h5 class='section'>See Also:</h5>
-         <ul>
-            <li class='jf'><a href="org/apache/juneau/rest/RestContext.html#REST_guards"><code>RestContext.REST_guards</code></a>
-         </ul>
-      </div>
-      
-      <!-- ======================================================================================================== -->
-      <a id="juneau-rest-server.Converters"></a>
-      <h4 class='topic' onclick='toggle(this)'>3.1.16 - Converters</h4>
-      <div class='topic'>
-         <p>
-            Converters can be thought of as "post-processors" for POJOs before they get passed to the serializers.
-         </p>
-         <p>
-            Converters are associated with resource classes and methods via the following:
-         </p>
-         <ul>
-            <li class='ja'><a href="org/apache/juneau/rest/annotation/RestResource.html#converters--"><code>RestResource.converters()</code></a> 
-            <li class='ja'><a href="org/apache/juneau/rest/annotation/RestMethod.html#converters--"><code>RestMethod.converters()</code></a> 
-            <li class='jm'><a href="org/apache/juneau/rest/RestContextBuilder.html#converters-java.lang.Class...-"><code>RestContextBuilder.converters(Class...)</code></a> 
-         </ul>
-         <h5 class='figure'>Example:</h5>
-         <p class='bcode'>
+      </p>
+      <p>
+         When guards are associated at the class-level, it's equivalent to associating guards on all Java methods on 
+         the servlet.
+         <br>If multiple guards are present, ALL guards must pass.
+      </p>
+      <h5 class='section'>See Also:</h5>
+      <ul>
+         <li class='jf'><a href="org/apache/juneau/rest/RestContext.html#REST_guards"><code>RestContext.REST_guards</code></a>
+      </ul>
+   </div>
+   
+   <!-- ======================================================================================================== -->
+   <a id="juneau-rest-server.Converters"></a>
+   <h3 class='topic' onclick='toggle(this)'>7.16 - Converters</h3>
+   <div class='topic'>
+      <p>
+         Converters can be thought of as "post-processors" for POJOs before they get passed to the serializers.
+      </p>
+      <p>
+         Converters are associated with resource classes and methods via the following:
+      </p>
+      <ul>
+         <li class='ja'><a href="org/apache/juneau/rest/annotation/RestResource.html#converters--"><code>RestResource.converters()</code></a> 
+         <li class='ja'><a href="org/apache/juneau/rest/annotation/RestMethod.html#converters--"><code>RestMethod.converters()</code></a> 
+         <li class='jm'><a href="org/apache/juneau/rest/RestContextBuilder.html#converters-java.lang.Class...-"><code>RestContextBuilder.converters(Class...)</code></a> 
+      </ul>
+      <h5 class='figure'>Example:</h5>
+      <p class='bcode'>
    <jc>// Associate the Traversable converter to all Java REST methods in this servlet</jc>
    <ja>@RestResource</ja>(converters=Traversable.<jk>class</jk>)
    <jk>public</jk> MyRestServlet <jk>extends</jk> RestServlet {
       ...
    }
-         </p>
-         <p>
-            They can also be defined at the method level:
-         </p>
-         <p class='bcode'>
+      </p>
+      <p>
+         They can also be defined at the method level:
+      </p>
+      <p class='bcode'>
    <jc>// GET person request handler.</jc>
    <jc>// Traversable conversion enabled to allow nodes in returned POJO tree to be addressed.</jc>
    <jc>// Queryable conversion enabled to allow returned POJO to be searched/viewed/sorted.</jc>
@@ -7363,15 +7309,15 @@
    <jk>public</jk> Person getPerson(<ja>@Path</ja> <jk>int</jk> id) {
       <jk>return</jk> findPerson(id);
    }
-         </p>  
-         <p>
-            The following converter is used to provide support for addressing child nodes in a POJO tree with URL path 
-            remainders.  
-            <br>In this code, the 3rd parameter is the object that was returned by the Java method.
-            <br>The converter uses the <a href="org/apache/juneau/utils/PojoRest.html" title="class in org.apache.juneau.utils"><code>PojoRest</code></a> wrapper class to address nodes in the 
-            tree.
-         </p>
-         <p class='bcode'>
+      </p>  
+      <p>
+         The following converter is used to provide support for addressing child nodes in a POJO tree with URL path 
+         remainders.  
+         <br>In this code, the 3rd parameter is the object that was returned by the Java method.
+         <br>The converter uses the <a href="org/apache/juneau/utils/PojoRest.html" title="class in org.apache.juneau.utils"><code>PojoRest</code></a> wrapper class to address nodes in the 
+         tree.
+      </p>
+      <p class='bcode'>
    <jd>/**
     * Converter for enablement of PojoRest support on response objects returned by a @RestMethod method.
     * When enabled, objects in a POJO tree returned by the REST method can be addressed through additional URL path information.
@@ -7402,43 +7348,43 @@
          <jk>return</jk> o;
       }
    }
-         </p>  
-         <p>
-            Juneau defines the following converters out-of-the-box:
-         </p>
-         <ul class='doctree'>
-            <li class='jic'>
-            <a href="org/apache/juneau/rest/RestConverter.html" title="interface in org.apache.juneau.rest"><code>RestConverter</code></a>
-            <ul>
-               <li class='jc'>
-                  <a href="org/apache/juneau/rest/converters/Queryable.html" title="class in org.apache.juneau.rest.converters"><code>Queryable</code></a>
-                  <br>Provides query parameters that can be used to transform the response (i.e. search/view/sort the 
-                  POJO response before being serialized).
-               <li class='jc'>
-                  <a href="org/apache/juneau/rest/converters/Traversable.html" title="class in org.apache.juneau.rest.converters"><code>Traversable</code></a>
-                  <br>Allows nodes in the POJO response tree to be individually accessed through additional path info on 
-                  the request.
-               <li class='jc'>
-                  <a href="org/apache/juneau/rest/converters/Introspectable.html" title="class in org.apache.juneau.rest.converters"><code>Introspectable</code></a>
-                  <br>Allows method calls to be made on the response POJO, and for the result of that method call to be 
-                  serialized as the response.
-            </ul>
-         </ul>
-      
-         <h5 class='section'>See Also:</h5>
+      </p>  
+      <p>
+         Juneau defines the following converters out-of-the-box:
+      </p>
+      <ul class='doctree'>
+         <li class='jic'>
+         <a href="org/apache/juneau/rest/RestConverter.html" title="interface in org.apache.juneau.rest"><code>RestConverter</code></a>
          <ul>
-            <li class='jf'><a href="org/apache/juneau/rest/RestContext.html#REST_converters"><code>RestContext.REST_converters</code></a> 
+            <li class='jc'>
+               <a href="org/apache/juneau/rest/converters/Queryable.html" title="class in org.apache.juneau.rest.converters"><code>Queryable</code></a>
+               <br>Provides query parameters that can be used to transform the response (i.e. search/view/sort the 
+               POJO response before being serialized).
+            <li class='jc'>
+               <a href="org/apache/juneau/rest/converters/Traversable.html" title="class in org.apache.juneau.rest.converters"><code>Traversable</code></a>
+               <br>Allows nodes in the POJO response tree to be individually accessed through additional path info on 
+               the request.
+            <li class='jc'>
+               <a href="org/apache/juneau/rest/converters/Introspectable.html" title="class in org.apache.juneau.rest.converters"><code>Introspectable</code></a>
+               <br>Allows method calls to be made on the response POJO, and for the result of that method call to be 
+               serialized as the response.
          </ul>
-      </div>
-      
-      <!-- ======================================================================================================== -->
-      <a id="juneau-rest-server.Messages"></a>
-      <h4 class='topic' onclick='toggle(this)'>3.1.17 - Messages</h4>
-      <div class='topic'>
-         <p>
-            The <a href="org/apache/juneau/rest/annotation/RestResource.html#messages--"><code>@RestResource.messages()</code></a> annotation is used to associate a resource bundle with a servlet class.
-         </p>
-         <p class='bcode'>
+      </ul>
+   
+      <h5 class='section'>See Also:</h5>
+      <ul>
+         <li class='jf'><a href="org/apache/juneau/rest/RestContext.html#REST_converters"><code>RestContext.REST_converters</code></a> 
+      </ul>
+   </div>
+   
+   <!-- ======================================================================================================== -->
+   <a id="juneau-rest-server.Messages"></a>
+   <h3 class='topic' onclick='toggle(this)'>7.17 - Messages</h3>
+   <div class='topic'>
+      <p>
+         The <a href="org/apache/juneau/rest/annotation/RestResource.html#messages--"><code>@RestResource.messages()</code></a> annotation is used to associate a resource bundle with a servlet class.
+      </p>
+      <p class='bcode'>
    <jc>// Servlet with associated resource bundle</jc>
    <ja>@RestResource</ja>(messages=<js>"nls/MyMessages"</js>)
    <jk>public</jk> MyRestServlet <jk>extends</jk> RestServlet {
@@ -7448,22 +7394,22 @@
       <jk>public</jk> String printLocalizedGreeting(RestRequest req) {
          <jk>return</jk> req.getMessage(<js>"greeting"</js>);
       }
-         </p>
-         <p>   
-            The resource bundle can also be passed into the method by simply specifying a parameter
-            of type <a href="http://docs.oracle.com/javase/7/docs/api/java/util/ResourceBundle.html?is-external=true" title="class or interface in java.util"><code>ResourceBundle</code></a> or <a href="org/apache/juneau/utils/MessageBundle.html" title="class in org.apache.juneau.utils"><code>MessageBundle</code></a>:
-         </p>
-         <p class='bcode'>
+      </p>
+      <p>   
+         The resource bundle can also be passed into the method by simply specifying a parameter
+         of type <a href="http://docs.oracle.com/javase/7/docs/api/java/util/ResourceBundle.html?is-external=true" title="class or interface in java.util"><code>ResourceBundle</code></a> or <a href="org/apache/juneau/utils/MessageBundle.html" title="class in org.apache.juneau.utils"><code>MessageBundle</code></a>:
+      </p>
+      <p class='bcode'>
    <ja>@RestMethod</ja>(name=<jsf>GET</jsf>)
    <jk>public</jk> String printLocalizedGreeting(MessageBundle messages) {
       <jk>return</jk> messages.getString(<js>"greeting"</js>);
    }
-         </p>
-         <p>
-            If a resource bundle is shared by multiple servlets, the label and description can be prefixed by the class 
-            name:
-         </p>
-         <p class='bcode'>
+      </p>
+      <p>
+         If a resource bundle is shared by multiple servlets, the label and description can be prefixed by the class 
+         name:
+      </p>
+      <p class='bcode'>
    <cc>#--------------------------------------------------------------------------------
    # Contents of MyMessages.properties
    #--------------------------------------------------------------------------------</cc>
@@ -7474,89 +7420,89 @@
    # Contents of shared MyMessages.properties
    #--------------------------------------------------------------------------------</cc>
    <ck>MyRestServlet.greeting</ck> = Hello!
-         </p>
-         <h5 class='section'>See Also:</h5>
-         <ul>
-            <li class='jf'><a href="org/apache/juneau/rest/RestContext.html#REST_messages"><code>RestContext.REST_messages</code></a>
-         </ul>
-      </div>
-      
-      <!-- ======================================================================================================== -->
-      <a id="juneau-rest-server.Encoders"></a>
-      <h4 class='topic' onclick='toggle(this)'>3.1.18 - Encoders</h4>
-      <div class='topic'>
-         <p>
-            The <a href="org/apache/juneau/rest/annotation/RestResource.html#encoders--"><code>@RestResource.encoders()</code></a> annotation can 
-            be used to associate character encoders with a servlet class.
-            <br>Encoders can be used to enable various kinds of compression (e.g. <l>"gzip"</l>) on requests and responses 
-            based on the request <l>Accept-Encoding</l> and <l>Content-Encoding</l> headers.
-         </p>
-         
-         <h5 class='figure'>Example:</h5>
-         <p class='bcode'>
+      </p>
+      <h5 class='section'>See Also:</h5>
+      <ul>
+         <li class='jf'><a href="org/apache/juneau/rest/RestContext.html#REST_messages"><code>RestContext.REST_messages</code></a>
+      </ul>
+   </div>
+   
+   <!-- ======================================================================================================== -->
+   <a id="juneau-rest-server.Encoders"></a>
+   <h3 class='topic' onclick='toggle(this)'>7.18 - Encoders</h3>
+   <div class='topic'>
+      <p>
+         The <a href="org/apache/juneau/rest/annotation/RestResource.html#encoders--"><code>@RestResource.encoders()</code></a> annotation can 
+         be used to associate character encoders with a servlet class.
+         <br>Encoders can be used to enable various kinds of compression (e.g. <l>"gzip"</l>) on requests and responses 
+         based on the request <l>Accept-Encoding</l> and <l>Content-Encoding</l> headers.
+      </p>
+      
+      <h5 class='figure'>Example:</h5>
+      <p class='bcode'>
    <jc>// Servlet with automated support for GZIP compression</jc>
    <ja>@RestResource</ja>(encoders={GzipEncoder.<jk>class</jk>})
    <jk>public</jk> MyRestServlet <jk>extends</jk> RestServlet {
       ...
    }
-         </p>
-         <p>
-            Juneau defines the following encoders out-of-the-box:
-         </p>
-         <ul class='doctree'>
-            <li class='jac'>
-            <a href="org/apache/juneau/encoders/Encoder.html" title="class in org.apache.juneau.encoders"><code>Encoder</code></a>
-            <ul>
-               <li class='jc'>
-                  <a href="org/apache/juneau/encoders/GzipEncoder.html" title="class in org.apache.juneau.encoders"><code>GzipEncoder</code></a>
-               <li class='jc'>
-                  <a href="org/apache/juneau/encoders/IdentityEncoder.html" title="class in org.apache.juneau.encoders"><code>IdentityEncoder</code></a>
-            </ul>
-         </ul>
-         <h5 class='section'>See Also:</h5>
+      </p>
+      <p>
+         Juneau defines the following encoders out-of-the-box:
+      </p>
+      <ul class='doctree'>
+         <li class='jac'>
+         <a href="org/apache/juneau/encoders/Encoder.html" title="class in org.apache.juneau.encoders"><code>Encoder</code></a>
          <ul>
-            <li class='jf'><a href="org/apache/juneau/rest/RestContext.html#REST_encoders"><code>RestContext.REST_encoders</code></a>
+            <li class='jc'>
+               <a href="org/apache/juneau/encoders/GzipEncoder.html" title="class in org.apache.juneau.encoders"><code>GzipEncoder</code></a>
+            <li class='jc'>
+               <a href="org/apache/juneau/encoders/IdentityEncoder.html" title="class in org.apache.juneau.encoders"><code>IdentityEncoder</code></a>
          </ul>
-      </div>
-      
-      <!-- ======================================================================================================== -->
-      <a id="juneau-rest-server.SvlVariables"></a>
-      <h4 class='topic' onclick='toggle(this)'>3.1.19 - SVL Variables</h4>
-      <div class='topic'>
-         <p>   
-            In the previous examples, there were several cases where embedded variables were contained within
-            annotation values:
-         </p>
-         <p class='bcode'>
+      </ul>
+      <h5 class='section'>See Also:</h5>
+      <ul>
+         <li class='jf'><a href="org/apache/juneau/rest/RestContext.html#REST_encoders"><code>RestContext.REST_encoders</code></a>
+      </ul>
+   </div>
+   
+   <!-- ======================================================================================================== -->
+   <a id="juneau-rest-server.SvlVariables"></a>
+   <h3 class='topic' onclick='toggle(this)'>7.19 - SVL Variables</h3>
+   <div class='topic'>
+      <p>   
+         In the previous examples, there were several cases where embedded variables were contained within
+         annotation values:
+      </p>
+      <p class='bcode'>
    <ja>@RestResource</ja>(
... 6577 lines suppressed ...

-- 
To stop receiving notification emails like this one, please contact
jamesbognar@apache.org.

Mime
View raw message