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

[juneau] branch master updated: Update javadocs

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 48a1a161a Update javadocs
48a1a161a is described below

commit 48a1a161a119061b1d0aeaae080999d5e225bd52
Author: JamesBognar <ja...@salesforce.com>
AuthorDate: Sun Jun 26 13:28:03 2022 -0400

    Update javadocs
---
 .../02.juneau-marshall/25.jm.ObjectTools.html      | 343 ---------------------
 .../02.juneau-marshall/26.jm.JsonDetails.html      |  97 ------
 .../27.jm.JsonSchemaDetails.html                   | 110 -------
 .../02.juneau-marshall/28.jm.XmlDetails.html       |  92 ------
 .../02.juneau-marshall/29.jm.HtmlDetails.html      |  26 --
 .../02.juneau-marshall/30.jm.HtmlSchema.html       | 197 ------------
 .../02.juneau-marshall/31.jm.UonDetails.html       |  87 ------
 .../32.jm.UrlEncodingDetails.html                  |  85 -----
 .../02.juneau-marshall/33.jm.MsgPackDetails.html   |  27 --
 .../02.juneau-marshall/34.jm.OpenApiDetails.html   |  49 ---
 .../02.juneau-marshall/35.jm.BestPractices.html    |  42 ---
 ...m.HttpParts.html => 06.juneau-rest-common.html} |  23 +-
 .../01.jrc.org.apache.juneau.http.html}            |   0
 .../02.jrc.org.apache.juneau.http.annotation.html} |   0
 .../03.jrc.org.apache.juneau.http.header.html}     |   0
 .../04.jrc.org.apache.juneau.http.part.html}       |   0
 .../05.jrc.org.apache.juneau.http.entity.html}     |   0
 .../06.jrc.org.apache.juneau.http.resource.html}   |   0
 .../07.jrc.org.apache.juneau.http.response.html}   |   0
 .../08.jrc.org.apache.juneau.http.remote.html}     |   0
 juneau-doc/docs/Topics/06.juneau-rest-server.html  | 133 --------
 .../docs/Topics/07.juneau-rest-server-rdf.html     |  43 ---
 .../docs/Topics/08.juneau-rest-server-jaxrs.html   |  43 ---
 .../Topics/09.juneau-rest-server-springboot.html   |  42 ---
 juneau-doc/docs/Topics/10.juneau-rest-client.html  | 181 -----------
 juneau-doc/docs/Topics/11.juneau-rest-mock.html    |  44 ---
 .../docs/Topics/12.juneau-microservice-core.html   |  60 ----
 .../docs/Topics/13.juneau-microservice-jetty.html  |  47 ---
 .../docs/Topics/14.my-jetty-microservice.html      |  36 ---
 .../docs/Topics/15.my-springboot-microservice.html |  35 ---
 juneau-doc/docs/Topics/16.juneau-petstore.html     |  39 ---
 juneau-doc/docs/Topics/17.Glossaries.html          |  21 --
 juneau-doc/docs/Topics/18.Security.html            |  26 --
 33 files changed, 20 insertions(+), 1908 deletions(-)

diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/25.jm.ObjectTools.html b/juneau-doc/docs/Topics/02.juneau-marshall/25.jm.ObjectTools.html
deleted file mode 100644
index a480d443e..000000000
--- a/juneau-doc/docs/Topics/02.juneau-marshall/25.jm.ObjectTools.html
+++ /dev/null
@@ -1,343 +0,0 @@
-<!--
-/***************************************************************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *  
- *  http://www.apache.org/licenses/LICENSE-2.0
- *  
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations under the License.
- ***************************************************************************************************************************/
- -->
-
-{title:'Object Tools', created:'9.0.0'}
-
-<div class='topic'>
-	<p>
-		The {@link oaj.objecttools} package defines convenience utility classes for accessing
-		and manipulating POJOs.  It consists of the following classes:
-	</p>
-	<ul class='javatree'>
-		<li class='jc'>{@link oaj.objecttools.ObjectRest}
-		<li class='jc'>{@link oaj.objecttools.ObjectSearcher}
-		<li class='jc'>{@link oaj.objecttools.ObjectSorter}
-		<li class='jc'>{@link oaj.objecttools.ObjectViewer}
-		<li class='jc'>{@link oaj.objecttools.ObjectPaginator}
-		<li class='jc'>{@link oaj.objecttools.ObjectIntrospector}
-		<li class='jc'>{@link oaj.objecttools.ObjectMerger}
-	</ul>
-	
-	<h5 class='topic'>ObjectRest</h5>
-	<p>
-		The {@link oaj.objecttools.ObjectRest} class provides the ability to perform standard REST operations (GET, PUT, POST, DELETE) against nodes in a POJO model.
-		Nodes in the POJO model are addressed using URLs.
-	</p>
-	<p>
-		A POJO model is defined as a tree model where nodes consist of consisting of the following:
-	</p>
-	<ul class='spaced-list'>
-		<li>
-			{@link Map Maps} and Java beans representing JSON objects.
-		<li>
-			{@link Collection Collections} and arrays representing JSON arrays.
-		<li>
-			Java beans.
-	</ul>
-	<p>
-		Leaves of the tree can be any type of object.
-	</p>
-	<p>
-		Use {@link oaj.objecttools.ObjectRest#get(String) get()} to retrieve an element from a JSON tree.
-		<br>Use {@link oaj.objecttools.ObjectRest#put(String,Object) put()} to create (or overwrite) an element in a JSON tree.
-		<br>Use {@link oaj.objecttools.ObjectRest#post(String,Object) post()} to add an element to a list in a JSON tree.
-		<br>Use {@link oaj.objecttools.ObjectRest#delete(String) delete()} to remove an element from a JSON tree.
-	</p>
-	<h5 class='figure'>Example:</h5>
-	<p class='bjava'>
-	|	<jc>// Construct an unstructured POJO model</jc>
-	|	JsonMap <jv>map</jv> = JsonMap.<jsm>ofJson</jsm>(<js>""</js>
-	|		+ <js>"{"</js>
-	|		+ <js>"	name:'John Smith', "</js>
-	|		+ <js>"	address:{ "</js>
-	|		+ <js>"		streetAddress:'21 2nd Street', "</js>
-	|		+ <js>"		city:'New York', "</js>
-	|		+ <js>"		state:'NY', "</js>
-	|		+ <js>"		postalCode:10021 "</js>
-	|		+ <js>"	}, "</js>
-	|		+ <js>"	phoneNumbers:[ "</js>
-	|		+ <js>"		'212 555-1111', "</js>
-	|		+ <js>"		'212 555-2222' "</js>
-	|		+ <js>"	], "</js>
-	|		+ <js>"	additionalInfo:null, "</js>
-	|		+ <js>"	remote:false, "</js>
-	|		+ <js>"	height:62.4, "</js>
-	|		+ <js>"	'fico score':' &gt; 640' "</js>
-	|		+ <js>"} "</js>
-	|	);
-	|
-	|	<jc>// Wrap Map inside an ObjectRest object</jc>
-	|	ObjectRest <jv>johnSmith</jv> = ObjectRest.<jsm>create</jsm>(<jv>map</jv>);
-	|
-	|	<jc>// Get a simple value at the top level</jc>
-	|	<jc>// "John Smith"</jc>
-	|	String <jv>name</jv> = <jv>johnSmith</jv>.getString(<js>"name"</js>);
-	|
-	|	<jc>// Change a simple value at the top level</jc>
-	|	<jv>johnSmith</jv>.put(<js>"name"</js>, <js>"The late John Smith"</js>);
-	|
-	|	<jc>// Get a simple value at a deep level</jc>
-	|	<jc>// "21 2nd Street"</jc>
-	|	String <jv>streetAddress</jv> = <jv>johnSmith</jv>.getString(<js>"address/streetAddress"</js>);
-	|
-	|	<jc>// Set a simple value at a deep level</jc>
-	|	<jv>johnSmith</jv>.put(<js>"address/streetAddress"</js>, <js>"101 Cemetery Way"</js>);
-	|
-	|	<jc>// Get entries in a list</jc>
-	|	<jc>// "212 555-1111"</jc>
-	|	String <jv>firstPhoneNumber</jv> = <jv>johnSmith</jv>.getString(<js>"phoneNumbers/0"</js>);
-	|
-	|	<jc>// Add entries to a list</jc>
-	|	<jv>johnSmith</jv>.post(<js>"phoneNumbers"</js>, <js>"212 555-3333"</js>);
-	|
-	|	<jc>// Delete entries from a model</jc>
-	|	<jv>johnSmith</jv>.delete(<js>"fico score"</js>);
-	|
-	|	<jc>// Add entirely new structures to the tree</jc>
-	|	JsonMap <jv>medicalInfo</jv> = JsonMap.<jsm>ofJson</jsm>(<js>""</js>
-	|		+ <js>"{"</js>
-	|		+ <js>"	currentStatus: 'deceased',"</js>
-	|		+ <js>"	health: 'non-existent',"</js>
-	|		+ <js>"	creditWorthiness: 'not good'"</js>
-	|		+ <js>"}"</js>
-	|	);
-	|	<jv>johnSmith</jv>.put(<js>"additionalInfo/medicalInfo"</js>, <jv>medicalInfo</jv>);
-	</p>
-
-	<p>
-		In the special case of collections/arrays of maps/beans, a special XPath-like selector notation can be used in lieu
-		of index numbers on GET requests to return a map/bean with a specified attribute value.
-		<br>The syntax is {@code @attr=val}, where attr is the attribute name on the child map, and val is the matching value.
-	</p>
-	
-	<h5 class='figure'>Example:</h5>
-	<p class='bjava'>
-	|	<jc>// Get map/bean with name attribute value of 'foo' from a list of items</jc>
-	|	Map <jv>map</jv> = <jv>objectRest</jv>.getMap(<js>"/items/@name=foo"</js>);
-	</p>
-	<ul class='notes'>
-		<li class='note'>This class is used in the {@link oajr.converter.Traversable} REST response converter.
-	</ul>
-	
-	<h5 class='topic'>ObjectSearcher</h5>
-	<p>
-		The {@link oaj.objecttools.ObjectSearcher} class is designed to provide searches across arrays and collections of maps or beans.
-		It allows you to quickly filter beans and maps using simple yet sophisticated search arguments.
-	</p>
-	
-	<h5 class='figure'>Example:</h5>
-	<p class='bjava'> 
-	|	MyBean[] <jv>arrayOfBeans</jv> = ...;
-	|	ObjectSearcher <jv>searcher</jv> = ObjectSearcher.<jsm>create</jsm>();
-	|	
-	|	<jc>// Returns a list of beans whose 'foo' property is 'X' and 'bar' property is 'Y'.</jc>		
-	|	List&lt;MyBean&gt; <jv>result</jv> = <jv>searcher</jv>.run(<jv>arrayOfBeans</jv>, <js>"foo=X,bar=Y"</js>);  
-	</p>
-	<p>
-		The tool can be used against the following data types:
-	</p>
-	<ul>
-		<li>Arrays/collections of maps or beans.
-	</ul>
-	<p>
-		The default searcher is configured with the following matcher factories that provides the capabilities of matching
-		against various data types.  This list is extensible:
-	</p>
-	<ul class='javatreec'>
-		<li class='jc'>{@link oaj.objecttools.StringMatcherFactory}
-		<li class='jc'>{@link oaj.objecttools.NumberMatcherFactory}
-		<li class='jc'>{@link oaj.objecttools.TimeMatcherFactory}
-	</ul>
-	<p>
-		The {@link oaj.objecttools.StringMatcherFactory} class provides searching based on the following patterns:
-	</p>
-	<ul>
-		<li><js>"property=foo"</js> - Simple full word match
-		<li><js>"property=fo*"</js>, <js>"property=?ar"</js> - Meta-character matching
-		<li><js>"property=foo bar"</js>(implicit), <js>"property=^foo ^bar"</js>(explicit) - Multiple OR'ed patterns
-		<li><js>"property=+fo* +*ar"</js> - Multiple AND'ed patterns
-		<li><js>"property=fo* -bar"</js> - Negative patterns
-		<li><js>"property='foo bar'"</js> - Patterns with whitespace
-		<li><js>"property=foo\\'bar"</js> - Patterns with single-quotes
-		<li><js>"property=/foo\\s+bar"</js> - Regular expression match
-	</ul>
-	<p>
-		The {@link oaj.objecttools.NumberMatcherFactory} class provides searching based on the following patterns:
-	</p>
-	<ul>
-		<li><js>"property=1"</js> - A single number
-		<li><js>"property=1 2"</js> - Multiple OR'ed numbers
-		<li><js>"property=-1 -2"</js> - Multiple OR'ed negative numbers
-		<li><js>"property=1-2"</js>,<js>"property=-2--1"</js>  - A range of numbers (whitespace ignored)
-		<li><js>"property=1-2 4-5"</js> - Multiple OR'ed ranges
-		<li><js>"property=&lt;1"</js>,<js>"property=&lt;=1"</js>,<js>"property=&gt;1"</js>,<js>"property=&gt;=1"</js> - Open-ended ranges
-		<li><js>"property=!1"</js>,<js>"property=!1-2"</js> - Negation
-	</ul>
-	<p>
-		The {@link oaj.objecttools.TimeMatcherFactory} class provides searching based on the following patterns:
-	</p>
-	<ul>
-		<li><js>"property=2011"</js> - A single year
-		<li><js>"property=2011 2013 2015"</js> - Multiple years
-		<li><js>"property=2011-01"</js> - A single month
-		<li><js>"property=2011-01-01"</js> - A single day
-		<li><js>"property=2011-01-01T12"</js> - A single hour
-		<li><js>"property=2011-01-01T12:30"</js> - A single minute
-		<li><js>"property=2011-01-01T12:30:45"</js> - A single second
-		<li><js>"property=&gt;2011"</js>,<js>"property=&gt;=2011"</js>,<js>"property=&lt;2011"</js>,<js>"property=&lt;=2011"</js> - Open-ended ranges
-		<li><js>"property=&gt;2011"</js>,<js>"property=&gt;=2011"</js>,<js>"property=&lt;2011"</js>,<js>"property=&lt;=2011"</js> - Open-ended ranges
-		<li><js>"property=2011 - 2013-06-30"</js> - Closed ranges
-	</ul>
-	<ul class='notes'>
-		<li class='note'>This class is used in the {@link oajr.converter.Queryable} REST response converter.
-	</ul>
-
-	<h5 class='topic'>ObjectSorter</h5>
-	<p>
-		The {@link oaj.objecttools.ObjectSorter} class is designed to sort arrays and collections of maps or beans.
-	</p>
-	<h5 class='figure'>Example:</h5>
-	<p class='bjava'> 
-	|	MyBean[] <jv>arrayOfBeans</jv> = ...;
-	|	ObjectSorter <jv>sorter</jv> = ObjectSorter.<jsm>create</jsm>();
-	|	
-	|	<jc>// Returns a list of beans sorted accordingly.</jc>		
-	|	List&lt;MyBean&gt; <jv>result</jv> = <jv>sorter</jv>.run(<jv>arrayOfBeans</jv>, <js>"foo,bar-"</js>);  
-	</p>
-	<p>
-		The tool can be used against the following data types:
-	</p>
-	<ul>
-		<li>Arrays/collections of maps or beans.
-	</ul>
-	<p>
-		The arguments are a simple comma-delimited list of property names optionally suffixed with <js>'+'</js> and <js>'-'</js> to 
-		denote ascending/descending order.
-	</p>
-	<ul class='notes'>
-		<li class='note'>This class is used in the {@link oajr.converter.Queryable} REST response converter.
-	</ul>
-	
-	<h5 class='topic'>ObjectViewer</h5>
-	<p>
-		The {@link oaj.objecttools.ObjectViewer} class is designed to extract properties from collections of maps or beans.
-	</p>
-	<h5 class='figure'>Example:</h5>
-	<p class='bjava'> 
-	|	MyBean[] <jv>arrayOfBeans</jv> = ...;
-	|	ObjectViewer <jv>viewer</jv> = ObjectViewer.<jsm>create</jsm>();
-
-	|	<jc>// Returns the 'foo' and 'bar' properties extracted into a list of maps.</jc>		
-	|	List&lt;Map&gt; <jv>result</jv> = <jv>viewer</jv>.run(<jv>arrayOfBeans</jv>, <js>"foo,bar"</js>);  
-	</p>
-	<p>
-		The tool can be used against the following data types:
-	</p>
-	<ul>
-		<li>Arrays/collections of maps or beans.
-		<li>Singular maps or beans.
-	</ul>
-	<ul class='notes'>
-		<li class='note'>This class is used in the {@link oajr.converter.Queryable} REST response converter.
-	</ul>
-	
-	<h5 class='topic'>ObjectPaginator</h5>
-	<p>
-		The {@link oaj.objecttools.ObjectPaginator} class is designed to extract sublists from arrays/collections of maps or beans.
-	</p>
-	<h5 class='figure'>Example:</h5>
-	<p class='bjava'> 
-	|	MyBean[] <jv>arrayOfBeans</jv> = ...;
-	|	ObjectPaginator <jv>paginator</jv> = ObjectPaginator.<jsm>create</jsm>();
-	|	
-	|	<jc>// Returns all rows from 100 to 110.</jc>		
-	|	List&lt;MyBean&gt; <jv>result</jv> = <jv>paginator</jv>.run(<jv>arrayOfBeans</jv>, 100, 10);  
-	</p>
-	<p>
-		The tool can be used against the following data types:
-	</p>
-	<ul>
-		<li>Arrays/collections of maps or beans.
-	</ul>
-	<ul class='notes'>
-		<li class='note'>This class is used in the {@link oajr.converter.Queryable} REST response converter.
-	</ul>
-
-	<h5 class='topic'>ObjectIntrospector</h5>
-	<p>
-		The {@link oaj.objecttools.ObjectIntrospector} class is used to invoke methods on {@code Objects} using arguments in serialized form.
-	</p>
-	<h5 class='figure'>Example:</h5>
-	<p class='bjava'>
-	|	String <jv>string1</jv> = <js>"foobar"</js>;
-	|	String <jv>string2</jv> = ObjectIntrospector
-	|		.create(<jv>string</jv>)
-	|		.invoke(String.<jk>class</jk>, <js>"substring(int,int)"</js>, <js>"[3,6]"</js>);  <jc>// "bar"</jc>
-	</p>
-	<p>
-		The arguments passed to the identified method are POJOs serialized in JSON format.  Arbitrarily complex arguments can be passed
-		in as arguments.
-	</p>
-	<ul class='notes'>
-		<li class='note'>This class is used in the {@link oajr.converter.Introspectable} REST response converter.
-		<li class='warn'>This is an extremely powerful but potentially dangerous tool.  Use wisely.
-	</ul>
-	
-	<h5 class='topic'>ObjectMerger</h5>
-	<p>
-		The {@link oaj.objecttools.ObjectMerger} class is used for merging POJOs behind a single interface.
-		This is particularly useful in cases where you want to define beans with 'default' values.
-	</p>
-	<p>
-		For example, given the following bean classes:
-	</p>
-
-	<p class='bjava'>
-	|	<jk>public interface</jk> IA {
-	|		String getX();
-	|		<jk>void</jk> setX(String <jv>x</jv>);
-	|	}
-	|
-	|	<jk>public class</jk> A <jk>implements</jk> IA {
-	|		<jk>private</jk> String <jf>x</jf>;
-	|
-	|		<jk>public</jk> A(String <jv>x</jv>) {
-	|			<jk>this</jk>.<jf>x</jf> = <jv>x</jv>;
-	|		}
-	|
-	|		<jk>public</jk> String getX() {
-	|			<jk>return</jk> <jf>x</jf>;
-	|		}
-	|
-	|		<jk>public void</jk> setX(String <jv>x</jv>) {
-	|			<jk>this</jk>.<jf>x</jf> = <jv>x</jv>;
-	|		}
-	|	}
-	</p>
-	<p>
-		The getters will be called in order until the first non-null value is returned:
- 	</p>
-	<p class='bjava'>
-	|	<jv>merge</jv> = ObjectMerger.<jsm>merger</jsm>(IA.<jk>class</jk>, <jk>new</jk> A(<js>"1"</js>), <jk>new</jk> A(<js>"2"</js>));
-	|	<jsm>assertEquals</jsm>(<js>"1"</js>, <jv>merge</jv>.getX());
-	|
-	|	<jv>merge</jv> = ObjectMerger.<jsm>merger</jsm>(IA.<jk>class</jk>, <jk>new</jk> A(<jk>null</jk>), <jk>new</jk> A(<js>"2"</js>));
-	|	<jsm>assertEquals</jsm>(<js>"2"</js>, <jv>merge</jv>.getX());
-	|
-	|	<jv>merge</jv> = ObjectMerger.<jsm>merger</jsm>(IA.<jk>class</jk>, <jk>new</jk> A(<jk>null</jk>), <jk>new</jk> A(<jk>null</jk>));
-	|	<jsm>assertEquals</jsm>(<jk>null</jk>, <jv>merge</jv>.getX());
-	</p>
-	
-</div>
\ No newline at end of file
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/26.jm.JsonDetails.html b/juneau-doc/docs/Topics/02.juneau-marshall/26.jm.JsonDetails.html
deleted file mode 100644
index 3bce8b863..000000000
--- a/juneau-doc/docs/Topics/02.juneau-marshall/26.jm.JsonDetails.html
+++ /dev/null
@@ -1,97 +0,0 @@
-<!--
-/***************************************************************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *  
- *  http://www.apache.org/licenses/LICENSE-2.0
- *  
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations under the License.
- ***************************************************************************************************************************/
- -->
-
-{title:'JSON Details'}
-
-<div class='topic'>
-	<p>
-		Juneau supports converting arbitrary POJOs to and from JSON using ultra-efficient serializers and parsers.
-		The JSON serializer converts POJOs directly to JSON without the need for intermediate DOM objects using a 
-		highly-efficient state machine.
-		Likewise, the JSON parser creates POJOs directly from JSON without the need for intermediate DOM objects. 
-	</p>
-	<p>
-		The following example shows JSON for a typical bean:
-	</p>
-	<h5 class='figure'>Sample Beans</h5>
-	<p class='bjava'>
-		|	<jk>public class</jk> Person {
-		|		
-		|		<jc>// Bean properties</jc>
-		|		<jk>public</jk> String <jf>name</jf>;
-		|		<ja>@Swap</ja>(TemporalCalendarSwap.IsoInstant.<jk>class</jk>) <jk>public</jk> Calendar <jf>birthDate</jf>;
-		|		<jk>public</jk> List&lt;Address&gt; <jf>addresses</jf>; 
-		|	
-		|		<jc>// Getters/setters omitted</jc>
-		|	}
-		|	
-		|	<jk>public class</jk> Address {
-		|
-		|		<jc>// Bean properties</jc>
-		|		<jk>public</jk> String <jf>street</jf>, <jf>city</jf>;
-		|		<jk>public</jk> StateEnum <jf>state</jf>;
-		|		<jk>public int</jk> <jf>zip</jf>;
-		|		<jk>public boolean</jk> <jf>isCurrent</jf>;
-		|
-		|		<jc>// Getters/setters omitted</jc>
-		|	}	
-	</p>
-	<h5 class='figure'>Sample Code</h5>
-	<p class='bjava'>
-		|	Person <jv>person</jv> = <jk>new</jk> Person()
-		|		.name(<js>"John Smith"</js>)
-		|		.birthDate(<js>"1946-08-12T00:00:00Z"</js>)
-		|		.addresses(
-		|			<jk>new</jk> Address() 
-		|				.street(<js>"100 Main Street"</js>)
-		|				.city(<js>"Anywhereville"</js>)
-		|				.state(<jsf>NY</jsf>)
-		|				.zip(12345)
-		|				.isCurrent(<jk>true</jk>);
-		|		);
-	</p>
-	<h5 class='figure'>Normal JSON</h5>
-	<p class='bjson'>
-		|	{
-		|		<js>"name"</js>: <js>"John Smith"</js>, 
-		|		<js>"birthDate"</js>: <js>"1946-08-12T00:00:00Z"</js>, 
-		|		<js>"addresses"</js>: [
-		|			{
-		|				<js>"street"</js>: <js>"100 Main Street"</js>, 
-		|				<js>"city"</js>: <js>"Anywhereville"</js>, 
-		|				<js>"state"</js>: <js>"NY"</js>, 
-		|				<js>"zip"</js>: 12345, 
-		|				<js>"isCurrent"</js>: <jk>true</jk>
-		|			}
-		|		]
-		|	} 
-	</p>
-	<h5 class='figure'>Simplified JSON</h5>
-	<p class='bjson'>
-		|	{
-		|		name: <js>'John Smith'</js>, 
-		|		birthDate: <js>'1946-08-12T00:00:00Z'</js>, 
-		|		addresses: [
-		|			{
-		|				street: <js>'100 Main Street'</js>, 
-		|				city: <js>'Anywhereville'</js>, 
-		|				state: <js>'NY'</js>, 
-		|				zip: 12345, 
-		|				isCurrent: <jk>true</jk>
-		|			}
-		|		]
-		|	} 
-	</p>
-</div>
\ No newline at end of file
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/27.jm.JsonSchemaDetails.html b/juneau-doc/docs/Topics/02.juneau-marshall/27.jm.JsonSchemaDetails.html
deleted file mode 100644
index 86a44c0f1..000000000
--- a/juneau-doc/docs/Topics/02.juneau-marshall/27.jm.JsonSchemaDetails.html
+++ /dev/null
@@ -1,110 +0,0 @@
-<!--
-/***************************************************************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *  
- *  http://www.apache.org/licenses/LICENSE-2.0
- *  
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations under the License.
- ***************************************************************************************************************************/
- -->
-
-{title:'JSON-Schema Support'}
-
-<div class='topic'>
-	<p>
-		Juneau provides the {@link oaj.json.JsonSchemaSerializer} class for generating JSON-Schema 
-		documents that describe the output generated by the {@link oaj.json.JsonSerializer} class.
-		This class shares the same properties as <c>JsonSerializer</c>.
-		For convenience the {@link oaj.json.JsonSerializer#getSchemaSerializer()} method has been 
-		added for creating instances of schema serializers from the regular serializer instance.
-	</p>
-	<h5 class='figure'>Sample Beans</h5>
-	<p class='bjava'>
-		|	<jk>public class</jk> Person {
-		|		
-		|		<jc>// Bean properties</jc>
-		|		<jk>public</jk> String <jf>name</jf>;
-		|		<jk>public</jk> Calendar <jf>birthDate</jf>;
-		|		<jk>public</jk> List&lt;Address&gt; <jf>addresses</jf>; 
-		|	
-		|		<jc>// Getters/setters omitted</jc>
-		|	}
-		|	
-		|	<jk>public class</jk> Address {
-		|
-		|		<jc>// Bean properties</jc>
-		|		<jk>public</jk> String <jf>street</jf>, <jf>city</jf>;
-		|		<jk>public</jk> StateEnum <jf>state</jf>;
-		|		<jk>public int</jk> <jf>zip</jf>;
-		|		<jk>public boolean</jk> <jf>isCurrent</jf>;
-		|
-		|		<jc>// Getters/setters omitted</jc>
-		|	}	
-	</p>
-	<p>
-		The code for creating our POJO model and generating JSON-Schema is shown below:
-	</p>
-	<p class='bjava'>
-		|	<jc>// Get the one of the default schema serializers.</jc>
-		|	JsonSchemaSerializer <jv>serializer</jv> = JsonSchemaSerializer.<jsf>DEFAULT_SIMPLE_READABLE</jsf>;
-		|	
-		|	<jc>// Get the JSON Schema for the POJO.</jc>
-		|	String <jv>jsonSchema</jv> = <jv>serializer</jv>.serialize(<jk>new</jk> Person());
-		|
-		|	<jc>// This also works.</jc>
-		|	<jv>jsonSchema</jv> = <jv>serializer</jv>.serialize(Person.<jk>class</jk>);
-	</p>
-	
-	<h5 class='figure'>JSON Schema</h5>
-	<p class='bjson'>
-		|	{
-		|		<jok>type: <jov>'object'</jov>, 
-		|		<jok>description</jok>: <jov>'org.apache.juneau.sample.Person'</jov>, 
-		|		<jok>properties</jok>: {
-		|			<jok>name</jok>: {
-		|				<jok>type</jok>: <jov>'string'</jov>, 
-		|				<jok>description</jok>: <jov>'java.lang.String'</jov>
-		|			}, 
-		|			<jok>birthDate</jok>: {
-		|				<jok>type</jok>: <jov>'string'</jov>, 
-		|				<jok>description</jok>: <jov>'java.util.Calendar'</jov>
-		|			}, 
-		|			<jok>addresses</jok>: {
-		|				<jok>type</jok>: <jov>'array'</jov>, 
-		|				<jok>description</jok>: <jov>'java.util.LinkedList&lt;org.apache.juneau.sample.Address&gt;'</jov>, 
-		|				<jok>items</jok>: {
-		|					<jok>type</jok>: <jov>'object'</jov>, 
-		|					<jok>description</jok>: <jov>'org.apache.juneau.sample.Address'</jov>, 
-		|					<jok>properties</jok>: {
-		|						<jok>street</jok>: {
-		|							<jok>type</jok>: <jov>'string'</jov>, 
-		|							<jok>description</jok>: <jov>'java.lang.String'</jov>
-		|						}, 
-		|						<jok>city</jok>: {
-		|							<jok>type</jok>: <jov>'string'</jov>, 
-		|							<jok>description</jok>: <jov>'java.lang.String'</jov>
-		|						}, 
-		|						<jok>state</jok>: {
-		|							<jok>type</jok>: <jov>'string'</jov>, 
-		|							<jok>description</jok>: <jov>'java.lang.String'</jov>
-		|						}, 
-		|						<jok>zip</jok>: {
-		|							<jok>type</jok>: <jov>'number'</jov>, 
-		|							<jok>description</jok>: <jov>'int'</jov>
-		|						}, 
-		|						<jok>isCurrent</jok>: {
-		|							<jok>type</jok>: <jov>'boolean'</jov>, 
-		|							<jok>description</jok>: <jov>'boolean'</jov>
-		|						}
-		|					}
-		|				}
-		|			}
-		|		}
-		|	}
-	</p>
-</div>
\ No newline at end of file
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/28.jm.XmlDetails.html b/juneau-doc/docs/Topics/02.juneau-marshall/28.jm.XmlDetails.html
deleted file mode 100644
index 9a042b202..000000000
--- a/juneau-doc/docs/Topics/02.juneau-marshall/28.jm.XmlDetails.html
+++ /dev/null
@@ -1,92 +0,0 @@
-<!--
-/***************************************************************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *  
- *  http://www.apache.org/licenses/LICENSE-2.0
- *  
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations under the License.
- ***************************************************************************************************************************/
- -->
-
-{title:'XML Details'}
-
-<div class='topic'>
-	<p>
-		Juneau supports converting arbitrary POJOs to and from XML using ultra-efficient serializers and parsers.
-		The XML serializer converts POJOs directly to XML without the need for intermediate DOM objects.
-		Likewise, the XML parser uses a STaX parser and creates POJOs directly without intermediate DOM objects. 
-	</p>
-	<p>
-		Unlike frameworks such as JAXB, Juneau does not require POJO classes to be annotated to produce and consume 
-		XML.
-		However, several XML annotations are provided for handling namespaces and fine-tuning the format of the XML produced.
-	</p>
-	<p>
-		The following example shows XML for a typical bean:
-	</p>
-	<h5 class='figure'>Sample Beans</h5>
-	<p class='bjava'>
-		|	<ja>@Bean</ja>(typeName=<js>"person"</js>)
-		|	<jk>public class</jk> Person {
-		|		
-		|		<jc>// Bean properties</jc>
-		|		<jk>public</jk> String <jf>name</jf>;
-		|		<ja>@Swap</ja>(TemporalCalendarSwap.IsoInstant.<jk>class</jk>) <jk>public</jk> Calendar <jf>birthDate</jf>;
-		|		<jk>public</jk> List&lt;Address&gt; <jf>addresses</jf>; 
-		|	
-		|		<jc>// Getters/setters omitted</jc>
-		|	}
-		|	
-		|	<ja>@Bean</ja>(typeName=<js>"address"</js>)
-		|	<jk>public class</jk> Address {
-		|
-		|		<jc>// Bean properties</jc>
-		|		<jk>public</jk> String <jf>street</jf>, <jf>city</jf>;
-		|		<jk>public</jk> StateEnum <jf>state</jf>;
-		|		<jk>public int</jk> <jf>zip</jf>;
-		|		<jk>public boolean</jk> <jf>isCurrent</jf>;
-		|
-		|		<jc>// Getters/setters omitted</jc>
-		|	}	
-	</p>
-	<h5 class='figure'>Sample Code</h5>
-	<p class='bjava'>
-		|	Person <jv>person</jv> = <jk>new</jk> Person()
-		|		.name(<js>"John Smith"</js>)
-		|		.birthDate(<js>"1946-08-12T00:00:00Z"</js>)
-		|		.addresses(
-		|			<jk>new</jk> Address() 
-		|				.street(<js>"100 Main Street"</js>)
-		|				.city(<js>"Anywhereville"</js>)
-		|				.state(<jsf>NY</jsf>)
-		|				.zip(12345)
-		|				.isCurrent(<jk>true</jk>);
-		|		);
-	</p>
-	<h5 class='figure'>Normal XML:</h5>
-	<p class='bxml'>
-		|	<xt>&lt;person&gt;</xt>
-		|		<xt>&lt;name&gt;</xt>John Smith<xt>&lt;/name&gt;</xt>
-		|		<xt>&lt;birthDate&gt;</xt>1946-08-12T04:00:00Z<xt>&lt;/birthDate&gt;</xt>
-		|		<xt>&lt;addresses&gt;</xt>
-		|			<xt>&lt;address&gt;</xt>
-		|				<xt>&lt;street&gt;</xt>100 Main Street<xt>&lt;/street&gt;</xt>
-		|				<xt>&lt;city&gt;</xt>Anywhereville<xt>&lt;/city&gt;</xt>
-		|				<xt>&lt;state&gt;</xt>NY<xt>&lt;/state&gt;</xt>
-		|				<xt>&lt;zip&gt;</xt>12345<xt>&lt;/zip&gt;</xt>
-		|				<xt>&lt;isCurrent&gt;</xt>true<xt>&lt;/isCurrent&gt;</xt>
-		|			<xt>&lt;/address&gt;</xt>
-		|		<xt>&lt;/addresses&gt;</xt>
-		|	<xt>&lt;/person&gt;</xt>
-	</p>
-	<p>
-		Juneau produces JSON-equivalent XML, meaning any valid JSON document can be losslessly converted into an XML 
-		equivalent.
-		In fact, all of the Juneau serializers and parsers are built upon this JSON-equivalence.
-	</p>
-</div>
\ No newline at end of file
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/29.jm.HtmlDetails.html b/juneau-doc/docs/Topics/02.juneau-marshall/29.jm.HtmlDetails.html
deleted file mode 100644
index 83b1e4624..000000000
--- a/juneau-doc/docs/Topics/02.juneau-marshall/29.jm.HtmlDetails.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!--
-/***************************************************************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *  
- *  http://www.apache.org/licenses/LICENSE-2.0
- *  
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations under the License.
- ***************************************************************************************************************************/
- -->
-
-{title:'HTML Details'}
-
-<div class='topic'>
-	<p>
-		Juneau supports converting arbitrary POJOs to and from HTML.
-		Built on top of the existing XML parser, it also uses a STaX parser and creates POJOs directly without intermediate DOM objects.
-	</p>
-	<p>
-		The primary use case for HTML serialization is rendering POJOs in easy-to-read format in REST interfaces.
-	</p>		
-</div>
\ No newline at end of file
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/30.jm.HtmlSchema.html b/juneau-doc/docs/Topics/02.juneau-marshall/30.jm.HtmlSchema.html
deleted file mode 100644
index 4c3f82a85..000000000
--- a/juneau-doc/docs/Topics/02.juneau-marshall/30.jm.HtmlSchema.html
+++ /dev/null
@@ -1,197 +0,0 @@
-<!--
-/***************************************************************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *  
- *  http://www.apache.org/licenses/LICENSE-2.0
- *  
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations under the License.
- ***************************************************************************************************************************/
- -->
-
-{title:'HTML-Schema Support'}
-
-<div class='topic'>
-	<p>
-		The {@link oaj.html.HtmlSchemaSerializer} class is the HTML-equivalent to the
-		{@link oaj.json.JsonSchemaSerializer} class.
-		It's used to generate HTML versions of JSON-Schema documents that describe the output generated by the 
-		{@link oaj.json.JsonSerializer} class.
-	</p>
-	<h5 class='figure'>Sample Beans</h5>
-	<p class='bjava'>
-		|	<jk>public class</jk> Person {
-		|		
-		|		<jc>// Bean properties</jc>
-		|		<jk>public</jk> String <jf>name</jf>;
-		|		<jk>public</jk> Calendar <jf>birthDate</jf>;
-		|		<jk>public</jk> List&lt;Address&gt; <jf>addresses</jf>; 
-		|	
-		|		<jc>// Getters/setters omitted</jc>
-		|	}
-		|	
-		|	<jk>public class</jk> Address {
-		|
-		|		<jc>// Bean properties</jc>
-		|		<jk>public</jk> String <jf>street</jf>, <jf>city</jf>;
-		|		<jk>public</jk> StateEnum <jf>state</jf>;
-		|		<jk>public int</jk> <jf>zip</jf>;
-		|		<jk>public boolean</jk> <jf>isCurrent</jf>;
-		|
-		|		<jc>// Getters/setters omitted</jc>
-		|	}	
-	</p>
-	<p>
-		The code for creating our POJO model and generating HTML-Schema is shown below:
-	</p>
-	<p class='bjava'>
-		|	<jc>// Get the one of the default schema serializers.</jc>
-		|	HtmlSchemaSerializer <jv>serializer</jv> = HtmlSchemaSerializer.<jsf>DEFAULT_SIMPLE_READABLE</jsf>;
-		|	
-		|	<jc>// Get the HTML Schema for the POJO.</jc>
-		|	String <jv>htmlSchema</jv> = <jv>serializer</jv>.serialize(<jk>new</jk> Person());
-		|
-		|	<jc>// This also works.</jc>
-		|	<jv>htmlSchema</jv> = <jv>serializer</jv>.serialize(Person.<jk>class</jk>);
-	</p>
-	<p>
-		The result is the HTML table shown below:
-	</p>
-	<table class='bordered unstyled w800'>
-		<tr>
-			<td>type</td>
-			<td>object</td>
-		</tr>
-		<tr>
-			<td>properties</td>
-			<td>
-				<table>
-					<tr>
-						<td>name</td>
-						<td>
-							<table>
-								<tr>
-									<td>type</td>
-									<td>string</td>
-								</tr>
-							</table>
-						</td>
-					</tr>
-					<tr>
-						<td>birthDate</td>
-						<td>
-							<table>
-								<tr>
-									<td>type</td>
-									<td>string</td>
-								</tr>
-							</table>
-						</td>
-					</tr>
-					<tr>
-						<td>addresses</td>
-						<td>
-							<table>
-								<tr>
-									<td>type</td>
-									<td>array</td>
-								</tr>
-								<tr>
-									<td>items</td>
-									<td>
-										<table>
-											<tr>
-												<td>type</td>
-												<td>object</td>
-											</tr>
-											<tr>
-												<td>properties</td>
-												<td>
-													<table>
-														<tr>
-															<td>street</td>
-															<td>
-																<table>
-																	<tr>
-																		<td>type</td>
-																		<td>string</td>
-																	</tr>
-																</table>
-															</td>
-														</tr>
-														<tr>
-															<td>city</td>
-															<td>
-																<table>
-																	<tr>
-																		<td>type</td>
-																		<td>string</td>
-																	</tr>
-																</table>
-															</td>
-														</tr>
-														<tr>
-															<td>state</td>
-															<td>
-																<table>
-																	<tr>
-																		<td>type</td>
-																		<td>string</td>
-																	</tr>
-																	<tr>
-																		<td>enum</td>
-																		<td>
-																			<ul>
-																				<li>AL</li>
-																				<li>PA</li>
-																				<li>NC</li>
-																			</ul>
-																		</td>
-																	</tr>
-																</table>
-															</td>
-														</tr>
-														<tr>
-															<td>zip</td>
-															<td>
-																<table>
-																	<tr>
-																		<td>type</td>
-																		<td>integer</td>
-																	</tr>
-																	<tr>
-																		<td>format</td>
-																		<td>int32</td>
-																	</tr>
-																</table>
-															</td>
-														</tr>
-														<tr>
-															<td>isCurrent</td>
-															<td>
-																<table>
-																	<tr>
-																		<td>type</td>
-																		<td>boolean</td>
-																	</tr>
-																</table>
-															</td>
-														</tr>
-													</table>
-												</td>
-											</tr>
-										</table>
-									</td>
-								</tr>
-							</table>
-						</td>
-					</tr>
-				</table>
-			</td>
-		</tr>
-	</table>
-</div>
\ No newline at end of file
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/31.jm.UonDetails.html b/juneau-doc/docs/Topics/02.juneau-marshall/31.jm.UonDetails.html
deleted file mode 100644
index 292060c0e..000000000
--- a/juneau-doc/docs/Topics/02.juneau-marshall/31.jm.UonDetails.html
+++ /dev/null
@@ -1,87 +0,0 @@
-<!--
-/***************************************************************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *  
- *  http://www.apache.org/licenses/LICENSE-2.0
- *  
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations under the License.
- ***************************************************************************************************************************/
- -->
-
-{title:'UON Details'}
-
-<div class='topic'>
-	<p>
-		Juneau supports converting arbitrary POJOs to and from UON strings using ultra-efficient serializers 
-		and parsers.
-		The serializer converts POJOs directly to UON strings without the need for intermediate DOM objects 
-		using a highly-efficient state machine.
-		Likewise, the parser creates POJOs directly from UON strings without the need for intermediate DOM 
-		objects. 
-	</p>
-	<p>
-		Juneau uses UON (URL-Encoded Object Notation) for representing POJOs.  
-		The UON specification can be found <a href='doc-files/rfc_uon.txt'>here</a>.
-	</p>
-	<p>
-		The following example shows JSON for a typical bean:
-	</p>
-	<h5 class='figure'>Sample Beans</h5>
-	<p class='bjava'>
-		|	<jk>public class</jk> Person {
-		|		
-		|		<jc>// Bean properties</jc>
-		|		<jk>public</jk> String <jf>name</jf>;
-		|		<ja>@Swap</ja>(TemporalCalendarSwap.IsoInstant.<jk>class</jk>) <jk>public</jk> Calendar <jf>birthDate</jf>;
-		|		<jk>public</jk> List&lt;Address&gt; <jf>addresses</jf>; 
-		|	
-		|		<jc>// Getters/setters omitted</jc>
-		|	}
-		|	
-		|	<jk>public class</jk> Address {
-		|
-		|		<jc>// Bean properties</jc>
-		|		<jk>public</jk> String <jf>street</jf>, <jf>city</jf>;
-		|		<jk>public</jk> StateEnum <jf>state</jf>;
-		|		<jk>public int</jk> <jf>zip</jf>;
-		|		<jk>public boolean</jk> <jf>isCurrent</jf>;
-		|
-		|		<jc>// Getters/setters omitted</jc>
-		|	}	
-	</p>
-	<h5 class='figure'>Sample Code</h5>
-	<p class='bjava'>
-		|	Person <jv>person</jv> = <jk>new</jk> Person()
-		|		.name(<js>"John Smith"</js>)
-		|		.birthDate(<js>"1946-08-12T00:00:00Z"</js>)
-		|		.addresses(
-		|			<jk>new</jk> Address() 
-		|				.street(<js>"100 Main Street"</js>)
-		|				.city(<js>"Anywhereville"</js>)
-		|				.state(<jsf>NY</jsf>)
-		|				.zip(12345)
-		|				.isCurrent(<jk>true</jk>);
-		|		);
-	</p>
-	<h5 class='figure'>UON</h5>
-	<p class='buon'>
-		|	(
-		|		<ua>name</ua>=<us>'John+Smith'</us>,
-		|		<ua>birthDate</ua>=<us>'1946-08-12T00:00:00Z'</us>,
-		|		<ua>addresses</ua>=@(
-		|			(
-		|				<ua>street</ua>=<us>'100 Main Street'</us>,
-		|				<ua>city</ua>=<us>Anywhereville</us>,
-		|				<ua>state</ua>=<us>NY</us>,
-		|				<ua>zip</ua>=<un>12345</un>,
-		|				<ua>isCurrent</ua>=<uk>true</uk>
-		|			)
-		|		)
-		|	) 
-	</p>
-</div>
\ No newline at end of file
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/32.jm.UrlEncodingDetails.html b/juneau-doc/docs/Topics/02.juneau-marshall/32.jm.UrlEncodingDetails.html
deleted file mode 100644
index a6c7a9f42..000000000
--- a/juneau-doc/docs/Topics/02.juneau-marshall/32.jm.UrlEncodingDetails.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<!--
-/***************************************************************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *  
- *  http://www.apache.org/licenses/LICENSE-2.0
- *  
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations under the License.
- ***************************************************************************************************************************/
- -->
-
-{title:'URL-Encoding Details'}
-
-<div class='topic'>
-	<p>
-		Juneau supports converting arbitrary POJOs to and from URL-encoded strings using ultra-efficient serializers 
-		and parsers.
-		The serializer converts POJOs directly to URL-encoded strings without the need for intermediate DOM objects 
-		using a highly-efficient state machine.
-		Likewise, the parser creates POJOs directly from URL-encoded strings without the need for intermediate DOM 
-		objects. 
-	</p>
-	<p>
-		Juneau uses UON (URL-Encoded Object Notation) for representing POJOs as URL-Encoded values in key-value pairs.  
-		The UON specification can be found <a href='doc-files/rfc_uon.txt'>here</a>.
-	</p>
-	<p>
-		The following example shows JSON for a typical bean:
-	</p>
-	<h5 class='figure'>Sample Beans</h5>
-	<p class='bjava'>
-		|	<jk>public class</jk> Person {
-		|		
-		|		<jc>// Bean properties</jc>
-		|		<jk>public</jk> String <jf>name</jf>;
-		|		<ja>@Swap</ja>(TemporalCalendarSwap.IsoInstant.<jk>class</jk>) <jk>public</jk> Calendar <jf>birthDate</jf>;
-		|		<jk>public</jk> List&lt;Address&gt; <jf>addresses</jf>; 
-		|	
-		|		<jc>// Getters/setters omitted</jc>
-		|	}
-		|	
-		|	<jk>public class</jk> Address {
-		|
-		|		<jc>// Bean properties</jc>
-		|		<jk>public</jk> String <jf>street</jf>, <jf>city</jf>;
-		|		<jk>public</jk> StateEnum <jf>state</jf>;
-		|		<jk>public int</jk> <jf>zip</jf>;
-		|		<jk>public boolean</jk> <jf>isCurrent</jf>;
-		|
-		|		<jc>// Getters/setters omitted</jc>
-		|	}	
-	</p>
-	<h5 class='figure'>Sample Code</h5>
-	<p class='bjava'>
-		|	Person <jv>person</jv> = <jk>new</jk> Person()
-		|		.name(<js>"John Smith"</js>)
-		|		.birthDate(<js>"1946-08-12T00:00:00Z"</js>)
-		|		.addresses(
-		|			<jk>new</jk> Address() 
-		|				.street(<js>"100 Main Street"</js>)
-		|				.city(<js>"Anywhereville"</js>)
-		|				.state(<jsf>NY</jsf>)
-		|				.zip(12345)
-		|				.isCurrent(<jk>true</jk>);
-		|		);
-	</p>
-	<h5 class='figure'>URL-Encoding</h5>
-	<p class='burlenc'>
-		|	<ua>name</ua>=<us>'John+Smith'</us>
-		|	&amp;<ua>birthDate</ua>=<us>'1946-08-12T00:00:00Z'</us>
-		|	&amp;<ua>addresses</ua>=@(
-		|		(
-		|			<ua>street</ua>=<us>'100 Main Street'</us>,
-		|			<ua>city</ua>=<us>Anywhereville</us>,
-		|			<ua>state</ua>=<us>NY</us>,
-		|			<ua>zip</ua>=<un>12345</un>,
-		|			<ua>isCurrent</ua>=<uk>true</uk>
-		|		)
-		|	)
-	</p>
-</div>
\ No newline at end of file
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/33.jm.MsgPackDetails.html b/juneau-doc/docs/Topics/02.juneau-marshall/33.jm.MsgPackDetails.html
deleted file mode 100644
index a185395c8..000000000
--- a/juneau-doc/docs/Topics/02.juneau-marshall/33.jm.MsgPackDetails.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!--
-/***************************************************************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *  
- *  http://www.apache.org/licenses/LICENSE-2.0
- *  
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations under the License.
- ***************************************************************************************************************************/
- -->
-
-{title:'MessagePack Details'}
-
-<div class='topic'>
-	<p>
-		Juneau supports converting arbitrary POJOs to and from MessagePack using ultra-efficient serializers 
-		and parsers.
-	</p>
-	<p>
-		MessagePack is a compact binary form of JSON.
-		The serialization support for MessagePack mirrors that of JSON.
-	</p>
-</div>
\ No newline at end of file
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/34.jm.OpenApiDetails.html b/juneau-doc/docs/Topics/02.juneau-marshall/34.jm.OpenApiDetails.html
deleted file mode 100644
index ba5e40e6c..000000000
--- a/juneau-doc/docs/Topics/02.juneau-marshall/34.jm.OpenApiDetails.html
+++ /dev/null
@@ -1,49 +0,0 @@
-<!--
-/***************************************************************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *  
- *  http://www.apache.org/licenses/LICENSE-2.0
- *  
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations under the License.
- ***************************************************************************************************************************/
- -->
-
-{title:'OpenAPI Details', updated:'8.2.0'} 
-
-<div class='topic'>
-	<p>
-		Juneau supports converting arbitrary POJOs to and from strings using OpenAPI-based schema rules. 
-	</p>
-	<p>
-		The relevant classes for using OpenAPI-based serialization are:
-	</p>
-	<ul class='javatree'>
-		<li class='jc'>{@link oaj.oapi.OpenApiSerializer} - Converts POJOs to strings.
-		<li class='jc'>{@link oaj.oapi.OpenApiParser} - Converts strings to POJOs.
-		<li class='jc'>{@link oaj.httppart.HttpPartSchema} - Defines the schema for your POJO.
-	</ul>
-	<p>
-		The {@link oaj.httppart.HttpPartSchema} class is used to define the formatting and 
-		validations for a POJO.
-		It's used in conjunction with the serializer and parser to produce and consume HTTP parts based on 
-		OpenAPI rules.
-	</p>
-	<p>
-		Later in the rest-server and rest-client sections, we also describe how the following annotations
-		can be applied to method parameters and class types to define the schema for various HTTP parts:
-	</p>
-	<ul class='javatreec'>
-		<li class='ja'>{@link oaj.http.annotation.Content}
-		<li class='ja'>{@link oaj.http.annotation.Header}
-		<li class='ja'>{@link oaj.http.annotation.Query}
-		<li class='ja'>{@link oaj.http.annotation.FormData}
-		<li class='ja'>{@link oaj.http.annotation.Path}
-		<li class='ja'>{@link oaj.http.annotation.Response}
-		<li class='ja'>{@link oaj.http.annotation.ResponseHeader}
-	</ul>
-</div>
\ No newline at end of file
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/35.jm.BestPractices.html b/juneau-doc/docs/Topics/02.juneau-marshall/35.jm.BestPractices.html
deleted file mode 100644
index 197a07bf4..000000000
--- a/juneau-doc/docs/Topics/02.juneau-marshall/35.jm.BestPractices.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<!--
-/***************************************************************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *  
- *  http://www.apache.org/licenses/LICENSE-2.0
- *  
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations under the License.
- ***************************************************************************************************************************/
- -->
-
-{title:'Best Practices'}
-
-<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 oaj.BeanTraverseContext.Builder#detectRecursions()} 
-			option can cause a performance penalty of 
-			around 20%.  
-			<br>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.
-			<br>MessagePack is fastest and most compact of all.
-		<li>
-			The RDF parsers are SLOW.
-			<br>RDF simply isn't efficient with node traversal, so creating tree structures out of RDF models
-			is highly inefficient.  	
-		<li>
-			The {@link oaj.parser.Parser} methods that take in {@link oaj.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 oaj.ClassMeta} parameters.
-	</ol>
-</div>
\ No newline at end of file
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/24.jm.HttpParts.html b/juneau-doc/docs/Topics/06.juneau-rest-common.html
similarity index 77%
rename from juneau-doc/docs/Topics/02.juneau-marshall/24.jm.HttpParts.html
rename to juneau-doc/docs/Topics/06.juneau-rest-common.html
index 965fc17e4..6901955de 100644
--- a/juneau-doc/docs/Topics/02.juneau-marshall/24.jm.HttpParts.html
+++ b/juneau-doc/docs/Topics/06.juneau-rest-common.html
@@ -13,9 +13,28 @@
  ***************************************************************************************************************************/
  -->
 
-{title:'HTTP Parts', created:'9.0.0'}
+{title:'juneau-rest-common', created:'9.0.0'}
 
 <div class='topic'>
+	<h5 class='figure'>Maven Dependency</h5>
+	<p class='bxml w500'>
+		|	<xt>&lt;dependency&gt;</xt>
+		|		<xt>&lt;groupId&gt;</xt>org.apache.juneau<xt>&lt;/groupId&gt;</xt>
+		|		<xt>&lt;artifactId&gt;</xt>juneau-rest-common<xt>&lt;/artifactId&gt;</xt>
+		|		<xt>&lt;version&gt;</xt>{@property juneauVersion}<xt>&lt;/version&gt;</xt>
+		|	<xt>&lt;/dependency&gt;</xt>
+	</p>	
+	
+	<h5 class='figure'>Java Library</h5>
+	<p class='bcode w500'>
+		|	juneau-rest-common-{@property juneauVersion}.jar 
+	</p>	
+	
+	<h5 class='figure'>OSGi Module</h5>
+	<p class='bcode w500'>
+		|	org.apache.juneau.rest.common_{@property juneauVersion}.jar 
+	</p>	
+	
 	<p>
 		The {@link oaj.http} package contains a slew of useful extensions to the Apache HttpComponents libraries
 		and define APIs used extensively in the REST server and client APIs.
@@ -37,6 +56,4 @@
 		of the classes defined in this package make up integral components of that API.  Likewise, the APIs
 		defined here are also used in the REST Server APIs also described later.
 	</p>
-	
-	
 </div>
\ No newline at end of file
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/24.jm.HttpParts/01.jm.org.apache.juneau.http.html b/juneau-doc/docs/Topics/06.juneau-rest-common/01.jrc.org.apache.juneau.http.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/24.jm.HttpParts/01.jm.org.apache.juneau.http.html
rename to juneau-doc/docs/Topics/06.juneau-rest-common/01.jrc.org.apache.juneau.http.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/24.jm.HttpParts/02.jm.org.apache.juneau.http.annotation.html b/juneau-doc/docs/Topics/06.juneau-rest-common/02.jrc.org.apache.juneau.http.annotation.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/24.jm.HttpParts/02.jm.org.apache.juneau.http.annotation.html
rename to juneau-doc/docs/Topics/06.juneau-rest-common/02.jrc.org.apache.juneau.http.annotation.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/24.jm.HttpParts/03.jm.org.apache.juneau.http.header.html b/juneau-doc/docs/Topics/06.juneau-rest-common/03.jrc.org.apache.juneau.http.header.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/24.jm.HttpParts/03.jm.org.apache.juneau.http.header.html
rename to juneau-doc/docs/Topics/06.juneau-rest-common/03.jrc.org.apache.juneau.http.header.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/24.jm.HttpParts/04.jm.org.apache.juneau.http.part.html b/juneau-doc/docs/Topics/06.juneau-rest-common/04.jrc.org.apache.juneau.http.part.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/24.jm.HttpParts/04.jm.org.apache.juneau.http.part.html
rename to juneau-doc/docs/Topics/06.juneau-rest-common/04.jrc.org.apache.juneau.http.part.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/24.jm.HttpParts/05.jm.org.apache.juneau.http.entity.html b/juneau-doc/docs/Topics/06.juneau-rest-common/05.jrc.org.apache.juneau.http.entity.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/24.jm.HttpParts/05.jm.org.apache.juneau.http.entity.html
rename to juneau-doc/docs/Topics/06.juneau-rest-common/05.jrc.org.apache.juneau.http.entity.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/24.jm.HttpParts/06.jm.org.apache.juneau.http.resource.html b/juneau-doc/docs/Topics/06.juneau-rest-common/06.jrc.org.apache.juneau.http.resource.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/24.jm.HttpParts/06.jm.org.apache.juneau.http.resource.html
rename to juneau-doc/docs/Topics/06.juneau-rest-common/06.jrc.org.apache.juneau.http.resource.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/24.jm.HttpParts/07.jm.org.apache.juneau.http.response.html b/juneau-doc/docs/Topics/06.juneau-rest-common/07.jrc.org.apache.juneau.http.response.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/24.jm.HttpParts/07.jm.org.apache.juneau.http.response.html
rename to juneau-doc/docs/Topics/06.juneau-rest-common/07.jrc.org.apache.juneau.http.response.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/24.jm.HttpParts/08.jm.org.apache.juneau.http.remote.html b/juneau-doc/docs/Topics/06.juneau-rest-common/08.jrc.org.apache.juneau.http.remote.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/24.jm.HttpParts/08.jm.org.apache.juneau.http.remote.html
rename to juneau-doc/docs/Topics/06.juneau-rest-common/08.jrc.org.apache.juneau.http.remote.html
diff --git a/juneau-doc/docs/Topics/06.juneau-rest-server.html b/juneau-doc/docs/Topics/06.juneau-rest-server.html
deleted file mode 100644
index 653a14e99..000000000
--- a/juneau-doc/docs/Topics/06.juneau-rest-server.html
+++ /dev/null
@@ -1,133 +0,0 @@
-<!--
-/***************************************************************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *  
- *  http://www.apache.org/licenses/LICENSE-2.0
- *  
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations under the License.
- ***************************************************************************************************************************/
- -->
-
-{title:'juneau-rest-server', updated:'9.0.0'}
-
-<div class='topic'>
-	<h5 class='figure'>Maven Dependency</h5>
-	<p class='bxml w500'>
-		|	<xt>&lt;dependency&gt;</xt>
-		|		<xt>&lt;groupId&gt;</xt>org.apache.juneau<xt>&lt;/groupId&gt;</xt>
-		|		<xt>&lt;artifactId&gt;</xt>juneau-rest-server<xt>&lt;/artifactId&gt;</xt>
-		|		<xt>&lt;version&gt;</xt>{@property juneauVersion}<xt>&lt;/version&gt;</xt>
-		|	<xt>&lt;/dependency&gt;</xt>
-	</p>	
-	
-	<h5 class='figure'>Java Library</h5>
-	<p class='bcode w500'>
-		|	juneau-rest-server-{@property juneauVersion}.jar 
-	</p>	
-	
-	<h5 class='figure'>OSGi Module</h5>
-	<p class='bcode w500'>
-		|	org.apache.juneau.rest.server_{@property juneauVersion}.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.
-		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.  
-		The developer can work entirely with POJOs and let the Juneau framework handle all the serialization and 
-		parsing work.  
-		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.  
-		The root class, {@link oajr.servlet.RestServlet} is nothing but a specialized 
-		{@link javax.servlet.http.HttpServlet}, and the {@link oajr.RestRequest} and 
-		{@link oajr.RestResponse} classes are nothing more than specialized 
-		{@link javax.servlet.http.HttpServletRequest} and {@link javax.servlet.http.HttpServletResponse} objects.  
-		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.	
-		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>
-			Deployable in standard Servlet containers.
-		<li>
-			Deployable in Spring Boot environments with full support for injected beans.
-		<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>
-			Support for parsing all HTTP parts (headers, query, formData, path variables) using Swagger formatting rules and validations.
-			<br>Not limited to simple POJOs, but rather you can represent arbitrarily-complex POJOs in any HTTP part using UON notation.
-		<li>
-			Auto-created Swagger JSON and Swagger UI available through OPTIONS requests of resources.
-		<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>
-</div>
\ No newline at end of file
diff --git a/juneau-doc/docs/Topics/07.juneau-rest-server-rdf.html b/juneau-doc/docs/Topics/07.juneau-rest-server-rdf.html
deleted file mode 100644
index 4151d059d..000000000
--- a/juneau-doc/docs/Topics/07.juneau-rest-server-rdf.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!--
-/***************************************************************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *  
- *  http://www.apache.org/licenses/LICENSE-2.0
- *  
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations under the License.
- ***************************************************************************************************************************/
- -->
-
-{title:'juneau-rest-server-rdf'}
-
-<div class='topic'>
-	<h5 class='figure'>Maven Dependency</h5>
-	<p class='bxml w500'>
-		|	<xt>&lt;dependency&gt;</xt>
-		|		<xt>&lt;groupId&gt;</xt>org.apache.juneau<xt>&lt;/groupId&gt;</xt>
-		|		<xt>&lt;artifactId&gt;</xt>juneau-rest-server-jaxrs<xt>&lt;/artifactId&gt;</xt>
-		|		<xt>&lt;version&gt;</xt>{@property juneauVersion}<xt>&lt;/version&gt;</xt>
-		|	<xt>&lt;/dependency&gt;</xt>
-	</p>	
-	
-	<h5 class='figure'>Java Library</h5>
-	<p class='bcode w500'>
-		|	juneau-rest-server-jaxrs-{@property juneauVersion}.jar 
-	</p>	
-	
-	<h5 class='figure'>OSGi Module</h5>
-	<p class='bcode w500'>
-		|	org.apache.juneau.rest.server_{@property juneauVersion}.jar 
-	</p>	
-	
-	<p>
-		The <c>juneau-rest-server-jaxrs</c> library provides an implementation of a <c>MessageBodyReader</c>
-		and <c>MessageBodyWriter</c> to allow any of the Juneau serializers and parsers to be used in a 
-		JAX/RS environment. 
-	</p>
-</div>
\ No newline at end of file
diff --git a/juneau-doc/docs/Topics/08.juneau-rest-server-jaxrs.html b/juneau-doc/docs/Topics/08.juneau-rest-server-jaxrs.html
deleted file mode 100644
index 82edc8e11..000000000
--- a/juneau-doc/docs/Topics/08.juneau-rest-server-jaxrs.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!--
-/***************************************************************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *  
- *  http://www.apache.org/licenses/LICENSE-2.0
- *  
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations under the License.
- ***************************************************************************************************************************/
- -->
-
-{title:'juneau-rest-server-jaxrs'}
-
-<div class='topic'>
-	<h5 class='figure'>Maven Dependency</h5>
-	<p class='bxml w500'>
-		|	<xt>&lt;dependency&gt;</xt>
-		|		<xt>&lt;groupId&gt;</xt>org.apache.juneau<xt>&lt;/groupId&gt;</xt>
-		|		<xt>&lt;artifactId&gt;</xt>juneau-rest-server-jaxrs<xt>&lt;/artifactId&gt;</xt>
-		|		<xt>&lt;version&gt;</xt>{@property juneauVersion}<xt>&lt;/version&gt;</xt>
-		|	<xt>&lt;/dependency&gt;</xt>
-	</p>	
-	
-	<h5 class='figure'>Java Library</h5>
-	<p class='bcode w500'>
-		|	juneau-rest-server-jaxrs-{@property juneauVersion}.jar 
-	</p>	
-	
-	<h5 class='figure'>OSGi Module</h5>
-	<p class='bcode w500'>
-		|	org.apache.juneau.rest.server_{@property juneauVersion}.jar 
-	</p>	
-	
-	<p>
-		The <c>juneau-rest-server-jaxrs</c> library provides an implementation of a <c>MessageBodyReader</c>
-		and <c>MessageBodyWriter</c> to allow any of the Juneau serializers and parsers to be used in a 
-		JAX/RS environment. 
-	</p>
-</div>
\ No newline at end of file
diff --git a/juneau-doc/docs/Topics/09.juneau-rest-server-springboot.html b/juneau-doc/docs/Topics/09.juneau-rest-server-springboot.html
deleted file mode 100644
index 54414380e..000000000
--- a/juneau-doc/docs/Topics/09.juneau-rest-server-springboot.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<!--
-/***************************************************************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *  
- *  http://www.apache.org/licenses/LICENSE-2.0
- *  
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations under the License.
- ***************************************************************************************************************************/
- -->
-
-{title:'juneau-rest-server-springboot', created:'8.0.0', updated:'9.0.0'}
-
-<div class='topic'>
-	<h5 class='figure'>Maven Dependency</h5>
-	<p class='bxml w500'>
-		|	<xt>&lt;dependency&gt;</xt>
-		|		<xt>&lt;groupId&gt;</xt>org.apache.juneau<xt>&lt;/groupId&gt;</xt>
-		|		<xt>&lt;artifactId&gt;</xt>juneau-rest-server-springboot<xt>&lt;/artifactId&gt;</xt>
-		|		<xt>&lt;version&gt;</xt>{@property juneauVersion}<xt>&lt;/version&gt;</xt>
-		|	<xt>&lt;/dependency&gt;</xt>
-	</p>	
-	
-	<h5 class='figure'>Java Library</h5>
-	<p class='bcode w500'>
-		|	juneau-rest-server-springboot-{@property juneauVersion}.jar 
-	</p>	
-	
-	<h5 class='figure'>OSGi Module</h5>
-	<p class='bcode w500'>
-		|	org.apache.juneau.rest.server.springboot_{@property juneauVersion}.jar 
-	</p>	
-	
-	<p>
-		The <c>juneau-rest-server-springboot</c> library provides classes to make it easy to integrate
-		Juneau REST resources with Spring and Spring Boot.
-	</p>
-</div>
\ No newline at end of file
diff --git a/juneau-doc/docs/Topics/10.juneau-rest-client.html b/juneau-doc/docs/Topics/10.juneau-rest-client.html
deleted file mode 100644
index cbb24575b..000000000
--- a/juneau-doc/docs/Topics/10.juneau-rest-client.html
+++ /dev/null
@@ -1,181 +0,0 @@
-<!--
-/***************************************************************************************************************************
-Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
- 
- http://www.apache.org/licenses/LICENSE-2.0
- 
-Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations under the License.
- ***************************************************************************************************************************/
- -->
-
-{title:'juneau-rest-client', updated:'8.2.0', updated:'9.0.0'}
-
-<div class='topic'>
-	<h5 class='figure'>Maven Dependency</h5>
-	<p class='bxml w500'>
-		|	<xt>&lt;dependency&gt;</xt>
-		|		<xt>&lt;groupId&gt;</xt>org.apache.juneau<xt>&lt;/groupId&gt;</xt>
-		|		<xt>&lt;artifactId&gt;</xt>juneau-rest-client<xt>&lt;/artifactId&gt;</xt>
-		|		<xt>&lt;version&gt;</xt>{@property juneauVersion}<xt>&lt;/version&gt;</xt>
-		|	<xt>&lt;/dependency&gt;</xt>
-	</p>	
-	
-	<h5 class='figure'>Java Library</h5>
-	<p class='bcode w500'>
-		|	juneau-rest-client-{@property juneauVersion}.jar 
-	</p>	
-	
-	<h5 class='figure'>OSGi Module</h5>
-	<p class='bcode w500'>
-		|	org.apache.juneau.rest.client_{@property juneauVersion}.jar 
-	</p>	
-	
-	<p>
-		Built upon the feature-rich Apache HttpClient library, the Juneau RestClient API adds support for fluent-style
-		REST calls and the ability to perform marshalling of POJOs to and from HTTP parts.
-	</p>
-	
-	<h5 class='figure'>Example:</h5>
-	<p class='bjava'>
-		|	<jc>// Create a basic REST client with JSON support and download a bean.</jc>
-		|	MyBean <jv>bean</jv> = RestClient.<jsm>create</jsm>()
-		|		.simpleJson()
-		|		.build()
-		|		.get(<jsf>URI</jsf>)
-		|		.run()
-		|		.assertStatus().asCode().is(200)
-		|		.assertHeader(<js>"Content-Type"</js>).matchesSimple(<js>"application/json*"</js>)
-		|		.getContent().as(MyBean.<jk>class</jk>);
-	</p>
-	
-	<p>
-		Breaking apart the fluent call, we can see the classes being used:
-	</p>
-	
-	<p class='bjava'>
-		|	RestClient.Builder <jv>builder</jv> = RestClient.<jsm>create</jsm>().simpleJson();
-		|	RestClient <jv>client</jv> = <jv>builder</jv>.build();
-		|	RestRequest <jv>req</jv> = <jv>client</jv>.get(<jsf>URI</jsf>);
-		|	RestResponse <jv>res</jv> = <jv>req</jv>.run();
-		|	RestResponseStatusLineAssertion <jv>statusLineAssertion</jv> = <jv>res</jv>.assertStatus();
-		|	FluentIntegerAssertion&lt;RestResponse&gt; <jv>codeAssertion</jv> = <jv>statusLineAssertion</jv>.asCode();
-		|	<jv>res</jv> = <jv>codeAssertion</jv>.is(200);
-		|	FluentStringAssertion&lt;RestResponse&gt; <jv>headerAssertion</jv> = <jv>res</jv>.assertHeader(<js>"Content-Type"</js>);
-		|	<jv>res</jv> = <jv>headerAssertion</jv>.matchesSimple(<js>"application/json*"</js>);
-		|	ResponseContent <jv>content</jv> = <jv>res</jv>.getContent();
-		|	MyBean <jv>bean</jv> = <jv>content</jv>.as(MyBean.<jk>class</jk>);
-	</p>
-	
-	<p>
-		It additionally provides support for creating remote proxy interfaces using REST as the transport medium.
-	</p>
-	
-	<h5 class='figure'>Example:</h5>
-	<p class='bjava'>
-		|	<jc>// Define a Remote proxy for interacting with a REST interface.</jc>
-		|	<ja>@Remote</ja>(path=<js>"/petstore"</js>)
-		|	<jk>public interface</jk> PetStore {
-		|	
-		|		<ja>@RemotePost</ja>(<js>"/pets"</js>)
-		|		Pet addPet(
-		|			<ja>@Content</ja> CreatePet <jv>pet</jv>,
-		|			<ja>@Header</ja>(<js>"E-Tag"</js>) UUID <jv>etag</jv>,
-		|			<ja>@Query</ja>(<js>"debug"</js>) <jk>boolean</jk> <jv>debug</jv>
-		|		);
-		|	}
-		|
-		|	PetStore <jv>store</jv> = RestClient
-		|		.<jsm>create</jsm>()
-		|		.simpleJson()
-		|		.build()
-		|		.getRemote(PetStore.<jk>class</jk>, <js>"http://localhost:10000"</js>);
-		|	CreatePet <jv>createPet</jv> = <jk>new</jk> CreatePet(<js>"Fluffy"</js>, 9.99);
-		|	Pet <jv>pet</jv> = <jv>store</jv>.addPet(<jv>createPet</jv>, UUID.<jsm>randomUUID</jsm>(), <jk>true</jk>);
-	</p>
-	
-	<p>
-		The classes are closely tied to Apache HttpClient, yet provide lots of additional functionality:
-	</p>
-	<ul class='javatree'>
-		<li class='jc'>{@link oajrc.RestClient} <jk>implements</jk> {@link org.apache.http.client.HttpClient}, creates {@link oajrc.RestRequest} objects.
-		<li class='jc'>{@link oajrc.RestRequest} <jk>implements</jk> {@link org.apache.http.client.methods.HttpUriRequest}, creates {@link oajrc.RestResponse} objects.
-		<li class='jc'>{@link oajrc.RestResponse} <jk>implements</jk> {@link org.apache.http.HttpResponse}, creates {@link oajrc.ResponseContent} and {@link oajrc.ResponseHeader} objects.
-		<li class='jc'>{@link oajrc.ResponseContent} <jk>implements</jk> {@link org.apache.http.HttpEntity}
-	</ul>
-	
-	<p>
-		Instances of this class are built using the {@link oajrc.RestClient.Builder} class which can be constructed using
-		the {@link oajrc.RestClient#create() RestClient.create()} method as shown above.
-	</p>
-	<p>
-		Clients are typically created with a root URI so that relative URIs can be used when making requests.
-		This is done using the {@link oajrc.RestClient.Builder#rootUri(Object)} method.
-	</p>
-	
-	<h5 class='figure'>Example:</h5>
-	<p class='bjava'>
-		|	<jc>// Create a client where all URIs are relative to localhost.</jc>
-		|	RestClient <jv>client</jv> = RestClient.<jsm>create</jsm>().json().rootUri(<js>"http://localhost:10000"</js>).build();
-		|
-		|	<jc>// Use relative paths.</jc>
-		|	String <jv>content</jv> = <jv>client</jv>.get(<js>"/subpath"</js>).run().getContent().asString();
-	</p>
-	
-	<p>
-		The {@link oajrc.RestClient} class creates {@link oajrc.RestRequest} objects using the following methods:
-	</p>
-	
-	<ul class='javatree'>
-		<li class='jc'>{@link oajrc.RestClient}
-			<ul>
-				<li class='jm'>{@link oajrc.RestClient#get(Object) get(uri)} / {@link oajrc.RestClient#get() get()}
-				<li class='jm'>{@link oajrc.RestClient#put(Object,Object) put(uri,body)} / {@link oajrc.RestClient#put(Object) put(uri)}
-				<li class='jm'>{@link oajrc.RestClient#post(Object) post(uri,body)} / {@link oajrc.RestClient#post(Object) post(uri)}
-				<li class='jm'>{@link oajrc.RestClient#patch(Object,Object) patch(uri,body)} / {@link oajrc.RestClient#patch(Object) patch(uri)}
-				<li class='jm'>{@link oajrc.RestClient#delete(Object) delete(uri)}
-				<li class='jm'>{@link oajrc.RestClient#head(Object) head(uri)}
-				<li class='jm'>{@link oajrc.RestClient#options(Object) options(uri)}
-				<li class='jm'>{@link oajrc.RestClient#formPost(Object,Object) formPost(uri,body)} / {@link oajrc.RestClient#formPost(Object) formPost(uri)}
-				<li class='jm'>{@link oajrc.RestClient#formPostPairs(Object,Object...) formPostPairs(uri,parameters...)}
-				<li class='jm'>{@link oajrc.RestClient#request(String,Object,Object) request(method,uri,body)}
-			</ul>
-		</li>
-	</ul>
-	 
-	<p>
-		The {@link oajrc.RestRequest} class creates {@link oajrc.RestResponse} objects using the following methods:
-	</p>
-	
-	<ul class='javatree'>
-		<li class='jc'>{@link oajrc.RestRequest}
-			<ul>
-				<li class='jm'>{@link oajrc.RestRequest#run() run()}
-				<li class='jm'>{@link oajrc.RestRequest#complete() complete()}
-			</ul>
-		</li>
-	</ul>
-	
-	<p>
-		The distinction between the two methods is that {@link oajrc.RestRequest#complete() complete()} automatically consumes the response body and
-		{@link oajrc.RestRequest#run() run()} does not.  Note that you must consume response bodies in order for HTTP connections to be freed up
-		for reuse!  The {@link java.io.InputStream InputStreams} returned by the {@link oajrc.ResponseContent} object are auto-closing once
-		they are exhausted, so it is often not necessary to explicitly close them.
-	</p>
-	
-	<p>
-		The following examples show the distinction between the two calls:
-	</p>
-	
-	<p class='bjava'>
-		|	<jc>// Consuming the response, so use run().</jc>
-		|	String <jv>content</jv> = <jv>client</jv>.get(<jsf>URI</jsf>).run().getContent().asString();
-		|
-		|	<jc>// Only interested in response status code, so use complete().</jc>
-		|	<jk>int</jk> <jv>status</jv> = <jv>client</jv>.get(<jsf>URI</jsf>).complete().getStatusCode();
-	</p>
-</div>
\ No newline at end of file
diff --git a/juneau-doc/docs/Topics/11.juneau-rest-mock.html b/juneau-doc/docs/Topics/11.juneau-rest-mock.html
deleted file mode 100644
index a52aaf6ba..000000000
--- a/juneau-doc/docs/Topics/11.juneau-rest-mock.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<!--
-/***************************************************************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *  
- *  http://www.apache.org/licenses/LICENSE-2.0
- *  
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations under the License.
- ***************************************************************************************************************************/
- -->
-
-{title:'juneau-rest-mock', created:'8.1.0', updated:'8.2.0'}
-
-<div class='topic'>
-	<h5 class='figure'>Maven Dependency</h5>
-	<p class='bxml w500'>
-		|	<xt>&lt;dependency&gt;</xt>
-		|		<xt>&lt;groupId&gt;</xt>org.apache.juneau<xt>&lt;/groupId&gt;</xt>
-		|		<xt>&lt;artifactId&gt;</xt>juneau-rest-mock<xt>&lt;/artifactId&gt;</xt>
-		|		<xt>&lt;version&gt;</xt>{@property juneauVersion}<xt>&lt;/version&gt;</xt>
-		|	<xt>&lt;/dependency&gt;</xt>
-	</p>	
-	
-	<h5 class='figure'>Java Library</h5>
-	<p class='bcode w500'>
-		|	juneau-rest-mock-{@property juneauVersion}.jar 
-	</p>	
-	
-	<h5 class='figure'>OSGi Module</h5>
-	<p class='bcode w500'>
-		|	org.apache.juneau.rest.mock_{@property juneauVersion}.jar 
-	</p>	
-	
-	<p>
-		The <c>juneau-rest-mock</c> module contains convenience APIs for performing serverless unit
-		testing of your REST APIs.
-		Each of the APIs provide the ability to fully test your server and client REST interfaces without the
-		need for a running servlet container.
-	</p>
-</div>
\ No newline at end of file
diff --git a/juneau-doc/docs/Topics/12.juneau-microservice-core.html b/juneau-doc/docs/Topics/12.juneau-microservice-core.html
deleted file mode 100644
index fef4453a6..000000000
--- a/juneau-doc/docs/Topics/12.juneau-microservice-core.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<!--
-/***************************************************************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *  
- *  http://www.apache.org/licenses/LICENSE-2.0
- *  
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations under the License.
- ***************************************************************************************************************************/
- -->
-
-{title:'juneau-microservice-core', created:'8.1.0', deprecated:'8.1.2'}
-
-<div class='topic'>
-	<div class='warn'>
-		The Juneau Microservice libraries are likely to be removed in Juneau 9.0 due to the popularity of the Spring Boot
-		framework for creating microservices and the ability for Juneau to be used within Spring Boot.
-	</div>
-	
-	<h5 class='figure'>Maven Dependency</h5>
-	<p class='bxml w500'>
-		|	<xt>&lt;dependency&gt;</xt>
-		|		<xt>&lt;groupId&gt;</xt>org.apache.juneau<xt>&lt;/groupId&gt;</xt>
-		|		<xt>&lt;artifactId&gt;</xt>juneau-microservice-core<xt>&lt;/artifactId&gt;</xt>
-		|		<xt>&lt;version&gt;</xt>{@property juneauVersion}<xt>&lt;/version&gt;</xt>
-		|	<xt>&lt;/dependency&gt;</xt>
-	</p>	
-	
-	<h5 class='figure'>Java Library</h5>
-	<p class='bcode w500'>
-		|	juneau-microservice-core-{@property juneauVersion}.jar 
-	</p>	
-	
-	<h5 class='figure'>OSGi Module</h5>
-	<p class='bcode w500'>
-		|	org.apache.juneau.microservice.core_{@property juneauVersion}.jar 
-	</p>	
-	
-	<p>
-		Juneau Microservice is an API for creating stand-alone executable jars with automatic support for
-		Juneau configurations and console commands.
-	</p>
-	
-	<p>
-		Features include:
-	</p>
-	<ul class='spaced-list'>
-		<li>
-			A builder-based API for defining and starting microservices.
-		<li>
-			An extensible API that allows you to hook into various lifecycle events.
-		<li>
-			Simple-to-use APIs for accessing manifest file entries, command-line arguments, and external configuration 
-			file properties.
-	</ul>
-</div>
\ No newline at end of file
diff --git a/juneau-doc/docs/Topics/13.juneau-microservice-jetty.html b/juneau-doc/docs/Topics/13.juneau-microservice-jetty.html
deleted file mode 100644
index afd0ed477..000000000
--- a/juneau-doc/docs/Topics/13.juneau-microservice-jetty.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!--
-/***************************************************************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *  
- *  http://www.apache.org/licenses/LICENSE-2.0
- *  
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations under the License.
- ***************************************************************************************************************************/
- -->
-
-{title:'juneau-microservice-jetty', created:'8.1.0', deprecated:'8.1.2'}
-
-<div class='topic'>
-	<div class='warn'>
-		The Juneau Microservice libraries are likely to be removed in Juneau 9.0 due to the popularity of the Spring Boot
-		framework for creating microservices and the ability for Juneau to be used within Spring Boot.
-	</div>
-	
-	<h5 class='figure'>Maven Dependency</h5>
-	<p class='bxml w500'>
-		|	<xt>&lt;dependency&gt;</xt>
-		|		<xt>&lt;groupId&gt;</xt>org.apache.juneau<xt>&lt;/groupId&gt;</xt>
-		|		<xt>&lt;artifactId&gt;</xt>juneau-microservice-jetty<xt>&lt;/artifactId&gt;</xt>
-		|		<xt>&lt;version&gt;</xt>{@property juneauVersion}<xt>&lt;/version&gt;</xt>
-		|	<xt>&lt;/dependency&gt;</xt>
-	</p>	
-	
-	<h5 class='figure'>Java Library</h5>
-	<p class='bcode w500'>
-		|	juneau-microservice-jetty-{@property juneauVersion}.jar 
-	</p>	
-	
-	<h5 class='figure'>OSGi Module</h5>
-	<p class='bcode w500'>
-		|	org.apache.juneau.microservice.jetty_{@property juneauVersion}.jar 
-	</p>	
-	
-	<p>
-		Juneau Microservice Jetty is an API for creating stand-alone executable jars that can be used to 
-		start lightweight configurable REST interfaces with all the power of the Juneau REST server and client APIs.
-	</p>
-</div>
\ No newline at end of file
diff --git a/juneau-doc/docs/Topics/14.my-jetty-microservice.html b/juneau-doc/docs/Topics/14.my-jetty-microservice.html
deleted file mode 100644
index 8465f4e0f..000000000
--- a/juneau-doc/docs/Topics/14.my-jetty-microservice.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!--
-/***************************************************************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *  
- *  http://www.apache.org/licenses/LICENSE-2.0
- *  
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations under the License.
- ***************************************************************************************************************************/
- -->
-
-{title:'my-jetty-microservice', created:'8.1.0', deprecated:'8.1.2'}
-
-<div class='topic'>
-	<div class='warn'>
-		The Juneau Microservice libraries are likely to be removed in Juneau 9.0 due to the popularity of the Spring Boot
-		framework for creating microservices and the ability for Juneau to be used within Spring Boot.
-	</div>
-	
-	<h5 class='figure'>Starter Project Zip</h5>
-	<p class='bcode w500'>
-		|	my-jetty-microservice-{@property juneauVersion}.zip 
-	</p>	
-	
-	<p>
-		The <l>my-jetty-microservice.zip</l> file is a predefined starter Eclipse project for developing
-		REST microservices using the {@doc juneau-microservice-jetty juneau-microservice-jetty} package.
-	</p>
-	<p>
-		It includes a combination of the Juneau Core, Server, and Client APIs and all libraries needed to execute in a Java 1.8+ environment.
-	</p>
-</div>
\ No newline at end of file
diff --git a/juneau-doc/docs/Topics/15.my-springboot-microservice.html b/juneau-doc/docs/Topics/15.my-springboot-microservice.html
deleted file mode 100644
index ade6da303..000000000
--- a/juneau-doc/docs/Topics/15.my-springboot-microservice.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!--
-/***************************************************************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *  
- *  http://www.apache.org/licenses/LICENSE-2.0
- *  
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations under the License.
- ***************************************************************************************************************************/
- -->
-
-{title:'my-springboot-microservice', created:'8.0.0'}
-
-<div class='topic'>
-	<h5 class='figure'>Starter Project Zip</h5>
-	<p class='bcode w500'>
-		|	my-springboot-microservice-{@property juneauVersion}.zip 
-	</p>	
-	
-	<p>
-		The <l>my-springboot-microservice.zip</l> file is a predefined starter Eclipse project for developing
-		REST microservices using the {@doc juneau-rest-server-springboot juneau-rest-server-springboot} package with Spring Boot.
-	</p>
-	<p>
-		It includes a combination of the Juneau Core, Server, and Client APIs and all libraries needed to execute in a Java 1.8+ environment.
-	</p>
-	<p>
-		One significant difference is that we are not using the Juneau {@link oaj.microservice.Microservice} API for our
-		application but instead using the existing Spring Boot API.
-	</p>
-</div>
\ No newline at end of file
diff --git a/juneau-doc/docs/Topics/16.juneau-petstore.html b/juneau-doc/docs/Topics/16.juneau-petstore.html
deleted file mode 100644
index 4615ad4d2..000000000
--- a/juneau-doc/docs/Topics/16.juneau-petstore.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!--
-/***************************************************************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *  
- *  http://www.apache.org/licenses/LICENSE-2.0
- *  
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations under the License.
- ***************************************************************************************************************************/
- -->
-
-{title:'juneau-petstore', created:'8.2.0', updated:'9.0.0'}
-
-<div class='topic'>
-	<p>
-		The <c>PetStore</c> application is an functional application meant to demonstrate using Juneau with Spring Boot
-		to create an end-to-end client/server REST API. 
-	</p>
-	<p>
-		What makes Juneau unique is the ability to create Java interfaces that behave just like RPC, but using REST
-		as the underlying protocol.  And the technology it not tied to any platform so it can be used in any environment
-		by simply pulling in Maven dependencies.  The server-side need only provide the ability to host a servlet.
-	</p>
-	<p>
-		Visit the <a class='doclink' href='https://github.com/apache/juneau-petstore'>GitHub project</a> hosting the application.
-	</p>
-	<p>
-		The project is broken down into the following subprojects:
-	</p>
-	<ul class='spaced-list'>
-		<li><c>juneau-petstore-api</c> - Contains the Java interface and DTOs for the petstore application.
-		<li><c>juneau-petstore-server</c> - Contains the server-side Java implementation of the petstore Java interface as a REST resource.
-		<li><c>juneau-petstore-client</c> - Contains the client-side Java proxy of the petstore Java interface.
-	</ul>
-</div>
\ No newline at end of file
diff --git a/juneau-doc/docs/Topics/17.Glossaries.html b/juneau-doc/docs/Topics/17.Glossaries.html
deleted file mode 100644
index d173bc493..000000000
--- a/juneau-doc/docs/Topics/17.Glossaries.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<!--
-/***************************************************************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *  
- *  http://www.apache.org/licenses/LICENSE-2.0
- *  
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations under the License.
- ***************************************************************************************************************************/
- -->
-
-{title:'Glossaries', created:'8.1.3'}
-
-<div class='topic'>
-	<p>
-	</p>
-</div>
\ No newline at end of file
diff --git a/juneau-doc/docs/Topics/18.Security.html b/juneau-doc/docs/Topics/18.Security.html
deleted file mode 100644
index 05f0d6352..000000000
--- a/juneau-doc/docs/Topics/18.Security.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!--
-/***************************************************************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *  
- *  http://www.apache.org/licenses/LICENSE-2.0
- *  
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations under the License.
- ***************************************************************************************************************************/
- -->
-
-{title:'Security Best-Practices'}
-
-<div class='topic'>
-	<p>
-		Security is always an ongoing concern in any library.  
-		If you discover any security vulnerabilities in this code, please refer to the instructions found here:
-	</p>
-	<ul class='spaced-list'>
-		<li class='extlink'>{@doc http://www.apache.org/security SECURITY}
-	</ul>
-</div>
\ No newline at end of file