juneau-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jamesbog...@apache.org
Subject [juneau] branch master updated: Javadoc updates.
Date Mon, 05 Feb 2018 23:00:06 GMT
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
     new 7995aca  Javadoc updates.
7995aca is described below

commit 7995aca864c4e054f3339c334ac8a2fe26dc45af
Author: JamesBognar <jamesbognar@apache.org>
AuthorDate: Mon Feb 5 18:00:00 2018 -0500

    Javadoc updates.
---
 juneau-doc/src/main/javadoc/overview.html          | 15346 ++++++++++---------
 .../src/main/javadoc/resources/juneau-code.css     |     2 +-
 .../src/main/javadoc/resources/juneau-doc.css      |    51 +-
 .../juneau/examples/rest/TumblrParserResource.java |     5 +-
 .../examples/rest/addressbook/ClientTest.java      |    10 +-
 .../examples/rest/AddressBookResourceTest.java     |    93 +-
 .../juneau/examples/rest/ContentComboTestcase.java |     1 +
 .../juneau/examples/rest/RootResourcesTest.java    |   106 +-
 .../apache/juneau/rest/client/ResponsePattern.java |     4 +-
 .../org/apache/juneau/rest/client/RestCall.java    |     7 +-
 .../org/apache/juneau/rest/client/RestClient.java  |    20 +-
 .../apache/juneau/rest/client/package-info.java    |    18 +
 .../org/apache/juneau/rest/client/package.html     |   961 --
 .../org/apache/juneau/rest/jaxrs/package-info.java |    18 +
 .../java/org/apache/juneau/rest/jaxrs/package.html |   137 -
 15 files changed, 8283 insertions(+), 8496 deletions(-)

diff --git a/juneau-doc/src/main/javadoc/overview.html b/juneau-doc/src/main/javadoc/overview.html
index 5f1bcd6..864c4a8 100644
--- a/juneau-doc/src/main/javadoc/overview.html
+++ b/juneau-doc/src/main/javadoc/overview.html
@@ -80,194 +80,203 @@
 		<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.PredefinedWidgets'>Predefined 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>
 	<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-server-jaxrs.BaseProvider'>Juneau JAX-RS Provider</a></p>
+	</ol>	
+	<li><p><a class='doclink' href='#juneau-rest-client'><i>juneau-rest-client</i></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-client.SSL'>SSL Support</a></p>
+		<ol>
+			<li><p><a class='doclink' href='#juneau-rest-client.SSLOpts'>SSLOpts Bean</a></p>
+		</ol>
+		<li><p><a class='doclink' href='#juneau-rest-client.Authentication'>Authentication</a></p>
+		<ol>
+			<li><p><a class='doclink' href='#juneau-rest-client.BASIC'>BASIC Authentication</a></p>
+			<li><p><a class='doclink' href='#juneau-rest-client.FORM'>FORM-based Authentication</a></p>
+			<li><p><a class='doclink' href='#juneau-rest-client.OIDC'>OIDC Authentication</a></p>
+		</ol>
+		<li><p><a class='doclink' href='#juneau-rest-client.ResponsePatterns'>Using Response Patterns</a></p>
+		<li><p><a class='doclink' href='#juneau-rest-client.PipingOutput'>Piping Response Output</a></p>
+		<li><p><a class='doclink' href='#juneau-rest-client.Debugging'>Debugging</a></p>
+		<li><p><a class='doclink' href='#juneau-rest-client.Logging'>Logging</a></p>
+		<li><p><a class='doclink' href='#juneau-rest-client.Interceptors'>Interceptors</a></p>
+		<li><p><a class='doclink' href='#juneau-rest-client.Remoteable'>Remoteable Proxies</a></p>
+		<li><p><a class='doclink' href='#juneau-rest-client.Other'>Other Useful Methods</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>
@@ -526,79 +535,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>;
@@ -638,13 +625,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);
 
@@ -656,28 +643,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>;
 
@@ -710,11 +697,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>;
 
@@ -732,29 +719,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 {@link org.apache.juneau.serializer.SerializerGroup} and 
-				{@link org.apache.juneau.parser.ParserGroup} 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 {@link org.apache.juneau.serializer.SerializerGroup} and 
+			{@link org.apache.juneau.parser.ParserGroup} 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>);
@@ -773,72 +760,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 {@link org.apache.juneau.ObjectMap} and {@link org.apache.juneau.ObjectList} 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'> 
-					{@link java.util.LinkedHashMap java.util.LinkedHashMap}
-					<ul>
-						<li class='jc'> 
-						{@link org.apache.juneau.ObjectMap org.apache.juneau.ObjectMap}
-					</ul>
-				</li>
-				<li class='jc'> 
-					{@link java.util.LinkedList java.util.LinkedList}
-					<ul>
-						<li class='jc'> 
-							{@link org.apache.juneau.ObjectMap org.apache.juneau.ObjectList}
-					</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 {@link org.apache.juneau.ObjectMap#serializeTo(java.io.Writer)} or 
-					{@link org.apache.juneau.ObjectList#serializeTo(java.io.Writer)} methods.
-				<li>
-					Passing them to one of the {@link org.apache.juneau.serializer.Serializer} serialize methods.
-				<li>
-					Simply calling the {@link org.apache.juneau.ObjectMap#toString()} or {@link org.apache.juneau.ObjectList#toString()}
-					methods which will serialize it as Simplified JSON.
-			</ol>
-			<p>
-				Any valid JSON can be parsed into an unstructured model consisting of generic 
-				{@link org.apache.juneau.ObjectMap} and {@link org.apache.juneau.ObjectList} 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 {@link org.apache.juneau.ObjectMap} and {@link org.apache.juneau.ObjectList} 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'> 
+				{@link java.util.LinkedHashMap java.util.LinkedHashMap}
+				<ul>
+					<li class='jc'> 
+					{@link org.apache.juneau.ObjectMap org.apache.juneau.ObjectMap}
+				</ul>
+			</li>
+			<li class='jc'> 
+				{@link java.util.LinkedList java.util.LinkedList}
+				<ul>
+					<li class='jc'> 
+						{@link org.apache.juneau.ObjectMap org.apache.juneau.ObjectList}
+				</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 {@link org.apache.juneau.ObjectMap#serializeTo(java.io.Writer)} or 
+				{@link org.apache.juneau.ObjectList#serializeTo(java.io.Writer)} methods.
+			<li>
+				Passing them to one of the {@link org.apache.juneau.serializer.Serializer} serialize methods.
+			<li>
+				Simply calling the {@link org.apache.juneau.ObjectMap#toString()} or {@link org.apache.juneau.ObjectList#toString()}
+				methods which will serialize it as Simplified JSON.
+		</ol>
+		<p>
+			Any valid JSON can be parsed into an unstructured model consisting of generic 
+			{@link org.apache.juneau.ObjectMap} and {@link org.apache.juneau.ObjectList} 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>;
@@ -856,11 +843,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>);
 			
@@ -885,397 +872,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 {@link org.apache.juneau.BeanContextBuilder} 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 {@link org.apache.juneau.BeanContextBuilder} 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'>
-					{@link org.apache.juneau.json.JsonSerializer}
-					<ul>
-						<li class='jf'>
-							{@link org.apache.juneau.json.JsonSerializer#DEFAULT DEFAULT}
-						<li class='jf'>
-							{@link org.apache.juneau.json.JsonSerializer#DEFAULT_LAX DEFAULT_LAX}
-						<li class='jf'>
-							{@link org.apache.juneau.json.JsonSerializer#DEFAULT_READABLE DEFAULT_READABLE}
-						<li class='jf'>
-							{@link org.apache.juneau.json.JsonSerializer#DEFAULT_LAX_READABLE DEFAULT_LAX_READABLE}
-						<li class='jf'>
-							{@link org.apache.juneau.json.JsonSerializer#DEFAULT_LAX_READABLE_SAFE DEFAULT_LAX_READABLE_SAFE}
-					</ul>
-				</li>
-				<li class='jc'>
-					{@link org.apache.juneau.json.JsonParser} 
-					<ul>
-						<li class='jf'>
-							{@link org.apache.juneau.json.JsonParser#DEFAULT DEFAULT}
-						<li class='jf'>
-							{@link org.apache.juneau.json.JsonParser#DEFAULT_STRICT DEFAULT_STRICT}
-					</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>
+		</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'>
+				{@link org.apache.juneau.json.JsonSerializer}
+				<ul>
+					<li class='jf'>
+						{@link org.apache.juneau.json.JsonSerializer#DEFAULT DEFAULT}
+					<li class='jf'>
+						{@link org.apache.juneau.json.JsonSerializer#DEFAULT_LAX DEFAULT_LAX}
+					<li class='jf'>
+						{@link org.apache.juneau.json.JsonSerializer#DEFAULT_READABLE DEFAULT_READABLE}
+					<li class='jf'>
+						{@link org.apache.juneau.json.JsonSerializer#DEFAULT_LAX_READABLE DEFAULT_LAX_READABLE}
+					<li class='jf'>
+						{@link org.apache.juneau.json.JsonSerializer#DEFAULT_LAX_READABLE_SAFE DEFAULT_LAX_READABLE_SAFE}
+				</ul>
+			</li>
+			<li class='jc'>
+				{@link org.apache.juneau.json.JsonParser} 
+				<ul>
+					<li class='jf'>
+						{@link org.apache.juneau.json.JsonParser#DEFAULT DEFAULT}
+					<li class='jf'>
+						{@link org.apache.juneau.json.JsonParser#DEFAULT_STRICT DEFAULT_STRICT}
+				</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'>
-					{@link org.apache.juneau.BeanContext}
-					- Properties associated with handling beans on serializers and parsers.
-					<ul>
-						<li class='jc'>
-							{@link org.apache.juneau.serializer.Serializer}
-							- Configurable properties common to all serializers.
-							<ul>
-								<li class='jc'>
-									{@link org.apache.juneau.html.HtmlSerializer}
-									- Configurable properties on the HTML serializer.
-									<ul>
-										<li class='jc'>
-											{@link org.apache.juneau.html.HtmlDocSerializer} 
-											- Configurable properties on the HTML document serializer.
-									</ul>
-								</li>
-								<li class='jic'>
-									{@link org.apache.juneau.jena.RdfCommon} 
-									- Configurable properties common to the RDF serializers and parsers.
-									<ul>
-										<li class='jc'>
-											{@link org.apache.juneau.jena.RdfSerializer}
-											- Configurable properties on the RDF serializers.
-									</ul>
-								</li>
-								<li class='jc'>
-									{@link org.apache.juneau.json.JsonSerializer} 
-									- Configurable properties on the JSON serializer.
-								<li class='jc'>
-									{@link org.apache.juneau.msgpack.MsgPackSerializer} 
-									- Configurable properties on the MessagePack serializer.
-								<li class='jc'>
-									{@link org.apache.juneau.soap.SoapXmlSerializer} 
-									- Configurable properties on the SOAP/XML serializer.
-								<li class='jc'>
-									{@link org.apache.juneau.uon.UonSerializer} 
-									- Configurable properties on the URL-Encoding and UON serializers.
-								<li class='jc'>
-									{@link org.apache.juneau.xml.XmlSerializer} 
-									- Configurable properties on the XML serializer.
-							</ul>
-						</li>
-						<li class='jc'>
-							{@link org.apache.juneau.parser.Parser} 
-							- Configurable properties common to all parsers.
-							<ul>
-								<li class='jc'>
-									{@link org.apache.juneau.html.HtmlParser} 
-									- Configurable properties on the HTML parser.
-								<li class='jic'>
-									{@link org.apache.juneau.jena.RdfCommon} 
-									- Configurable properties common to the RDF serializers and parsers.
-									<ul>
-										<li class='jc'>
-										{@link org.apache.juneau.jena.RdfParser} 
-										- Configurable properties on the RDF parsers.
-									</ul>
-								</li>
-								<li class='jc'>
-									{@link org.apache.juneau.json.JsonParser} 
-									- Configurable properties on the JSON parser.
-								<li class='jc'>
-									{@link org.apache.juneau.msgpack.MsgPackParser} 
-									- Configurable properties on the MessagePack parser.
-								<li class='jc'>
-									{@link org.apache.juneau.uon.UonParser} 
-									- Configurable properties on the URL-Encoding and UON parsers.
-								<li class='jc'>
-									{@link org.apache.juneau.xml.XmlParser} 
-									- Configurable properties on the XML parser.
-							</ul>
-						</li>
-						<li class='jc'>
-							{@link org.apache.juneau.rest.RestContext} 
-							- Configurable properties on the REST servlet.
-						</li>
-						<li class='jc'>
-							{@link org.apache.juneau.rest.client.RestClient} 
-							- Configurable properties on the REST client.
-						</li>
-					</ul>
-				</li>
-			</ul>
-		</div>
+		</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'>
+				{@link org.apache.juneau.BeanContext}
+				- Properties associated with handling beans on serializers and parsers.
 				<ul>
-					<li class='jac'>{@link org.apache.juneau.Context}
-					<ul>
-						<li class='jc'>{@link org.apache.juneau.BeanContext}
+					<li class='jc'>
+						{@link org.apache.juneau.serializer.Serializer}
+						- Configurable properties common to all serializers.
 						<ul>
-							<li class='jac'>{@link org.apache.juneau.serializer.Serializer}
-							<ul>
-								<li class='jac'>{@link org.apache.juneau.serializer.WriterSerializer}
+							<li class='jc'>
+								{@link org.apache.juneau.html.HtmlSerializer}
+								- Configurable properties on the HTML serializer.
+								<ul>
+									<li class='jc'>
+										{@link org.apache.juneau.html.HtmlDocSerializer} 
+										- Configurable properties on the HTML document serializer.
+								</ul>
+							</li>
+							<li class='jic'>
+								{@link org.apache.juneau.jena.RdfCommon} 
+								- Configurable properties common to the RDF serializers and parsers.
+								<ul>
+									<li class='jc'>
+										{@link org.apache.juneau.jena.RdfSerializer}
+										- Configurable properties on the RDF serializers.
+								</ul>
+							</li>
+							<li class='jc'>
+								{@link org.apache.juneau.json.JsonSerializer} 
+								- Configurable properties on the JSON serializer.
+							<li class='jc'>
+								{@link org.apache.juneau.msgpack.MsgPackSerializer} 
+								- Configurable properties on the MessagePack serializer.
+							<li class='jc'>
+								{@link org.apache.juneau.soap.SoapXmlSerializer} 
+								- Configurable properties on the SOAP/XML serializer.
+							<li class='jc'>
+								{@link org.apache.juneau.uon.UonSerializer} 
+								- Configurable properties on the URL-Encoding and UON serializers.
+							<li class='jc'>
+								{@link org.apache.juneau.xml.XmlSerializer} 
+								- Configurable properties on the XML serializer.
+						</ul>
+					</li>
+					<li class='jc'>
+						{@link org.apache.juneau.parser.Parser} 
+						- Configurable properties common to all parsers.
+						<ul>
+							<li class='jc'>
+								{@link org.apache.juneau.html.HtmlParser} 
+								- Configurable properties on the HTML parser.
+							<li class='jic'>
+								{@link org.apache.juneau.jena.RdfCommon} 
+								- Configurable properties common to the RDF serializers and parsers.
 								<ul>
-									<li class='jc'>{@link org.apache.juneau.json.JsonSerializer}
+									<li class='jc'>
+									{@link org.apache.juneau.jena.RdfParser} 
+									- Configurable properties on the RDF parsers.
 								</ul>
+							</li>
+							<li class='jc'>
+								{@link org.apache.juneau.json.JsonParser} 
+								- Configurable properties on the JSON parser.
+							<li class='jc'>
+								{@link org.apache.juneau.msgpack.MsgPackParser} 
+								- Configurable properties on the MessagePack parser.
+							<li class='jc'>
+								{@link org.apache.juneau.uon.UonParser} 
+								- Configurable properties on the URL-Encoding and UON parsers.
+							<li class='jc'>
+								{@link org.apache.juneau.xml.XmlParser} 
+								- Configurable properties on the XML parser.
+						</ul>
+					</li>
+					<li class='jc'>
+						{@link org.apache.juneau.rest.RestContext} 
+						- Configurable properties on the REST servlet.
+					</li>
+					<li class='jc'>
+						{@link org.apache.juneau.rest.client.RestClient} 
+						- 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'>{@link org.apache.juneau.Context}
+				<ul>
+					<li class='jc'>{@link org.apache.juneau.BeanContext}
+					<ul>
+						<li class='jac'>{@link org.apache.juneau.serializer.Serializer}
+						<ul>
+							<li class='jac'>{@link org.apache.juneau.serializer.WriterSerializer}
+							<ul>
+								<li class='jc'>{@link org.apache.juneau.json.JsonSerializer}
 							</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'>{@link org.apache.juneau.ContextBuilder}
 				<ul>
-					<li class='jac'>{@link org.apache.juneau.ContextBuilder}
+					<li class='jc'>{@link org.apache.juneau.BeanContextBuilder}
 					<ul>
-						<li class='jc'>{@link org.apache.juneau.BeanContextBuilder}
+						<li class='jac'>{@link org.apache.juneau.serializer.SerializerBuilder}
 						<ul>
-							<li class='jac'>{@link org.apache.juneau.serializer.SerializerBuilder}
-							<ul>
-								<li class='jc'>{@link org.apache.juneau.json.JsonSerializerBuilder}
-							</ul>
+							<li class='jc'>{@link org.apache.juneau.json.JsonSerializerBuilder}
 						</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'>{@link org.apache.juneau.Session}
 				<ul>
-					<li class='jac'>{@link org.apache.juneau.Session}
+					<li class='jc'>{@link org.apache.juneau.BeanSession}
 					<ul>
-						<li class='jc'>{@link org.apache.juneau.BeanSession}
+						<li class='jac'>{@link org.apache.juneau.serializer.SerializerSession}
 						<ul>
-							<li class='jac'>{@link org.apache.juneau.serializer.SerializerSession}
+							<li class='jac'>{@link org.apache.juneau.serializer.WriterSerializerSession}
 							<ul>
-								<li class='jac'>{@link org.apache.juneau.serializer.WriterSerializerSession}
-								<ul>
-									<li class='jc'>{@link org.apache.juneau.json.JsonSerializerSession}
-								</ul>
+								<li class='jc'>{@link org.apache.juneau.json.JsonSerializerSession}
 							</ul>
 						</ul>
 					</ul>
 				</ul>
 			</ul>
-			<p>
-				The general idea behind a {@link org.apache.juneau.PropertyStore} 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 {@link org.apache.juneau.PropertyStore} 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 {@link org.apache.juneau.PropertyStoreBuilder} 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 {@link org.apache.juneau.PropertyStoreBuilder} 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 {@link org.apache.juneau.PropertyStore} 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'>{@link org.apache.juneau.transform.BeanFilter} - Transforms that alter the way beans are handled.
+			<li class='jac'>{@link org.apache.juneau.transform.PojoSwap} - Transforms that swap non-serializable POJOs with 
+				serializable POJOs during serialization (and optionally vis-versa during parsing).
+				<ul>
+					<li class='jc'>{@link org.apache.juneau.transform.StringSwap} - Convenience subclass for swaps that convert 
+						objects to strings.
+					<li class='jc'>{@link org.apache.juneau.transform.MapSwap} - 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'>{@link org.apache.juneau.BeanContext#BEAN_beanFilters}
+			<li class='jm'>{@link org.apache.juneau.BeanContext#BEAN_pojoSwaps}
+		</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'>
+				{@link org.apache.juneau.annotation.Swap @Swap} 
+				- Used to tailor how non-bean POJOs get interpreted by the framework.
+			<li class='ja'>
+				{@link org.apache.juneau.annotation.Bean @Bean} 
+				- Used to tailor how beans get interpreted by the framework.
+			<li class='ja'>
+				{@link org.apache.juneau.annotation.BeanConstructor @BeanConstructor} 
+				- Maps constructor arguments to property names on beans with read-only properties.
+			<li class='ja'>
+				{@link org.apache.juneau.annotation.BeanIgnore @BeanIgnore} 
+				- Ignore classes, fields, and methods from being interpreted as bean or bean components.
+			<li class='ja'>
+				{@link org.apache.juneau.annotation.BeanProperty @BeanProperty} 
+				- Used to tailor how bean properties get interpreted by the framework.
+			<li class='ja'>
+				{@link org.apache.juneau.annotation.NameProperty @NameProperty} 
+				- Identifies a setter as a method for setting the name of a POJO as it's known by its parent object.
+			<li class='ja'>
+				{@link org.apache.juneau.annotation.ParentProperty @ParentProperty} 
+				- Identifies a setter as a method for adding a parent reference to a child object.
+			<li class='ja'>
+				{@link org.apache.juneau.annotation.URI @URI} 
+				- 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.
+				{@link org.apache.juneau.transform.PojoSwap PojoSwaps} 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 {@link org.apache.juneau.PropertyStore} 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'>{@link org.apache.juneau.transform.BeanFilter} - Transforms that alter the way beans are handled.
-				<li class='jac'>{@link org.apache.juneau.transform.PojoSwap} - Transforms that swap non-serializable POJOs with 
-					serializable POJOs during serialization (and optionally vis-versa during parsing).
-					<ul>
-						<li class='jc'>{@link org.apache.juneau.transform.StringSwap} - Convenience subclass for swaps that convert 
-							objects to strings.
-						<li class='jc'>{@link org.apache.juneau.transform.MapSwap} - 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'>{@link org.apache.juneau.BeanContext#BEAN_beanFilters}
-				<li class='jm'>{@link org.apache.juneau.BeanContext#BEAN_pojoSwaps}
-			</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'>
-					{@link org.apache.juneau.annotation.Swap @Swap} 
-					- Used to tailor how non-bean POJOs get interpreted by the framework.
-				<li class='ja'>
-					{@link org.apache.juneau.annotation.Bean @Bean} 
-					- Used to tailor how beans get interpreted by the framework.
-				<li class='ja'>
-					{@link org.apache.juneau.annotation.BeanConstructor @BeanConstructor} 
-					- Maps constructor arguments to property names on beans with read-only properties.
-				<li class='ja'>
-					{@link org.apache.juneau.annotation.BeanIgnore @BeanIgnore} 
-					- Ignore classes, fields, and methods from being interpreted as bean or bean components.
-				<li class='ja'>
-					{@link org.apache.juneau.annotation.BeanProperty @BeanProperty} 
-					- Used to tailor how bean properties get interpreted by the framework.
-				<li class='ja'>
-					{@link org.apache.juneau.annotation.NameProperty @NameProperty} 
-					- Identifies a setter as a method for setting the name of a POJO as it's known by its parent object.
-				<li class='ja'>
-					{@link org.apache.juneau.annotation.ParentProperty @ParentProperty} 
-					- Identifies a setter as a method for adding a parent reference to a child object.
-				<li class='ja'>
-					{@link org.apache.juneau.annotation.URI @URI} 
-					- 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>
-					{@link org.apache.juneau.transform.PojoSwap PojoSwaps} 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; {
 		
@@ -1294,11 +1281,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);
@@ -1312,7 +1299,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 {@link org.apache.juneau.BeanMap#get(Object)} and {@link org.apache.juneau.BeanMap#put(String,Object)} 
 				methods will automatically convert to swapped values as the following example shows:
@@ -1364,11 +1351,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();
@@ -1380,71 +1367,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'>
-								{@link org.apache.juneau.transforms.ByteArrayBase64Swap}
-							<li class='jac'>
-								{@link org.apache.juneau.transforms.CalendarSwap}
-							<li class='jac'>
-								{@link org.apache.juneau.transforms.DateSwap}
-							<li class='jc'>
-								{@link org.apache.juneau.transforms.EnumerationSwap}
-							<li class='jc'>
-								{@link org.apache.juneau.transforms.IteratorSwap}
-							<li class='jc'>
-								{@link org.apache.juneau.transforms.ReaderSwap}
-							<li class='jc'>
-								{@link org.apache.juneau.transforms.XMLGregorianCalendarSwap}
-						</ul>
-					</li>
-				</ul>
-				<p>
-					In particular, the {@link org.apache.juneau.transforms.CalendarSwap} and 
-					{@link org.apache.juneau.transforms.DateSwap} 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 {@link org.apache.juneau.BeanSession#getLocale()} and
-					{@link org.apache.juneau.BeanSession#getTimeZone()} 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'>
+							{@link org.apache.juneau.transforms.ByteArrayBase64Swap}
+						<li class='jac'>
+							{@link org.apache.juneau.transforms.CalendarSwap}
+						<li class='jac'>
+							{@link org.apache.juneau.transforms.DateSwap}
+						<li class='jc'>
+							{@link org.apache.juneau.transforms.EnumerationSwap}
+						<li class='jc'>
+							{@link org.apache.juneau.transforms.IteratorSwap}
+						<li class='jc'>
+							{@link org.apache.juneau.transforms.ReaderSwap}
+						<li class='jc'>
+							{@link org.apache.juneau.transforms.XMLGregorianCalendarSwap}
+					</ul>
+				</li>
+			</ul>
+			<p>
+				In particular, the {@link org.apache.juneau.transforms.CalendarSwap} and 
+				{@link org.apache.juneau.transforms.DateSwap} 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 {@link org.apache.juneau.BeanSession#getLocale()} and
+				{@link org.apache.juneau.BeanSession#getTimeZone()} 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 {@link org.apache.juneau.transform.PojoSwap#forMediaTypes()} 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 {@link org.apache.juneau.transform.PojoSwap#forMediaTypes()} 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 {}
@@ -1503,30 +1490,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()} method.  
-					<br>The {@code unswap()} method is simply left unimplemented.
-				</p>
-				<p>
-					An example of a one-way swaps would be one that allows {@code Iterators} to be serialized as JSON arrays.  
-					<br>It can make sense to be able to render {@code Iterators} as arrays, but in general it's not possible to 
-					reconstruct an {@code Iterator} 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()} method.  
+				<br>The {@code unswap()} method is simply left unimplemented.
+			</p>
+			<p>
+				An example of a one-way swaps would be one that allows {@code Iterators} to be serialized as JSON arrays.  
+				<br>It can make sense to be able to render {@code Iterators} as arrays, but in general it's not possible to 
+				reconstruct an {@code Iterator} 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) {
@@ -1536,13 +1523,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 {@link org.apache.juneau.parser.ParseException} 
-					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 {@link org.apache.juneau.parser.ParseException} 
+				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();
 	
@@ -1555,20 +1542,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>
-					{@link org.apache.juneau.annotation.Swap @Swap} 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>
+				{@link org.apache.juneau.annotation.Swap @Swap} 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 {
 		...
@@ -1582,11 +1569,11 @@
 			<jk>return</jk> o.toSomeSerializableForm();
 		}
 	}
-				</p>
-				<p>
-					Multiple swaps can be associated with a POJO by using the {@link org.apache.juneau.annotation.Swaps @Swaps} annotation:
-				</p>
-				<p class='bcode'>
+			</p>
+			<p>
+				Multiple swaps can be associated with a POJO by using the {@link org.apache.juneau.annotation.Swaps @Swaps} annotation:
+			</p>
+			<p class='bcode'>
 	<ja>@Swaps</ja>(
 		{
 			<ja>@Swap</ja>(MyJsonSwap.<jk>class</jk>),
@@ -1595,12 +1582,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() {
@@ -1611,39 +1598,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 {@link org.apache.juneau.annotation.Swap#template() @Swap.template()} 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 {@link org.apache.juneau.annotation.Swap#template() @Swap.template()} 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; {
 
@@ -1658,74 +1645,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> - {@link java.util.UUID}
-					<li><code>valueOf(String)</code> - {@link java.lang.Boolean}, {@link java.lang.Byte}, 
-						{@link java.lang.Double}, {@link java.lang.Float}, 
-						{@link java.lang.Integer}, {@link java.lang.Long}, {@link java.lang.Short}, {@link java.sql.Date}, 
-						{@link java.sql.Time}, {@link java.sql.Timestamp}
-					<li><code>parse(String)</code> - {@link java.text.DateFormat}, {@link java.text.MessageFormat}, 
-						{@link java.text.NumberFormat}, {@link java.util.Date}, {@link java.util.logging.Level}
-					<li><code>parseString(String)</code> - {@link javax.xml.bind.DatatypeConverter}
-					<li><code>forName(String)</code> - {@link java.lang.Class}
-				</ul>
-				<p>
-					If you want to force a bean-like class to be serialized as a string, you can use the 
-					{@link org.apache.juneau.annotation.BeanIgnore @BeanIgnore} 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 
-					({@link org.apache.juneau.BeanSession#getMediaType()}).
-				</p>
-				<p>
-					The following example shows how an HTML5 form template object can be created that gets serialized as a 
-					populated HTML5 {@link org.apache.juneau.dto.html5.Form} 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> - {@link java.util.UUID}
+				<li><code>valueOf(String)</code> - {@link java.lang.Boolean}, {@link java.lang.Byte}, 
+					{@link java.lang.Double}, {@link java.lang.Float}, 
+					{@link java.lang.Integer}, {@link java.lang.Long}, {@link java.lang.Short}, {@link java.sql.Date}, 
+					{@link java.sql.Time}, {@link java.sql.Timestamp}
+				<li><code>parse(String)</code> - {@link java.text.DateFormat}, {@link java.text.MessageFormat}, 
+					{@link java.text.NumberFormat}, {@link java.util.Date}, {@link java.util.logging.Level}
+				<li><code>parseString(String)</code> - {@link javax.xml.bind.DatatypeConverter}
+				<li><code>forName(String)</code> - {@link java.lang.Class}
+			</ul>
+			<p>
+				If you want to force a bean-like class to be serialized as a string, you can use the 
+				{@link org.apache.juneau.annotation.BeanIgnore @BeanIgnore} 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 
+				({@link org.apache.juneau.BeanSession#getMediaType()}).
+			</p>
+			<p>
+				The following example shows how an HTML5 form template object can be created that gets serialized as a 
+				populated HTML5 {@link org.apache.juneau.dto.html5.Form} bean.
+			</p>
+			<p class='bcode'>
 	<jk>import static</jk> org.apache.juneau.dto.html5.HtmlBuilder.*;
 	
 	<jd>/**
@@ -1752,21 +1739,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>/**
@@ -1802,30 +1789,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>;
@@ -1842,12 +1829,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>;
 		
@@ -1856,85 +1843,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'>{@link org.apache.juneau.transform.Surrogate}
-				</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 {@link org.apache.juneau.annotation.Bean @Bean} 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 
-					{@link org.apache.juneau.annotation.Bean#properties() @Bean.properties()} 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 {@link org.apache.juneau.annotation.Bean#excludeProperties() @Bean.excludeProperties()}
-					annotation.
-				</p>
-				<p class='bcode'>
+			</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'>{@link org.apache.juneau.transform.Surrogate}
+			</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 {@link org.apache.juneau.annotation.Bean @Bean} 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 
+				{@link org.apache.juneau.annotation.Bean#properties() @Bean.properties()} 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 {@link org.apache.juneau.annotation.Bean#excludeProperties() @Bean.excludeProperties()}
+				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 {@link org.apache.juneau.annotation.Bean#sort() @Bean.sort()}
-				</p>
-				<p class='bcode'>
+			</p>
+			<p>
+				Bean properties can be sorted alphabetically using {@link org.apache.juneau.annotation.Bean#sort() @Bean.sort()}
+			</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 {@link org.apache.juneau.annotation.Bean#propertyNamer() @Bean.propertyNamer()} 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 {@link org.apache.juneau.PropertyNamerDLC} 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 {@link org.apache.juneau.annotation.Bean#propertyNamer() @Bean.propertyNamer()} 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 {@link org.apache.juneau.PropertyNamerDLC} 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 {@link org.apache.juneau.annotation.Bean#interfaceClass @Bean.interfaceClass()} 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 {@link org.apache.juneau.annotation.Bean#interfaceClass @Bean.interfaceClass()} 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 {
@@ -1950,22 +1937,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 {@link org.apache.juneau.annotation.Bean#stopClass @Bean.stopClass()} 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 {@link java.beans.Introspector#getBeanInfo(Class, Class)}.
-					<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 {@link org.apache.juneau.annotation.Bean#stopClass @Bean.stopClass()} 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 {@link java.beans.Introspector#getBeanInfo(Class, Class)}.
+				<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();
 	}
@@ -1978,13 +1965,13 @@
 	<jk>public class</jk> C3 <jk>extends</jk> C2 {
 		<jk>public int</jk> getP3();
 	}
-				</p>
-				<p>
-					The {@link org.apache.juneau.annotation.Bean#propertyFilter() @Bean.propertyFilter()} annotation
-					and {@link org.apache.juneau.transform.PropertyFilter} class can be used to perform interception
-					and inline handling of bean getter and setter calls.
-				</p>
-				<p class='bcode'>
+			</p>
+			<p>
+				The {@link org.apache.juneau.annotation.Bean#propertyFilter() @Bean.propertyFilter()} annotation
+				and {@link org.apache.juneau.transform.PropertyFilter} 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 {
@@ -2010,50 +1997,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 {@link org.apache.juneau.annotation.BeanProperty @BeanProperty} annotation is used to tailor how 
-					individual bean properties are interpreted by the framework.
-				</p>
-				<p>
-					The {@link org.apache.juneau.annotation.BeanProperty#name() @BeanProperty.name()} 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 {@link org.apache.juneau.annotation.BeanProperty @BeanProperty} annotation is used to tailor how 
+				individual bean properties are interpreted by the framework.
+			</p>
+			<p>
+				The {@link org.apache.juneau.annotation.BeanProperty#name() @BeanProperty.name()} 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 {@link org.apache.juneau.BeanContext#BEAN_beanFieldVisibility} 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 {@link org.apache.juneau.BeanContext#BEAN_beanFieldVisibility} 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 {
@@ -2088,12 +2075,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 {
 
@@ -2111,70 +2098,70 @@
 			...
 		}
 	}
-				</p>
-				<ul class='doctree'>
-					<li class='info'>
-						Note that if you're not interested in these additional properties, you can also use the
-						{@link org.apache.juneau.BeanContext#BEAN_ignoreUnknownBeanProperties} setting to ignore values 
-						that don't fit into existing properties.
-				</ul>
-				<p>
-					The {@link org.apache.juneau.annotation.BeanProperty#value() @BeanProperty.value()} annotation
-					is a synonym for {@link org.apache.juneau.annotation.BeanProperty#name() @BeanProperty.name()}.
-					<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
+					{@link org.apache.juneau.BeanContext#BEAN_ignoreUnknownBeanProperties} setting to ignore values 
+					that don't fit into existing properties.
+			</ul>
+			<p>
+				The {@link org.apache.juneau.annotation.BeanProperty#value() @BeanProperty.value()} annotation
+				is a synonym for {@link org.apache.juneau.annotation.BeanProperty#name() @BeanProperty.name()}.
+				<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 {@link org.apache.juneau.annotation.BeanProperty#type() @BeanProperty.type()} 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 {@link java.lang.InstantiationException} 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 {@link org.apache.juneau.annotation.BeanProperty#type() @BeanProperty.type()} 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 {@link java.lang.InstantiationException} 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 {@link org.apache.juneau.annotation.BeanProperty#params() @BeanProperty.params()} 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 {@link org.apache.juneau.annotation.BeanProperty#params() @BeanProperty.params()} 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 {@link org.apache.juneau.annotation.BeanProperty#properties() @BeanProperty.properties()} 
-					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 {@link org.apache.juneau.annotation.BeanProperty#properties() @BeanProperty.properties()} 
+				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>
@@ -2189,32 +2176,32 @@
 
 	<jc>// Renders "{x1:{f1:1}}"</jc>
 	String json = JsonSerializer.<jsf>DEFAULT</jsf>.serialize(<jk>new</jk> MyClass());
-				</p>
-				<p>
-					The {@link org.apache.juneau.annotation.BeanProperty#format() @BeanProperty.format()} 
-					annotation specifies a String format for converting a bean property value to a formatted string.
-				</p>
-				<p class='bcode'>
+			</p>
+			<p>
+				The {@link org.apache.juneau.annotation.BeanProperty#format() @BeanProperty.format()} 
+				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 {@link org.apache.juneau.annotation.BeanConstructor @BeanConstructor} 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 {@link org.apache.juneau.annotation.BeanConstructor @BeanConstructor} 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>;
@@ -2237,39 +2224,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 {@link org.apache.juneau.annotation.BeanIgnore @BeanIgnore} 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 {@link org.apache.juneau.annotation.BeanIgnore @BeanIgnore} 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>
@@ -2280,22 +2267,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 {@link org.apache.juneau.annotation.NameProperty @NameProperty} 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 {@link org.apache.juneau.annotation.NameProperty @NameProperty} 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>},
@@ -2312,21 +2299,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 {@link org.apache.juneau.annotation.ParentProperty @ParentProperty} 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 {@link org.apache.juneau.annotation.ParentProperty @ParentProperty} 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>;
 	}
@@ -2340,26 +2327,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 {@link org.apache.juneau.annotation.BeanConstructor @BeanConstructor}
-					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 {@link org.apache.juneau.annotation.BeanConstructor @BeanConstructor}
+				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>
@@ -2408,70 +2395,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 {@link org.apache.juneau.transform.Builder} 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 {@link org.apache.juneau.transform.Builder} interface.
+					<br>The builder class must have a public no-arg constructor.
+					<p class='bcode'>
 	<jk>public</jk> MyPojo(MyBuilder b) {...}
-						</p>
-					<li>A {@link org.apache.juneau.annotation.Builder @Builder} annotation on the POJO class.
-						<br>The builder class must have a public no-arg constructor.
-						<p class='bcode'>
+					</p>
+				<li>A {@link org.apache.juneau.annotation.Builder @Builder} 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'>{@link org.apache.juneau.annotation.Builder}
-					<li class='jic'>{@link org.apache.juneau.transform.Builder}
-				</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'>{@link org.apache.juneau.annotation.Builder}
+				<li class='jic'>{@link org.apache.juneau.transform.Builder}
+			</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
@@ -2527,46 +2514,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'>{@link org.apache.juneau.serializer.Serializer#SERIALIZER_uriContext}
-						<br>Setting that defines the URI contextual information used to resolve relative URIs.
-					<li class='jf'>{@link org.apache.juneau.serializer.Serializer#SERIALIZER_uriRelativity}
-						<br>Setting that defines how relative URIs should be interpreted.
-						<br>Possible values:
-						<ul>
-							<li class='jf'>{@link org.apache.juneau.UriRelativity#RESOURCE}
-								<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'>{@link org.apache.juneau.UriRelativity#PATH_INFO}
-								<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'>{@link org.apache.juneau.serializer.Serializer#SERIALIZER_uriResolution}
-						<br>Setting that defines the final format of serialized URIs.
-						<br>Possible values:
-						<ul>
-							<li class='jf'>{@link org.apache.juneau.UriResolution#ABSOLUTE}
-								<br>Resolve to an absolute URL.
-								<br>(e.g. <js>"http://host:port/context-root/servlet-path/path-info"</js>).
-							<li class='jf'>{@link org.apache.juneau.UriResolution#ROOT_RELATIVE}
-								<br>Resolve to a root-relative URL.
-								<br>(e.g. <js>"/context-root/servlet-path/path-info"</js>).
-							<li class='jf'>{@link org.apache.juneau.UriResolution#NONE}
-								<br>Don't do any URL resolution.
-						</ul>
-				</ul>
-				<p>
-					Juneau automatically interprets any {@link java.net.URL} and {@link java.net.URI} objects as URIs and will
-					resolve them accordingly.
-					<br>The {@link org.apache.juneau.annotation.URI @URI} 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'>{@link org.apache.juneau.serializer.Serializer#SERIALIZER_uriContext}
+					<br>Setting that defines the URI contextual information used to resolve relative URIs.
+				<li class='jf'>{@link org.apache.juneau.serializer.Serializer#SERIALIZER_uriRelativity}
+					<br>Setting that defines how relative URIs should be interpreted.
+					<br>Possible values:
+					<ul>
+						<li class='jf'>{@link org.apache.juneau.UriRelativity#RESOURCE}
+							<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'>{@link org.apache.juneau.UriRelativity#PATH_INFO}
+							<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'>{@link org.apache.juneau.serializer.Serializer#SERIALIZER_uriResolution}
+					<br>Setting that defines the final format of serialized URIs.
+					<br>Possible values:
+					<ul>
+						<li class='jf'>{@link org.apache.juneau.UriResolution#ABSOLUTE}
+							<br>Resolve to an absolute URL.
+							<br>(e.g. <js>"http://host:port/context-root/servlet-path/path-info"</js>).
+						<li class='jf'>{@link org.apache.juneau.UriResolution#ROOT_RELATIVE}
+							<br>Resolve to a root-relative URL.
+							<br>(e.g. <js>"/context-root/servlet-path/path-info"</js>).
+						<li class='jf'>{@link org.apache.juneau.UriResolution#NONE}
+							<br>Don't do any URL resolution.
+					</ul>
+			</ul>
+			<p>
+				Juneau automatically interprets any {@link java.net.URL} and {@link java.net.URI} objects as URIs and will
+				resolve them accordingly.
+				<br>The {@link org.apache.juneau.annotation.URI @URI} 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 {
@@ -2587,37 +2574,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 {@link org.apache.juneau.transform.BeanFilter} class is the programmatic equivalent to the
-					{@link org.apache.juneau.annotation.Bean @Bean} annotation.
-				</p>
-				<p>
-					In practice, it's usually simpler to use the {@link org.apache.juneau.annotation.Bean @Bean} and 
-					{@link org.apache.juneau.annotation.BeanProperty @BeanProperty} 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 {@link org.apache.juneau.transform.BeanFilterBuilder BeanFilterBuilders}.
-				</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 {@link org.apache.juneau.transform.BeanFilter} class is the programmatic equivalent to the
+				{@link org.apache.juneau.annotation.Bean @Bean} annotation.
+			</p>
+			<p>
+				In practice, it's usually simpler to use the {@link org.apache.juneau.annotation.Bean @Bean} and 
+				{@link org.apache.juneau.annotation.BeanProperty @BeanProperty} 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 {@link org.apache.juneau.transform.BeanFilterBuilder BeanFilterBuilders}.
+			</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>
@@ -2625,36 +2612,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'>{@link org.apache.juneau.BeanContext#BEAN_beanFilters}
-					<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beanFilters(Object...)}
-				</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'>{@link org.apache.juneau.BeanContext#BEAN_beanFilters}
+				<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beanFilters(Object...)}
+			</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 {@link org.apache.juneau.BeanContextBuilder#beanFilters(Object...)} method also allows you to pass in interfaces.
-					<br>Any class that's not a subclass of {@link org.apache.juneau.transform.BeanFilterBuilder} 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 {@link org.apache.juneau.BeanContextBuilder#beanFilters(Object...)} method also allows you to pass in interfaces.
+				<br>Any class that's not a subclass of {@link org.apache.juneau.transform.BeanFilterBuilder} 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();
@@ -2676,29 +2663,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'>{@link org.apache.juneau.BeanContext#BEAN_beanFilters}
-					<li class='ja'>{@link org.apache.juneau.annotation.Bean#interfaceClass() @Bean.interfaceClass()}
-					<li class='jm'>{@link org.apache.juneau.transform.BeanFilterBuilder#interfaceClass(Class)}
-				</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'>{@link org.apache.juneau.BeanContext#BEAN_beanFilters}
+				<li class='ja'>{@link org.apache.juneau.annotation.Bean#interfaceClass() @Bean.interfaceClass()}
+				<li class='jm'>{@link org.apache.juneau.transform.BeanFilterBuilder#interfaceClass(Class)}
+			</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();
@@ -2780,33 +2767,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'>{@link org.apache.juneau.annotation.Bean#stopClass() @Bean.stopClass()}
-					<li class='jf'>{@link org.apache.juneau.transform.BeanFilterBuilder#stopClass(Class)}
-				</ul>
-				<p>
-					Stop classes are identical in purpose to the stop class specified by {@link java.beans.Introspector#getBeanInfo(Class, Class)}.
-					<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'>{@link org.apache.juneau.annotation.Bean#stopClass() @Bean.stopClass()}
+				<li class='jf'>{@link org.apache.juneau.transform.BeanFilterBuilder#stopClass(Class)}
+			</ul>
+			<p>
+				Stop classes are identical in purpose to the stop class specified by {@link java.beans.Introspector#getBeanInfo(Class, Class)}.
+				<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();
 	}
@@ -2822,19 +2809,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>);	
@@ -2842,18 +2829,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 {@link org.apache.juneau.BeanSession#getMediaType()} 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 {@link org.apache.juneau.BeanSession#getMediaType()} 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 {...}
 	
@@ -2867,111 +2854,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 {@link org.apache.juneau.annotation.Bean#typeName() @Bean.typeName()} 
-				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 {@link org.apache.juneau.annotation.Bean#typeName() @Bean.typeName()} 
+			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'>{@link org.apache.juneau.annotation.BeanProperty#beanDictionary() @BeanProperty.beanDictionary()} 
-					- On individual bean properties through the annotation.
-				<li class='ja'>{@link org.apache.juneau.annotation.Bean#beanDictionary() @Bean.beanDictionary()} 
-					- On all properties on a bean and all subclasses.
-				<li class='jf'>{@link org.apache.juneau.BeanContext#BEAN_beanDictionary} 
-					- Configuration property on serializers and parsers.
-				<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beanDictionary(Object...)}
-					- 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 {@link org.apache.juneau.annotation.Bean#typeName() @Bean.typeName()}.
-				<li>Any subclass of {@link org.apache.juneau.BeanDictionaryList} containing a collection of bean classes with type name annotations.
-				<li>Any subclass of {@link org.apache.juneau.BeanDictionaryMap} 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'>{@link org.apache.juneau.annotation.BeanProperty#beanDictionary() @BeanProperty.beanDictionary()} 
+				- On individual bean properties through the annotation.
+			<li class='ja'>{@link org.apache.juneau.annotation.Bean#beanDictionary() @Bean.beanDictionary()} 
+				- On all properties on a bean and all subclasses.
+			<li class='jf'>{@link org.apache.juneau.BeanContext#BEAN_beanDictionary} 
+				- Configuration property on serializers and parsers.
+			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beanDictionary(Object...)}
+				- 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 {@link org.apache.juneau.annotation.Bean#typeName() @Bean.typeName()}.
+			<li>Any subclass of {@link org.apache.juneau.BeanDictionaryList} containing a collection of bean classes with type name annotations.
+			<li>Any subclass of {@link org.apache.juneau.BeanDictionaryMap} 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>()
@@ -2990,23 +2977,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'>{@link org.apache.juneau.annotation.Bean#typePropertyName() @Bean.typePropertyName()} 
-					- On individual beans through the annotation.
-				<li class='jf'>{@link org.apache.juneau.BeanContext#BEAN_beanTypePropertyName} 
-					- Configuration property on serializers and parsers.
-				<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beanTypePropertyName(String)} 
-					- 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'>{@link org.apache.juneau.annotation.Bean#typePropertyName() @Bean.typePropertyName()} 
+				- On individual beans through the annotation.
+			<li class='jf'>{@link org.apache.juneau.BeanContext#BEAN_beanTypePropertyName} 
+				- Configuration property on serializers and parsers.
+			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beanTypePropertyName(String)} 
+				- 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 {...}
 
@@ -3020,40 +3007,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 
+				{@link org.apache.juneau.serializer.Serializer#SERIALIZER_addBeanTypeProperties} 
+				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 
-					{@link org.apache.juneau.serializer.Serializer#SERIALIZER_addBeanTypeProperties} 
-					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>}
@@ -3073,40 +3060,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 {@link org.apache.juneau.BeanContext#BEAN_useInterfaceProxies} setting (enabled by default) allows
-				the Juneau parsers to parse content into virtual beans (bean interfaces without implementation classes).
 			</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 {@link org.apache.juneau.BeanContext#BEAN_useInterfaceProxies} setting (enabled by default) allows
+			the Juneau parsers to parse content into virtual beans (bean interfaces without implementation classes).
+		</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 {
 		
@@ -3131,44 +3118,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'>{@link org.apache.juneau.json.JsonParser}
-				<li class='jc'>{@link org.apache.juneau.uon.UonParser}
-				<li class='jc'>{@link org.apache.juneau.msgpack.MsgPackParser}
-			</ul>
-			<p>
-				The {@link org.apache.juneau.json.JsonParser} and {@link org.apache.juneau.uon.UonParser}
-				classes can read continous streams by using the {@link org.apache.juneau.parser.Parser#PARSER_unbuffered}
-				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'>{@link org.apache.juneau.json.JsonParser}
+			<li class='jc'>{@link org.apache.juneau.uon.UonParser}
+			<li class='jc'>{@link org.apache.juneau.msgpack.MsgPackParser}
+		</ul>
+		<p>
+			The {@link org.apache.juneau.json.JsonParser} and {@link org.apache.juneau.uon.UonParser}
+			classes can read continous streams by using the {@link org.apache.juneau.parser.Parser#PARSER_unbuffered}
+			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;
@@ -3181,617 +3168,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'>{@link org.apache.juneau.json.JsonParser#JSON_validateEnd}
-				<li class='jf'>{@link org.apache.juneau.uon.UonParser#UON_validateEnd}
-				<li class='jf'>{@link org.apache.juneau.parser.Parser#PARSER_autoCloseStreams}
-			</ul>
-			<p>
-				The {@link org.apache.juneau.msgpack.MsgPackParser} class doesn't use any internal buffering to begin with, so it can be used with
-				continuous streams without any special properties.
-			</p>
-		</div>
-		
-		<!-- ======================================================================================================= -->
-		<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>
-						{@link org.apache.juneau.annotation.BeanProperty @BeanProperty}
-					</td>
-				</tr>
-				<tr>
-					<td>
-						<ja>@JsonAnyGetter</ja>
-						<br><ja>@JsonAnySetter</ja>
-					</td>
-					<td>
-						{@link org.apache.juneau.annotation.BeanProperty#name() @BeanProperty(name="*")}
-					</td>
-				</tr>
-				<tr>
-					<td>
-						<ja>@JsonIgnore</ja>
-						<br><ja>@JsonIgnoreType</ja>
-					</td>
-					<td>
-						{@link org.apache.juneau.annotation.BeanIgnore @BeanIgnore}
-					</td>
-				</tr>
-				<tr>
-					<td><code><ja>@JsonIgnoreProperties</ja>({...})</code></td>
-					<td>
-						{@link org.apache.juneau.annotation.Bean#excludeProperties @Bean(excludeProperties="...")}
-					</td>
-				</tr>
-				<tr>
-					<td><code><ja>@JsonAutoDetect</ja>(fieldVisibility=...)</code></td>
-					<td>
-						No equivalent annotation, but can be controlled via: 
-						<br>{@link org.apache.juneau.BeanContext#BEAN_beanFieldVisibility}
-						<br>{@link org.apache.juneau.BeanContext#BEAN_beanMethodVisibility}
-						<br>Future annotation support planned.
-					</td>
-				</tr>
-				<tr>
-					<td>
-						<ja>@JsonCreator</ja>
-						<br><ja>@JsonProperty</ja>
-					</td>
-					<td>
-						{@link org.apache.juneau.annotation.BeanConstructor @BeanConstructor}
-					</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>{@link org.apache.juneau.annotation.Swap @Swap}
-					</td>
-				</tr>
-				<tr>
-					<td><ja>@JsonInclude</ja></td>
-					<td>
-						No equivalent annotation, but can be controlled via various settings:
-						<br>{@link org.apache.juneau.BeanContext}
-						<br>{@link org.apache.juneau.serializer.Serializer}
-						<br>Future annotation support planned.
-					</td>
-				</tr>
-				<tr>
-					<td><ja>@JsonPropertyOrder</ja></td>
-					<td>
-						{@link org.apache.juneau.annotation.Bean#properties @Bean(properties="...")}
-						<br>{@link org.apache.juneau.annotation.Bean#sort @Bean(sort=x)}
-					</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}
-							<li>{@code Integer}
-							<li>{@code Float}
-							<li>{@code Boolean}
-						</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 
-						{@link org.apache.juneau.transform.PojoSwap PojoSwaps} 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 {@link org.apache.juneau.transforms.DateSwap.ISO8601DT} class can be used to 
-						serialize {@link java.util.Date} objects to ISO8601 strings, and parse them back into 
-						{@link java.util.Date} 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} to a {@code String}.
-					</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} to a {@code List}.  
-						This would be one way, since you cannot reconstruct an {@code Iterator}.
-					</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}
-							<li>{@code StringReader}
-						</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'>{@link org.apache.juneau.json.JsonParser#JSON_validateEnd}
+			<li class='jf'>{@link org.apache.juneau.uon.UonParser#UON_validateEnd}
+			<li class='jf'>{@link org.apache.juneau.parser.Parser#PARSER_autoCloseStreams}
+		</ul>
+		<p>
+			The {@link org.apache.juneau.msgpack.MsgPackParser} class doesn't use any internal buffering to begin with, so it can be used with
+			continuous streams without any special properties.
+		</p>
+	</div>
 	
-				<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} 
-						using the {@code toString()} 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} 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>
+					{@link org.apache.juneau.annotation.BeanProperty @BeanProperty}
+				</td>
+			</tr>
+			<tr>
+				<td>
+					<ja>@JsonAnyGetter</ja>
+					<br><ja>@JsonAnySetter</ja>
+				</td>
+				<td>
+					{@link org.apache.juneau.annotation.BeanProperty#name() @BeanProperty(name="*")}
+				</td>
+			</tr>
+			<tr>
+				<td>
+					<ja>@JsonIgnore</ja>
+					<br><ja>@JsonIgnoreType</ja>
+				</td>
+				<td>
+					{@link org.apache.juneau.annotation.BeanIgnore @BeanIgnore}
+				</td>
+			</tr>
+			<tr>
+				<td><code><ja>@JsonIgnoreProperties</ja>({...})</code></td>
+				<td>
+					{@link org.apache.juneau.annotation.Bean#excludeProperties @Bean(excludeProperties="...")}
+				</td>
+			</tr>
+			<tr>
+				<td><code><ja>@JsonAutoDetect</ja>(fieldVisibility=...)</code></td>
+				<td>
+					No equivalent annotation, but can be controlled via: 
+					<br>{@link org.apache.juneau.BeanContext#BEAN_beanFieldVisibility}
+					<br>{@link org.apache.juneau.BeanContext#BEAN_beanMethodVisibility}
+					<br>Future annotation support planned.
+				</td>
+			</tr>
+			<tr>
+				<td>
+					<ja>@JsonCreator</ja>
+					<br><ja>@JsonProperty</ja>
+				</td>
+				<td>
+					{@link org.apache.juneau.annotation.BeanConstructor @BeanConstructor}
+				</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>{@link org.apache.juneau.annotation.Swap @Swap}
+				</td>
+			</tr>
+			<tr>
+				<td><ja>@JsonInclude</ja></td>
+				<td>
+					No equivalent annotation, but can be controlled via various settings:
+					<br>{@link org.apache.juneau.BeanContext}
+					<br>{@link org.apache.juneau.serializer.Serializer}
+					<br>Future annotation support planned.
+				</td>
+			</tr>
+			<tr>
+				<td><ja>@JsonPropertyOrder</ja></td>
+				<td>
+					{@link org.apache.juneau.annotation.Bean#properties @Bean(properties="...")}
+					<br>{@link org.apache.juneau.annotation.Bean#sort @Bean(sort=x)}
+				</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}
+						<li>{@code Integer}
+						<li>{@code Float}
+						<li>{@code Boolean}
+					</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 
+					{@link org.apache.juneau.transform.PojoSwap PojoSwaps} 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 {@link org.apache.juneau.transforms.DateSwap.ISO8601DT} class can be used to 
+					serialize {@link java.util.Date} objects to ISO8601 strings, and parse them back into 
+					{@link java.util.Date} 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} to a {@code String}.
+				</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} to a {@code List}.  
+					This would be one way, since you cannot reconstruct an {@code Iterator}.
+				</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}
+						<li>{@code StringReader}
+					</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} 
+					using the {@code toString()} 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} 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 {@link org.apache.juneau.serializer.Serializer#SERIALIZER_detectRecursions SERIALIZER_detectRecursions} 
+				option on the {@link org.apache.juneau.serializer.Serializer} 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 {@link org.apache.juneau.parser.Parser} methods that take in {@link org.apache.juneau.ClassMeta} 
+				parameters are slightly faster than methods that 
+				take in {@link java.lang.Class} or {@link java.lang.Object} parameters, since the latter methods involve 
+				hash lookups to resolve to {@link org.apache.juneau.ClassMeta} parameters.
+		</ol>
+	</div>
+
+	<!-- ======================================================================================================= -->
+	<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 {@link org.apache.juneau.serializer.Serializer#SERIALIZER_detectRecursions SERIALIZER_detectRecursions} 
-					option on the {@link org.apache.juneau.serializer.Serializer} 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 {@link org.apache.juneau.parser.Parser} methods that take in {@link org.apache.juneau.ClassMeta} 
-					parameters are slightly faster than methods that 
-					take in {@link java.lang.Class} or {@link java.lang.Object} parameters, since the latter methods involve 
-					hash lookups to resolve to {@link org.apache.juneau.ClassMeta} parameters.
+			<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>
+			</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>
-			</div>
+			</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>;
@@ -3824,87 +3811,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 {@link org.apache.juneau.dto.html5.HtmlBuilder} 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 {@link org.apache.juneau.dto.html5.HtmlBuilder} 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 = 	
@@ -3920,8 +3907,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;
@@ -3932,10 +3919,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 = 	
@@ -3945,15 +3932,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 =
@@ -3966,8 +3953,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;
@@ -3976,43 +3963,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 {@link org.apache.juneau.html.HtmlParser} class can be used convert these HTML documents back
-				into POJOs.
-			</p>
-			<p>
-				Other serializers and parsers (e.g. {@link org.apache.juneau.json.JsonSerializer}) 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 {@link org.apache.juneau.html.HtmlParser} class can be used convert these HTML documents back
+			into POJOs.
+		</p>
+		<p>
+			Other serializers and parsers (e.g. {@link org.apache.juneau.json.JsonSerializer}) 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 
-				{@link org.apache.juneau.dto.atom.AtomBuilder} 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 
+			{@link org.apache.juneau.dto.atom.AtomBuilder} class.
+		</p>
+		<p class='bcode'>
 	<jk>import static</jk> org.apache.juneau.dto.atom.AtomBuilder.*;
 	
 	Feed feed = 
@@ -4046,22 +4033,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 {@link org.apache.juneau.xml.XmlSerializer} class:
-			</p>
-			
-			<h5 class='figure'>Example with no namespaces</h5>
-			<p class='bcode'>
+		</p>
+		<p>
+			To serialize this to ATOM, use the {@link org.apache.juneau.xml.XmlSerializer} 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
@@ -4111,49 +4098,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 {@link org.apache.juneau.xml.XmlParser} class can be used convert these Atom documents back into POJOs.
-			</p>
-			<p>
-				Other serializers and parsers (e.g. {@link org.apache.juneau.json.JsonSerializer}) 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 {@link org.apache.juneau.xml.XmlParser} class can be used convert these Atom documents back into POJOs.
+		</p>
+		<p>
+			Other serializers and parsers (e.g. {@link org.apache.juneau.json.JsonSerializer}) 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 {@link org.apache.juneau.dto.swagger.SwaggerBuilder} 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 {@link org.apache.juneau.dto.swagger.SwaggerBuilder} 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>: {
@@ -4218,11 +4205,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>()
@@ -4268,133 +4255,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 {@link org.apache.juneau.dto.swagger.SwaggerElement#get(String,Class)}
-				and {@link org.apache.juneau.dto.swagger.SwaggerElement#set(String,Object)} 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 {@link org.apache.juneau.dto.swagger.SwaggerElement#get(String,Class)}
+			and {@link org.apache.juneau.dto.swagger.SwaggerElement#set(String,Object)} 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>	
+	</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-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'>
+	</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>
@@ -4407,11 +4393,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;
@@ -4431,11 +4417,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>,
@@ -4453,12 +4439,12 @@
 			<js>"key3 = [4,5,6]"</js>,
 			<js>"key4 = http://bar"</js>)
 		.save();
-		</p>
-		<p>
-			The following is equivalent, except that it uses {@link org.apache.juneau.ini.ConfigFile#put(String, Object)} 
-			to set values:
-		</p>
-		<p class='bcode'>
+	</p>
+	<p>
+		The following is equivalent, except that it uses {@link org.apache.juneau.ini.ConfigFile#put(String, Object)} 
+		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>,
@@ -4474,29 +4460,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>
@@ -4540,9 +4526,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>();
 	
@@ -4557,12 +4542,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 
-			{@link org.apache.juneau.ini.ConfigFile#getSectionAsBean(String,Class,boolean)}:
-		</p>
-		<p class='bcode'>
+	</p>
+	<p>
+		Config files can also be used to directly populate beans using the 
+		{@link org.apache.juneau.ini.ConfigFile#getSectionAsBean(String,Class,boolean)}:
+	</p>
+	<p class='bcode'>
 	<jc>// Example config file</jc>
 	<cs>[MyAddress]</cs>
 	<ck>name</ck> = <cv>John Smith</cv>
@@ -4581,12 +4566,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 
-			{@link org.apache.juneau.ini.ConfigFile#getSectionAsInterface(String,Class)}:
-		</p>
-		<p class='bcode'>
+	</p>
+	<p>
+		Config file sections can also be accessed via interface proxies using 
+		{@link org.apache.juneau.ini.ConfigFile#getSectionAsInterface(String,Class)}:
+	</p>
+	<p class='bcode'>
 	<jc>// Example config file</jc>
 	<cs>[MySection]</cs>
 	<ck>string</ck> = <cv>foo</cv>
@@ -4624,170 +4609,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, {@link org.apache.juneau.rest.RestServlet} is nothing but a specialized 
+		{@link javax.servlet.http.HttpServlet}, and the {@link org.apache.juneau.rest.RestRequest} and 
+		{@link org.apache.juneau.rest.RestResponse} classes are nothing more than specialized 
+		{@link javax.servlet.http.HttpServletRequest} and {@link javax.servlet.http.HttpServletResponse} 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 {@link org.apache.juneau.rest.annotation.RestResource}.
+			<br>The most common case is a class that extends {@link org.apache.juneau.rest.RestServlet}, which itself is simply an 
+			extension of {@link javax.servlet.http.HttpServlet} 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, {@link org.apache.juneau.rest.RestServlet} is nothing but a specialized 
-			{@link javax.servlet.http.HttpServlet}, and the {@link org.apache.juneau.rest.RestRequest} and 
-			{@link org.apache.juneau.rest.RestResponse} classes are nothing more than specialized 
-			{@link javax.servlet.http.HttpServletRequest} and {@link javax.servlet.http.HttpServletResponse} 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 {@link org.apache.juneau.rest.annotation.RestResource}.
-				<br>The most common case is a class that extends {@link org.apache.juneau.rest.RestServlet}, which itself is simply an 
-				extension of {@link javax.servlet.http.HttpServlet} 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>
@@ -4799,11 +4765,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>
@@ -4831,151 +4797,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 {@link org.apache.juneau.rest.RestServletDefault} class that we're using here is a subclass of 
-				{@link org.apache.juneau.rest.RestServlet} that provides default support for a variety of content types.  
-				<br>Implementers can choose to use this class, or create their own subclass of 
-				{@link org.apache.juneau.rest.RestServlet} 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 {@link org.apache.juneau.rest.RestServletDefault} class that we're using here is a subclass of 
+			{@link org.apache.juneau.rest.RestServlet} that provides default support for a variety of content types.  
+			<br>Implementers can choose to use this class, or create their own subclass of 
+			{@link org.apache.juneau.rest.RestServlet} 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'>
+				{@link javax.servlet.http.HttpServlet javax.servlet.http.HttpServlet} 
+				<ul>
+					<li class='jac'>
+						{@link org.apache.juneau.rest.RestServlet org.apache.juneau.rest.RestServlet}
+						<br>Contains all the main logic.
+						<ul>
+							<li class='jac'>
+								{@link org.apache.juneau.rest.RestServletDefault org.apache.juneau.rest.RestServletDefault}
+								<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'>
+										{@link org.apache.juneau.microservice.Resource org.apache.juneau.microservice.Resource}
+										<br>Subclass intended to be used in REST microservices.
+										<br><b>Developers will typically subclass this when creating microservices.</b> 
+									<li class='jac'>
+										{@link org.apache.juneau.rest.RestServletGroupDefault org.apache.juneau.rest.RestServletGroupDefault}
+										<br>A default implementation for "router" pages.
+										<ul>
+											<li class='jac'>
+												{@link org.apache.juneau.microservice.ResourceGroup org.apache.juneau.microservice.ResourceGroup}
+												<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'>{@link org.apache.juneau.rest.RestContext} - Each resource class instance has one copy that holds all of its configuration.
+			<li class='jc'>{@link org.apache.juneau.rest.RestContextBuilder} - 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 {@link org.apache.juneau.rest.RestServlet} 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'>
-					{@link javax.servlet.http.HttpServlet javax.servlet.http.HttpServlet} 
-					<ul>
-						<li class='jac'>
-							{@link org.apache.juneau.rest.RestServlet org.apache.juneau.rest.RestServlet}
-							<br>Contains all the main logic.
-							<ul>
-								<li class='jac'>
-									{@link org.apache.juneau.rest.RestServletDefault org.apache.juneau.rest.RestServletDefault}
-									<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'>
-											{@link org.apache.juneau.microservice.Resource org.apache.juneau.microservice.Resource}
-											<br>Subclass intended to be used in REST microservices.
-											<br><b>Developers will typically subclass this when creating microservices.</b> 
-										<li class='jac'>
-											{@link org.apache.juneau.rest.RestServletGroupDefault org.apache.juneau.rest.RestServletGroupDefault}
-											<br>A default implementation for "router" pages.
-											<ul>
-												<li class='jac'>
-													{@link org.apache.juneau.microservice.ResourceGroup org.apache.juneau.microservice.ResourceGroup}
-													<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 {@link org.apache.juneau.rest.RestContext} 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 {@link org.apache.juneau.rest.RestServletDefault}.
+				<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'>{@link org.apache.juneau.rest.RestContext} - Each resource class instance has one copy that holds all of its configuration.
-				<li class='jc'>{@link org.apache.juneau.rest.RestContextBuilder} - Builder for the class above.
+			<ul class='doctree'>
+				<li class='jac'><code>{@link org.apache.juneau.rest.RestServlet} <jk>extends</jk> HttpServlet</code>
+				<ul>
+					<li class='jf'>{@link org.apache.juneau.rest.RestServlet#log(Level,String,Object...) log(Level,String,Object...)}
+					<li class='jf'>{@link org.apache.juneau.rest.RestServlet#log(Level,Throwable,String,Object...) log(Level,Throwable,String,Object...)}
+					<li class='jf'>{@link org.apache.juneau.rest.RestServlet#getContext() getContext()}
+				</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:
-			</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.
+				The {@link org.apache.juneau.rest.RestServletDefault} class is a subclass of {@link org.apache.juneau.rest.RestServlet}
+				preconfigured with the following:
 			</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 {@link org.apache.juneau.rest.RestServlet} 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 {@link org.apache.juneau.rest.RestContext} 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 {@link org.apache.juneau.rest.RestServletDefault}.
-					<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>{@link org.apache.juneau.rest.RestServlet} <jk>extends</jk> HttpServlet</code>
-					<ul>
-						<li class='jf'>{@link org.apache.juneau.rest.RestServlet#log(Level,String,Object...) log(Level,String,Object...)}
-						<li class='jf'>{@link org.apache.juneau.rest.RestServlet#log(Level,Throwable,String,Object...) log(Level,Throwable,String,Object...)}
-						<li class='jf'>{@link org.apache.juneau.rest.RestServlet#getContext() getContext()}
-					</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 {@link org.apache.juneau.rest.RestServletDefault} class is a subclass of {@link org.apache.juneau.rest.RestServlet}
-					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'>
+			<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'>
 	<ja>@RestResource</ja>(
 		serializers={
 			HtmlDocSerializer.<jk>class</jk>,
@@ -5045,69 +5011,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 
-					{@link org.apache.juneau.rest.annotation.RestResource#children() @RestResource.children()} 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 
+				{@link org.apache.juneau.rest.annotation.RestResource#children() @RestResource.children()} 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'>{@link org.apache.juneau.rest.RestContext#REST_children}
-				</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'>{@link org.apache.juneau.rest.RestContext#REST_children}
+			</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 {@link org.apache.juneau.rest.RestServletGroupDefault} 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 {@link org.apache.juneau.rest.RestServletGroupDefault} 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>
@@ -5139,19 +5105,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 {@link org.apache.juneau.rest.RestServletGroupDefault} class is nothing more than a subclass of 
-					{@link org.apache.juneau.rest.RestServletDefault} 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 {@link org.apache.juneau.rest.RestServletGroupDefault} class is nothing more than a subclass of 
+				{@link org.apache.juneau.rest.RestServletDefault} 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>)
@@ -5159,53 +5125,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 {@link org.apache.juneau.rest.annotation.RestResource @RestResource}
-					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 {@link org.apache.juneau.rest.RestContextBuilder} 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'>{@link org.apache.juneau.rest.RestResourceResolver}
-					<ul>
-						<li class='jc'>{@link org.apache.juneau.rest.RestResourceResolverDefault}
-					</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 {@link org.apache.juneau.rest.annotation.RestResource @RestResource}
+				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 {@link org.apache.juneau.rest.RestContextBuilder} 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'>{@link org.apache.juneau.rest.RestResourceResolver}
 				<ul>
-					<li class='jf'>{@link org.apache.juneau.rest.RestContext#REST_resourceResolver}
+					<li class='jc'>{@link org.apache.juneau.rest.RestResourceResolverDefault}
 				</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'>{@link org.apache.juneau.rest.RestContext#REST_resourceResolver}
+			</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  {
@@ -5218,11 +5184,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 {
 
@@ -5232,213 +5198,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'>{@link org.apache.juneau.rest.annotation.HookEvent#INIT INIT} - Right before initialization.
-							<li class='jf'>{@link org.apache.juneau.rest.annotation.HookEvent#POST_INIT POST_INIT} - Right after initialization.
-							<li class='jf'>{@link org.apache.juneau.rest.annotation.HookEvent#POST_INIT_CHILD_FIRST POST_INIT_CHILD_FIRST} - Right after initialization, but run child methods first.
-							<li class='jf'>{@link org.apache.juneau.rest.annotation.HookEvent#DESTROY DESTROY} - Right before servlet destroy.
-						</ul>
-					<li>REST call lifecycle events:
-						<ul>
-							<li class='jf'>{@link org.apache.juneau.rest.annotation.HookEvent#START_CALL START_CALL} - At the beginning of a REST call.
-							<li class='jf'>{@link org.apache.juneau.rest.annotation.HookEvent#PRE_CALL PRE_CALL} - Right before the <ja>@RestMethod</ja> method is invoked.
-							<li class='jf'>{@link org.apache.juneau.rest.annotation.HookEvent#POST_CALL POST_CALL} - Right after the <ja>@RestMethod</ja> method is invoked.
-							<li class='jf'>{@link org.apache.juneau.rest.annotation.HookEvent#END_CALL END_CALL} - 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'>{@link org.apache.juneau.rest.annotation.RestHook}
-				</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 {@link org.apache.juneau.rest.annotation.RestResource @RestResource} 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'>{@link org.apache.juneau.rest.annotation.HookEvent#INIT INIT} - Right before initialization.
+						<li class='jf'>{@link org.apache.juneau.rest.annotation.HookEvent#POST_INIT POST_INIT} - Right after initialization.
+						<li class='jf'>{@link org.apache.juneau.rest.annotation.HookEvent#POST_INIT_CHILD_FIRST POST_INIT_CHILD_FIRST} - Right after initialization, but run child methods first.
+						<li class='jf'>{@link org.apache.juneau.rest.annotation.HookEvent#DESTROY DESTROY} - Right before servlet destroy.
+					</ul>
+				<li>REST call lifecycle events:
+					<ul>
+						<li class='jf'>{@link org.apache.juneau.rest.annotation.HookEvent#START_CALL START_CALL} - At the beginning of a REST call.
+						<li class='jf'>{@link org.apache.juneau.rest.annotation.HookEvent#PRE_CALL PRE_CALL} - Right before the <ja>@RestMethod</ja> method is invoked.
+						<li class='jf'>{@link org.apache.juneau.rest.annotation.HookEvent#POST_CALL POST_CALL} - Right after the <ja>@RestMethod</ja> method is invoked.
+						<li class='jf'>{@link org.apache.juneau.rest.annotation.HookEvent#END_CALL END_CALL} - 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 {@link org.apache.juneau.rest.annotation.RestResource @RestResource} 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>{@link org.apache.juneau.rest.annotation.RestResource#guards() guards()}</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>{@link org.apache.juneau.rest.annotation.RestResource#converters() converters()}</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>{@link org.apache.juneau.rest.annotation.RestResource#beanFilters() beanFilters()}</td>
-						<td>
-							Bean filters on child are combined with those on parent class.
-						</td>
-					</tr>
-					<tr>
-						<td>{@link org.apache.juneau.rest.annotation.RestResource#pojoSwaps() pojoSwaps()}</td>
-						<td>
-							POJO swaps on child are combined with those on parent class.
-						</td>
-					</tr>
-					<tr>
-						<td>{@link org.apache.juneau.rest.annotation.RestResource#properties() properties()}</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>{@link org.apache.juneau.rest.annotation.RestResource#serializers() serializers()}</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>{@link org.apache.juneau.rest.annotation.RestResource#parsers() parsers()}</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>{@link org.apache.juneau.rest.annotation.RestResource#responseHandlers() responseHandlers()}</td>
-						<td>
-							Response handlers on child are combined with those on parent class.
-						</td>
-					</tr>
-					<tr>
-						<td>{@link org.apache.juneau.rest.annotation.RestResource#encoders() encoders()}</td>
-						<td>
-							Encoders on child are combined with those on parent class.
-						</td>
-					</tr>
-					<tr>
-						<td>{@link org.apache.juneau.rest.annotation.RestResource#defaultRequestHeaders() defaultRequestHeaders()}</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>{@link org.apache.juneau.rest.annotation.RestResource#defaultResponseHeaders() defaultResponseHeaders()}</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>{@link org.apache.juneau.rest.annotation.RestResource#children() children()}</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>{@link org.apache.juneau.rest.annotation.RestResource#path() path()}</td>
-						<td>
-							Path is searched for in child-to-parent order.
-						</td>
-					</tr>
-					<tr>
-						<td>{@link org.apache.juneau.rest.annotation.RestResource#title() title()}</td>
-						<td>
-							Label is searched for in child-to-parent order.
-						</td>
-					</tr>
-					<tr>
-						<td>{@link org.apache.juneau.rest.annotation.RestResource#description() description()}</td>
-						<td>
-							Description is searched for in child-to-parent order.
-						</td>
-					</tr>
-					<tr>
-						<td>{@link org.apache.juneau.rest.annotation.RestResource#config() config()}</td>
-						<td>
-							Config file is searched for in child-to-parent order.
-						</td>
-					</tr>
-					<tr>
-						<td>{@link org.apache.juneau.rest.annotation.RestResource#staticFiles() staticFiles()}</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'>{@link org.apache.juneau.rest.annotation.RestHook}
+			</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 {@link org.apache.juneau.rest.annotation.RestResource @RestResource} 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 {@link org.apache.juneau.rest.RestContext} 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'>{@link org.apache.juneau.rest.annotation.RestResource} - Settings copied from the annotation during servlet initialization.
-				<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder} - 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 {@link org.apache.juneau.rest.RestContextBuilder} class extends {@link org.apache.juneau.BeanContextBuilder}
-				allowing you to programmatically set any properties defined on that builder class.
-				<br>It also implements {@link javax.servlet.ServletConfig}
+				The {@link org.apache.juneau.rest.annotation.RestResource @RestResource} 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>{@link org.apache.juneau.rest.annotation.RestResource#guards() guards()}</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>{@link org.apache.juneau.rest.annotation.RestResource#converters() converters()}</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>{@link org.apache.juneau.rest.annotation.RestResource#beanFilters() beanFilters()}</td>
+					<td>
+						Bean filters on child are combined with those on parent class.
+					</td>
+				</tr>
+				<tr>
+					<td>{@link org.apache.juneau.rest.annotation.RestResource#pojoSwaps() pojoSwaps()}</td>
+					<td>
+						POJO swaps on child are combined with those on parent class.
+					</td>
+				</tr>
+				<tr>
+					<td>{@link org.apache.juneau.rest.annotation.RestResource#properties() properties()}</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>{@link org.apache.juneau.rest.annotation.RestResource#serializers() serializers()}</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>{@link org.apache.juneau.rest.annotation.RestResource#parsers() parsers()}</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>{@link org.apache.juneau.rest.annotation.RestResource#responseHandlers() responseHandlers()}</td>
+					<td>
+						Response handlers on child are combined with those on parent class.
+					</td>
+				</tr>
+				<tr>
+					<td>{@link org.apache.juneau.rest.annotation.RestResource#encoders() encoders()}</td>
+					<td>
+						Encoders on child are combined with those on parent class.
+					</td>
+				</tr>
+				<tr>
+					<td>{@link org.apache.juneau.rest.annotation.RestResource#defaultRequestHeaders() defaultRequestHeaders()}</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>{@link org.apache.juneau.rest.annotation.RestResource#defaultResponseHeaders() defaultResponseHeaders()}</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>{@link org.apache.juneau.rest.annotation.RestResource#children() children()}</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>{@link org.apache.juneau.rest.annotation.RestResource#path() path()}</td>
+					<td>
+						Path is searched for in child-to-parent order.
+					</td>
+				</tr>
+				<tr>
+					<td>{@link org.apache.juneau.rest.annotation.RestResource#title() title()}</td>
+					<td>
+						Label is searched for in child-to-parent order.
+					</td>
+				</tr>
+				<tr>
+					<td>{@link org.apache.juneau.rest.annotation.RestResource#description() description()}</td>
+					<td>
+						Description is searched for in child-to-parent order.
+					</td>
+				</tr>
+				<tr>
+					<td>{@link org.apache.juneau.rest.annotation.RestResource#config() config()}</td>
+					<td>
+						Config file is searched for in child-to-parent order.
+					</td>
+				</tr>
+				<tr>
+					<td>{@link org.apache.juneau.rest.annotation.RestResource#staticFiles() staticFiles()}</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 {@link org.apache.juneau.rest.RestContext} 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'>{@link org.apache.juneau.rest.annotation.RestResource} - Settings copied from the annotation during servlet initialization.
+			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder} - 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 {@link org.apache.juneau.rest.RestContextBuilder} class extends {@link org.apache.juneau.BeanContextBuilder}
+			allowing you to programmatically set any properties defined on that builder class.
+			<br>It also implements {@link javax.servlet.ServletConfig}
+		</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
@@ -5453,134 +5419,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 
+			{@link org.apache.juneau.rest.annotation.RestMethod @RestMethod} 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 
-				{@link org.apache.juneau.rest.annotation.RestMethod @RestMethod} 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'>{@link org.apache.juneau.rest.RestRequest} - The request object.
+								<li class='jc'>{@link javax.servlet.http.HttpServletRequest} - The superclass of <code>RestRequest</code>.
+								<li class='jc'>{@link org.apache.juneau.rest.RestResponse} - The response object.
+								<li class='jc'>{@link javax.servlet.http.HttpServletResponse} - The superclass of <code>RestResponse</code>.
+							</ul>
+						<li><b>Parsed request header values:</b>
+							<ul>
+								<li class='jc'>{@link org.apache.juneau.http.Accept}
+								<li class='jc'>{@link org.apache.juneau.http.AcceptCharset}
+								<li class='jc'>{@link org.apache.juneau.http.AcceptEncoding}
+								<li class='jc'>{@link org.apache.juneau.http.AcceptLanguage}
+								<li class='jc'>{@link org.apache.juneau.http.Authorization}
+								<li class='jc'>{@link org.apache.juneau.http.CacheControl}
+								<li class='jc'>{@link org.apache.juneau.http.Connection}
+								<li class='jc'>{@link org.apache.juneau.http.ContentLength}
+								<li class='jc'>{@link org.apache.juneau.http.ContentType}
+								<li class='jc'>{@link org.apache.juneau.http.Date}
+								<li class='jc'>{@link org.apache.juneau.http.Expect}
+								<li class='jc'>{@link org.apache.juneau.http.From}
+								<li class='jc'>{@link org.apache.juneau.http.Host}
+								<li class='jc'>{@link org.apache.juneau.http.IfMatch}
+								<li class='jc'>{@link org.apache.juneau.http.IfModifiedSince}
+								<li class='jc'>{@link org.apache.juneau.http.IfNoneMatch}
+								<li class='jc'>{@link org.apache.juneau.http.IfRange}
+								<li class='jc'>{@link org.apache.juneau.http.IfUnmodifiedSince}
+								<li class='jc'>{@link org.apache.juneau.http.MaxForwards}
+								<li class='jc'>{@link org.apache.juneau.http.Pragma}
+								<li class='jc'>{@link org.apache.juneau.http.ProxyAuthorization}
+								<li class='jc'>{@link org.apache.juneau.http.Range}
+								<li class='jc'>{@link org.apache.juneau.http.Referer}
+								<li class='jc'>{@link org.apache.juneau.http.TE}
+								<li class='jc'>{@link org.apache.juneau.http.UserAgent}
+								<li class='jc'>{@link org.apache.juneau.http.Upgrade}
+								<li class='jc'>{@link org.apache.juneau.http.Via}
+								<li class='jc'>{@link org.apache.juneau.http.Warning}
+								<li class='jc'>{@link java.util.TimeZone}
+							</ul>
+						<li><b>Direct streams on request/response:</b>
+							<ul>
+								<li class='jc'>{@link java.io.InputStream}
+								<li class='jc'>{@link javax.servlet.ServletInputStream}
+								<li class='jc'>{@link java.io.Reader}
+								<li class='jc'>{@link java.io.OutputStream}
+								<li class='jc'>{@link javax.servlet.ServletOutputStream}
+								<li class='jc'>{@link java.io.Writer}
+							</ul>
+						<li><b>Localization:</b>
+							<ul>
+								<li class='jc'>{@link java.util.ResourceBundle} - Client-localized resource bundle.
+								<li class='jc'>{@link org.apache.juneau.utils.MessageBundle} - A resource bundle with additional features.
+								<li class='jc'>{@link java.util.Locale} - Client locale.
+							</ul>
+						<li><b>Request APIs:</b>
+							<ul>
+								<li class='jc'>{@link org.apache.juneau.rest.RequestHeaders} - API for accessing request headers.
+								<li class='jc'>{@link org.apache.juneau.rest.RequestQuery} - API for accessing request query parameters.
+								<li class='jc'>{@link org.apache.juneau.rest.RequestFormData} - API for accessing request form data.
+								<li class='jc'>{@link org.apache.juneau.rest.RequestPathMatch} - API for accessing path variables.
+								<li class='jc'>{@link org.apache.juneau.rest.RequestBody} - API for accessing request body.
+							</ul>
+						<li><b>Other:</b>
+							<ul>
+								<li class='jc'>{@link org.apache.juneau.http.HttpMethod} - The method name matched (when using <code><ja>@RestMethod</ja>(name=<js>"*"</js>)</code>)
+								<li class='jc'>{@link org.apache.juneau.rest.RestLogger} - Logger with additional features.
+								<li class='jc'>{@link org.apache.juneau.rest.RestContext} - The resource read-only context.
+								<li class='jc'>{@link org.apache.juneau.parser.Parser} - The parser matching the request content type.
+								<li class='jc'>{@link org.apache.juneau.dto.swagger.Swagger} - The auto-generated Swagger doc.
+								<li class='jc'>{@link org.apache.juneau.ini.ConfigFile} - The external config file for the resource.
+								<li class='jc'>{@link org.apache.juneau.rest.RequestProperties} - API for modifying request-time configuration properties.
+							</ul>
+					</ul>
+				<li><b>Annotated parameters:</b>
+					<ul>
+						<li class='ja'>{@link org.apache.juneau.rest.annotation.Path} - Variables in matched URL path patterns.
+						<li class='ja'>{@link org.apache.juneau.rest.annotation.FormData} - Multipart form post parameter values.
+						<li class='ja'>{@link org.apache.juneau.rest.annotation.HasFormData} - Denotes whether the form data parameter exists.
+						<li class='ja'>{@link org.apache.juneau.rest.annotation.Query} - Query parameters.  Using this prevents the HTTP body from being processed as a URL-Encoded form post.
+						<li class='ja'>{@link org.apache.juneau.rest.annotation.HasQuery} - Denotes whether the query parameter exists.
+						<li class='ja'>{@link org.apache.juneau.rest.annotation.Header} - A header value.
+						<li class='ja'>{@link org.apache.juneau.rest.annotation.Method} - The HTTP method name. 
+						<li class='ja'>{@link org.apache.juneau.rest.annotation.PathRemainder} - The remainder value after path pattern match.
+						<li class='ja'>{@link org.apache.juneau.rest.annotation.Body} - 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'>{@link org.apache.juneau.rest.RestRequest} - The request object.
-									<li class='jc'>{@link javax.servlet.http.HttpServletRequest} - The superclass of <code>RestRequest</code>.
-									<li class='jc'>{@link org.apache.juneau.rest.RestResponse} - The response object.
-									<li class='jc'>{@link javax.servlet.http.HttpServletResponse} - The superclass of <code>RestResponse</code>.
-								</ul>
-							<li><b>Parsed request header values:</b>
-								<ul>
-									<li class='jc'>{@link org.apache.juneau.http.Accept}
-									<li class='jc'>{@link org.apache.juneau.http.AcceptCharset}
-									<li class='jc'>{@link org.apache.juneau.http.AcceptEncoding}
-									<li class='jc'>{@link org.apache.juneau.http.AcceptLanguage}
-									<li class='jc'>{@link org.apache.juneau.http.Authorization}
-									<li class='jc'>{@link org.apache.juneau.http.CacheControl}
-									<li class='jc'>{@link org.apache.juneau.http.Connection}
-									<li class='jc'>{@link org.apache.juneau.http.ContentLength}
-									<li class='jc'>{@link org.apache.juneau.http.ContentType}
-									<li class='jc'>{@link org.apache.juneau.http.Date}
-									<li class='jc'>{@link org.apache.juneau.http.Expect}
-									<li class='jc'>{@link org.apache.juneau.http.From}
-									<li class='jc'>{@link org.apache.juneau.http.Host}
-									<li class='jc'>{@link org.apache.juneau.http.IfMatch}
-									<li class='jc'>{@link org.apache.juneau.http.IfModifiedSince}
-									<li class='jc'>{@link org.apache.juneau.http.IfNoneMatch}
-									<li class='jc'>{@link org.apache.juneau.http.IfRange}
-									<li class='jc'>{@link org.apache.juneau.http.IfUnmodifiedSince}
-									<li class='jc'>{@link org.apache.juneau.http.MaxForwards}
-									<li class='jc'>{@link org.apache.juneau.http.Pragma}
-									<li class='jc'>{@link org.apache.juneau.http.ProxyAuthorization}
-									<li class='jc'>{@link org.apache.juneau.http.Range}
-									<li class='jc'>{@link org.apache.juneau.http.Referer}
-									<li class='jc'>{@link org.apache.juneau.http.TE}
-									<li class='jc'>{@link org.apache.juneau.http.UserAgent}
-									<li class='jc'>{@link org.apache.juneau.http.Upgrade}
-									<li class='jc'>{@link org.apache.juneau.http.Via}
-									<li class='jc'>{@link org.apache.juneau.http.Warning}
-									<li class='jc'>{@link java.util.TimeZone}
-								</ul>
-							<li><b>Direct streams on request/response:</b>
-								<ul>
-									<li class='jc'>{@link java.io.InputStream}
-									<li class='jc'>{@link javax.servlet.ServletInputStream}
-									<li class='jc'>{@link java.io.Reader}
-									<li class='jc'>{@link java.io.OutputStream}
-									<li class='jc'>{@link javax.servlet.ServletOutputStream}
-									<li class='jc'>{@link java.io.Writer}
-								</ul>
-							<li><b>Localization:</b>
-								<ul>
-									<li class='jc'>{@link java.util.ResourceBundle} - Client-localized resource bundle.
-									<li class='jc'>{@link org.apache.juneau.utils.MessageBundle} - A resource bundle with additional features.
-									<li class='jc'>{@link java.util.Locale} - Client locale.
-								</ul>
-							<li><b>Request APIs:</b>
-								<ul>
-									<li class='jc'>{@link org.apache.juneau.rest.RequestHeaders} - API for accessing request headers.
-									<li class='jc'>{@link org.apache.juneau.rest.RequestQuery} - API for accessing request query parameters.
-									<li class='jc'>{@link org.apache.juneau.rest.RequestFormData} - API for accessing request form data.
-									<li class='jc'>{@link org.apache.juneau.rest.RequestPathMatch} - API for accessing path variables.
-									<li class='jc'>{@link org.apache.juneau.rest.RequestBody} - API for accessing request body.
-								</ul>
-							<li><b>Other:</b>
-								<ul>
-									<li class='jc'>{@link org.apache.juneau.http.HttpMethod} - The method name matched (when using <code><ja>@RestMethod</ja>(name=<js>"*"</js>)</code>)
-									<li class='jc'>{@link org.apache.juneau.rest.RestLogger} - Logger with additional features.
-									<li class='jc'>{@link org.apache.juneau.rest.RestContext} - The resource read-only context.
-									<li class='jc'>{@link org.apache.juneau.parser.Parser} - The parser matching the request content type.
-									<li class='jc'>{@link org.apache.juneau.dto.swagger.Swagger} - The auto-generated Swagger doc.
-									<li class='jc'>{@link org.apache.juneau.ini.ConfigFile} - The external config file for the resource.
-									<li class='jc'>{@link org.apache.juneau.rest.RequestProperties} - API for modifying request-time configuration properties.
-								</ul>
-						</ul>
-					<li><b>Annotated parameters:</b>
-						<ul>
-							<li class='ja'>{@link org.apache.juneau.rest.annotation.Path} - Variables in matched URL path patterns.
-							<li class='ja'>{@link org.apache.juneau.rest.annotation.FormData} - Multipart form post parameter values.
-							<li class='ja'>{@link org.apache.juneau.rest.annotation.HasFormData} - Denotes whether the form data parameter exists.
-							<li class='ja'>{@link org.apache.juneau.rest.annotation.Query} - Query parameters.  Using this prevents the HTTP body from being processed as a URL-Encoded form post.
-							<li class='ja'>{@link org.apache.juneau.rest.annotation.HasQuery} - Denotes whether the query parameter exists.
-							<li class='ja'>{@link org.apache.juneau.rest.annotation.Header} - A header value.
-							<li class='ja'>{@link org.apache.juneau.rest.annotation.Method} - The HTTP method name. 
-							<li class='ja'>{@link org.apache.juneau.rest.annotation.PathRemainder} - The remainder value after path pattern match.
-							<li class='ja'>{@link org.apache.juneau.rest.annotation.Body} - 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,
@@ -5602,132 +5568,132 @@
 	) {
 		<jc>// Do something with all of those</jc>
 	}
-				</p>
-				<h5 class='section'>Notes:</h5>
-				<ul>
-					<li>All annotations have programmatic equivalents on the {@link org.apache.juneau.rest.RestRequest} class.
-				</ul>
-				<h5 class='section'>See Also:</h5>
-				<ul>
-					<li class='jf'>{@link org.apache.juneau.rest.RestContext#REST_paramResolvers} - For configuring custom parameter types.
-				</ul>
-			</div>
+			</p>
+			<h5 class='section'>Notes:</h5>
+			<ul>
+				<li>All annotations have programmatic equivalents on the {@link org.apache.juneau.rest.RestRequest} class.
+			</ul>
+			<h5 class='section'>See Also:</h5>
+			<ul>
+				<li class='jf'>{@link org.apache.juneau.rest.RestContext#REST_paramResolvers} - 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 {@link org.apache.juneau.rest.RestRequest} 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 {@link org.apache.juneau.rest.RestRequest} 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>{@link org.apache.juneau.rest.RestRequest} <jk>extends</jk> HttpServletRequest</code>
-					<ul>
-						<li class='jm'>{@link org.apache.juneau.rest.RestRequest#getHeaders() getHeaders()}
-						<li class='jm'>{@link org.apache.juneau.rest.RestRequest#getQuery() getQuery()}
-						<li class='jm'>{@link org.apache.juneau.rest.RestRequest#getFormData() getFormData()}
-						<li class='jm'>{@link org.apache.juneau.rest.RestRequest#getBody() getBody()}
-						<li class='jm'>{@link org.apache.juneau.rest.RestRequest#getPathMatch() getPathMatch()}
-						<li class='jm'>{@link org.apache.juneau.rest.RestRequest#getLogger() getLogger()}
-						<li class='jm'>{@link org.apache.juneau.rest.RestRequest#getInfoProvider() getInfoProvider()}
-						<li class='jm'>{@link org.apache.juneau.rest.RestRequest#getSwagger() getSwagger()}
-						<li class='jm'>{@link org.apache.juneau.rest.RestRequest#getConfigFile() getConfigFile()}
-						<li class='jm'>{@link org.apache.juneau.rest.RestRequest#getVarResolverSession() getVarResolverSession()}
-						<li class='jm'>{@link org.apache.juneau.rest.RestRequest#getMessageBundle() getMessageBundle()}
-						<li class='jm'>{@link org.apache.juneau.rest.RestRequest#getProperties() getProperties()}
-						<li class='jm'>{@link org.apache.juneau.rest.RestRequest#getClasspathReaderResource(String,boolean,MediaType) getClasspathReaderResource(String,boolean,MediaType)}
-					</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>{@link org.apache.juneau.rest.RestRequest} <jk>extends</jk> HttpServletRequest</code>
+				<ul>
+					<li class='jm'>{@link org.apache.juneau.rest.RestRequest#getHeaders() getHeaders()}
+					<li class='jm'>{@link org.apache.juneau.rest.RestRequest#getQuery() getQuery()}
+					<li class='jm'>{@link org.apache.juneau.rest.RestRequest#getFormData() getFormData()}
+					<li class='jm'>{@link org.apache.juneau.rest.RestRequest#getBody() getBody()}
+					<li class='jm'>{@link org.apache.juneau.rest.RestRequest#getPathMatch() getPathMatch()}
+					<li class='jm'>{@link org.apache.juneau.rest.RestRequest#getLogger() getLogger()}
+					<li class='jm'>{@link org.apache.juneau.rest.RestRequest#getInfoProvider() getInfoProvider()}
+					<li class='jm'>{@link org.apache.juneau.rest.RestRequest#getSwagger() getSwagger()}
+					<li class='jm'>{@link org.apache.juneau.rest.RestRequest#getConfigFile() getConfigFile()}
+					<li class='jm'>{@link org.apache.juneau.rest.RestRequest#getVarResolverSession() getVarResolverSession()}
+					<li class='jm'>{@link org.apache.juneau.rest.RestRequest#getMessageBundle() getMessageBundle()}
+					<li class='jm'>{@link org.apache.juneau.rest.RestRequest#getProperties() getProperties()}
+					<li class='jm'>{@link org.apache.juneau.rest.RestRequest#getClasspathReaderResource(String,boolean,MediaType) getClasspathReaderResource(String,boolean,MediaType)}
 				</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 {@link org.apache.juneau.rest.RestResponse} 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 {@link org.apache.juneau.rest.RestResponse} 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>{@link org.apache.juneau.rest.RestResponse} <jk>extends</jk> HttpServletResponse</code>
-					<ul>
-						<li class='jm'>{@link org.apache.juneau.rest.RestResponse#setOutput(Object) setOutput(Object)}
-						<li class='jm'>{@link org.apache.juneau.rest.RestResponse#getProperties() getProperties()}
-						<li class='jm'>{@link org.apache.juneau.rest.RestResponse#getHtmlDocBuilder() getHtmlDocBuilder()}
-						<li class='jm'>{@link org.apache.juneau.rest.RestResponse#getDirectWriter(String) getDirectWriter(String)}
-					</ul>
+			</p>
+			<p>
+				The important methods on this class are shown below:
+			</p>
+			<ul class='doctree'>
+				<li class='jc'><code>{@link org.apache.juneau.rest.RestResponse} <jk>extends</jk> HttpServletResponse</code>
+				<ul>
+					<li class='jm'>{@link org.apache.juneau.rest.RestResponse#setOutput(Object) setOutput(Object)}
+					<li class='jm'>{@link org.apache.juneau.rest.RestResponse#getProperties() getProperties()}
+					<li class='jm'>{@link org.apache.juneau.rest.RestResponse#getHtmlDocBuilder() getHtmlDocBuilder()}
+					<li class='jm'>{@link org.apache.juneau.rest.RestResponse#getDirectWriter(String) getDirectWriter(String)}
 				</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 {@link org.apache.juneau.rest.RequestBody} 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 {@link org.apache.juneau.rest.RequestBody} 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'>{@link org.apache.juneau.rest.RequestBody} 
-					<ul>
-						<li class='jm'>{@link org.apache.juneau.rest.RequestBody#getReader() getReader()}
-						<li class='jm'>{@link org.apache.juneau.rest.RequestBody#getInputStream() getInputStream()}
-						<li class='jm'>{@link org.apache.juneau.rest.RequestBody#asType(Class) asType(Class)}
-						<li class='jm'>{@link org.apache.juneau.rest.RequestBody#asType(Type,Type...) asType(Type,Type...)}
-						<li class='jm'>{@link org.apache.juneau.rest.RequestBody#asString() asString()}
-						<li class='jm'>{@link org.apache.juneau.rest.RequestBody#asHex() asHex()}
-						<li class='jm'>{@link org.apache.juneau.rest.RequestBody#asSpacedHex() asSpacedHex()}
-					</ul>
+			</p>
+			<p>
+				The important methods on this class are:
+			</p>
+			<ul class='doctree'>
+				<li class='jc'>{@link org.apache.juneau.rest.RequestBody} 
+				<ul>
+					<li class='jm'>{@link org.apache.juneau.rest.RequestBody#getReader() getReader()}
+					<li class='jm'>{@link org.apache.juneau.rest.RequestBody#getInputStream() getInputStream()}
+					<li class='jm'>{@link org.apache.juneau.rest.RequestBody#asType(Class) asType(Class)}
+					<li class='jm'>{@link org.apache.juneau.rest.RequestBody#asType(Type,Type...) asType(Type,Type...)}
+					<li class='jm'>{@link org.apache.juneau.rest.RequestBody#asString() asString()}
+					<li class='jm'>{@link org.apache.juneau.rest.RequestBody#asHex() asHex()}
+					<li class='jm'>{@link org.apache.juneau.rest.RequestBody#asSpacedHex() asSpacedHex()}
 				</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 {@link org.apache.juneau.rest.RequestHeaders} 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 {@link org.apache.juneau.rest.RequestHeaders} 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) {
 
@@ -5740,32 +5706,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>{@link org.apache.juneau.rest.RequestHeaders} <jk>extends</jk> TreeMap&lt;String,String[]&gt;</code>
-					<ul>
-						<li class='jm'>{@link org.apache.juneau.rest.RequestHeaders#get(String,Class) get(String,Class)}
-						<li class='jm'>{@link org.apache.juneau.rest.RequestHeaders#get(String,Type,Type...) get(String,Type,Type)}
-						<li class='jm'>{@link org.apache.juneau.rest.RequestHeaders#getString(String,String) getString(String,String)}
-						<li class='jm'>{@link org.apache.juneau.rest.RequestHeaders#getInt(String,int) getInt(String,int)}
-						<li class='jm'>{@link org.apache.juneau.rest.RequestHeaders#getBoolean(String,boolean) getBoolean(String,boolean)}
-						<li class='jm'>{@link org.apache.juneau.rest.RequestHeaders#addDefault(String,Object) addDefault(String,Object)}
-					</ul>
+			</p>
+			<p>
+				The important methods on this class are:
+			</p>
+			<ul class='doctree'>
+				<li class='jc'><code>{@link org.apache.juneau.rest.RequestHeaders} <jk>extends</jk> TreeMap&lt;String,String[]&gt;</code>
+				<ul>
+					<li class='jm'>{@link org.apache.juneau.rest.RequestHeaders#get(String,Class) get(String,Class)}
+					<li class='jm'>{@link org.apache.juneau.rest.RequestHeaders#get(String,Type,Type...) get(String,Type,Type)}
+					<li class='jm'>{@link org.apache.juneau.rest.RequestHeaders#getString(String,String) getString(String,String)}
+					<li class='jm'>{@link org.apache.juneau.rest.RequestHeaders#getInt(String,int) getInt(String,int)}
+					<li class='jm'>{@link org.apache.juneau.rest.RequestHeaders#getBoolean(String,boolean) getBoolean(String,boolean)}
+					<li class='jm'>{@link org.apache.juneau.rest.RequestHeaders#addDefault(String,Object) addDefault(String,Object)}
 				</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 {@link org.apache.juneau.rest.RequestQuery} 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 {@link org.apache.juneau.rest.RequestQuery} 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>
@@ -5779,45 +5745,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>{@link org.apache.juneau.rest.RequestQuery} <jk>extends</jk> LinkedHashMap&lt;String,String[]&gt;</code>
-					<ul>
-						<li class='jm'>{@link org.apache.juneau.rest.RequestQuery#get(String,Class) get(String,Class)}
-						<li class='jm'>{@link org.apache.juneau.rest.RequestQuery#get(String,Type,Type...) get(String,Type,Type)}
-						<li class='jm'>{@link org.apache.juneau.rest.RequestQuery#getString(String,String) getString(String,String)}
-						<li class='jm'>{@link org.apache.juneau.rest.RequestQuery#getInt(String,int) getInt(String,int)}
-						<li class='jm'>{@link org.apache.juneau.rest.RequestQuery#getBoolean(String,boolean) getBoolean(String,boolean)}
-						<li class='jm'>{@link org.apache.juneau.rest.RequestQuery#addDefault(String,Object) addDefault(String,Object)}
-						<li class='jm'>{@link org.apache.juneau.rest.RequestQuery#getSearchArgs() getSearchArgs()}
-					</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>{@link org.apache.juneau.rest.RequestQuery} <jk>extends</jk> LinkedHashMap&lt;String,String[]&gt;</code>
+				<ul>
+					<li class='jm'>{@link org.apache.juneau.rest.RequestQuery#get(String,Class) get(String,Class)}
+					<li class='jm'>{@link org.apache.juneau.rest.RequestQuery#get(String,Type,Type...) get(String,Type,Type)}
+					<li class='jm'>{@link org.apache.juneau.rest.RequestQuery#getString(String,String) getString(String,String)}
+					<li class='jm'>{@link org.apache.juneau.rest.RequestQuery#getInt(String,int) getInt(String,int)}
+					<li class='jm'>{@link org.apache.juneau.rest.RequestQuery#getBoolean(String,boolean) getBoolean(String,boolean)}
+					<li class='jm'>{@link org.apache.juneau.rest.RequestQuery#addDefault(String,Object) addDefault(String,Object)}
+					<li class='jm'>{@link org.apache.juneau.rest.RequestQuery#getSearchArgs() getSearchArgs()}
 				</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 {@link org.apache.juneau.rest.RequestFormData} 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 {@link org.apache.juneau.rest.RequestFormData} 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) {
 
@@ -5826,42 +5792,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>{@link org.apache.juneau.rest.RequestFormData} <jk>extends</jk> LinkedHashMap&lt;String,String[]&gt;</code>
-					<ul>
-						<li class='jm'>{@link org.apache.juneau.rest.RequestFormData#get(String,Class) get(String,Class)}
-						<li class='jm'>{@link org.apache.juneau.rest.RequestFormData#get(String,Type,Type...) get(String,Type,Type)}
-						<li class='jm'>{@link org.apache.juneau.rest.RequestFormData#getString(String,String) getString(String,String)}
-						<li class='jm'>{@link org.apache.juneau.rest.RequestFormData#getInt(String,int) getInt(String,int)}
-						<li class='jm'>{@link org.apache.juneau.rest.RequestFormData#getBoolean(String,boolean) getBoolean(String,boolean)}
-						<li class='jm'>{@link org.apache.juneau.rest.RequestFormData#addDefault(String,Object) addDefault(String,Object)}
-					</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>{@link org.apache.juneau.rest.RequestFormData} <jk>extends</jk> LinkedHashMap&lt;String,String[]&gt;</code>
+				<ul>
+					<li class='jm'>{@link org.apache.juneau.rest.RequestFormData#get(String,Class) get(String,Class)}
+					<li class='jm'>{@link org.apache.juneau.rest.RequestFormData#get(String,Type,Type...) get(String,Type,Type)}
+					<li class='jm'>{@link org.apache.juneau.rest.RequestFormData#getString(String,String) getString(String,String)}
+					<li class='jm'>{@link org.apache.juneau.rest.RequestFormData#getInt(String,int) getInt(String,int)}
+					<li class='jm'>{@link org.apache.juneau.rest.RequestFormData#getBoolean(String,boolean) getBoolean(String,boolean)}
+					<li class='jm'>{@link org.apache.juneau.rest.RequestFormData#addDefault(String,Object) addDefault(String,Object)}
 				</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 {@link org.apache.juneau.rest.annotation.RestMethod#path() @RestMethod.path()} 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 {@link org.apache.juneau.rest.annotation.RestMethod#path() @RestMethod.path()} 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() {
@@ -5879,12 +5845,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() {
@@ -5908,25 +5874,25 @@
 	<jk>public void</jk> method4(...) {
 		...
 	}
-				</p>
-				<p>
-					The match heuristic behavior can be overridden by the 
-					{@link org.apache.juneau.rest.annotation.RestMethod#priority() @RestMethod.priority()} 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 
-					{@link org.apache.juneau.rest.RequestPathMatch#getRemainder()} or parameters with the 
-					{@link org.apache.juneau.rest.annotation.PathRemainder @PathRemainder} 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 
+				{@link org.apache.juneau.rest.annotation.RestMethod#priority() @RestMethod.priority()} 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 
+				{@link org.apache.juneau.rest.RequestPathMatch#getRemainder()} or parameters with the 
+				{@link org.apache.juneau.rest.annotation.PathRemainder @PathRemainder} 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>
@@ -5936,41 +5902,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'>{@link org.apache.juneau.rest.RestContext#REST_path}
-					<li class='ja'>{@link org.apache.juneau.rest.annotation.Path}
-					<li class='ja'>{@link org.apache.juneau.rest.annotation.PathRemainder}
-					<li class='jc'>{@link org.apache.juneau.rest.RequestPathMatch}
-				</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 {@link org.apache.juneau.rest.RequestPathMatch} 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'>{@link org.apache.juneau.rest.RestContext#REST_path}
+				<li class='ja'>{@link org.apache.juneau.rest.annotation.Path}
+				<li class='ja'>{@link org.apache.juneau.rest.annotation.PathRemainder}
+				<li class='jc'>{@link org.apache.juneau.rest.RequestPathMatch}
+			</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 {@link org.apache.juneau.rest.RequestPathMatch} 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>
@@ -5980,93 +5946,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>{@link org.apache.juneau.rest.RequestPathMatch} <jk>extends</jk> TreeMap&lt;String,String&gt;</code>
-					<ul>
-						<li class='jm'>{@link org.apache.juneau.rest.RequestPathMatch#get(String,Class) get(String,Class)}
-						<li class='jm'>{@link org.apache.juneau.rest.RequestPathMatch#get(String,Type,Type...) get(String,Type,Type)}
-						<li class='jm'>{@link org.apache.juneau.rest.RequestPathMatch#getString(String) getString(String)}
-						<li class='jm'>{@link org.apache.juneau.rest.RequestPathMatch#getInt(String) getInt(String)}
-						<li class='jm'>{@link org.apache.juneau.rest.RequestPathMatch#getBoolean(String) getBoolean(String)}
-						<li class='jm'>{@link org.apache.juneau.rest.RequestPathMatch#getRemainder() getRemainder()}
-					</ul>
+			</p>
+			<p>
+				The important methods on this class are:
+			</p>
+			<ul class='doctree'>
+				<li class='jc'><code>{@link org.apache.juneau.rest.RequestPathMatch} <jk>extends</jk> TreeMap&lt;String,String&gt;</code>
+				<ul>
+					<li class='jm'>{@link org.apache.juneau.rest.RequestPathMatch#get(String,Class) get(String,Class)}
+					<li class='jm'>{@link org.apache.juneau.rest.RequestPathMatch#get(String,Type,Type...) get(String,Type,Type)}
+					<li class='jm'>{@link org.apache.juneau.rest.RequestPathMatch#getString(String) getString(String)}
+					<li class='jm'>{@link org.apache.juneau.rest.RequestPathMatch#getInt(String) getInt(String)}
+					<li class='jm'>{@link org.apache.juneau.rest.RequestPathMatch#getBoolean(String) getBoolean(String)}
+					<li class='jm'>{@link org.apache.juneau.rest.RequestPathMatch#getRemainder() getRemainder()}
 				</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 {@link org.apache.juneau.rest.RestResponse#setOutput(Object)} 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 {@link org.apache.juneau.rest.RestResponse#setOutput(Object)} 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'>{@link java.io.InputStream}
-						<br>The contents are simply piped to the output stream returned by 
-						{@link org.apache.juneau.rest.RestResponse#getNegotiatedOutputStream()}.
-						<br>Note that you should call {@link org.apache.juneau.rest.RestResponse#setContentType(String)} to set 
-						the <l>Content-Type</l> header if you use this object type.
-					<li class='jc'>{@link java.io.Reader}
-						<br>The contents are simply piped to the output stream returned by 
-						{@link org.apache.juneau.rest.RestResponse#getNegotiatedWriter()}.
-						<br>Note that you should call {@link org.apache.juneau.rest.RestResponse#setContentType(String)} to set 
-						the <l>Content-Type</l> header if you use this object type.
-					<li class='jc'>{@link org.apache.juneau.rest.Redirect}
-						<br>Represents an HTTP redirect response.
-					<li class='jc'>{@link org.apache.juneau.Streamable}
-						<br>Interface that identifies that an object can be serialized directly to an output stream.
-					<li class='jc'>{@link org.apache.juneau.Writable}
-						<br>Interface that identifies that an object can be serialized directly to a writer.
-					<li class='jc'>{@link org.apache.juneau.utils.ZipFileList}
-						<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'>{@link org.apache.juneau.rest.ResponseHandler}
-					<ul>
-						<li class='jc'>{@link org.apache.juneau.rest.response.DefaultHandler}
-						<li class='jc'>{@link org.apache.juneau.rest.response.InputStreamHandler}
-						<li class='jc'>{@link org.apache.juneau.rest.response.ReaderHandler}
-						<li class='jc'>{@link org.apache.juneau.rest.response.RedirectHandler}
-						<li class='jc'>{@link org.apache.juneau.rest.response.StreamableHandler}
-						<li class='jc'>{@link org.apache.juneau.rest.response.WritableHandler}
-						<li class='jc'>{@link org.apache.juneau.rest.response.ZipFileListResponseHandler}
-					</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>{@link java.io.Reader}, {@link java.io.InputStream}, {@link org.apache.juneau.Streamable}, 
-						{@link org.apache.juneau.Writable} 
-					<li>
-						By calling {@link org.apache.juneau.rest.RestResponse#setOutput(Object)} with any of the types above.
-					<li>
-						By accessing the {@link java.io.Writer} directly by calling 
-						{@link org.apache.juneau.rest.RestResponse#getNegotiatedWriter()} 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'>{@link java.io.InputStream}
+					<br>The contents are simply piped to the output stream returned by 
+					{@link org.apache.juneau.rest.RestResponse#getNegotiatedOutputStream()}.
+					<br>Note that you should call {@link org.apache.juneau.rest.RestResponse#setContentType(String)} to set 
+					the <l>Content-Type</l> header if you use this object type.
+				<li class='jc'>{@link java.io.Reader}
+					<br>The contents are simply piped to the output stream returned by 
+					{@link org.apache.juneau.rest.RestResponse#getNegotiatedWriter()}.
+					<br>Note that you should call {@link org.apache.juneau.rest.RestResponse#setContentType(String)} to set 
+					the <l>Content-Type</l> header if you use this object type.
+				<li class='jc'>{@link org.apache.juneau.rest.Redirect}
+					<br>Represents an HTTP redirect response.
+				<li class='jc'>{@link org.apache.juneau.Streamable}
+					<br>Interface that identifies that an object can be serialized directly to an output stream.
+				<li class='jc'>{@link org.apache.juneau.Writable}
+					<br>Interface that identifies that an object can be serialized directly to a writer.
+				<li class='jc'>{@link org.apache.juneau.utils.ZipFileList}
+					<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'>{@link org.apache.juneau.rest.ResponseHandler}
+				<ul>
+					<li class='jc'>{@link org.apache.juneau.rest.response.DefaultHandler}
+					<li class='jc'>{@link org.apache.juneau.rest.response.InputStreamHandler}
+					<li class='jc'>{@link org.apache.juneau.rest.response.ReaderHandler}
+					<li class='jc'>{@link org.apache.juneau.rest.response.RedirectHandler}
+					<li class='jc'>{@link org.apache.juneau.rest.response.StreamableHandler}
+					<li class='jc'>{@link org.apache.juneau.rest.response.WritableHandler}
+					<li class='jc'>{@link org.apache.juneau.rest.response.ZipFileListResponseHandler}
 				</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>{@link java.io.Reader}, {@link java.io.InputStream}, {@link org.apache.juneau.Streamable}, 
+					{@link org.apache.juneau.Writable} 
+				<li>
+					By calling {@link org.apache.juneau.rest.RestResponse#setOutput(Object)} with any of the types above.
+				<li>
+					By accessing the {@link java.io.Writer} directly by calling 
+					{@link org.apache.juneau.rest.RestResponse#getNegotiatedWriter()} 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) {
@@ -6091,30 +6057,30 @@
 		res.setContentType(s.getResponseContentType());
 		s.serialize(p, res.getNegotiatedWriter());
 	}
-				</p>
-				<h5 class='section'>See Also:</h5>
-				<ul>
-					<li class='jf'>{@link org.apache.juneau.rest.RestContext#REST_responseHandlers} - 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 {@link org.apache.juneau.rest.ReaderResource} 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 {@link org.apache.juneau.rest.ReaderResource} class implements the {@link org.apache.juneau.Writable}
-					interface which is handled by the {@link org.apache.juneau.rest.response.WritableHandler} 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'>{@link org.apache.juneau.rest.RestContext#REST_responseHandlers} - 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 {@link org.apache.juneau.rest.ReaderResource} 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 {@link org.apache.juneau.rest.ReaderResource} class implements the {@link org.apache.juneau.Writable}
+				interface which is handled by the {@link org.apache.juneau.rest.response.WritableHandler} 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) {
 	
@@ -6126,36 +6092,36 @@
 			.mediaType(<jsf>TEXT_PLAIN</jsf>)
 			.build();
 	}
-				</p>
-				<p>
-					The important methods on this class are:
-				</p>
-				<ul class='doctree'>
-					<li class='jc'>{@link org.apache.juneau.rest.ReaderResourceBuilder}
-					<ul>
-						<li class='jm'>{@link org.apache.juneau.rest.ReaderResourceBuilder#contents(Object...) contents(Object...)}
-						<li class='jm'>{@link org.apache.juneau.rest.ReaderResourceBuilder#header(String,Object) header(String,Object)}
-						<li class='jm'>{@link org.apache.juneau.rest.ReaderResourceBuilder#mediaType(MediaType) mediaType(MediaType)}
-						<li class='jm'>{@link org.apache.juneau.rest.ReaderResourceBuilder#varResolver(VarResolverSession) varResolver(VarResolverSession)}
-					</ul>
+			</p>
+			<p>
+				The important methods on this class are:
+			</p>
+			<ul class='doctree'>
+				<li class='jc'>{@link org.apache.juneau.rest.ReaderResourceBuilder}
+				<ul>
+					<li class='jm'>{@link org.apache.juneau.rest.ReaderResourceBuilder#contents(Object...) contents(Object...)}
+					<li class='jm'>{@link org.apache.juneau.rest.ReaderResourceBuilder#header(String,Object) header(String,Object)}
+					<li class='jm'>{@link org.apache.juneau.rest.ReaderResourceBuilder#mediaType(MediaType) mediaType(MediaType)}
+					<li class='jm'>{@link org.apache.juneau.rest.ReaderResourceBuilder#varResolver(VarResolverSession) varResolver(VarResolverSession)}
 				</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 {@link org.apache.juneau.rest.StreamResource} class is the binary equivalent to the {@link org.apache.juneau.rest.ReaderResource} object.
-					<br>In essence, it's a container for binary data with optional response headers.
-				</p>
-				<p>
-					The {@link org.apache.juneau.rest.StreamResource} class implements the {@link org.apache.juneau.Streamable}
-					interface which is handled by the {@link org.apache.juneau.rest.response.StreamableHandler} 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 {@link org.apache.juneau.rest.StreamResource} class is the binary equivalent to the {@link org.apache.juneau.rest.ReaderResource} object.
+				<br>In essence, it's a container for binary data with optional response headers.
+			</p>
+			<p>
+				The {@link org.apache.juneau.rest.StreamResource} class implements the {@link org.apache.juneau.Streamable}
+				interface which is handled by the {@link org.apache.juneau.rest.response.StreamableHandler} 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) {
 	
@@ -6166,36 +6132,36 @@
 			.mediaType(<jsf>IMAGE_PNG</jsf>)
 			.build();
 	}
-				</p>
-				<p>
-					The important methods on this class are:
-				</p>
-				<ul class='doctree'>
-					<li class='jc'>{@link org.apache.juneau.rest.StreamResourceBuilder}
-					<ul>
-						<li class='jm'>{@link org.apache.juneau.rest.StreamResourceBuilder#contents(Object...) contents(Object...)}
-						<li class='jm'>{@link org.apache.juneau.rest.StreamResourceBuilder#header(String,Object) header(String,Object)}
-						<li class='jm'>{@link org.apache.juneau.rest.StreamResourceBuilder#mediaType(MediaType) mediaType(MediaType)}
-					</ul>
+			</p>
+			<p>
+				The important methods on this class are:
+			</p>
+			<ul class='doctree'>
+				<li class='jc'>{@link org.apache.juneau.rest.StreamResourceBuilder}
+				<ul>
+					<li class='jm'>{@link org.apache.juneau.rest.StreamResourceBuilder#contents(Object...) contents(Object...)}
+					<li class='jm'>{@link org.apache.juneau.rest.StreamResourceBuilder#header(String,Object) header(String,Object)}
+					<li class='jm'>{@link org.apache.juneau.rest.StreamResourceBuilder#mediaType(MediaType) mediaType(MediaType)}
 				</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 {@link org.apache.juneau.rest.Redirect} object is a convenience shortcut for performing <code>HTTP 302</code> redirects.
-				</p>
-				<p>
-					<l>Redirect</l> objects are handled by the {@link org.apache.juneau.rest.response.RedirectHandler} 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 {@link org.apache.juneau.rest.Redirect} object is a convenience shortcut for performing <code>HTTP 302</code> redirects.
+			</p>
+			<p>
+				<l>Redirect</l> objects are handled by the {@link org.apache.juneau.rest.response.RedirectHandler} 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>
@@ -6209,44 +6175,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>
-					{@link org.apache.juneau.rest.RestMatcher RestMatchers} 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>
+				{@link org.apache.juneau.rest.RestMatcher RestMatchers} 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() {
@@ -6258,11 +6224,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>
@@ -6270,56 +6236,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'>{@link org.apache.juneau.rest.annotation.RestMethod#matchers}
-					<li class='jc'>{@link org.apache.juneau.rest.matchers.MultipartFormDataMatcher}
-					<li class='jc'>{@link org.apache.juneau.rest.matchers.UrlEncodedFormMatcher}
-				</ul>
-			</div>
+			</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'>{@link org.apache.juneau.rest.annotation.RestMethod#matchers}
+				<li class='jc'>{@link org.apache.juneau.rest.matchers.MultipartFormDataMatcher}
+				<li class='jc'>{@link org.apache.juneau.rest.matchers.UrlEncodedFormMatcher}
+			</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 {@link org.apache.juneau.rest.annotation.Body @Body} 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'>
+	<!-- ======================================================================================================== -->
+	<a id="juneau-rest-server.Body"></a>
+	<h3 class='topic' onclick='toggle(this)'>7.7 - @Body</h3>
+	<div class='topic'>
+		<p>
+			The {@link org.apache.juneau.rest.annotation.Body @Body} 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 
-				{@link org.apache.juneau.rest.RestRequest#getBody()} method, or a parameter annotated with 
-				{@link org.apache.juneau.rest.annotation.Body @Body}.
-			</p>
-			<p class='bcode'>
+		</p>
+		<p>
+			The HTTP body of a request can be retrieved as a parsed POJO using either the 
+			{@link org.apache.juneau.rest.RestRequest#getBody()} method, or a parameter annotated with 
+			{@link org.apache.juneau.rest.annotation.Body @Body}.
+		</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) {
@@ -6332,29 +6298,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'>{@link org.apache.juneau.rest.annotation.Body}
+			<li class='jc'>{@link org.apache.juneau.rest.RequestBody}
+		</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'>{@link org.apache.juneau.rest.annotation.Body}
-				<li class='jc'>{@link org.apache.juneau.rest.RequestBody}
-			</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>
 	)
@@ -6374,46 +6340,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 
-						{@link org.apache.juneau.rest.RestRequest#getParameter(String)} 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 {@link org.apache.juneau.rest.RestRequest#getBody()}
-				</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 
+					{@link org.apache.juneau.rest.RestRequest#getParameter(String)} 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 {@link org.apache.juneau.rest.RestRequest#getBody()}
+			</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>
 	)
@@ -6446,29 +6413,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 {@link org.apache.juneau.rest.annotation.FormData @FormData} 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 {@link org.apache.juneau.rest.annotation.FormData @FormData} 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();
@@ -6476,43 +6443,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 {@link org.apache.juneau.rest.RestContext#REST_partParser} 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 {@link org.apache.juneau.rest.annotation.Body @Body} annotation or {@link org.apache.juneau.rest.RestRequest#getBody()} 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 {@link org.apache.juneau.rest.annotation.Query @Query} 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'>{@link org.apache.juneau.rest.annotation.FormData}
-				<li class='ja'>{@link org.apache.juneau.rest.annotation.HasFormData}
-				<li class='jc'>{@link org.apache.juneau.rest.RequestFormData}
-			</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 {@link org.apache.juneau.rest.annotation.Query @Query} annotation is used to retrieve request URL query parameters.
-				<br>It's identical to {@link org.apache.juneau.rest.annotation.FormData @FormData}, but only retrieves the parameter from the URL string, not URL-encoded form posts.
-			</p>
-			<p>
-				Unlike {@link org.apache.juneau.rest.annotation.FormData @FormData}, 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 {@link org.apache.juneau.rest.annotation.Body @Body} annotation or
-				{@link org.apache.juneau.rest.RestRequest#getBody()} method for <code>application/x-www-form-urlencoded POST</code> calls.
-			</p>
-			<h5 class='figure'>Example:</h5>
-			<p class='bcode'>
+		</p>
+		<p>
+			The registered {@link org.apache.juneau.rest.RestContext#REST_partParser} 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 {@link org.apache.juneau.rest.annotation.Body @Body} annotation or {@link org.apache.juneau.rest.RestRequest#getBody()} 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 {@link org.apache.juneau.rest.annotation.Query @Query} 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'>{@link org.apache.juneau.rest.annotation.FormData}
+			<li class='ja'>{@link org.apache.juneau.rest.annotation.HasFormData}
+			<li class='jc'>{@link org.apache.juneau.rest.RequestFormData}
+		</ul>
+	</div>
+	
+	<!-- ======================================================================================================== -->
+	<a id="juneau-rest-server.Query"></a>
+	<h3 class='topic' onclick='toggle(this)'>7.9 - @Query</h3>
+	<div class='topic'>
+		<p>
+			The {@link org.apache.juneau.rest.annotation.Query @Query} annotation is used to retrieve request URL query parameters.
+			<br>It's identical to {@link org.apache.juneau.rest.annotation.FormData @FormData}, but only retrieves the parameter from the URL string, not URL-encoded form posts.
+		</p>
+		<p>
+			Unlike {@link org.apache.juneau.rest.annotation.FormData @FormData}, 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 {@link org.apache.juneau.rest.annotation.Body @Body} annotation or
+			{@link org.apache.juneau.rest.RestRequest#getBody()} 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, 
@@ -6530,84 +6498,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 {@link org.apache.juneau.rest.RestContext#REST_partParser} 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'>{@link org.apache.juneau.rest.annotation.Query}
-				<li class='ja'>{@link org.apache.juneau.rest.annotation.HasQuery}
-				<li class='jc'>{@link org.apache.juneau.rest.RequestQuery}
-			</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 {@link org.apache.juneau.rest.annotation.Header @Header} is used to retrieve request headers.
-			</p>
-			<h5 class='figure'>Example:</h5>
-			<p class='bcode'>
+		</p>
+		<p>
+			The registered {@link org.apache.juneau.rest.RestContext#REST_partParser} 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'>{@link org.apache.juneau.rest.annotation.Query}
+			<li class='ja'>{@link org.apache.juneau.rest.annotation.HasQuery}
+			<li class='jc'>{@link org.apache.juneau.rest.RequestQuery}
+		</ul>
+	</div>
+	
+	<!-- ======================================================================================================== -->
+	<a id="juneau-rest-server.Header"></a>
+	<h3 class='topic' onclick='toggle(this)'>7.10 - @Header</h3>
+	<div class='topic'>
+		<p>
+			The {@link org.apache.juneau.rest.annotation.Header @Header} 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 {@link org.apache.juneau.rest.RestContext#REST_partParser} 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'>{@link org.apache.juneau.rest.annotation.Header}
-				<li class='jc'>{@link org.apache.juneau.rest.RequestHeaders}
-			</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 {@link org.apache.juneau.serializer.Serializer} 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 {@link org.apache.juneau.serializer.Serializer#getMediaTypes()} method.
-			</p>
-			<p>
-				Serializers can be associated with REST servlets in the following ways:
-			</p>
-			<ul class='doctree'>
-				<li class='ja'>
-					{@link org.apache.juneau.rest.annotation.RestResource#serializers()} 
-					- Annotation on resource Java class.
-				<li class='ja'>
-					{@link org.apache.juneau.rest.annotation.RestMethod#serializers()} 
-					- Annotation on resource Java method.
-				<li class='jf'>
-					{@link org.apache.juneau.rest.RestContext#REST_serializers} 
-					- Programmatic.
-			</ul>
-			<p>
-				The following are all equivalent ways of defining serializers used by a resource:
-			</p> 		
-			<p class='bcode'>
+		</p>
+		<p>
+			The registered {@link org.apache.juneau.rest.RestContext#REST_partParser} 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'>{@link org.apache.juneau.rest.annotation.Header}
+			<li class='jc'>{@link org.apache.juneau.rest.RequestHeaders}
+		</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 {@link org.apache.juneau.serializer.Serializer} 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 {@link org.apache.juneau.serializer.Serializer#getMediaTypes()} method.
+		</p>
+		<p>
+			Serializers can be associated with REST servlets in the following ways:
+		</p>
+		<ul class='doctree'>
+			<li class='ja'>
+				{@link org.apache.juneau.rest.annotation.RestResource#serializers()} 
+				- Annotation on resource Java class.
+			<li class='ja'>
+				{@link org.apache.juneau.rest.annotation.RestMethod#serializers()} 
+				- Annotation on resource Java method.
+			<li class='jf'>
+				{@link org.apache.juneau.rest.RestContext#REST_serializers} 
+				- 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 {
@@ -6638,43 +6606,43 @@
 			<jk>return new</jk> MyPojo(); 
 		}
 	}
-			</p>
-			
-			<h5 class='section'>See Also:</h5>
-			<ul class='doctree'>
-				<li class='jf'>{@link org.apache.juneau.rest.RestContext#REST_serializers}
-			</ul>
-		</div>
+		</p>
+		
+		<h5 class='section'>See Also:</h5>
+		<ul class='doctree'>
+			<li class='jf'>{@link org.apache.juneau.rest.RestContext#REST_serializers}
+		</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 {@link org.apache.juneau.parser.Parser} 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 {@link org.apache.juneau.parser.Parser#getMediaTypes()} method.
-			</p>
-			<p>
-				Parsers can be associated with REST servlets in the following ways:
-			</p>
-			<ul class='doctree'>
-				<li class='ja'>
-					{@link org.apache.juneau.rest.annotation.RestResource#parsers()} 
-					- Annotation on resource Java class.
-				<li class='ja'>
-					{@link org.apache.juneau.rest.annotation.RestMethod#parsers()} 
-					- Annotation on resource Java method.
-				<li class='jm'>
-					{@link org.apache.juneau.rest.RestContextBuilder#parsers(Class[])} 
-					- 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 {@link org.apache.juneau.parser.Parser} 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 {@link org.apache.juneau.parser.Parser#getMediaTypes()} method.
+		</p>
+		<p>
+			Parsers can be associated with REST servlets in the following ways:
+		</p>
+		<ul class='doctree'>
+			<li class='ja'>
+				{@link org.apache.juneau.rest.annotation.RestResource#parsers()} 
+				- Annotation on resource Java class.
+			<li class='ja'>
+				{@link org.apache.juneau.rest.annotation.RestMethod#parsers()} 
+				- Annotation on resource Java method.
+			<li class='jm'>
+				{@link org.apache.juneau.rest.RestContextBuilder#parsers(Class[])} 
+				- 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>})
@@ -6702,33 +6670,33 @@
 		<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'>{@link org.apache.juneau.rest.RestContext#REST_parsers}
-			</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'>{@link org.apache.juneau.rest.annotation.RestResource#properties()} 
-				<li class='jc'>{@link org.apache.juneau.rest.RestContextBuilder} - Various methods on the context builder.
-			</ul>
-			<h5 class='figure'>Example:</h5>
-			<p class='bcode'>
+			<jc>// Do something with your parsed POJO.</jc>
+		}
+	}
+		</p>
+		<h5 class='section'>See Also:</h5>
+		<ul class='doctree'>
+			<li class='jf'>{@link org.apache.juneau.rest.RestContext#REST_parsers}
+		</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'>{@link org.apache.juneau.rest.annotation.RestResource#properties()} 
+			<li class='jc'>{@link org.apache.juneau.rest.RestContextBuilder} - 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.*;
@@ -6747,11 +6715,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 {
@@ -6764,15 +6732,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'>{@link org.apache.juneau.rest.annotation.RestMethod#properties()} 
-				<li class='jc'>{@link org.apache.juneau.rest.RequestProperties} 
-			</ul>
-			<p class='bcode'>
+		</p>
+		<p>
+			Properties can also be overridden at the Java method level:
+		</p>
+		<ul>
+			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#properties()} 
+			<li class='jc'>{@link org.apache.juneau.rest.RequestProperties} 
+		</ul>
+		<p class='bcode'>
 	<jc>// GET method with method-level properties</jc>
 	<ja>@RestMethod</ja>(
 		name=<jsf>GET</jsf>, path=<js>"/*"</js>,
@@ -6789,11 +6757,11 @@
 	<jk>public</jk> Object doGet() {
 		...
 	}
-			</p>
-			<p>
-				Using the {@link org.apache.juneau.rest.RequestProperties} object:
-			</p>
-			<p class='bcode'>
+		</p>
+		<p>
+			Using the {@link org.apache.juneau.rest.RequestProperties} object:
+		</p>
+		<p class='bcode'>
 	<jc>// Access it from RestRequest.</jc>
 	<jk>public</jk> Object doGet(RestRequest req) {
 		RequestProperties properties = req.getProperties();
@@ -6804,51 +6772,51 @@
 	<jk>public</jk> Object doGet(RequestProperties properties) {
 		properties.put(<jsf>JSON_escapeSolidus</jsf>, <jk>true</jk>);
 	}
-			</p>
-			<p>
-				Properties set via {@link org.apache.juneau.rest.RequestProperties} are session-override
-				properties that are passed in through {@link org.apache.juneau.serializer.SerializerSessionArgs}
-				and {@link org.apache.juneau.parser.ParserSessionArgs} 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'>{@link org.apache.juneau.rest.RestContext#getProperties()}
-				<li class='jm'>{@link org.apache.juneau.rest.RestRequest#getProperties()}
-			</ul>
-			<h5 class='section'>See Also:</h5>
-			<ul>
-				<li class='ja'>{@link org.apache.juneau.rest.annotation.RestResource#flags()} - Shorthand for boolean properties.
-				<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#flags()} - Shorthand for boolean properties.
-				<li class='jc'>{@link org.apache.juneau.rest.RestContextProperties} 
-				<li class='jc'>{@link org.apache.juneau.rest.RestMethodProperties} 
-				<li class='jc'>{@link org.apache.juneau.rest.RequestProperties} 
-			</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'>{@link org.apache.juneau.rest.annotation.RestResource#beanFilters()} 
-				<li class='ja'>{@link org.apache.juneau.rest.annotation.RestResource#pojoSwaps()} 
-				<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#beanFilters()} 
-				<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#pojoSwaps()}
-				<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#beanFilters(Object...)} 
-				<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#pojoSwaps(Object...)} 
-			</ul>
-			<p class='bcode'>
+		</p>
+		<p>
+			Properties set via {@link org.apache.juneau.rest.RequestProperties} are session-override
+			properties that are passed in through {@link org.apache.juneau.serializer.SerializerSessionArgs}
+			and {@link org.apache.juneau.parser.ParserSessionArgs} 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'>{@link org.apache.juneau.rest.RestContext#getProperties()}
+			<li class='jm'>{@link org.apache.juneau.rest.RestRequest#getProperties()}
+		</ul>
+		<h5 class='section'>See Also:</h5>
+		<ul>
+			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestResource#flags()} - Shorthand for boolean properties.
+			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#flags()} - Shorthand for boolean properties.
+			<li class='jc'>{@link org.apache.juneau.rest.RestContextProperties} 
+			<li class='jc'>{@link org.apache.juneau.rest.RestMethodProperties} 
+			<li class='jc'>{@link org.apache.juneau.rest.RequestProperties} 
+		</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'>{@link org.apache.juneau.rest.annotation.RestResource#beanFilters()} 
+			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestResource#pojoSwaps()} 
+			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#beanFilters()} 
+			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#pojoSwaps()}
+			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#beanFilters(Object...)} 
+			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#pojoSwaps(Object...)} 
+		</ul>
+		<p class='bcode'>
 	<jc>// Servlet with transforms applied</jc>
 	<ja>@RestResource</ja>(
 		pojoSwaps={
@@ -6864,11 +6832,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 {
@@ -6883,25 +6851,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'>{@link org.apache.juneau.rest.annotation.RestResource#guards()} 
-				<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#guards()} 
-				<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#guards(Class...)} 
-			</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'>{@link org.apache.juneau.rest.annotation.RestResource#guards()} 
+			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#guards()} 
+			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#guards(Class...)} 
+		</ul>
+		<p class='bcode'>
 	<jc>// Define a guard that only lets Billy make a request</jc>
 	<jk>public</jk> BillyGuard <jk>extends</jk> RestGuard {
 
@@ -6919,16 +6887,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>
@@ -6936,14 +6904,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 
-				{@link org.apache.juneau.rest.RestGuard#guard(RestRequest,RestResponse)} 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 
+			{@link org.apache.juneau.rest.RestGuard#guard(RestRequest,RestResponse)} and processing the response 
+			yourself.
+		</p>
+		<p class='bcode'>
 	<jk>public class</jk> AdminGuard <jk>extends</jk> RestGuard {
 
 		<ja>@Override</ja> <jc>/* RestGuard */</jc>
@@ -6953,45 +6921,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'>{@link org.apache.juneau.rest.RestContext#REST_guards}
-			</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'>{@link org.apache.juneau.rest.annotation.RestResource#converters()} 
-				<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#converters()} 
-				<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#converters(Class...)} 
-			</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'>{@link org.apache.juneau.rest.RestContext#REST_guards}
+		</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'>{@link org.apache.juneau.rest.annotation.RestResource#converters()} 
+			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#converters()} 
+			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#converters(Class...)} 
+		</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>
@@ -7002,15 +6970,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 {@link org.apache.juneau.utils.PojoRest} 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 {@link org.apache.juneau.utils.PojoRest} 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.
@@ -7041,43 +7009,43 @@
 			<jk>return</jk> o;
 		}
 	}
-			</p>	
-			<p>
-				Juneau defines the following converters out-of-the-box:
-			</p>
-			<ul class='doctree'>
-				<li class='jic'>
-				{@link org.apache.juneau.rest.RestConverter}
-				<ul>
-					<li class='jc'>
-						{@link org.apache.juneau.rest.converters.Queryable}
-						<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'>
-						{@link org.apache.juneau.rest.converters.Traversable}
-						<br>Allows nodes in the POJO response tree to be individually accessed through additional path info on 
-						the request.
-					<li class='jc'>
-						{@link org.apache.juneau.rest.converters.Introspectable}
-						<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'>
+			{@link org.apache.juneau.rest.RestConverter}
 			<ul>
-				<li class='jf'>{@link org.apache.juneau.rest.RestContext#REST_converters} 
+				<li class='jc'>
+					{@link org.apache.juneau.rest.converters.Queryable}
+					<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'>
+					{@link org.apache.juneau.rest.converters.Traversable}
+					<br>Allows nodes in the POJO response tree to be individually accessed through additional path info on 
+					the request.
+				<li class='jc'>
+					{@link org.apache.juneau.rest.converters.Introspectable}
+					<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 {@link org.apache.juneau.rest.annotation.RestResource#messages @RestResource.messages()} 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'>{@link org.apache.juneau.rest.RestContext#REST_converters} 
+		</ul>
+	</div>
+	
+	<!-- ======================================================================================================== -->
+	<a id="juneau-rest-server.Messages"></a>
+	<h3 class='topic' onclick='toggle(this)'>7.17 - Messages</h3>
+	<div class='topic'>
+		<p>
+			The {@link org.apache.juneau.rest.annotation.RestResource#messages @RestResource.messages()} 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 {
@@ -7087,22 +7055,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 {@link java.util.ResourceBundle} or {@link org.apache.juneau.utils.MessageBundle}:
-			</p>
-			<p class='bcode'>
+		</p>
+		<p>	
+			The resource bundle can also be passed into the method by simply specifying a parameter
+			of type {@link java.util.ResourceBundle} or {@link org.apache.juneau.utils.MessageBundle}:
+		</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>
@@ -7113,89 +7081,87 @@
 	# Contents of shared MyMessages.properties
 	#--------------------------------------------------------------------------------</cc>
 	<ck>MyRestServlet.greeting</ck> = Hello!
-			</p>
-			<h5 class='section'>See Also:</h5>
-			<ul>
-				<li class='jf'>{@link org.apache.juneau.rest.RestContext#REST_messages}
-			</ul>
-		</div>
+		</p>
+		<h5 class='section'>See Also:</h5>
+		<ul>
+			<li class='jf'>{@link org.apache.juneau.rest.RestContext#REST_messages}
+		</ul>
+	</div>
+	
+	<!-- ======================================================================================================== -->
+	<a id="juneau-rest-server.Encoders"></a>
+	<h3 class='topic' onclick='toggle(this)'>7.18 - Encoders</h3>
+	<div class='topic'>
+		<p>
+			The {@link org.apache.juneau.rest.annotation.RestResource#encoders @RestResource.encoders()} 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>
 		
-		<!-- ======================================================================================================== -->
-		<a id="juneau-rest-server.Encoders"></a>
-		<h4 class='topic' onclick='toggle(this)'>3.1.18 - Encoders</h4>
-		<div class='topic'>
-			<p>
-				The {@link org.apache.juneau.rest.annotation.RestResource#encoders @RestResource.encoders()} 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'>
+		<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'>
-				{@link org.apache.juneau.encoders.Encoder}
-				<ul>
-					<li class='jc'>
-						{@link org.apache.juneau.encoders.GzipEncoder}
-					<li class='jc'>
-						{@link org.apache.juneau.encoders.IdentityEncoder}
-				</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'>
+			{@link org.apache.juneau.encoders.Encoder}
 			<ul>
-				<li class='jf'>{@link org.apache.juneau.rest.RestContext#REST_encoders}
+				<li class='jc'>
+					{@link org.apache.juneau.encoders.GzipEncoder}
+				<li class='jc'>
+					{@link org.apache.juneau.encoders.IdentityEncoder}
 			</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'>{@link org.apache.juneau.rest.RestContext#REST_encoders}
+		</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>(
 		title=<js>"$L{my.label}"</js>
     )
-			</p>
-			<p>
-				Variables take the form <l>$X{contents}</l> where <l>X</l> can consist of zero or more ASCII characters and <l>contents</l> can be virtually anything.
-				<br>This is called Simple Variable Language, or SVL, and is defined here: <a class='doclink' href='#juneau-svl'>juneau-svl</a>.
-			</p>
-			<p>
-				Features include:
-			</p>
-			<ul class='spaced-list'>
-				<li>
-					Variables can be nested arbitrarily deep (e.g. <l>"$X{$Y{foo}}"</l>).
-				<li>
-					Variables can contain arguments (e.g. <l>"$L{my.label,arg1,arg2}"</l>).
-				<li>
-					Variables are recursively resolved. 
-					<br>i.e., if a variable results to a value with another variable in it, that variable will also be 
-					resolved (restricted for security reasons on some variables).
-			</ul>
-			<p>
-				Variables are configured on resources via the following API:
-			</p>
-			<ul>
-				<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#vars(Class[])}
-			</ul>
-			<h5 class='figure'>Example:</h5>
-			<p class='bcode'>
+		</p>
+		<p>
+			Variables take the form <l>$X{contents}</l> where <l>X</l> can consist of zero or more ASCII characters and <l>contents</l> can be virtually anything.
+			<br>This is called Simple Variable Language, or SVL, and is defined here: <a class='doclink' href='#juneau-svl'>juneau-svl</a>.
+		</p>
+		<h5 class='topic'>Features</h5>
+		<ul class='spaced-list'>
+			<li>
+				Variables can be nested arbitrarily deep (e.g. <l>"$X{$Y{foo}}"</l>).
+			<li>
+				Variables can contain arguments (e.g. <l>"$L{my.label,arg1,arg2}"</l>).
+			<li>
+				Variables are recursively resolved. 
+				<br>i.e., if a variable results to a value with another variable in it, that variable will also be 
+				resolved (restricted for security reasons on some variables).
+		</ul>
+		<p>
+			Variables are configured on resources via the following API:
+		</p>
+		<ul>
+			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#vars(Class[])}
+		</ul>
+		<h5 class='figure'>Example:</h5>
+		<p class='bcode'>
 	<jc>// Defined a variable that simply wrapps all strings inside [] brackets.</jc>
 	<jc>// e.g. "$BRACKET{foobar}" -> "[foobar]"</jc>
 	<jk>public class</jk> BracketVar <jk>extends</jk> SimpleVar {
@@ -7218,107 +7184,107 @@
 			builder.vars(BracketVar.<jk>class</jk>);
 		}
 	}
-			</p>
-			<p>
-				The methods involved with variables are:
-			</p>
+		</p>
+		<p>
+			The methods involved with variables are:
+		</p>
+		<ul>
+			<li class='jm'>{@link org.apache.juneau.rest.RestContext#getVarResolver()}
+			<li class='jm'>{@link org.apache.juneau.rest.RestRequest#getVarResolverSession()}
+			<li class='jm'>{@link org.apache.juneau.rest.RestRequest#getClasspathReaderResource(String,boolean)}
+		</ul>
+		<p>
+			There are two distinct groups of variables:
+		</p>
+		<ul>
+			<li>Initialization-time variables.
+				<br>These are variables that can be used in many of the annotations in {@link org.apache.juneau.rest.annotation.RestResource @RestResource}. 
+				<br>The {@link org.apache.juneau.rest.RestContext#getVarResolver()} method returns initialization-time variables only.
+			<li>Request-time variables.
+				<br>These are variables that are available during HTTP-requests and can be used on annotation such as {@link org.apache.juneau.rest.annotation.HtmlDoc @HtmlDoc}. 
+				<br>{@link org.apache.juneau.rest.RestRequest#getVarResolverSession()} method returns initialization and request-time variables.
+		</ul>
+		<p>
+			The following is the default list of supported variables.
+		</p>
+		<a id="DefaultRestSvlVariables"></a>
+		<h5 class='topic'>Default REST SVL variables</h5>
+		<ul class='spaced-list'>
+			<li><b>Initialization-time variables:</b>
 			<ul>
-				<li class='jm'>{@link org.apache.juneau.rest.RestContext#getVarResolver()}
-				<li class='jm'>{@link org.apache.juneau.rest.RestRequest#getVarResolverSession()}
-				<li class='jm'>{@link org.apache.juneau.rest.RestRequest#getClasspathReaderResource(String,boolean)}
+				<li><l>$C{key[,defaultValue]}</l> - {@link org.apache.juneau.ini.ConfigFileVar}
+				<li><l>$E{envVar[,defaultValue]}</l> - {@link org.apache.juneau.svl.vars.EnvVariablesVar}
+				<li><l>$S{systemProperty[,defaultValue]}</l> - {@link org.apache.juneau.svl.vars.SystemPropertiesVar}
 			</ul>
-			<p>
-				There are two distinct groups of variables:
-			</p>
+			<li><b>Initialization-time construct variables:</b>
 			<ul>
-				<li>Initialization-time variables.
-					<br>These are variables that can be used in many of the annotations in {@link org.apache.juneau.rest.annotation.RestResource @RestResource}. 
-					<br>The {@link org.apache.juneau.rest.RestContext#getVarResolver()} method returns initialization-time variables only.
-				<li>Request-time variables.
-					<br>These are variables that are available during HTTP-requests and can be used on annotation such as {@link org.apache.juneau.rest.annotation.HtmlDoc @HtmlDoc}. 
-					<br>{@link org.apache.juneau.rest.RestRequest#getVarResolverSession()} method returns initialization and request-time variables.
+				<li><l>$CO{arg1[,arg2...]}</l> - {@link org.apache.juneau.svl.vars.CoalesceVar}
+				<li><l>$CR{arg1[,arg2...]}</l> - {@link org.apache.juneau.svl.vars.CoalesceAndRecurseVar}
+				<li><l>$IF{booleanArg,thenValue[,elseValue]}</l> - {@link org.apache.juneau.svl.vars.IfVar}
+				<li><l>$SW{stringArg(,pattern,thenValue)+[,elseValue]}</l> - {@link org.apache.juneau.svl.vars.SwitchVar}
 			</ul>
-			<p>
-				The following is the default list of supported variables.
-			</p>
-			<a id="DefaultRestSvlVariables"></a>
-			<h5 class='topic'>Default REST SVL variables</h5>
-			<ul class='spaced-list'>
-				<li><b>Initialization-time variables:</b>
-				<ul>
-					<li><l>$C{key[,defaultValue]}</l> - {@link org.apache.juneau.ini.ConfigFileVar}
-					<li><l>$E{envVar[,defaultValue]}</l> - {@link org.apache.juneau.svl.vars.EnvVariablesVar}
-					<li><l>$S{systemProperty[,defaultValue]}</l> - {@link org.apache.juneau.svl.vars.SystemPropertiesVar}
-				</ul>
-				<li><b>Initialization-time construct variables:</b>
-				<ul>
-					<li><l>$CO{arg1[,arg2...]}</l> - {@link org.apache.juneau.svl.vars.CoalesceVar}
-					<li><l>$CR{arg1[,arg2...]}</l> - {@link org.apache.juneau.svl.vars.CoalesceAndRecurseVar}
-					<li><l>$IF{booleanArg,thenValue[,elseValue]}</l> - {@link org.apache.juneau.svl.vars.IfVar}
-					<li><l>$SW{stringArg(,pattern,thenValue)+[,elseValue]}</l> - {@link org.apache.juneau.svl.vars.SwitchVar}
-				</ul>
-				<li><b>Request-time variables:</b>
-				<ul>
-					<li><l>$F{path[,defaultValue]}</l> - {@link org.apache.juneau.rest.vars.FileVar}
-					<li><l>$I{name[,defaultValue]}</l> - {@link org.apache.juneau.rest.vars.ServletInitParamVar}
-					<li><l>$L{key[,args...]}</l> - {@link org.apache.juneau.rest.vars.LocalizationVar}
-					<li><l>$RA{key1[,key2...]}</l> - {@link org.apache.juneau.rest.vars.RequestAttributeVar}
-					<li><l>$RF{key1[,key2...]}</l> - {@link org.apache.juneau.rest.vars.RequestFormDataVar}
-					<li><l>$RH{key1[,key2...]}</l> - {@link org.apache.juneau.rest.vars.RequestHeaderVar}
-					<li><l>$RI{key}</l> - {@link org.apache.juneau.rest.vars.RequestHeaderVar}
-						<br>Possible keys:
-						<ul>
-							<li><l>$RI{contact}</l> - {@link org.apache.juneau.dto.swagger.Info#getContact()}
-							<li><l>$RI{description}</l> - {@link org.apache.juneau.rest.RestInfoProvider#getDescription(RestRequest)}
-							<li><l>$RI{externalDocs}</l> - {@link org.apache.juneau.dto.swagger.Swagger#getExternalDocs()}
-							<li><l>$RI{license}</l> - {@link org.apache.juneau.dto.swagger.Info#getLicense()}
-							<li><l>$RI{methodDescription}</l> - {@link org.apache.juneau.rest.RestInfoProvider#getMethodDescription(Method,RestRequest)}
-							<li><l>$RI{methodSummary}</l> - {@link org.apache.juneau.rest.RestInfoProvider#getMethodSummary(Method,RestRequest)}
-							<li><l>$RI{siteName}</l> - {@link org.apache.juneau.rest.RestInfoProvider#getSiteName(RestRequest)}
-							<li><l>$RI{tags}</l> - {@link org.apache.juneau.dto.swagger.Swagger#getTags()}
-							<li><l>$RI{termsOfService}</l> - {@link org.apache.juneau.dto.swagger.Info#getTermsOfService()}
-							<li><l>$RI{title}</l> - {@link org.apache.juneau.rest.RestInfoProvider#getTitle(RestRequest)}
-							<li><l>$RI{version}</l> - {@link org.apache.juneau.dto.swagger.Info#getVersion()}
-						</ul>
-					<li><l>$RP{key1[,key2...]}</l> - {@link org.apache.juneau.rest.vars.RequestPathVar}
-					<li><l>$RQ{key1[,key2...]}</l> - {@link org.apache.juneau.rest.vars.RequestQueryVar}
-					<li><l>$R{key1[,key2...]}</l> - {@link org.apache.juneau.rest.vars.RequestVar}
-						<br>Possible keys:
-						<ul>
-							<li><l>$R{method}</l> - {@link org.apache.juneau.rest.RestRequest#getMethod()}
-							<li><l>$R{methodSummary}</l> - {@link org.apache.juneau.rest.RestRequest#getMethodSummary()}
-							<li><l>$R{methodDescription}</l> - {@link org.apache.juneau.rest.RestRequest#getMethodDescription()}
-							<li><l>$R{pathInfo}</l> - {@link org.apache.juneau.rest.RestRequest#getPathInfo()}
-							<li><l>$R{requestParentURI}</l> - {@link org.apache.juneau.UriContext#getRootRelativePathInfoParent()}
-							<li><l>$R{requestURI}</l> - {@link org.apache.juneau.rest.RestRequest#getRequestURI()}
-							<li><l>$R{resourceDescription}</l> - {@link org.apache.juneau.rest.RestRequest#getResourceDescription()}
-							<li><l>$R{resourceTitle}</l> - {@link org.apache.juneau.rest.RestRequest#getResourceTitle()}
-							<li><l>$R{servletParentURI}</l> - {@link org.apache.juneau.UriContext#getRootRelativeServletPathParent()}
-							<li><l>$R{servletPath}</l> - {@link org.apache.juneau.rest.RestRequest#getServletPath()}
-							<li><l>$R{servletURI}</l> - {@link org.apache.juneau.UriContext#getRootRelativeServletPath()}
-						</ul>
-					<li><l>$SA{contentType,key[,defaultValue]}</l> - {@link org.apache.juneau.rest.vars.SerializedRequestAttrVar}
-					<li><l>$U{uri}</l> - {@link org.apache.juneau.rest.vars.UrlVar}
-					<li><l>$UE{uriPart}</l> - {@link org.apache.juneau.rest.vars.UrlEncodeVar}
-					<li><l>$W{widgetName}</l> - {@link org.apache.juneau.rest.vars.WidgetVar}
-				</ul>
+			<li><b>Request-time variables:</b>
+			<ul>
+				<li><l>$F{path[,defaultValue]}</l> - {@link org.apache.juneau.rest.vars.FileVar}
+				<li><l>$I{name[,defaultValue]}</l> - {@link org.apache.juneau.rest.vars.ServletInitParamVar}
+				<li><l>$L{key[,args...]}</l> - {@link org.apache.juneau.rest.vars.LocalizationVar}
+				<li><l>$RA{key1[,key2...]}</l> - {@link org.apache.juneau.rest.vars.RequestAttributeVar}
+				<li><l>$RF{key1[,key2...]}</l> - {@link org.apache.juneau.rest.vars.RequestFormDataVar}
+				<li><l>$RH{key1[,key2...]}</l> - {@link org.apache.juneau.rest.vars.RequestHeaderVar}
+				<li><l>$RI{key}</l> - {@link org.apache.juneau.rest.vars.RequestHeaderVar}
+					<br>Possible keys:
+					<ul>
+						<li><l>$RI{contact}</l> - {@link org.apache.juneau.dto.swagger.Info#getContact()}
+						<li><l>$RI{description}</l> - {@link org.apache.juneau.rest.RestInfoProvider#getDescription(RestRequest)}
+						<li><l>$RI{externalDocs}</l> - {@link org.apache.juneau.dto.swagger.Swagger#getExternalDocs()}
+						<li><l>$RI{license}</l> - {@link org.apache.juneau.dto.swagger.Info#getLicense()}
+						<li><l>$RI{methodDescription}</l> - {@link org.apache.juneau.rest.RestInfoProvider#getMethodDescription(Method,RestRequest)}
+						<li><l>$RI{methodSummary}</l> - {@link org.apache.juneau.rest.RestInfoProvider#getMethodSummary(Method,RestRequest)}
+						<li><l>$RI{siteName}</l> - {@link org.apache.juneau.rest.RestInfoProvider#getSiteName(RestRequest)}
+						<li><l>$RI{tags}</l> - {@link org.apache.juneau.dto.swagger.Swagger#getTags()}
+						<li><l>$RI{termsOfService}</l> - {@link org.apache.juneau.dto.swagger.Info#getTermsOfService()}
+						<li><l>$RI{title}</l> - {@link org.apache.juneau.rest.RestInfoProvider#getTitle(RestRequest)}
+						<li><l>$RI{version}</l> - {@link org.apache.juneau.dto.swagger.Info#getVersion()}
+					</ul>
+				<li><l>$RP{key1[,key2...]}</l> - {@link org.apache.juneau.rest.vars.RequestPathVar}
+				<li><l>$RQ{key1[,key2...]}</l> - {@link org.apache.juneau.rest.vars.RequestQueryVar}
+				<li><l>$R{key1[,key2...]}</l> - {@link org.apache.juneau.rest.vars.RequestVar}
+					<br>Possible keys:
+					<ul>
+						<li><l>$R{method}</l> - {@link org.apache.juneau.rest.RestRequest#getMethod()}
+						<li><l>$R{methodSummary}</l> - {@link org.apache.juneau.rest.RestRequest#getMethodSummary()}
+						<li><l>$R{methodDescription}</l> - {@link org.apache.juneau.rest.RestRequest#getMethodDescription()}
+						<li><l>$R{pathInfo}</l> - {@link org.apache.juneau.rest.RestRequest#getPathInfo()}
+						<li><l>$R{requestParentURI}</l> - {@link org.apache.juneau.UriContext#getRootRelativePathInfoParent()}
+						<li><l>$R{requestURI}</l> - {@link org.apache.juneau.rest.RestRequest#getRequestURI()}
+						<li><l>$R{resourceDescription}</l> - {@link org.apache.juneau.rest.RestRequest#getResourceDescription()}
+						<li><l>$R{resourceTitle}</l> - {@link org.apache.juneau.rest.RestRequest#getResourceTitle()}
+						<li><l>$R{servletParentURI}</l> - {@link org.apache.juneau.UriContext#getRootRelativeServletPathParent()}
+						<li><l>$R{servletPath}</l> - {@link org.apache.juneau.rest.RestRequest#getServletPath()}
+						<li><l>$R{servletURI}</l> - {@link org.apache.juneau.UriContext#getRootRelativeServletPath()}
+					</ul>
+				<li><l>$SA{contentType,key[,defaultValue]}</l> - {@link org.apache.juneau.rest.vars.SerializedRequestAttrVar}
+				<li><l>$U{uri}</l> - {@link org.apache.juneau.rest.vars.UrlVar}
+				<li><l>$UE{uriPart}</l> - {@link org.apache.juneau.rest.vars.UrlEncodeVar}
+				<li><l>$W{widgetName}</l> - {@link org.apache.juneau.rest.vars.WidgetVar}
 			</ul>
-		</div>
+		</ul>
+	</div>
+	
+	<!-- ======================================================================================================== -->
+	<a id="juneau-rest-server.ConfigurationFiles"></a>
+	<h3 class='topic' onclick='toggle(this)'>7.20 - Configuration Files</h3>
+	<div class='topic'>
+		<p>
+			The Server API provides methods for associating configuration files with REST servlets so that 
+			configuration properties can be defined in external files.
+		</p>
+		<p>
+			In recap, the Configuration API provides support for INI-style configuration files with embedded string variables:
+		</p>
 		
-		<!-- ======================================================================================================== -->
-		<a id="juneau-rest-server.ConfigurationFiles"></a>
-		<h4 class='topic' onclick='toggle(this)'>3.1.20 - Configuration Files</h4>
-		<div class='topic'>
-			<p>
-				The Server API provides methods for associating configuration files with REST servlets so that 
-				configuration properties can be defined in external files.
-			</p>
-			<p>
-				In recap, the Configuration API provides support for INI-style configuration files with embedded string variables:
-			</p>
-			
-			<h5 class='figure'>Example:</h5>
-			<p class='bcode'>
+		<h5 class='figure'>Example:</h5>
+		<p class='bcode'>
 	<cc>#--------------------------</cc>
 	<cc># Examples </cc>
 	<cc>#--------------------------</cc>
@@ -7326,53 +7292,53 @@
 	<ck>path</ck> = <cv>$E{PATH}</cv>
 	<ck>javaHome</ck> = <cv>$S{java.home}</cv>
 	<ck>customMessage</ck> = <cv>Java home is $C{MyProperties/javaHome} and the environment path is $C{MyProperties/path}.</cv>
-			</p>
-			<p>
-				These properties are then accessible through the {@link org.apache.juneau.ini.ConfigFile} class.
-			</p>
-			<p class='bcode'>
+		</p>
+		<p>
+			These properties are then accessible through the {@link org.apache.juneau.ini.ConfigFile} class.
+		</p>
+		<p class='bcode'>
 	ConfigFile cf = ConfigFile.<jsm>create</jsm>().build(<js>"myconfig.cfg"</js>);
 	String path = cf.getString(<js>"MyProperties/path"</js>);
 	File javaHome = cf.getObject(<js>"MyProperties/javaHome"</js>, File.<jk>class</jk>);
 	String customMessage = cf.getString(<js>"MyProperties/customMessage"</js>);
-			</p>
-			<p>
-				Configuration files are associated with REST resources through the following:
-			</p>
-			<ul>
-				<li class='ja'>{@link org.apache.juneau.rest.annotation.RestResource#config()}
-			</ul>
-			
-			<h5 class='figure'>Example:</h5>
-			<p class='bcode'>
+		</p>
+		<p>
+			Configuration files are associated with REST resources through the following:
+		</p>
+		<ul>
+			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestResource#config()}
+		</ul>
+		
+		<h5 class='figure'>Example:</h5>
+		<p class='bcode'>
 	<ja>@RestResource</ja>(
 		<jc>// Config file is located at ./config_dir/myconfig.cfg</jc>
 		config=<js>"config_dir/myconfig.cfg"</js>,
 		...
 	)
 	<jk>public class</jk> MyResource {...}
-			</p>
-			<p>
-				The annotation itself can contain string variables.  
-				<br>For example, the Microservice API {@link org.apache.juneau.microservice.Resource} class defines the 
-				location of the config file as a system property <l>"juneau.configFile"</l>:
-			</p>
-			<p class='bcode'>
+		</p>
+		<p>
... 9092 lines suppressed ...

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

Mime
View raw message