You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2017/06/26 00:41:17 UTC

[02/23] incubator-juneau git commit: Clean up javadocs.

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/5c4762ee/juneau-core/src/main/javadoc/overview.html
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/overview.html b/juneau-core/src/main/javadoc/overview.html
index 310cd26..8537719 100644
--- a/juneau-core/src/main/javadoc/overview.html
+++ b/juneau-core/src/main/javadoc/overview.html
@@ -61,7 +61,8 @@
 	<li>A REST client API for interacting with REST interfaces using POJOs.
 	<li>A remote proxy API built on top of REST.
 	<li>A sophisticated INI config file API. 
-	<li>A REST microservice API that combines all the features above for creating lightweight standalone REST interfaces that start up in milliseconds.
+	<li>A REST microservice API that combines all the features above for creating lightweight stand-alone REST 
+		interfaces that start up in milliseconds.
 </ul>
 
 <a id='TOC'></a><h5 class='toc'>Table of Contents</h5>
@@ -142,8 +143,10 @@
 		<li><p><a class='doclink' href='#Cookbook.Core'>Core API</a></p>
 		<li><p><a class='doclink' href='#Cookbook.Server'>Server API</a></p>
 		<ol>
-			<li><p><a class='doclink' href='#Cookbook.Server.applyDoubletransform'>Apply a transform that changes the format of doubles</a></p>
-			<li><p><a class='doclink' href='#Cookbook.Server.applyTransformsSubset'>Apply transforms to a subset of serializers or parsers</a></p>
+			<li><p><a class='doclink' href='#Cookbook.Server.applyDoubletransform'>Apply a transform that changes the 
+				format of doubles</a></p>
+			<li><p><a class='doclink' href='#Cookbook.Server.applyTransformsSubset'>Apply transforms to a subset of 
+				serializers or parsers</a></p>
 		</ol>
 		<li><p><a class='doclink' href='#Cookbook.Client'>Client API</a></p>
 		<ol>
@@ -163,7 +166,8 @@
 <div class='topic'>
 	<p>
 		Juneau started off as a popular internal IBM toolkit called Juno.
-		Originally used for serializing POJOs to and from JSON, it later expanded in scope to include a variety of content types, and then later REST servlet, client, and microservice APIs.
+		Originally used for serializing POJOs to and from JSON, it later expanded in scope to include a variety of 
+		content types, and then later REST servlet, client, and microservice APIs.
 		It's use grew to more than 50 projects and was one of the most popular community source projects within IBM.
 	</p>
 	<p>
@@ -172,7 +176,8 @@
 	<h5 class='toc'>Features</h5>
 	<ol class='toc'>
 		<li>
-			<p>Extensive and extensible support for a large variety of POJOs, including structured data (beans) and unstructured data (<code>Maps</code> and <code>Collections</code>).</p>
+			<p>Extensive and extensible support for a large variety of POJOs, including structured data (beans) and 
+				unstructured data (<code>Maps</code> and <code>Collections</code>).</p>
 		<li>
 			<p>Serialization support:</p>
 			<ul>
@@ -241,25 +246,33 @@
 		Juneau requires Java 6+.  The majority of the code has no other dependencies except for the following packages:
 	</p>
 	<ul class='doctree'>
-		<li class='jp'> <a class='doclink' href='org/apache/juneau/jena/package-summary.html#TOC'>org.apache.juneau.jena</a> - RDF support.  Requires Apache Jena 2.7.1+.
-		<li class='jp'> <a class='doclink' href='org/apache/juneau/rest/package-summary.html#TOC'>org.apache.juneau.rest</a> - REST servlet support.  Requires JEE 1.3+.
-		<li class='jp'> <a class='doclink' href='org/apache/juneau/rest/client/package-summary.html#TOC'>org.apache.juneau.rest.client</a> - REST client support.  Requires Apache HttpClient 4.5+.
+		<li class='jp'> <a class='doclink' 
+			href='org/apache/juneau/jena/package-summary.html#TOC'>org.apache.juneau.jena</a> 
+			- RDF support.  Requires Apache Jena 2.7.1+.
+		<li class='jp'> <a class='doclink' 
+			href='org/apache/juneau/rest/package-summary.html#TOC'>org.apache.juneau.rest</a> 
+			- REST servlet support.  Requires JEE 1.3+.
+		<li class='jp'> <a class='doclink' 
+			href='org/apache/juneau/rest/client/package-summary.html#TOC'>org.apache.juneau.rest.client</a> 
+			- REST client support.  Requires Apache HttpClient 4.5+.
 	</ul>
 	<p>
 		OSGi bundles are also provided that break down Juneau into the following components:
 	</p>
 	<ul class='spaced-list'>
-		<li><l>org.apache.juneau.core.jar</l> - Serializers, parsers, INI file support.<br>  
-		<li><l>org.apache.juneau.rest.jar</l> - REST servlet support.<br>  
-		<li><l>org.apache.juneau.rest.client.jar</l> - REST client support.<br>  
-		<li><l>org.apache.juneau.microservice.jar</l> - Microservice support.<br>  
+		<li><l>org.apache.juneau.core.jar</l> - Serializers, parsers, INI file support.  
+		<li><l>org.apache.juneau.rest.jar</l> - REST servlet support.
+		<li><l>org.apache.juneau.rest.client.jar</l> - REST client support.
+		<li><l>org.apache.juneau.microservice.jar</l> - Microservice support.
 	</ul>
 	<p>
 		The following zip files are also provided:
 	</p>	
 	<ul class='spaced-list'>
-		<li><l>microservice-project.zip</l> - Contains a template Eclipse project for quickly creating REST resources as executable jars.
-		<li><l>microservice-samples-project.zip</l> - Contains sample code demonstrating various aspects of Juneau.<br>
+		<li><l>microservice-project.zip</l> - Contains a template Eclipse project for quickly creating REST resources 
+			as executable jars.
+		<li><l>microservice-samples-project.zip</l> - Contains sample code demonstrating various aspects of Juneau.
+			<br>
 			These are discussed in detail in the <a class='doclink' href="#Samples">Samples</a> section.
 	</ul>
 
@@ -275,13 +288,15 @@
 <h2 class='topic' onclick='toggle(this)'>2 - Juneau Core (org.apache.juneau)</h2>
 <div class='topic'>
 	<p>
-		The core packages of Juneau contains serializers and parsers for converting POJOs to and from a wide variety of content types.
+		The core packages of Juneau contains serializers and parsers for converting POJOs to and from a wide variety of 
+		content types.
 		It uses a common API for defining serializers and parsers.
 	</p>
 	<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.
+		Despite this simplicity, Juneau provides lots of extensibility and configuration properties for tailoring how 
+		POJOs are serialized and parsed.
 	</p>
 		
 	<!-- ======================================================================================================== -->
@@ -290,7 +305,8 @@
 	<div class='topic'>
 		<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.
+			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:
@@ -355,13 +371,18 @@
 	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).
+			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>
 		
 		<h6 class='topic'>Additional Information</h6>
 		<ul class='doctree'>
-			<li class='jp'><a class='doclink' href='org/apache/juneau/serializer/package-summary.html#TOC'>org.apache.juneau.serializer</a> - Serializer API Javadoc
+			<li class='jp'><a class='doclink' 
+				href='org/apache/juneau/serializer/package-summary.html#TOC'>org.apache.juneau.serializer</a> 
+				- Serializer API Javadoc
 		</ul>
 	</div>
 		
@@ -370,7 +391,8 @@
 	<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.
+			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>
@@ -402,7 +424,8 @@
 
 	<jc>// Parse a JSON object as a HashMap&lt;String,LinkedList&lt;Person&gt;&gt;.</jc>
 	json = <js>"{a:[{name:'John Smith',age:21},{name:'Joe Smith',age:42}]}"</js>;
-	Map&lt;String,List&lt;Person&gt;&gt; m5 = parser.parse(json, HashMap.<jk>class</jk>, String.<jk>class</jk>, LinkedList.<jk>class</jk>, Person.<jk>class</jk>)
+	Map&lt;String,List&lt;Person&gt;&gt; m5 = parser.parse(json, HashMap.<jk>class</jk>, String.<jk>class</jk>, 
+		LinkedList.<jk>class</jk>, Person.<jk>class</jk>)
 
 	<jc>// Parse a JSON array of integers as a Collection of Integers or int[] array.</jc>
 	json = <js>"[1,2,3]"</js>;
@@ -434,14 +457,19 @@
 		<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 fragements 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.  
+			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>
 		
 		<h6 class='topic'>Additional Information</h6>
 		<ul class='doctree'>
-			<li class='jp'><a class='doclink' href='org/apache/juneau/parser/package-summary.html#TOC'>org.apache.juneau.parser</a> - Parser API Javadoc
+			<li class='jp'><a class='doclink' 
+				href='org/apache/juneau/parser/package-summary.html#TOC'>org.apache.juneau.parser</a> 
+				- Parser API Javadoc
 		</ul>
 	</div>
 		
@@ -450,8 +478,10 @@
 	<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...
+			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>
@@ -490,9 +520,12 @@
 	<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.  
+			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:
@@ -508,20 +541,22 @@
 			</ul>
 		</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.
+			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>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.
 		</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. 
+			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. 
 		</p>
 		<p class='bcode'>
 	<jc>// Parse an arbitrary JSON document into an unstructered data model
@@ -541,8 +576,8 @@
 		</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>.
+				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>
 		<h6 class='topic'>Additional Information</h6>
 		<ul class='doctree'>
@@ -556,14 +591,16 @@
 	<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>
+			Serializers and parsers have a wide variety of configurable properties.
+			<br>
 			For example, the following code shows how to configure a JSON serializer:
 		</p>
 		<p class='bcode'>
 	JsonSerializer s = <jk>new</jk> JsonSerializerBuilder().simple().ws().sq().build();
 		</p>
 		<p>
-			However, each of the serializers and parsers already contain reusable instances with common configurations.<br>
+			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'>
@@ -652,21 +689,31 @@
 			These classes are:
 		</p>
 		<ul class='doctree'>
-			<li class='jc'>{@link org.apache.juneau.transform.PojoSwap} - Tailor how specific non-bean classes are handled by the framework.
-			<li class='jc'>{@link org.apache.juneau.transform.BeanFilter} - Tailor how specific bean classes are handled by the framework.
+			<li class='jc'>{@link org.apache.juneau.transform.PojoSwap} 
+				- Tailor how specific non-bean classes are handled by the framework.
+			<li class='jc'>{@link org.apache.juneau.transform.BeanFilter} 
+				- Tailor how specific bean classes are handled by the framework.
 		</ul>
 		<p>
 			Annotations are also provided that allow you to use transformations directly on class definitions:
 		</p>
 		<ul class='doctree'>
-			<li class='ja'>{@link org.apache.juneau.annotation.Pojo @Pojo} - 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.
+			<li class='ja'>{@link org.apache.juneau.annotation.Pojo @Pojo} 
+				- 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>
 	
 		<!-- ======================================================================================================== -->
@@ -679,14 +726,17 @@
 			</p>
 			<p>
 				Swaps are very easy to understand.
-				Simply put, they can be thought of as 'object swappers' that swap in serializable objects for non-serializable ones during serialization, and vis-versa during parsing.
+				Simply put, they can be thought of as '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...
+				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:
+				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'>
 	<jc>// Sample swap for converting Dates to ISO8601 strings.</jc>
@@ -734,7 +784,8 @@
 				Several <code>PojoSwaps</code> are already provided for common Java objects:
 			</p>
 			<ul class='doctree'>
-				<li class='jp'><a class='doclink' href='org/apache/juneau/transforms/package-summary.html#TOC'>org.apache.juneau.transforms</a>
+				<li class='jp'><a class='doclink' 
+					href='org/apache/juneau/transforms/package-summary.html#TOC'>org.apache.juneau.transforms</a>
 				<ul>
 					<li class='jc'>{@link org.apache.juneau.transforms.ByteArrayBase64Swap}
 					<li class='jac'>{@link org.apache.juneau.transforms.CalendarSwap}
@@ -746,13 +797,15 @@
 				</ul>
 			</ul>
 			<p>
-				In particular, the {@link org.apache.juneau.transforms.CalendarSwap} and {@link org.apache.juneau.transforms.DateSwap} tramsforms
-				provide a large number of customized swaps to ISO, RFC, or localized strings.
+				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>
 			<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='#Core.PojoCategories'>POJO Categories</a>.  
+					See the definition for Category 4 objects in <a class='doclink' 
+					href='#Core.PojoCategories'>POJO Categories</a>.  
 			</ul>
 		</div>
 	
@@ -765,11 +818,12 @@
 				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:
+				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>
-				<li><code><jk>public static</jk> T fromString(String)</code> method.<br>
+				<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>
@@ -781,32 +835,42 @@
 				<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:
+				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>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.
+				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:
+				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.
+				<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.
-				For example, you could provide customized results based on the media type being produced ({@link org.apache.juneau.BeanSession#getMediaType()}).
+				The <code>BeanSession</code> parameter allows you access to various information about the current 
+				serialization session.
+				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.
+				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.*;
@@ -837,14 +901,17 @@
 	}
 			</p>
 			<p>
-				Swapped objects can be converted back into their original form by the parsers by specifying one of the following methods:
+				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 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:
+				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.*;
@@ -863,8 +930,10 @@
 		<jc>// Our 'unswap' constructor</jc>
 		<jk>public</jk> FormTemplate(Form f) {
 			<jk>this</jk>.<jf>action</jf> = f.getAttr(<js>"action"</js>);
-			<jk>this</jk>.<jf>value1</jf> = f.getChild(Input.<jk>class</jk>, 0).getAttr(<jk>int</jk>.<jk>class</jk>, <js>"value"</js>);
-			<jk>this</jk>.<jf>value2</jf> = f.getChild(Input.<jk>class</jk>, 1).getAttr(<jk>boolean</jk>.<jk>class</jk>, <js>"value"</js>);
+			<jk>this</jk>.<jf>value1</jf> = f.getChild(Input.<jk>class</jk>, 0)
+				.getAttr(<jk>int</jk>.<jk>class</jk>, <js>"value"</js>);
+			<jk>this</jk>.<jf>value2</jf> = f.getChild(Input.<jk>class</jk>, 1)
+				.getAttr(<jk>boolean</jk>.<jk>class</jk>, <js>"value"</js>);
 		}
 		
 		<jk>public</jk> FormTemplate(String action, <jk>int</jk> value1, <jk>boolean</jk> value2) {
@@ -887,7 +956,8 @@
 		<h4 class='topic' onclick='toggle(this)'>2.6.3 - BeanFilters and @Bean annotations</h4>
 		<div class='topic'>
 			<p>
-				{@link org.apache.juneau.transform.BeanFilter BeanFilters} are used to control aspects of how beans are handled during serialization and parsing.
+				{@link org.apache.juneau.transform.BeanFilter BeanFilters} are used to control aspects of how beans are 
+				handled during serialization and parsing.
 				They allow you to control various aspects of beans, such as...
 			</p>
 			<ul>
@@ -897,8 +967,8 @@
 				<li>Overriding reading and writing of properties.
 			</ul>
 			<p>
-				In practice, however, it's simpler to use the {@link org.apache.juneau.annotation.Bean @Bean} and {@link org.apache.juneau.annotation.BeanProperty @BeanProperty}
-				annotations on your bean classes.
+				In practice, however, it's simpler to use the {@link org.apache.juneau.annotation.Bean @Bean} and 
+				{@link org.apache.juneau.annotation.BeanProperty @BeanProperty} annotations on your bean classes.
 				The annotations are functionally equivalent to the bean filter class.
 			</p>
 			<p class='bcode'>
@@ -938,7 +1008,8 @@
 				The <code>addBeanFilter(Class...)</code> method also allows you to pass in interfaces.
 				Any class that's not a subclass of {@link org.apache.juneau.transform.BeanFilterBuilder} get interpreted 
 				as bean interface classes.
-				These cause bean implementations of those interfaces to only expose the properties defined on the interface.
+				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>
@@ -959,7 +1030,8 @@
 			
 			<h6 class='topic'>Additional Information</h6>
 			<ul class='doctree'>
-				<li class='jp'><a class='doclink' href='org/apache/juneau/transform/package-summary.html#TOC'>org.apache.juneau.transform</a>
+				<li class='jp'><a class='doclink' 
+					href='org/apache/juneau/transform/package-summary.html#TOC'>org.apache.juneau.transform</a>
 			</ul>
 		</div>
 
@@ -970,22 +1042,28 @@
 	<h3 class='topic' onclick='toggle(this)'>2.7 - 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.
-			Often this is insufficient if the property type is an interface or abstract class that cannot be instantiated.
+			While parsing into beans, Juneau attempts to determine the class types of bean properties through 
+			reflection on the bean property getter or setter.
+			Often this is insufficient if the property type is an interface or abstract class that cannot be 
+			instantiated.
 			This is where bean names and dictionaries come into play.
 		</p>
 		<p>
-			Bean names and dictionary are used for identifying class types when they cannot be inferred through reflection.  
+			Bean names and dictionary 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.
-			These names are then added to the serialized output as virtual <js>"_type"</js> properties (or element names in XML).
+			Bean classes are given names through the {@link org.apache.juneau.annotation.Bean#typeName() @Bean.typeName()} 
+			annotation.
+			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.
+			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>)
@@ -1002,7 +1080,8 @@
  	<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:
+ 			When serialized as JSON, <js>"_type"</js> attributes would be added when needed to infer the type during 
+ 			parsing:
  		</p>
  		<p class='bcode'>
  	{
@@ -1015,7 +1094,8 @@
  		<p>
  			Type names can be represented slightly differently in different languages.
  			For example, the dictionary name is used as element names when serialized to XML.
- 			This allows the <code>typeName</code> annotation to be used as a shortcut for defining element names for beans.
+ 			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:
@@ -1032,20 +1112,27 @@
 			Bean dictionaries are defined at two levels:
 		</p>
 		<ul>
-			<li>On individual bean properties through the {@link org.apache.juneau.annotation.BeanProperty#beanDictionary() @BeanProperty.beanDictionary()} annotation.
-			<li>Globally for a parser using the {@link org.apache.juneau.parser.ParserBuilder#beanDictionary(Class...)} method.
+			<li>On individual bean properties through the 
+				{@link org.apache.juneau.annotation.BeanProperty#beanDictionary() @BeanProperty.beanDictionary()} 
+				annotation.
+			<li>Globally for a parser using the {@link org.apache.juneau.parser.ParserBuilder#beanDictionary(Class...)} 
+				method.
 		</ul>
 		<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>.
+				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.SerializerContext#SERIALIZER_addBeanTypeProperties} configuration property.
+				They must be enabled on the serializer using the 
+				{@link org.apache.juneau.serializer.SerializerContext#SERIALIZER_addBeanTypeProperties} 
+				configuration property.
 			<li class='info'>
-				The <js>"_type"</js> property name can be overridden using the {@link org.apache.juneau.BeanContext#BEAN_beanTypePropertyName} configuration property.
+				The <js>"_type"</js> property name can be overridden using the 
+				{@link org.apache.juneau.BeanContext#BEAN_beanTypePropertyName} configuration property.
 		</ul>
 		
 		<!-- ======================================================================================================== -->
@@ -1236,7 +1323,8 @@
 				<td style='text-align:center'>3a</td>
 				<td>
 					<b>With standard properties</b><br>
-					These are beans that have no-arg constructors and one or more properties defined by public getter and setter methods or public fields.<br>
+					These are beans that have no-arg constructors and one or more properties defined by public getter 
+					and setter methods or public fields.<br>
 					Property values are group [1, 2, 3ac, 4a, 5a] objects.
 				</td>
 				<td>&nbsp;</td>
@@ -1247,8 +1335,8 @@
 				<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 no-arg constructors and one or more properties defined by getter and setter methods or properties, 
-						but property types include group [3b, 4b, 5b, 6] objects.<br>
+					These include true beans that have no-arg constructors and one or more properties defined by getter 
+					and setter methods or properties, but property types include group [3b, 4b, 5b, 6] 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>
@@ -1271,10 +1359,13 @@
 				<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.
+					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>
@@ -1324,7 +1415,8 @@
 				<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> 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:
@@ -1336,7 +1428,8 @@
 						<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].		
+						<li><code><jk>public static</jk> T unswap(BeanSession,X);</code> where <code>X</code> is in 
+							groups [1, 2a, 3ac].		
 					</ul>
 				</td>
 				<td>
@@ -1360,7 +1453,8 @@
 				<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> 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>
@@ -1371,8 +1465,10 @@
 			<tr class='dark' style='background-color:lightyellow'>
 				<td style='text-align:center'>6</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.
+					<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>
@@ -1382,9 +1478,11 @@
 		<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. 
+				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>
 	
@@ -1393,8 +1491,10 @@
 	<h4 class='topic' onclick='toggle(this)'>2.10 - Simple Variable Language</h4>
 	<div class='topic'>
 		<p>
-			The <a class='doclink' href='org/apache/juneau/svl/package-summary.html#TOC'>org.apache.juneau.svl</a> package 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>.
+			The <a class='doclink' href='org/apache/juneau/svl/package-summary.html#TOC'>org.apache.juneau.svl</a> 
+			package 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>).
@@ -1420,7 +1520,9 @@
 		</p>
 		<h6 class='topic'>Additional Information</h6>
 		<ul class='doctree'>
-			<li class='jp'><a class='doclink' href='org/apache/juneau/svl/package-summary.html#TOC'>org.apache.juneau.svl</a> - Simple Variable Language Javadocs.
+			<li class='jp'><a class='doclink' 
+				href='org/apache/juneau/svl/package-summary.html#TOC'>org.apache.juneau.svl</a> 
+				- Simple Variable Language Javadocs.
 		</ul>
 	</div>
 	
@@ -1429,7 +1531,9 @@
 	<h3 class='topic' onclick='toggle(this)'>2.11 - Configuration Files</h3>
 	<div class='topic'>
 		<p>
-			The <a class='doclink' href='org/apache/juneau/ini/package-summary.html#TOC'>org.apache.juneau.ini</a> package contains a powerful API for creating and using INI-style config files.
+			The <a class='doclink' 
+			href='org/apache/juneau/ini/package-summary.html#TOC'>org.apache.juneau.ini</a> package contains a powerful 
+			API for creating and using INI-style config files.
 		</p>
 		<p>
 			An example of an INI file:
@@ -1495,7 +1599,8 @@
 		.save();
 		</p>
 		<p>
-			The following is equivalent, except that it uses {@link org.apache.juneau.ini.ConfigFile#put(String, Object)} to set values:
+			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>
@@ -1515,14 +1620,18 @@
 	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...).
+			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:
+			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>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 without losing comments or formatting.
 			<li>Extensive listener APIs.
 		</ul>
@@ -1590,7 +1699,8 @@
 	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)}:
+			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>
@@ -1613,7 +1723,8 @@
 	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)}:
+			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>
@@ -1656,7 +1767,8 @@
 		</p>
 		<h6 class='topic'>Additional Information</h6>
 		<ul class='doctree'>
-			<li class='jp'><a class='doclink' href='org/apache/juneau/ini/package-summary.html#TOC'>org.apache.juneau.ini</a> - Config API Javadocs.
+			<li class='jp'><a class='doclink' href='org/apache/juneau/ini/package-summary.html#TOC'>
+				org.apache.juneau.ini</a> - Config API Javadocs.
 		</ul>
 	</div>
 	
@@ -1690,7 +1802,7 @@
 	<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 primariliy with JSON, Juneau was created to work for multiple languages.
+			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>
@@ -1726,9 +1838,12 @@
 			<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_methodVisibility}<br>
+					No equivalent annotation, but can be controlled via: 
+					<br>
+					{@link org.apache.juneau.BeanContext#BEAN_beanFieldVisibility}
+					<br>
+					{@link org.apache.juneau.BeanContext#BEAN_methodVisibility}
+					<br>
 					Future annotation support planned.
 				</td>
 			</tr>
@@ -1741,7 +1856,8 @@
 			<tr>
 				<td><ja>@JacksonInject</ja></td>
 				<td>
-					No equivalent.<br>
+					No equivalent.
+					<br>
 					Future support planned.
 				</td>
 					
@@ -1749,31 +1865,39 @@
 			<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.BeanProperty#swap() @BeanProperty(swap=...)}<br>
+					Juneau uses swaps to convert non-serializable object to serializable forms:
+					<br>
+					{@link org.apache.juneau.annotation.BeanProperty#swap() @BeanProperty(swap=...)}
+					<br>
 					{@link org.apache.juneau.annotation.Pojo#swap() @Pojo(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.SerializerContext}<br>
+					No equivalent annotation, but can be controlled via various settings:
+					<br>
+					{@link org.apache.juneau.BeanContext}
+					<br>
+					{@link org.apache.juneau.serializer.SerializerContext}
+					<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)}<br>
+					{@link org.apache.juneau.annotation.Bean#properties @Bean(properties="...")}
+					<br>
+					{@link org.apache.juneau.annotation.Bean#sort @Bean(sort=x)}
+					<br>
 				</td>
 			</tr>
 			<tr>
 				<td><ja>@JsonValue</ja><br><ja>@JsonRawValue</ja></td>
 				<td>
-					No equivalents.<br>
+					No equivalents.
+					<br>
 					Future support unlikely since these are JSON-centric.
 				</td>
 			</tr>
@@ -1796,8 +1920,8 @@
 	<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.
+			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
@@ -1877,8 +2001,10 @@
 				</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;
-			<xv>Limit (1-10000):</xv> &lt;input <xa>name</xa>=<xs>'pos'</xs> <xa>type</xa>=<xs>'number'</xs> <xa>value</xa>=<xs>'100'</xs>/&gt;&lt;br/&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;
+			<xv>Limit (1-10000):</xv> &lt;input <xa>name</xa>=<xs>'pos'</xs> <xa>type</xa>=<xs>'number'</xs> 
+				<xa>value</xa>=<xs>'100'</xs>/&gt;&lt;br/&gt;
 			&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;
@@ -1887,7 +2013,7 @@
 		</table>
 		<p>
 			Using the HTML5 DTOs, you should be able to construct any valid HTML5 from full document bodies
-			to any possible fragements.
+			to any possible fragments.
 		</p>
 		<p>
 			The {@link org.apache.juneau.html.HtmlParser} class can be used convert these HTML documents back
@@ -1900,7 +2026,8 @@
 		
 		<h6 class='topic'>Additional Information</h6>
 		<ul class='doctree'>
-			<li class='jp'><a class='doclink' href='org/apache/juneau/dto/html5/package-summary.html#TOC'>org.apache.juneau.dto.html5</a> - HTML5 beans.
+			<li class='jp'><a class='doclink' href='org/apache/juneau/dto/html5/package-summary.html#TOC'>
+				org.apache.juneau.dto.html5</a> - HTML5 beans.
 		</ul>
 	</div>
 
@@ -1909,8 +2036,10 @@
 	<h3 class='topic' onclick='toggle(this)'>3.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.
+			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'>
 		
@@ -1967,8 +2096,10 @@
 		<xt>&lt;id&gt;</xt>
 			tag:juneau.apache.org
 		<xt>&lt;/id&gt;</xt>
-		<xt>&lt;link</xt> <xa>href</xa>=<xs>'http://juneau.apache.org/'</xs> <xa>rel</xa>=<xs>'alternate'</xs> <xa>type</xa>=<xs>'text/html'</xs> <xa>hreflang</xa>=<xs>'en'</xs>/<xt>&gt;</xt>
-		<xt>&lt;link</xt> <xa>href</xa>=<xs>'http://juneau.apache.org/feed.atom'</xs> <xa>rel</xa>=<xs>'self'</xs> <xa>type</xa>=<xs>'application/atom+xml'</xs>/<xt>&gt;</xt>
+		<xt>&lt;link</xt> <xa>href</xa>=<xs>'http://juneau.apache.org/'</xs> <xa>rel</xa>=<xs>'alternate'</xs> 
+			<xa>type</xa>=<xs>'text/html'</xs> <xa>hreflang</xa>=<xs>'en'</xs>/<xt>&gt;</xt>
+		<xt>&lt;link</xt> <xa>href</xa>=<xs>'http://juneau.apache.org/feed.atom'</xs> <xa>rel</xa>=<xs>'self'</xs> 
+			<xa>type</xa>=<xs>'application/atom+xml'</xs>/<xt>&gt;</xt>
 		<xt>&lt;rights&gt;</xt>
 			Copyright (c) 2016, Apache Foundation
 		<xt>&lt;/rights&gt;</xt>
@@ -1994,22 +2125,25 @@
 			<xt>&lt;id&gt;</xt>
 				tag:juneau.apache.org
 			<xt>&lt;/id&gt;</xt>
-			<xt>&lt;link</xt> <xa>href</xa>=<xs>'http://juneau.apache.org/juneau.atom'</xs> <xa>rel</xa>=<xs>'alternate'</xs> <xa>type</xa>=<xs>'text/html'</xs>/<xt>&gt;</xt>
-			<xt>&lt;link</xt> <xa>href</xa>=<xs>'http://juneau.apache.org/audio/juneau_podcast.mp3'</xs> <xa>rel</xa>=<xs>'enclosure'</xs> <xa>type</xa>=<xs>'audio/mpeg'</xs> <xa>length</xa>=<xs>'12345'</xs>/<xt>&gt;</xt>
+			<xt>&lt;link</xt> <xa>href</xa>=<xs>'http://juneau.apache.org/juneau.atom'</xs> 
+				<xa>rel</xa>=<xs>'alternate'</xs> <xa>type</xa>=<xs>'text/html'</xs>/<xt>&gt;</xt>
+			<xt>&lt;link</xt> <xa>href</xa>=<xs>'http://juneau.apache.org/audio/juneau_podcast.mp3'</xs> 
+				<xa>rel</xa>=<xs>'enclosure'</xs> <xa>type</xa>=<xs>'audio/mpeg'</xs> <xa>length</xa>=<xs>'12345'</xs>/<xt>&gt;</xt>
 			<xt>&lt;title&gt;</xt>
 				Juneau ATOM specification snapshot
 			<xt>&lt;/title&gt;</xt>
 			<xt>&lt;updated&gt;</xt>2016-01-02T03:04:05Z<xt>&lt;/updated&gt;</xt>
-			<xt>&lt;content</xt> <xa>base</xa>=<xs>'http://www.apache.org/'</xs> <xa>lang</xa>=<xs>'en'</xs> <xa>type</xa>=<xs>'xhtml'</xs><xt>&gt;</xt>
-				<xt>&lt;div</xt> <xa>xmlns</xa>=<xs>"http://www.w3.org/1999/xhtml"</xs><xt>&gt;&lt;p&gt;&lt;i&gt;</xt>[Update: Juneau supports ATOM.]<xt>&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;</xt>
+			<xt>&lt;content</xt> <xa>base</xa>=<xs>'http://www.apache.org/'</xs> <xa>lang</xa>=<xs>'en'</xs> 
+				<xa>type</xa>=<xs>'xhtml'</xs><xt>&gt;</xt>
+				<xt>&lt;div</xt> <xa>xmlns</xa>=<xs>"http://www.w3.org/1999/xhtml"</xs>
+					<xt>&gt;&lt;p&gt;&lt;i&gt;</xt>[Update: Juneau supports ATOM.]<xt>&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;</xt>
 			<xt>&lt;/content&gt;</xt>
 			<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.
+			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 
@@ -2018,7 +2152,8 @@
 		
 		<h6 class='topic'>Additional Information</h6>
 		<ul class='doctree'>
-			<li class='jp'><a class='doclink' href='org/apache/juneau/dto/atom/package-summary.html#TOC'>org.apache.juneau.dto.atom</a> - Atom DTOs.
+			<li class='jp'><a class='doclink' 
+				href='org/apache/juneau/dto/atom/package-summary.html#TOC'>org.apache.juneau.dto.atom</a> - Atom DTOs.
 		</ul>
 	</div>
 
@@ -2027,16 +2162,18 @@
 	<h3 class='topic' onclick='toggle(this)'>3.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.
+			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. 
+			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>.
+			The following is an example Swagger document from the 
+			<a href="http://petstore.swagger.io/">Swagger website</a>.
 		</p>
 		<p class='bcode'>
 	{
@@ -2175,11 +2312,12 @@
 		The Juneau REST Server API provides servlet-based REST resources on top of existing POJOs.
 	</p>
 	<p>
-		The API automatically detects <l>Accept</l> header of requests and converts POJOs to any of the supported languages.  
+		The API automatically detects <l>Accept</l> header of requests and converts POJOs to any of the supported 
+		languages.  
 		The toolkit is extensible and also allows for support of user-defined content types. 
 	</p>
 	<p>
-		Automatic built-in support is provided for negotiation of response charsets and gzip encoding.
+		Automatic built-in support is provided for negotiation of response character sets and gzip encoding.
 	</p>
 	<p>
 		The following is an example of a REST API used to view and set JVM system properties.
@@ -2218,7 +2356,8 @@
 			license=<js>"{name:'Apache 2.0',url:'http://www.apache.org/licenses/LICENSE-2.0.html'}"</js>,
 			version=<js>"2.0"</js>,
 			termsOfService=<js>"You're on your own."</js>,
-			tags=<js>"[{name:'Java',description:'Java utility',externalDocs:{description:'Home page',url:'http://juneau.apache.org'}}]"</js>,
+			tags=<js>"[{name:'Java',description:'Java utility',
+				externalDocs:{description:'Home page',url:'http://juneau.apache.org'}}]"</js>,
 			externalDocs=<js>"{description:'Home page',url:'http://juneau.apache.org'}"</js>
 		)
 	)
@@ -2229,13 +2368,15 @@
 			summary=<js>"Show all system properties"</js>,
 			description=<js>"Returns all system properties defined in the JVM."</js>,
 			parameters={
-				<ja>@Parameter</ja>(in=<js>"query"</js>, name=<js>"sort"</js>, description=<js>"Sort results alphabetically."</js>, _default=<js>"false"</js>)
+				<ja>@Parameter</ja>(in=<js>"query"</js>, name=<js>"sort"</js>, 
+					description=<js>"Sort results alphabetically."</js>, _default=<js>"false"</js>)
 			},
 			responses={
 				<ja>@Response</ja>(value=200, description=<js>"Returns a map of key/value pairs."</js>)
 			}
 		)
-		<jk>public</jk> Map getSystemProperties(<ja>@Query</ja>(<js>"sort"</js>) <jk>boolean</jk> sort) <jk>throws</jk> Throwable {
+		<jk>public</jk> Map getSystemProperties(<ja>@Query</ja>(<js>"sort"</js>) <jk>boolean</jk> sort) 
+				<jk>throws</jk> Throwable {
 			<jk>if</jk> (sort)
 				<jk>return new</jk> TreeMap(System.<jsm>getProperties</jsm>());
 			<jk>return</jk> System.<jsm>getProperties</jsm>();
@@ -2246,7 +2387,8 @@
 			summary=<js>"Get system property"</js>,
 			description=<js>"Returns the value of the specified system property."</js>,
 			parameters={
-				<ja>@Parameter</ja>(in=<js>"path"</js>, name=<js>"propertyName"</js>, description=<js>"The system property name."</js>)
+				<ja>@Parameter</ja>(in=<js>"path"</js>, name=<js>"propertyName"</js>, 
+					description=<js>"The system property name."</js>)
 			},
 			responses={
 				<ja>@Response</ja>(value=200, description=<js>"The system property value, or null if not found."</js>)
@@ -2262,13 +2404,15 @@
 			description=<js>"Sets a new value for the specified system property."</js>,
 			guards=AdminGuard.<jk>class</jk>,
 			parameters={
-				<ja>@Parameter</ja>(in=<js>"path"</js>, name=<js>"propertyName"</js>, description=<js>"The system property name."</js>),
+				<ja>@Parameter</ja>(in=<js>"path"</js>, name=<js>"propertyName"</js>, 
+					description=<js>"The system property name."</js>),
 				<ja>@Parameter</ja>(in=<js>"body"</js>, description=<js>"The new system property value."</js>),
 			},
 			responses={
 				<ja>@Response</ja>(value=302, 
 					headers={
-						<ja>@Parameter</ja>(name=<js>"Location"</js>, description=<js>"The root URL of this resource."</js>)
+						<ja>@Parameter</ja>(name=<js>"Location"</js>, 
+							description=<js>"The root URL of this resource."</js>)
 					}
 				),	
 				<ja>@Response</ja>(value=403, description=<js>"User is not an admin."</js>) 
@@ -2285,13 +2429,16 @@
 			description=<js>"Takes in a map of key/value pairs and creates a set of new system properties."</js>,
 			guards=AdminGuard.<jk>class</jk>,
 			parameters={
-				<ja>@Parameter</ja>(in=<js>"path"</js>, name=<js>"propertyName"</js>, description=<js>"The system property key."</js>),
-				<ja>@Parameter</ja>(in=<js>"body"</js>, description=<js>"The new system property values.", schema="{example:{key1:'val1',key2:123}}"</js>),
+				<ja>@Parameter</ja>(in=<js>"path"</js>, name=<js>"propertyName"</js>, 
+					description=<js>"The system property key."</js>),
+				<ja>@Parameter</ja>(in=<js>"body"</js>, description=<js>"The new system property values.", 
+					schema="{example:{key1:'val1',key2:123}}"</js>),
 			},
 			responses={
 				<ja>@Response</ja>(value=302, 
 					headers={
-						<ja>@Parameter</ja>(name=<js>"Location"</js>, description=<js>"The root URL of this resource."</js>)
+						<ja>@Parameter</ja>(name=<js>"Location"</js>, 
+							description=<js>"The root URL of this resource."</js>)
 					}
 				),	
 				<ja>@Response</ja>(value=403, description=<js>"Unauthorized:  User is not an admin."</js>) 
@@ -2308,12 +2455,14 @@
 			description=<js>"Deletes the specified system property."</js>,
 			guards=AdminGuard.<jk>class</jk>,
 			parameters={
-				<ja>@Parameter</ja>(in=<js>"path"</js>, name=<js>"propertyName"</js>, description=<js>"The system property name."</js>),
+				<ja>@Parameter</ja>(in=<js>"path"</js>, name=<js>"propertyName"</js>, 
+					description=<js>"The system property name."</js>),
 			},
 			responses={
 				<ja>@Response</ja>(value=302, 
 					headers={
-						<ja>@Parameter</ja>(name=<js>"Location"</js>, description=<js>"The root URL of this resource."</js>)
+						<ja>@Parameter</ja>(name=<js>"Location"</js>, 
+							description=<js>"The root URL of this resource."</js>)
 					}
 				),	
 				<ja>@Response</ja>(value=403, description=<js>"Unauthorized:  User is not an admin"</js>) 
@@ -2351,21 +2500,26 @@
 	<xt>&lt;/web-app&gt;</xt>
 	</p>
 	<p>
-		Pointing your browser to the resource renders the POJOs as HTML (since that's what the browser specifies in the <code>Accept</code> header).
+		Pointing your browser to the resource renders the POJOs as HTML (since that's what the browser specifies in the 
+		<code>Accept</code> header).
 	</p>
 	<img class='bordered' src="doc-files/Server.SystemPropertiesResource.png">
 	<p>
 		One of the most useful aspects of using this API is the self-discovering, self-documenting OPTIONS pages.
-		These are constructed automatically using reflection, augmented with information pulled from annotations (as shown above), resource bundles, or Swagger JSON files:
+		These are constructed automatically using reflection, augmented with information pulled from annotations 
+		(as shown above), resource bundles, or Swagger JSON files:
 	</p>
 	<img class='bordered' src="doc-files/Server.Options.png">
 	
 	<p>
-		Arbitrarily complex POJO models can be serialized using any of the supported serializers, and content can be parsed using any of the supported parsers.
+		Arbitrarily complex POJO models can be serialized using any of the supported serializers, and content can be 
+		parsed using any of the supported parsers.
 	</p>
 	<p>
-		The <l>juneau-examples-rest</l> project contains various REST resource examples in an easy-to-use REST microservice. 
-		One of these is <l>AddressBookResource</l> which serializes <l>AddressBook</l> objects defined below (some code omitted):
+		The <l>juneau-examples-rest</l> project contains various REST resource examples in an easy-to-use REST 
+		microservice. 
+		One of these is <l>AddressBookResource</l> which serializes <l>AddressBook</l> objects defined below 
+		(some code omitted):
 	</p>
 	<p class='bcode'>
 	<jd>/** package-info.java */</jd> 
@@ -2412,13 +2566,14 @@
 	}
 	</p>
 	<p>
-		The framework allows you to override header values through GET parameters, so that you can specify the <l>ACCEPT</l> header to see each type. 
+		The framework allows you to override header values through GET parameters, so that you can specify the 
+		<l>ACCEPT</l> header to see each type. 
 		Adding <l>&amp;plainText=true</l> forces the response <l>Content-Type</l> to be <l>text/plain.</l>
 	<h6 class='figure'>HTML</h6>
 	<img class='bordered' src="doc-files/Server.Html.png">
 	<p>
 		Also, localization can be tested by passing in an <l>Accept-Language</l> header.
-	<h6 class='figure'>HTML/french</h6>
+	<h6 class='figure'>HTML/French</h6>
 	<img class='bordered' src="doc-files/Server.Html.french.png">
 	<h6 class='figure'>JSON</h6>
 	<img class='bordered' src="doc-files/Server.Json.png">
@@ -2445,7 +2600,9 @@
 	</p>
 	<h6 class='topic'>Additional Information</h6>
 	<ul class='doctree'>
-		<li class='jp'><a class='doclink' href='org/apache/juneau/server/package-summary.html#TOC'>org.apache.juneau.rest</a> - Juneau Server API Javadocs.
+		<li class='jp'><a class='doclink' 
+			href='org/apache/juneau/server/package-summary.html#TOC'>org.apache.juneau.rest</a> 
+			- Juneau Server API Javadocs.
 	</ul>
 </div>
 			
@@ -2454,12 +2611,12 @@
 <h2 class='topic' onclick='toggle(this)'>5 - Juneau Client (org.apache.juneau.rest.client)</h2>
 <div class='topic'>
 	<p>
-		The REST client API provides the ability to access remote REST interfaces and transparently convert the input and output to and from POJOs using any
-		of the provided serializers and parsers.
+		The REST client API provides the ability to access remote REST interfaces and transparently convert the input 
+		and output to and from POJOs using any of the provided serializers and parsers.
 	</p>
 	<p>
-		Built upon the Apache HttpClient libraries, it extends that API and provides specialized APIs for working with REST interfaces while
-		maintaining all the functionality available in the HttpClient API.
+		Built upon the Apache HttpClient libraries, it extends that API and provides specialized APIs for working with 
+		REST interfaces while maintaining all the functionality available in the HttpClient API.
 	</p>
 	<p class='bcode'>
 	<jc>// Create a reusable JSON client.</jc>
@@ -2488,7 +2645,9 @@
 	</p>
 	<h6 class='topic'>Additional Information</h6>
 	<ul class='doctree'>
-		<li class='jp'><a class='doclink' href='org/apache/juneau/client/package-summary.html#TOC'>org.apache.juneau.rest.client</a> - Juneau Client API Javadocs.
+		<li class='jp'><a class='doclink' 
+			href='org/apache/juneau/client/package-summary.html#TOC'>org.apache.juneau.rest.client</a> 
+			- Juneau Client API Javadocs.
 	</ul>
 </div>
 	
@@ -2502,7 +2661,8 @@
 			define and use, and allowing much more flexibility in the types of objects serialized.
 	</p>
 	<p>
-		The remote proxy interface API allows you to invoke server-side POJO methods on the client side using REST as the communications protocol:
+		The remote proxy interface API allows you to invoke server-side POJO methods on the client side using REST as 
+		the communications protocol:
 	</p>
 	<p class='bcode'>
 	
@@ -2550,8 +2710,8 @@
 		The object returned by the method is then serialized as the body of the response.
 	</p>
 	<p>
-		To define a remoteable interface, simply add the {@link org.apache.juneau.remoteable.Remoteable @Remoteable} annotation
-		to your interface class.  
+		To define a remoteable interface, simply add the {@link org.apache.juneau.remoteable.Remoteable @Remoteable} 
+		annotation to your interface class.  
 	</p>
 	<p class='bcode'>
 	<ja>@Remoteable</ja>
@@ -2559,11 +2719,12 @@
 	</p>
 	<p>
 		This annotation tells the framework that all methods defined on this interface can be executed remotely.
-		It can be applied to super-interfaces, super-classes, etc..., and exposes the methods at whatever level it is defined.  
+		It can be applied to super-interfaces, super-classes, etc..., and exposes the methods at whatever level it is 
+		defined.  
 	</p>
 	<p>
-		The {@link org.apache.juneau.remoteable.RemoteMethod @RemoteMethod} annotation can also be used on individual methods
-		to tailor which methods are exposed or their paths.
+		The {@link org.apache.juneau.remoteable.RemoteMethod @RemoteMethod} annotation can also be used on individual 
+		methods to tailor which methods are exposed or their paths.
 	</p>
 	<p>
 		There are two ways to expose remoteable proxies on the server side:
@@ -2573,8 +2734,8 @@
 		<li>Using a <code><ja>@RestMethod</ja>(name=<js>"PROXY"</js>)</code> annotation on a Java method.
 	</ol>
 	<p>
-		The <code>RemoteableServlet</code> class is a simple specialized servlet with an abstract <code>getServiceMap()</code>
-		method to define the server-side POJOs:
+		The <code>RemoteableServlet</code> class is a simple specialized servlet with an abstract 
+		<code>getServiceMap()</code> method to define the server-side POJOs:
 	</p>
 	<p class='bcode'>
 	<ja>@RestResource</ja>(
@@ -2599,8 +2760,10 @@
 	}
 	</p>
 	<p>
-		The <code><ja>@RestMethod</ja>(name=<js>"PROXY"</js>)</code> approach is easier if you only have a single interface you want to expose.  
-		You simply define a Java method whose return type is an interface, and return the implementation of that interface:
+		The <code><ja>@RestMethod</ja>(name=<js>"PROXY"</js>)</code> approach is easier if you only have a single 
+		interface you want to expose.  
+		You simply define a Java method whose return type is an interface, and return the implementation of that 
+		interface:
 	</p>
 	<p class='bcode'>
 	<jc>// Our exposed proxy object.</jc>
@@ -2611,20 +2774,30 @@
 	</p>
 	<p>
 		In either case, the proxy communications layer is pure REST.
-		<br>Therefore, in cases where the interface classes are not available on the client side,
-			the same method calls can be made through pure REST calls.  
-		<br>This can also aid significantly in debugging, since calls to the remoteable service
-			can be made directly from a browser with no coding involved.
+		<br>
+		Therefore, in cases where the interface classes are not available on the client side, the same method calls can 
+		be made through pure REST calls.  
+		<br>
+		This can also aid significantly in debugging, since calls to the remoteable service can be made directly from
+		a browser with no coding involved.
 	</p>
 	<p>
-		The parameters and return types of the Java methods can be any of the supported serializable and parsable types in <a class='doclink' href='#Core.PojoCategories'>POJO Categories</a>.
-		<br>This ends up being WAY more flexible than other proxy interfaces since Juneau can handle so may POJO types out-of-the-box.
-		<br>Most of the time you don't even need to modify your existing Java implementation code.
+		The parameters and return types of the Java methods can be any of the supported serializable and parsable types
+		in <a class='doclink' href='#Core.PojoCategories'>POJO Categories</a>.
+		<br>
+		This ends up being WAY more flexible than other proxy interfaces since Juneau can handle so may POJO types 
+		out-of-the-box.
+		<br>
+		Most of the time you don't even need to modify your existing Java implementation code.
 	</p>
 	<p>
-		The RemoteableServlet class itself shows how sophisticated REST interfaces can be built on the Juneau RestServlet API using very little code.  
-		<br>The RemoteableServlet class itself consists of only 53 lines of code, yet is a sophisticated discoverable and self-documenting REST interface.  
-		<br>And since the remote proxy API is built on top of REST, it can be debugged using just a browser.
+		The RemoteableServlet class itself shows how sophisticated REST interfaces can be built on the Juneau 
+		RestServlet API using very little code.  
+		<br>
+		The RemoteableServlet class itself consists of only 53 lines of code, yet is a sophisticated discoverable and 
+		self-documenting REST interface.  
+		<br>
+		And since the remote proxy API is built on top of REST, it can be debugged using just a browser.
 	</p>
 	<p>
 		The requirements for a method to be callable through a remoteable service are:
@@ -2633,12 +2806,14 @@
 		<li>The method must be public.
 		<li>The parameter and return types must be <a href='#Core.PojoCategories'>serializable and parsable</a>.
 			Parameterized types are supported.
-		<li>Methods can throw <code>Throwables</code> with public no-arg or single-arg-string constructors which will be automatically 
-			recreated on the client side.
+		<li>Methods can throw <code>Throwables</code> with public no-arg or single-arg-string constructors which will 
+			be automatically recreated on the client side.
 	</ul>
 	<h6 class='topic'>Additional Information</h6>
 	<ul class='doctree'>
-		<li class='jp'><a class='doclink' href='org/apache/juneau/server/remoteable/package-summary.html#TOC'>org.apache.juneau.rest.remoteable</a> - Juneau Remoteable API Javadocs.
+		<li class='jp'><a class='doclink' 
+			href='org/apache/juneau/server/remoteable/package-summary.html#TOC'>org.apache.juneau.rest.remoteable</a> 
+			- Juneau Remoteable API Javadocs.
 	</ul>
 	
 	<!-- ======================================================================================================== -->
@@ -2647,11 +2822,13 @@
 	<div class='topic'>
 		<p>
 			Remoteable proxies can also be used to define interface proxies against 3rd-party REST interfaces.
-			This is an extremely powerful feature that allows you to quickly define easy-to-use interfaces against virtually any REST interface.
+			This is an extremely powerful feature that allows you to quickly define easy-to-use interfaces against 
+			virtually any REST interface.
 		</p>
 		<p>
 			Similar in concept to remoteable services defined above, but in this case we simply define our interface with
-			special annotations that tell us how to convert input and output to HTTP headers, query paramters, form post parameters, or request/response bodies.
+			special annotations that tell us how to convert input and output to HTTP headers, query parameters, form 
+			post parameters, or request/response bodies.
 		</p>
 		<p class='bcode'>	
 	<ja>@Remoteable</ja>
@@ -2666,62 +2843,99 @@
 	String response = p.doMethod(UUID.<jsm>generate</jsm>(), <jk>true</jk>, <jk>new</jk> MyPojo());
 		</p>
 		<p>
-			The Java method arguements can be annotated with any of the following:
+			The Java method arguments can be annotated with any of the following:
 		</p>
 		<ul class='spaced-list'>
 			<li>{@link org.apache.juneau.remoteable.Query @Query} - A URL query parameter.
 				<br>The argument can be any of the following types:
 				<ul>
-					<li>Any serializable POJO - Converted to text using {@link org.apache.juneau.urlencoding.UrlEncodingSerializer#serializePart(Object, Boolean, Boolean)}.
-					<li><code>Map&lt;String,Object&gt;</code> - Individual name-value pairs.
-						<br>Values are converted to text using {@link org.apache.juneau.urlencoding.UrlEncodingSerializer#serializePart(Object, Boolean, Boolean)}.
-					<li><code>String</code> - Treated as a query string.
-				</ul>
-			<li>{@link org.apache.juneau.remoteable.QueryIfNE @QueryIfNE} - Same as <ja>@Query</ja> except skips the value if it's null/empty.
-			<li>{@link org.apache.juneau.remoteable.FormData @FormData} - A form-data parameter.
-				<br>Note that this is only available if the HTTP method is <code>POST</code>.
-				<br>The argument can be any of the following types:
-				<ul>
-					<li>Any serializable POJO - Converted to text using {@link org.apache.juneau.urlencoding.UrlEncodingSerializer#serializePart(Object, Boolean, Boolean)}.
-					<li>{@link org.apache.juneau.rest.client.NameValuePairs} - Individual name-value pairs.
-					<li><code>Map&lt;String,Object&gt;</code> - Individual name-value pairs.
-						<br>Values are converted to text using {@link org.apache.juneau.urlencoding.UrlEncodingSerializer#serializePart(Object, Boolean, Boolean)}.
+					<li>Any serializable POJO 
+						- Converted to text using {@link org.apache.juneau.urlencoding.UrlEncodingSerializer#serializePart(Object, Boolean, Boolean)}.
+					<li><code>Map&lt;String,Object&gt;</code> 
+						- Individual name-value pairs.
+						<br>
+						Values are converted to text using {@link org.apache.juneau.urlencoding.UrlEncodingSerializer#serializePart(Object, Boolean, Boolean)}.
+					<li><code>String</code> 
+						- Treated as a query string.
+				</ul>
+			<li>{@link org.apache.juneau.remoteable.QueryIfNE @QueryIfNE} 
+				- Same as <ja>@Query</ja> except skips the value if it's null/empty.
+			<li>{@link org.apache.juneau.remoteable.FormData @FormData} 
+				- A form-data parameter.
+				<br>
+				Note that this is only available if the HTTP method is <code>POST</code>.
+				<br>
+				The argument can be any of the following types:
+				<ul>
+					<li>Any serializable POJO 
+						- Converted to text using {@link org.apache.juneau.urlencoding.UrlEncodingSerializer#serializePart(Object, Boolean, Boolean)}.
+					<li>{@link org.apache.juneau.rest.client.NameValuePairs} 
+						- Individual name-value pairs.
+					<li><code>Map&lt;String,Object&gt;</code> 
+						- Individual name-value pairs.
+						<br>
+						Values are converted to text using {@link org.apache.juneau.urlencoding.UrlEncodingSerializer#serializePart(Object, Boolean, Boolean)}.
 				</ul>
-			<li>{@link org.apache.juneau.remoteable.FormDataIfNE @FormDataIfNE} - Same as <ja>@FormData</ja> except skips the value if it's null/empty.
-			<li>{@link org.apache.juneau.remoteable.Header @Header} - A request header.
-				<br>The argument can be any of the following types:
+			<li>{@link org.apache.juneau.remoteable.FormDataIfNE @FormDataIfNE} 
+				- Same as <ja>@FormData</ja> except skips the value if it's null/empty.
+			<li>{@link org.apache.juneau.remoteable.Header @Header} 
+				- A request header.
+				<br>
+				The argument can be any of the following types:
 				<ul>
-					<li>Any serializable POJO - Converted to text using {@link org.apache.juneau.urlencoding.UrlEncodingSerializer#serializePart(Object, Boolean, Boolean)}.
-					<li><code>Map&lt;String,Object&gt;</code> - Individual name-value pairs.
-						<br>Values are converted to text using {@link org.apache.juneau.urlencoding.UrlEncodingSerializer#serializePart(Object, Boolean, Boolean)}.
+					<li>Any serializable POJO 
+						- Converted to text using {@link org.apache.juneau.urlencoding.UrlEncodingSerializer#serializePart(Object, Boolean, Boolean)}.
+					<li><code>Map&lt;String,Object&gt;</code> 
+						- Individual name-value pairs.
+						<br>
+						Values are converted to text using {@link org.apache.juneau.urlencoding.UrlEncodingSerializer#serializePart(Object, Boolean, Boolean)}.
 				</ul>
-			<li>{@link org.apache.juneau.remoteable.HeaderIfNE @HeaderIfNE} - Same as <ja>@Header</ja> except skips the value if it's null/empty.
-			<li>{@link org.apache.juneau.remoteable.Body @Body} - The HTTP request body.
+			<li>{@link org.apache.juneau.remoteable.HeaderIfNE @HeaderIfNE} 
+				- Same as <ja>@Header</ja> except skips the value if it's null/empty.
+			<li>{@link org.apache.juneau.remoteable.Body @Body} 
+				- The HTTP request body.
 				<br>The argument can be any of the following types:
 				<ul>
-					<li>Any serializable POJO - Converted to text/bytes using the {@link org.apache.juneau.serializer.Serializer} registered with the <code>RestClient</code>.
-					<li>{@link java.io.Reader} - Raw contents of reader will be serialized to remote resource.
-					<li>{@link java.io.InputStream} - Raw contents of input stream will be serialized to remote resource.
-					<li>{@link org.apache.http.HttpEntity} - Bypass Juneau serialization and pass HttpEntity directly to HttpClient.
-					<li>{@link org.apache.juneau.rest.client.NameValuePairs} - Converted to a URL-encoded FORM post.
+					<li>Any serializable POJO 
+						- Converted to text/bytes using the {@link org.apache.juneau.serializer.Serializer} registered 
+						with the <code>RestClient</code>.
+					<li>{@link java.io.Reader} 
+						- Raw contents of reader will be serialized to remote resource.
+					<li>{@link java.io.InputStream} 
+						- Raw contents of input stream will be serialized to remote resource.
+					<li>{@link org.apache.http.HttpEntity} 
+						- Bypass Juneau serialization and pass HttpEntity directly to HttpClient.
+					<li>{@link org.apache.juneau.rest.client.NameValuePairs} 
+						- Converted to a URL-encoded FORM post.
 				</ul>
 		</ul>
 		<p>
 			The return type of the Java method can be any of the following:
 		</p>
 		<ul class='spaced-list'>
-			<li><jk>void</jk> - Don't parse any response.  
-				<br>Note that the method will still throw a runtime exception if an error HTTP status is returned.
-			<li>Any parsable POJO - The body of the response will be converted to the POJO using the parser defined on the <code>RestClient</code>.
-			<li><code>HttpResponse</code> - Returns the raw <code>HttpResponse</code> returned by the inner <code>HttpClient</code>.
-			<li>{@link java.io.Reader} - Returns access to the raw reader of the response.
-				<br>Note that if you don't want your response parsed as a POJO, you'll want to get the response reader directly.
-			<li>{@link java.io.InputStream} - Returns access to the raw input stream of the response.
+			<li><jk>void</jk> 
+				- Don't parse any response.  
+				<br>
+				Note that the method will still throw a runtime exception if an error HTTP status is returned.
+			<li>Any parsable POJO 
+				- The body of the response will be converted to the POJO using the parser defined on the 
+				<code>RestClient</code>.
+			<li><code>HttpResponse</code> 
+				- Returns the raw <code>HttpResponse</code> returned by the inner <code>HttpClient</code>.
+			<li>{@link java.io.Reader} 
+				- Returns access to the raw reader of the response.
+				<br>
+				Note that if you don't want your response parsed as a POJO, you'll want to get the response reader 
+				directly.
+			<li>{@link java.io.InputStream} 
+				- Returns access to the raw input stream of the response.
 		</ul>
 
 		<h6 class='topic'>Additional Information</h6>
 		<ul class='doctree'>
-			<li class='jp'><a class='doclink' href='org/apache/juneau/remoteable/package-summary.html#TOC'>org.apache.juneau.remoteable</a> - Juneau Remoteable API Javadocs.
+			<li class='jp'><a class='doclink' 
+				href='org/apache/juneau/remoteable/package-summary.html#TOC'>org.apache.juneau.remoteable</a> 
+				- Juneau Remoteable API Javadocs.
 		</ul>
 	</div>
 </div>
@@ -2734,15 +2948,16 @@
 		<b>WARNING - The microservice API is still in beta.  It may be replaced with an OSGi-based architecture.</b>
 	</p>
 	<p>
-		The <l>microservice-project.zip</l> file contains a standalone Eclipse project that can be used
-		to quickly create REST microservices as standalone executable jars without the need of an application server.
+		The <l>microservice-project.zip</l> file contains a stand-alone Eclipse project that can be used
+		to quickly create REST microservices as stand-alone executable jars without the need of an application server.
 		They start almost instantly and are started through a simple java command:
 	</p>
 	<p>
 		<code class='snippet'>java -jar microservice.jar</code>
 	</p>
 	<p>
-		When you execute this command, you can point your browser to <l>http://localhost:10000</l> to bring up the REST interface:
+		When you execute this command, you can point your browser to <l>http://localhost:10000</l> to bring up the 
+		REST interface:
 	</p>
 	<img class='bordered' src="doc-files/Microservices.1.png">
 	<p>
@@ -2751,7 +2966,9 @@
 	</p>
 	<h6 class='topic'>Additional Information</h6>
 	<ul class='doctree'>
-		<li class='jp'><a class='doclink' href='org/apache/juneau/microservice/package-summary.html#TOC'>org.apache.juneau.microservice</a> - Juneau Microservice API Javadocs.
+		<li class='jp'><a class='doclink' 
+			href='org/apache/juneau/microservice/package-summary.html#TOC'>org.apache.juneau.microservice</a> 
+			- Juneau Microservice API Javadocs.
 	</ul>
 </div>
 
@@ -2761,11 +2978,11 @@
 <div class='topic'>
 	<p>
 		The <l>microservice-samples-project.zip</l> file is a zipped eclipse project that includes everything you 
-			need to start the Samples REST microservice in an Eclipse workspace.
+		need to start the Samples REST microservice in an Eclipse workspace.
 	</p>
 	<p>
 		This project is packaged as a Juneau Microservice project that allows REST resources to be started
-			using embedded Jetty.
+		using embedded Jetty.
 	</p>	
 		
 	<!-- ======================================================================================================== -->
@@ -2776,12 +2993,17 @@
 			Follow these instructions to create the Samples project in Eclipse:
 		</p>		
 		<ol class='spaced-list'>
-			<li>Download the latest microservice-samples-project .zip file (e.g. <l>microservice-samples-project-5.2.zip</l>).
-			<li>In your Eclipse workspace, go to <b>File-&gt;Import-&gt;General-&gt;Existing Projects into Workspace</b> and click <b>Next</b>.<br><br>
+			<li>Download the latest microservice-samples-project .zip file (e.g.
+				<l>microservice-samples-project-5.2.zip</l>).
+			<li>In your Eclipse workspace, go to <b>File-&gt;Import-&gt;General-&gt;Existing Projects into Workspace</b> 
+				and click <b>Next</b>.
+				<br><br>
 				<img class='bordered' src="doc-files/Samples.Installing.1.png">
-			<li>Select the .zip file and click <b>Finish</b>.<br><br>
+			<li>Select the .zip file and click <b>Finish</b>.
+				<br><br>
 				<img class='bordered' src="doc-files/Samples.Installing.2.png">
-			<li>In your workspace, you can now see the following project:<br><br>
+			<li>In your workspace, you can now see the following project:
+				<br><br>
 				<img class='bordered' src="doc-files/Samples.Installing.3.png">
 		</ol>
 		<p>
@@ -2789,7 +3011,9 @@
 		</p>
 		<ul class='spaced-list'>
 			<li><l>META-INF/MANIFEST.MF</l> - The manifest file.  <br>
-				This defines the entry point, classpath, top-level REST resources, and location of external configuration file. <br><br>
+				This defines the entry point, classpath, top-level REST resources, and location of external 
+				configuration file. 
+				<br><br>
 				<p class='bcode'>
 	<mk>Manifest-Version</mk>: <mv>1.0</mv>
 	<mk>Main-Class</mk>: <mv>org.apache.juneau.microservice.RestMicroservice</mv>
@@ -2813,14 +3037,21 @@
 	 lib/slf4j-api-1.6.4.jar
 	 lib/slf4j-log4j12-1.6.4.jar</mv>				
 	 			</p>
-			<li><l>RestMicroservice.java</l> - The application class. 
-				<br>This is a specialized microservice in Juneau for exposing REST servlets.
-				<br>Allows REST servlets to be registered in the manifest or configuration file.
-			<li><l>RootResources.java</l> - The top-level REST resource. 
-				<br>This class serves as a "router" page to child resources:<br>
-			<li><l>examples.cfg</l> - The external configuration file. 
-				<br>A deceptively simple yet powerful INI-style configuration file:
-				<br><br>
+			<li><l>RestMicroservice.java</l> 
+				- The application class. 
+				<br>
+				This is a specialized microservice in Juneau for exposing REST servlets.
+				<br>
+				Allows REST servlets to be registered in the manifest or configuration file.
+			<li><l>RootResources.java</l> 
+				- The top-level REST resource. 
+				<br>
+				This class serves as a "router" page to child resources:
+			<li><l>examples.cfg</l> 
+				- The external configuration file. 
+				<br>
+				A deceptively simple yet powerful IN

<TRUNCATED>