juneau-commits mailing list archives

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

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


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

commit 3d8c08fcd84d3e2dc554c60c64b16a5ac6c141b7
Author: JamesBognar <jamesbognar@apache.org>
AuthorDate: Sat Mar 3 21:00:54 2018 -0500

    Update Javadocs.
---
 content/site/apidocs/allclasses-frame.html         |   1 +
 content/site/apidocs/allclasses-noframe.html       |   1 +
 .../doc-files/Samples.HelloWorldResource.1.png     | Bin 15414 -> 85950 bytes
 .../doc-files/Samples.HelloWorldResource.2.png     | Bin 10797 -> 37599 bytes
 .../doc-files/Samples.MethodExampleResource.1.png  | Bin 27555 -> 212489 bytes
 .../doc-files/Samples.MethodExampleResource.2.png  | Bin 322100 -> 217825 bytes
 .../doc-files/Samples.MethodExampleResource.3.png  | Bin 0 -> 318529 bytes
 .../site/apidocs/doc-files/Samples.Running.3.png   | Bin 62643 -> 406249 bytes
 .../doc-files/Samples.UrlEncodedFormResource.1.png | Bin 24026 -> 119407 bytes
 .../doc-files/Samples.UrlEncodedFormResource.2.png | Bin 31318 -> 148735 bytes
 .../apidocs/doc-files/juneau-examples-core.2.png   | Bin 102104 -> 91900 bytes
 .../apidocs/doc-files/juneau-examples-rest.2.png   | Bin 101789 -> 91461 bytes
 content/site/apidocs/index-all.html                |   4 +
 .../juneau/microservice/BasicRestServletJena.html  |   2 +-
 .../microservice/BasicRestServletJenaGroup.html    |   2 +-
 .../apache/juneau/microservice/package-tree.html   |   2 +-
 .../microservice/resources/ConfigResource.html     |   2 +-
 .../microservice/resources/DebugResource.html      |   2 +-
 .../microservice/resources/DirectoryResource.html  |   2 +-
 .../microservice/resources/LogsResource.html       |   2 +-
 .../microservice/resources/SampleRootResource.html |   2 +-
 .../microservice/resources/ShutdownResource.html   |   2 +-
 .../microservice/resources/package-tree.html       |   2 +-
 .../microservice/sample/HelloWorldResource.html    |   2 +-
 .../juneau/microservice/sample/RootResources.html  |   2 +-
 .../juneau/microservice/sample/package-tree.html   |   2 +-
 .../apache/juneau/rest/BasicRestCallHandler.html   |   4 +-
 .../org/apache/juneau/rest/BasicRestConfig.html    | 181 +++++
 .../apache/juneau/rest/BasicRestInfoProvider.html  |   4 +-
 .../org/apache/juneau/rest/BasicRestServlet.html   |  20 +-
 .../apache/juneau/rest/BasicRestServletGroup.html  |   4 +-
 .../org/apache/juneau/rest/package-frame.html      |   1 +
 .../org/apache/juneau/rest/package-summary.html    |  24 +-
 .../org/apache/juneau/rest/package-tree.html       |   3 +-
 .../juneau/rest/remoteable/RemoteableServlet.html  |   2 +-
 .../juneau/rest/remoteable/package-tree.html       |   2 +-
 content/site/apidocs/overview-summary.html         | 727 +++++++++------------
 content/site/apidocs/overview-tree.html            |   3 +-
 .../apache/juneau/html/HtmlDocTemplateBasic.html   |   2 +-
 .../org/apache/juneau/rest/BasicRestConfig.html    | 157 +++++
 .../org/apache/juneau/rest/BasicRestServlet.html   | 408 +++++-------
 .../apache/juneau/rest/BasicRestServletGroup.html  |   2 +-
 42 files changed, 875 insertions(+), 701 deletions(-)

diff --git a/content/site/apidocs/allclasses-frame.html b/content/site/apidocs/allclasses-frame.html
index fe29a7e..b9e6229 100644
--- a/content/site/apidocs/allclasses-frame.html
+++ b/content/site/apidocs/allclasses-frame.html
@@ -45,6 +45,7 @@
 <li><a href="org/apache/juneau/rest/jaxrs/BaseProvider.html" title="class in org.apache.juneau.rest.jaxrs" target="classFrame">BaseProvider</a></li>
 <li><a href="org/apache/juneau/rest/jaxrs/BasicProvider.html" title="class in org.apache.juneau.rest.jaxrs" target="classFrame">BasicProvider</a></li>
 <li><a href="org/apache/juneau/rest/BasicRestCallHandler.html" title="class in org.apache.juneau.rest" target="classFrame">BasicRestCallHandler</a></li>
+<li><a href="org/apache/juneau/rest/BasicRestConfig.html" title="interface in org.apache.juneau.rest" target="classFrame"><span class="interfaceName">BasicRestConfig</span></a></li>
 <li><a href="org/apache/juneau/rest/BasicRestInfoProvider.html" title="class in org.apache.juneau.rest" target="classFrame">BasicRestInfoProvider</a></li>
 <li><a href="org/apache/juneau/rest/BasicRestLogger.html" title="class in org.apache.juneau.rest" target="classFrame">BasicRestLogger</a></li>
 <li><a href="org/apache/juneau/rest/BasicRestResourceResolver.html" title="class in org.apache.juneau.rest" target="classFrame">BasicRestResourceResolver</a></li>
diff --git a/content/site/apidocs/allclasses-noframe.html b/content/site/apidocs/allclasses-noframe.html
index 66e39a1..e4d2d02 100644
--- a/content/site/apidocs/allclasses-noframe.html
+++ b/content/site/apidocs/allclasses-noframe.html
@@ -45,6 +45,7 @@
 <li><a href="org/apache/juneau/rest/jaxrs/BaseProvider.html" title="class in org.apache.juneau.rest.jaxrs">BaseProvider</a></li>
 <li><a href="org/apache/juneau/rest/jaxrs/BasicProvider.html" title="class in org.apache.juneau.rest.jaxrs">BasicProvider</a></li>
 <li><a href="org/apache/juneau/rest/BasicRestCallHandler.html" title="class in org.apache.juneau.rest">BasicRestCallHandler</a></li>
+<li><a href="org/apache/juneau/rest/BasicRestConfig.html" title="interface in org.apache.juneau.rest"><span class="interfaceName">BasicRestConfig</span></a></li>
 <li><a href="org/apache/juneau/rest/BasicRestInfoProvider.html" title="class in org.apache.juneau.rest">BasicRestInfoProvider</a></li>
 <li><a href="org/apache/juneau/rest/BasicRestLogger.html" title="class in org.apache.juneau.rest">BasicRestLogger</a></li>
 <li><a href="org/apache/juneau/rest/BasicRestResourceResolver.html" title="class in org.apache.juneau.rest">BasicRestResourceResolver</a></li>
diff --git a/content/site/apidocs/doc-files/Samples.HelloWorldResource.1.png b/content/site/apidocs/doc-files/Samples.HelloWorldResource.1.png
index bbc4afa..519ed60 100644
Binary files a/content/site/apidocs/doc-files/Samples.HelloWorldResource.1.png and b/content/site/apidocs/doc-files/Samples.HelloWorldResource.1.png differ
diff --git a/content/site/apidocs/doc-files/Samples.HelloWorldResource.2.png b/content/site/apidocs/doc-files/Samples.HelloWorldResource.2.png
index 0cf55f9..eb4d35f 100644
Binary files a/content/site/apidocs/doc-files/Samples.HelloWorldResource.2.png and b/content/site/apidocs/doc-files/Samples.HelloWorldResource.2.png differ
diff --git a/content/site/apidocs/doc-files/Samples.MethodExampleResource.1.png b/content/site/apidocs/doc-files/Samples.MethodExampleResource.1.png
index d64ea00..a49a137 100644
Binary files a/content/site/apidocs/doc-files/Samples.MethodExampleResource.1.png and b/content/site/apidocs/doc-files/Samples.MethodExampleResource.1.png differ
diff --git a/content/site/apidocs/doc-files/Samples.MethodExampleResource.2.png b/content/site/apidocs/doc-files/Samples.MethodExampleResource.2.png
index 89c1360..e7f95f4 100644
Binary files a/content/site/apidocs/doc-files/Samples.MethodExampleResource.2.png and b/content/site/apidocs/doc-files/Samples.MethodExampleResource.2.png differ
diff --git a/content/site/apidocs/doc-files/Samples.MethodExampleResource.3.png b/content/site/apidocs/doc-files/Samples.MethodExampleResource.3.png
new file mode 100644
index 0000000..d937951
Binary files /dev/null and b/content/site/apidocs/doc-files/Samples.MethodExampleResource.3.png differ
diff --git a/content/site/apidocs/doc-files/Samples.Running.3.png b/content/site/apidocs/doc-files/Samples.Running.3.png
index c2f37b4..d176895 100644
Binary files a/content/site/apidocs/doc-files/Samples.Running.3.png and b/content/site/apidocs/doc-files/Samples.Running.3.png differ
diff --git a/content/site/apidocs/doc-files/Samples.UrlEncodedFormResource.1.png b/content/site/apidocs/doc-files/Samples.UrlEncodedFormResource.1.png
index 0599e93..49c995d 100644
Binary files a/content/site/apidocs/doc-files/Samples.UrlEncodedFormResource.1.png and b/content/site/apidocs/doc-files/Samples.UrlEncodedFormResource.1.png differ
diff --git a/content/site/apidocs/doc-files/Samples.UrlEncodedFormResource.2.png b/content/site/apidocs/doc-files/Samples.UrlEncodedFormResource.2.png
index 0ed8b80..e8f67d5 100644
Binary files a/content/site/apidocs/doc-files/Samples.UrlEncodedFormResource.2.png and b/content/site/apidocs/doc-files/Samples.UrlEncodedFormResource.2.png differ
diff --git a/content/site/apidocs/doc-files/juneau-examples-core.2.png b/content/site/apidocs/doc-files/juneau-examples-core.2.png
index 96648a4..dc73f29 100644
Binary files a/content/site/apidocs/doc-files/juneau-examples-core.2.png and b/content/site/apidocs/doc-files/juneau-examples-core.2.png differ
diff --git a/content/site/apidocs/doc-files/juneau-examples-rest.2.png b/content/site/apidocs/doc-files/juneau-examples-rest.2.png
index b4472e7..bb30587 100644
Binary files a/content/site/apidocs/doc-files/juneau-examples-rest.2.png and b/content/site/apidocs/doc-files/juneau-examples-rest.2.png differ
diff --git a/content/site/apidocs/index-all.html b/content/site/apidocs/index-all.html
index 0f94504..a2e3ee7 100644
--- a/content/site/apidocs/index-all.html
+++ b/content/site/apidocs/index-all.html
@@ -2087,6 +2087,10 @@
 <dd>
 <div class="block">Constructor.</div>
 </dd>
+<dt><a href="org/apache/juneau/rest/BasicRestConfig.html" title="interface in org.apache.juneau.rest"><span class="typeNameLink">BasicRestConfig</span></a> - Interface in <a href="org/apache/juneau/rest/package-summary.html">org.apache.juneau.rest</a></dt>
+<dd>
+<div class="block">Basic configuration for a REST resource.</div>
+</dd>
 <dt><a href="org/apache/juneau/rest/BasicRestInfoProvider.html" title="class in org.apache.juneau.rest"><span class="typeNameLink">BasicRestInfoProvider</span></a> - Class in <a href="org/apache/juneau/rest/package-summary.html">org.apache.juneau.rest</a></dt>
 <dd>
 <div class="block">Default implementation of <a href="org/apache/juneau/rest/RestInfoProvider.html" title="interface in org.apache.juneau.rest"><code>RestInfoProvider</code></a>.</div>
diff --git a/content/site/apidocs/org/apache/juneau/microservice/BasicRestServletJena.html b/content/site/apidocs/org/apache/juneau/microservice/BasicRestServletJena.html
index 047c631..63f2ee9 100644
--- a/content/site/apidocs/org/apache/juneau/microservice/BasicRestServletJena.html
+++ b/content/site/apidocs/org/apache/juneau/microservice/BasicRestServletJena.html
@@ -122,7 +122,7 @@
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig</dd>
+<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig, <a href="../../../../org/apache/juneau/rest/BasicRestConfig.html" title="interface in org.apache.juneau.rest">BasicRestConfig</a></dd>
 </dl>
 <hr>
 <br>
diff --git a/content/site/apidocs/org/apache/juneau/microservice/BasicRestServletJenaGroup.html b/content/site/apidocs/org/apache/juneau/microservice/BasicRestServletJenaGroup.html
index 2ab09e3..cf839e8 100644
--- a/content/site/apidocs/org/apache/juneau/microservice/BasicRestServletJenaGroup.html
+++ b/content/site/apidocs/org/apache/juneau/microservice/BasicRestServletJenaGroup.html
@@ -127,7 +127,7 @@
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig</dd>
+<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig, <a href="../../../../org/apache/juneau/rest/BasicRestConfig.html" title="interface in org.apache.juneau.rest">BasicRestConfig</a></dd>
 </dl>
 <hr>
 <br>
diff --git a/content/site/apidocs/org/apache/juneau/microservice/package-tree.html b/content/site/apidocs/org/apache/juneau/microservice/package-tree.html
index 809c6f1..f2c2e6a 100644
--- a/content/site/apidocs/org/apache/juneau/microservice/package-tree.html
+++ b/content/site/apidocs/org/apache/juneau/microservice/package-tree.html
@@ -91,7 +91,7 @@
 <ul>
 <li type="circle">org.apache.juneau.rest.<a href="../../../../org/apache/juneau/rest/RestServlet.html" title="class in org.apache.juneau.rest"><span class="typeNameLink">RestServlet</span></a>
 <ul>
-<li type="circle">org.apache.juneau.rest.<a href="../../../../org/apache/juneau/rest/BasicRestServlet.html" title="class in org.apache.juneau.rest"><span class="typeNameLink">BasicRestServlet</span></a>
+<li type="circle">org.apache.juneau.rest.<a href="../../../../org/apache/juneau/rest/BasicRestServlet.html" title="class in org.apache.juneau.rest"><span class="typeNameLink">BasicRestServlet</span></a> (implements org.apache.juneau.rest.<a href="../../../../org/apache/juneau/rest/BasicRestConfig.html" title="interface in org.apache.juneau.rest">BasicRestConfig</a>)
 <ul>
 <li type="circle">org.apache.juneau.rest.<a href="../../../../org/apache/juneau/rest/BasicRestServletGroup.html" title="class in org.apache.juneau.rest"><span class="typeNameLink">BasicRestServletGroup</span></a>
 <ul>
diff --git a/content/site/apidocs/org/apache/juneau/microservice/resources/ConfigResource.html b/content/site/apidocs/org/apache/juneau/microservice/resources/ConfigResource.html
index 032422c..1b1a24c 100644
--- a/content/site/apidocs/org/apache/juneau/microservice/resources/ConfigResource.html
+++ b/content/site/apidocs/org/apache/juneau/microservice/resources/ConfigResource.html
@@ -128,7 +128,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig</dd>
+<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig, <a href="../../../../../org/apache/juneau/rest/BasicRestConfig.html" title="interface in org.apache.juneau.rest">BasicRestConfig</a></dd>
 </dl>
 <hr>
 <br>
diff --git a/content/site/apidocs/org/apache/juneau/microservice/resources/DebugResource.html b/content/site/apidocs/org/apache/juneau/microservice/resources/DebugResource.html
index 47aa87e..0f71cad 100644
--- a/content/site/apidocs/org/apache/juneau/microservice/resources/DebugResource.html
+++ b/content/site/apidocs/org/apache/juneau/microservice/resources/DebugResource.html
@@ -128,7 +128,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig</dd>
+<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig, <a href="../../../../../org/apache/juneau/rest/BasicRestConfig.html" title="interface in org.apache.juneau.rest">BasicRestConfig</a></dd>
 </dl>
 <hr>
 <br>
diff --git a/content/site/apidocs/org/apache/juneau/microservice/resources/DirectoryResource.html b/content/site/apidocs/org/apache/juneau/microservice/resources/DirectoryResource.html
index 241b2ea..5bb7f0d 100644
--- a/content/site/apidocs/org/apache/juneau/microservice/resources/DirectoryResource.html
+++ b/content/site/apidocs/org/apache/juneau/microservice/resources/DirectoryResource.html
@@ -128,7 +128,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig</dd>
+<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig, <a href="../../../../../org/apache/juneau/rest/BasicRestConfig.html" title="interface in org.apache.juneau.rest">BasicRestConfig</a></dd>
 </dl>
 <hr>
 <br>
diff --git a/content/site/apidocs/org/apache/juneau/microservice/resources/LogsResource.html b/content/site/apidocs/org/apache/juneau/microservice/resources/LogsResource.html
index ac80256..a928347 100644
--- a/content/site/apidocs/org/apache/juneau/microservice/resources/LogsResource.html
+++ b/content/site/apidocs/org/apache/juneau/microservice/resources/LogsResource.html
@@ -128,7 +128,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig</dd>
+<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig, <a href="../../../../../org/apache/juneau/rest/BasicRestConfig.html" title="interface in org.apache.juneau.rest">BasicRestConfig</a></dd>
 </dl>
 <hr>
 <br>
diff --git a/content/site/apidocs/org/apache/juneau/microservice/resources/SampleRootResource.html b/content/site/apidocs/org/apache/juneau/microservice/resources/SampleRootResource.html
index 0bb6885..312c92d 100644
--- a/content/site/apidocs/org/apache/juneau/microservice/resources/SampleRootResource.html
+++ b/content/site/apidocs/org/apache/juneau/microservice/resources/SampleRootResource.html
@@ -127,7 +127,7 @@
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig</dd>
+<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig, <a href="../../../../../org/apache/juneau/rest/BasicRestConfig.html" title="interface in org.apache.juneau.rest">BasicRestConfig</a></dd>
 </dl>
 <hr>
 <br>
diff --git a/content/site/apidocs/org/apache/juneau/microservice/resources/ShutdownResource.html b/content/site/apidocs/org/apache/juneau/microservice/resources/ShutdownResource.html
index a79f2f8..23c3d5e 100644
--- a/content/site/apidocs/org/apache/juneau/microservice/resources/ShutdownResource.html
+++ b/content/site/apidocs/org/apache/juneau/microservice/resources/ShutdownResource.html
@@ -128,7 +128,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig</dd>
+<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig, <a href="../../../../../org/apache/juneau/rest/BasicRestConfig.html" title="interface in org.apache.juneau.rest">BasicRestConfig</a></dd>
 </dl>
 <hr>
 <br>
diff --git a/content/site/apidocs/org/apache/juneau/microservice/resources/package-tree.html b/content/site/apidocs/org/apache/juneau/microservice/resources/package-tree.html
index d9a8522..a2ff50d 100644
--- a/content/site/apidocs/org/apache/juneau/microservice/resources/package-tree.html
+++ b/content/site/apidocs/org/apache/juneau/microservice/resources/package-tree.html
@@ -92,7 +92,7 @@
 <ul>
 <li type="circle">org.apache.juneau.rest.<a href="../../../../../org/apache/juneau/rest/RestServlet.html" title="class in org.apache.juneau.rest"><span class="typeNameLink">RestServlet</span></a>
 <ul>
-<li type="circle">org.apache.juneau.rest.<a href="../../../../../org/apache/juneau/rest/BasicRestServlet.html" title="class in org.apache.juneau.rest"><span class="typeNameLink">BasicRestServlet</span></a>
+<li type="circle">org.apache.juneau.rest.<a href="../../../../../org/apache/juneau/rest/BasicRestServlet.html" title="class in org.apache.juneau.rest"><span class="typeNameLink">BasicRestServlet</span></a> (implements org.apache.juneau.rest.<a href="../../../../../org/apache/juneau/rest/BasicRestConfig.html" title="interface in org.apache.juneau.rest">BasicRestConfig</a>)
 <ul>
 <li type="circle">org.apache.juneau.rest.<a href="../../../../../org/apache/juneau/rest/BasicRestServletGroup.html" title="class in org.apache.juneau.rest"><span class="typeNameLink">BasicRestServletGroup</span></a>
 <ul>
diff --git a/content/site/apidocs/org/apache/juneau/microservice/sample/HelloWorldResource.html b/content/site/apidocs/org/apache/juneau/microservice/sample/HelloWorldResource.html
index 6a04d98..311e1b6 100644
--- a/content/site/apidocs/org/apache/juneau/microservice/sample/HelloWorldResource.html
+++ b/content/site/apidocs/org/apache/juneau/microservice/sample/HelloWorldResource.html
@@ -128,7 +128,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig</dd>
+<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig, <a href="../../../../../org/apache/juneau/rest/BasicRestConfig.html" title="interface in org.apache.juneau.rest">BasicRestConfig</a></dd>
 </dl>
 <hr>
 <br>
diff --git a/content/site/apidocs/org/apache/juneau/microservice/sample/RootResources.html b/content/site/apidocs/org/apache/juneau/microservice/sample/RootResources.html
index f9c2d06..384e5e7 100644
--- a/content/site/apidocs/org/apache/juneau/microservice/sample/RootResources.html
+++ b/content/site/apidocs/org/apache/juneau/microservice/sample/RootResources.html
@@ -127,7 +127,7 @@
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig</dd>
+<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig, <a href="../../../../../org/apache/juneau/rest/BasicRestConfig.html" title="interface in org.apache.juneau.rest">BasicRestConfig</a></dd>
 </dl>
 <hr>
 <br>
diff --git a/content/site/apidocs/org/apache/juneau/microservice/sample/package-tree.html b/content/site/apidocs/org/apache/juneau/microservice/sample/package-tree.html
index e18fda7..5fe9bc2 100644
--- a/content/site/apidocs/org/apache/juneau/microservice/sample/package-tree.html
+++ b/content/site/apidocs/org/apache/juneau/microservice/sample/package-tree.html
@@ -86,7 +86,7 @@
 <ul>
 <li type="circle">org.apache.juneau.rest.<a href="../../../../../org/apache/juneau/rest/RestServlet.html" title="class in org.apache.juneau.rest"><span class="typeNameLink">RestServlet</span></a>
 <ul>
-<li type="circle">org.apache.juneau.rest.<a href="../../../../../org/apache/juneau/rest/BasicRestServlet.html" title="class in org.apache.juneau.rest"><span class="typeNameLink">BasicRestServlet</span></a>
+<li type="circle">org.apache.juneau.rest.<a href="../../../../../org/apache/juneau/rest/BasicRestServlet.html" title="class in org.apache.juneau.rest"><span class="typeNameLink">BasicRestServlet</span></a> (implements org.apache.juneau.rest.<a href="../../../../../org/apache/juneau/rest/BasicRestConfig.html" title="interface in org.apache.juneau.rest">BasicRestConfig</a>)
 <ul>
 <li type="circle">org.apache.juneau.rest.<a href="../../../../../org/apache/juneau/rest/BasicRestServletGroup.html" title="class in org.apache.juneau.rest"><span class="typeNameLink">BasicRestServletGroup</span></a>
 <ul>
diff --git a/content/site/apidocs/org/apache/juneau/rest/BasicRestCallHandler.html b/content/site/apidocs/org/apache/juneau/rest/BasicRestCallHandler.html
index 0cda01a..c87e9ee 100644
--- a/content/site/apidocs/org/apache/juneau/rest/BasicRestCallHandler.html
+++ b/content/site/apidocs/org/apache/juneau/rest/BasicRestCallHandler.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li>Prev&nbsp;Class</li>
-<li><a href="../../../../org/apache/juneau/rest/BasicRestInfoProvider.html" title="class in org.apache.juneau.rest"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/juneau/rest/BasicRestConfig.html" title="interface in org.apache.juneau.rest"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../index.html?org/apache/juneau/rest/BasicRestCallHandler.html" target="_top">Frames</a></li>
@@ -529,7 +529,7 @@ implements <a href="../../../../org/apache/juneau/rest/RestCallHandler.html" tit
 <div class="subNav">
 <ul class="navList">
 <li>Prev&nbsp;Class</li>
-<li><a href="../../../../org/apache/juneau/rest/BasicRestInfoProvider.html" title="class in org.apache.juneau.rest"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/juneau/rest/BasicRestConfig.html" title="interface in org.apache.juneau.rest"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../index.html?org/apache/juneau/rest/BasicRestCallHandler.html" target="_top">Frames</a></li>
diff --git a/content/site/apidocs/org/apache/juneau/rest/BasicRestConfig.html b/content/site/apidocs/org/apache/juneau/rest/BasicRestConfig.html
new file mode 100644
index 0000000..9c511e4
--- /dev/null
+++ b/content/site/apidocs/org/apache/juneau/rest/BasicRestConfig.html
@@ -0,0 +1,181 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BasicRestConfig (Apache Juneau 7.1.1-SNAPSHOT)</title>
+<link rel="stylesheet" type="text/css" href="../../../../javadoc.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BasicRestConfig (Apache Juneau 7.1.1-SNAPSHOT)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/juneau/rest/BasicRestCallHandler.html" title="class in org.apache.juneau.rest"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/juneau/rest/BasicRestInfoProvider.html" title="class in org.apache.juneau.rest"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/juneau/rest/BasicRestConfig.html" target="_top">Frames</a></li>
+<li><a href="BasicRestConfig.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.juneau.rest</div>
+<h2 title="Interface BasicRestConfig" class="title">Interface BasicRestConfig</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/apache/juneau/rest/BasicRestServlet.html" title="class in org.apache.juneau.rest">BasicRestServlet</a>, <a href="../../../../org/apache/juneau/rest/BasicRestServletGroup.html" title="class in org.apache.juneau.rest">BasicRestServletGroup</a>, <a href="../../../../org/apache/juneau/microservice/BasicRestServletJena.html" title="class in org.apache.juneau.microservice">BasicRestServletJena</a>, <a href="../../../../org/apache/juneau/microservice/BasicRestServle [...]
+</dl>
+<hr>
+<br>
+<pre><a href="../../../../org/apache/juneau/rest/annotation/RestResource.html" title="annotation in org.apache.juneau.rest.annotation">@RestResource</a>(<a href="../../../../org/apache/juneau/rest/annotation/RestResource.html#serializers--">serializers</a>={<a href="../../../../org/apache/juneau/html/HtmlDocSerializer.html" title="class in org.apache.juneau.html">HtmlDocSerializer.class</a>,<a href="../../../../org/apache/juneau/html/HtmlStrippedDocSerializer.html" title="class in org.ap [...]
+              <a href="../../../../org/apache/juneau/rest/annotation/RestResource.html#parsers--">parsers</a>={<a href="../../../../org/apache/juneau/json/JsonParser.html" title="class in org.apache.juneau.json">JsonParser.class</a>,<a href="../../../../org/apache/juneau/xml/XmlParser.html" title="class in org.apache.juneau.xml">XmlParser.class</a>,<a href="../../../../org/apache/juneau/html/HtmlParser.html" title="class in org.apache.juneau.html">HtmlParser.class</a>,<a href="../../../. [...]
+              <a href="../../../../org/apache/juneau/rest/annotation/RestResource.html#properties--">properties</a>=<a href="../../../../org/apache/juneau/rest/annotation/Property.html" title="annotation in org.apache.juneau.rest.annotation">@Property</a>(<a href="../../../../org/apache/juneau/rest/annotation/Property.html#name--">name</a>="Serializer.uriResolution.s",<a href="../../../../org/apache/juneau/rest/annotation/Property.html#value--">value</a>="ROOT_RELATIVE"),
+              <a href="../../../../org/apache/juneau/rest/annotation/RestResource.html#htmldoc--">htmldoc</a>=,
+              <a href="../../../../org/apache/juneau/rest/annotation/RestResource.html#config--">config</a>="$S{juneau.configFile}",
+              <a href="../../../../org/apache/juneau/rest/annotation/RestResource.html#staticFiles--">staticFiles</a>={"htdocs:htdocs","styles:styles"})
+public interface <a href="../../../../src-html/org/apache/juneau/rest/BasicRestConfig.html#line.85">BasicRestConfig</a></pre>
+<div class="block">Basic configuration for a REST resource.
+ 
+ <p>
+ Classes that don't extend from <a href="../../../../org/apache/juneau/rest/BasicRestServlet.html" title="class in org.apache.juneau.rest"><code>BasicRestServlet</code></a> can implement this interface to 
+ be configured with the same serializers/parsers/etc... as <a href="../../../../org/apache/juneau/rest/BasicRestServlet.html" title="class in org.apache.juneau.rest"><code>BasicRestServlet</code></a>.</div>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/juneau/rest/BasicRestCallHandler.html" title="class in org.apache.juneau.rest"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/juneau/rest/BasicRestInfoProvider.html" title="class in org.apache.juneau.rest"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/juneau/rest/BasicRestConfig.html" target="_top">Frames</a></li>
+<li><a href="BasicRestConfig.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2018 <a href="http://www.apache.org/">Apache</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/content/site/apidocs/org/apache/juneau/rest/BasicRestInfoProvider.html b/content/site/apidocs/org/apache/juneau/rest/BasicRestInfoProvider.html
index 8e49f9c..972a68a 100644
--- a/content/site/apidocs/org/apache/juneau/rest/BasicRestInfoProvider.html
+++ b/content/site/apidocs/org/apache/juneau/rest/BasicRestInfoProvider.html
@@ -48,7 +48,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/juneau/rest/BasicRestCallHandler.html" title="class in org.apache.juneau.rest"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/juneau/rest/BasicRestConfig.html" title="interface in org.apache.juneau.rest"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../org/apache/juneau/rest/BasicRestLogger.html" title="class in org.apache.juneau.rest"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -1573,7 +1573,7 @@ implements <a href="../../../../org/apache/juneau/rest/RestInfoProvider.html" ti
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/juneau/rest/BasicRestCallHandler.html" title="class in org.apache.juneau.rest"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/juneau/rest/BasicRestConfig.html" title="interface in org.apache.juneau.rest"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../org/apache/juneau/rest/BasicRestLogger.html" title="class in org.apache.juneau.rest"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
diff --git a/content/site/apidocs/org/apache/juneau/rest/BasicRestServlet.html b/content/site/apidocs/org/apache/juneau/rest/BasicRestServlet.html
index 91d3237..2ab6fd2 100644
--- a/content/site/apidocs/org/apache/juneau/rest/BasicRestServlet.html
+++ b/content/site/apidocs/org/apache/juneau/rest/BasicRestServlet.html
@@ -123,7 +123,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig</dd>
+<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig, <a href="../../../../org/apache/juneau/rest/BasicRestConfig.html" title="interface in org.apache.juneau.rest">BasicRestConfig</a></dd>
 </dl>
 <dl>
 <dt>Direct Known Subclasses:</dt>
@@ -131,15 +131,11 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre><a href="../../../../org/apache/juneau/rest/annotation/RestResource.html" title="annotation in org.apache.juneau.rest.annotation">@RestResource</a>(<a href="../../../../org/apache/juneau/rest/annotation/RestResource.html#serializers--">serializers</a>={<a href="../../../../org/apache/juneau/html/HtmlDocSerializer.html" title="class in org.apache.juneau.html">HtmlDocSerializer.class</a>,<a href="../../../../org/apache/juneau/html/HtmlStrippedDocSerializer.html" title="class in org.ap [...]
-              <a href="../../../../org/apache/juneau/rest/annotation/RestResource.html#parsers--">parsers</a>={<a href="../../../../org/apache/juneau/json/JsonParser.html" title="class in org.apache.juneau.json">JsonParser.class</a>,<a href="../../../../org/apache/juneau/xml/XmlParser.html" title="class in org.apache.juneau.xml">XmlParser.class</a>,<a href="../../../../org/apache/juneau/html/HtmlParser.html" title="class in org.apache.juneau.html">HtmlParser.class</a>,<a href="../../../. [...]
-              <a href="../../../../org/apache/juneau/rest/annotation/RestResource.html#properties--">properties</a>=<a href="../../../../org/apache/juneau/rest/annotation/Property.html" title="annotation in org.apache.juneau.rest.annotation">@Property</a>(<a href="../../../../org/apache/juneau/rest/annotation/Property.html#name--">name</a>="Serializer.uriResolution.s",<a href="../../../../org/apache/juneau/rest/annotation/Property.html#value--">value</a>="ROOT_RELATIVE"),
-              <a href="../../../../org/apache/juneau/rest/annotation/RestResource.html#allowedMethodParams--">allowedMethodParams</a>="OPTIONS",
-              <a href="../../../../org/apache/juneau/rest/annotation/RestResource.html#htmldoc--">htmldoc</a>=,
-              <a href="../../../../org/apache/juneau/rest/annotation/RestResource.html#config--">config</a>="$S{juneau.configFile}",
-              <a href="../../../../org/apache/juneau/rest/annotation/RestResource.html#staticFiles--">staticFiles</a>={"htdocs:htdocs","styles:styles"})
-public abstract class <a href="../../../../src-html/org/apache/juneau/rest/BasicRestServlet.html#line.219">BasicRestServlet</a>
-extends <a href="../../../../org/apache/juneau/rest/RestServlet.html" title="class in org.apache.juneau.rest">RestServlet</a></pre>
+<pre><a href="../../../../org/apache/juneau/rest/annotation/RestResource.html" title="annotation in org.apache.juneau.rest.annotation">@RestResource</a>(<a href="../../../../org/apache/juneau/rest/annotation/RestResource.html#allowedMethodParams--">allowedMethodParams</a>="OPTIONS",
+              <a href="../../../../org/apache/juneau/rest/annotation/RestResource.html#htmldoc--">htmldoc</a>=)
+public abstract class <a href="../../../../src-html/org/apache/juneau/rest/BasicRestServlet.html#line.173">BasicRestServlet</a>
+extends <a href="../../../../org/apache/juneau/rest/RestServlet.html" title="class in org.apache.juneau.rest">RestServlet</a>
+implements <a href="../../../../org/apache/juneau/rest/BasicRestConfig.html" title="interface in org.apache.juneau.rest">BasicRestConfig</a></pre>
 <div class="block">Subclass of <a href="../../../../org/apache/juneau/rest/RestServlet.html" title="class in org.apache.juneau.rest"><code>RestServlet</code></a> with default serializers and parsers defined.
  
  <p>
@@ -368,7 +364,7 @@ extends <a href="../../../../org/apache/juneau/rest/RestServlet.html" title="cla
 <ul class="blockListLast">
 <li class="blockList">
 <h4>BasicRestServlet</h4>
-<pre>public&nbsp;<a href="../../../../src-html/org/apache/juneau/rest/BasicRestServlet.html#line.219">BasicRestServlet</a>()</pre>
+<pre>public&nbsp;<a href="../../../../src-html/org/apache/juneau/rest/BasicRestServlet.html#line.173">BasicRestServlet</a>()</pre>
 </li>
 </ul>
 </li>
@@ -390,7 +386,7 @@ extends <a href="../../../../org/apache/juneau/rest/RestServlet.html" title="cla
             <a href="../../../../org/apache/juneau/rest/annotation/RestMethod.html#htmldoc--">htmldoc</a>=,
             <a href="../../../../org/apache/juneau/rest/annotation/RestMethod.html#summary--">summary</a>="Swagger documentation",
             <a href="../../../../org/apache/juneau/rest/annotation/RestMethod.html#description--">description</a>="Auto-generated swagger documentation for this resource")
-public&nbsp;<a href="../../../../org/apache/juneau/dto/swagger/Swagger.html" title="class in org.apache.juneau.dto.swagger">Swagger</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/rest/BasicRestServlet.html#line.239">getOptions</a>(<a href="../../../../org/apache/juneau/rest/RestRequest.html" title="class in org.apache.juneau.rest">RestRequest</a>&nbsp;req)</pre>
+public&nbsp;<a href="../../../../org/apache/juneau/dto/swagger/Swagger.html" title="class in org.apache.juneau.dto.swagger">Swagger</a>&nbsp;<a href="../../../../src-html/org/apache/juneau/rest/BasicRestServlet.html#line.193">getOptions</a>(<a href="../../../../org/apache/juneau/rest/RestRequest.html" title="class in org.apache.juneau.rest">RestRequest</a>&nbsp;req)</pre>
 <div class="block">[OPTIONS /*] - Show resource options.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
diff --git a/content/site/apidocs/org/apache/juneau/rest/BasicRestServletGroup.html b/content/site/apidocs/org/apache/juneau/rest/BasicRestServletGroup.html
index 82304ca..de35ee1 100644
--- a/content/site/apidocs/org/apache/juneau/rest/BasicRestServletGroup.html
+++ b/content/site/apidocs/org/apache/juneau/rest/BasicRestServletGroup.html
@@ -128,7 +128,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig</dd>
+<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig, <a href="../../../../org/apache/juneau/rest/BasicRestConfig.html" title="interface in org.apache.juneau.rest">BasicRestConfig</a></dd>
 </dl>
 <dl>
 <dt>Direct Known Subclasses:</dt>
@@ -137,7 +137,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre><a href="../../../../org/apache/juneau/rest/annotation/RestResource.html" title="annotation in org.apache.juneau.rest.annotation">@RestResource</a>
-public class <a href="../../../../src-html/org/apache/juneau/rest/BasicRestServletGroup.html#line.36">BasicRestServletGroup</a>
+public abstract class <a href="../../../../src-html/org/apache/juneau/rest/BasicRestServletGroup.html#line.36">BasicRestServletGroup</a>
 extends <a href="../../../../org/apache/juneau/rest/BasicRestServlet.html" title="class in org.apache.juneau.rest">BasicRestServlet</a></pre>
 <div class="block">Specialized subclass of <a href="../../../../org/apache/juneau/rest/BasicRestServlet.html" title="class in org.apache.juneau.rest"><code>BasicRestServlet</code></a> for showing "group" pages.
  
diff --git a/content/site/apidocs/org/apache/juneau/rest/package-frame.html b/content/site/apidocs/org/apache/juneau/rest/package-frame.html
index 20d25f9..c02f24a 100644
--- a/content/site/apidocs/org/apache/juneau/rest/package-frame.html
+++ b/content/site/apidocs/org/apache/juneau/rest/package-frame.html
@@ -13,6 +13,7 @@
 <div class="indexContainer">
 <h2 title="Interfaces">Interfaces</h2>
 <ul title="Interfaces">
+<li><a href="BasicRestConfig.html" title="interface in org.apache.juneau.rest" target="classFrame"><span class="interfaceName">BasicRestConfig</span></a></li>
 <li><a href="ResponseHandler.html" title="interface in org.apache.juneau.rest" target="classFrame"><span class="interfaceName">ResponseHandler</span></a></li>
 <li><a href="RestCallHandler.html" title="interface in org.apache.juneau.rest" target="classFrame"><span class="interfaceName">RestCallHandler</span></a></li>
 <li><a href="RestCallHandler.Null.html" title="interface in org.apache.juneau.rest" target="classFrame"><span class="interfaceName">RestCallHandler.Null</span></a></li>
diff --git a/content/site/apidocs/org/apache/juneau/rest/package-summary.html b/content/site/apidocs/org/apache/juneau/rest/package-summary.html
index 85d6161..75e91bd 100644
--- a/content/site/apidocs/org/apache/juneau/rest/package-summary.html
+++ b/content/site/apidocs/org/apache/juneau/rest/package-summary.html
@@ -86,60 +86,66 @@
 </tr>
 <tbody>
 <tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/juneau/rest/BasicRestConfig.html" title="interface in org.apache.juneau.rest">BasicRestConfig</a></td>
+<td class="colLast">
+<div class="block">Basic configuration for a REST resource.</div>
+</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/juneau/rest/ResponseHandler.html" title="interface in org.apache.juneau.rest">ResponseHandler</a></td>
 <td class="colLast">
 <div class="block">Defines the interface for handlers that convert POJOs to appropriate HTTP responses.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/juneau/rest/RestCallHandler.html" title="interface in org.apache.juneau.rest">RestCallHandler</a></td>
 <td class="colLast">
 <div class="block">Class that handles the basic lifecycle of an HTTP REST call.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/juneau/rest/RestCallHandler.Null.html" title="interface in org.apache.juneau.rest">RestCallHandler.Null</a></td>
 <td class="colLast">
 <div class="block">Represents no RestCallHandler.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/juneau/rest/RestConverter.html" title="interface in org.apache.juneau.rest">RestConverter</a></td>
 <td class="colLast">
 <div class="block">REST method response converter.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/juneau/rest/RestInfoProvider.html" title="interface in org.apache.juneau.rest">RestInfoProvider</a></td>
 <td class="colLast">
 <div class="block">REST resource information provider.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/juneau/rest/RestInfoProvider.Null.html" title="interface in org.apache.juneau.rest">RestInfoProvider.Null</a></td>
 <td class="colLast">
 <div class="block">Represents no RestInfoProvider.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/juneau/rest/RestLogger.html" title="interface in org.apache.juneau.rest">RestLogger</a></td>
 <td class="colLast">
 <div class="block">Logging utility class.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/juneau/rest/RestLogger.Null.html" title="interface in org.apache.juneau.rest">RestLogger.Null</a></td>
 <td class="colLast">
 <div class="block">Represents no RestLogger.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/juneau/rest/RestResourceResolver.html" title="interface in org.apache.juneau.rest">RestResourceResolver</a></td>
 <td class="colLast">
 <div class="block">Class used to resolve <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang"><code>Class</code></a> objects to instances.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/juneau/rest/RestResourceResolver.Null.html" title="interface in org.apache.juneau.rest">RestResourceResolver.Null</a></td>
 <td class="colLast">
 <div class="block">Represents no RestResourceResolver.</div>
diff --git a/content/site/apidocs/org/apache/juneau/rest/package-tree.html b/content/site/apidocs/org/apache/juneau/rest/package-tree.html
index 3554d36..3a6feb7 100644
--- a/content/site/apidocs/org/apache/juneau/rest/package-tree.html
+++ b/content/site/apidocs/org/apache/juneau/rest/package-tree.html
@@ -143,7 +143,7 @@
 <ul>
 <li type="circle">org.apache.juneau.rest.<a href="../../../../org/apache/juneau/rest/RestServlet.html" title="class in org.apache.juneau.rest"><span class="typeNameLink">RestServlet</span></a>
 <ul>
-<li type="circle">org.apache.juneau.rest.<a href="../../../../org/apache/juneau/rest/BasicRestServlet.html" title="class in org.apache.juneau.rest"><span class="typeNameLink">BasicRestServlet</span></a>
+<li type="circle">org.apache.juneau.rest.<a href="../../../../org/apache/juneau/rest/BasicRestServlet.html" title="class in org.apache.juneau.rest"><span class="typeNameLink">BasicRestServlet</span></a> (implements org.apache.juneau.rest.<a href="../../../../org/apache/juneau/rest/BasicRestConfig.html" title="interface in org.apache.juneau.rest">BasicRestConfig</a>)
 <ul>
 <li type="circle">org.apache.juneau.rest.<a href="../../../../org/apache/juneau/rest/BasicRestServletGroup.html" title="class in org.apache.juneau.rest"><span class="typeNameLink">BasicRestServletGroup</span></a></li>
 </ul>
@@ -238,6 +238,7 @@
 </ul>
 <h2 title="Interface Hierarchy">Interface Hierarchy</h2>
 <ul>
+<li type="circle">org.apache.juneau.rest.<a href="../../../../org/apache/juneau/rest/BasicRestConfig.html" title="interface in org.apache.juneau.rest"><span class="typeNameLink">BasicRestConfig</span></a></li>
 <li type="circle">org.apache.juneau.rest.<a href="../../../../org/apache/juneau/rest/ResponseHandler.html" title="interface in org.apache.juneau.rest"><span class="typeNameLink">ResponseHandler</span></a></li>
 <li type="circle">org.apache.juneau.rest.<a href="../../../../org/apache/juneau/rest/RestCallHandler.html" title="interface in org.apache.juneau.rest"><span class="typeNameLink">RestCallHandler</span></a>
 <ul>
diff --git a/content/site/apidocs/org/apache/juneau/rest/remoteable/RemoteableServlet.html b/content/site/apidocs/org/apache/juneau/rest/remoteable/RemoteableServlet.html
index 5dcb45c..3e275d3 100644
--- a/content/site/apidocs/org/apache/juneau/rest/remoteable/RemoteableServlet.html
+++ b/content/site/apidocs/org/apache/juneau/rest/remoteable/RemoteableServlet.html
@@ -128,7 +128,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig</dd>
+<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig, <a href="../../../../../org/apache/juneau/rest/BasicRestConfig.html" title="interface in org.apache.juneau.rest">BasicRestConfig</a></dd>
 </dl>
 <hr>
 <br>
diff --git a/content/site/apidocs/org/apache/juneau/rest/remoteable/package-tree.html b/content/site/apidocs/org/apache/juneau/rest/remoteable/package-tree.html
index 55a49a2..02bd273 100644
--- a/content/site/apidocs/org/apache/juneau/rest/remoteable/package-tree.html
+++ b/content/site/apidocs/org/apache/juneau/rest/remoteable/package-tree.html
@@ -86,7 +86,7 @@
 <ul>
 <li type="circle">org.apache.juneau.rest.<a href="../../../../../org/apache/juneau/rest/RestServlet.html" title="class in org.apache.juneau.rest"><span class="typeNameLink">RestServlet</span></a>
 <ul>
-<li type="circle">org.apache.juneau.rest.<a href="../../../../../org/apache/juneau/rest/BasicRestServlet.html" title="class in org.apache.juneau.rest"><span class="typeNameLink">BasicRestServlet</span></a>
+<li type="circle">org.apache.juneau.rest.<a href="../../../../../org/apache/juneau/rest/BasicRestServlet.html" title="class in org.apache.juneau.rest"><span class="typeNameLink">BasicRestServlet</span></a> (implements org.apache.juneau.rest.<a href="../../../../../org/apache/juneau/rest/BasicRestConfig.html" title="interface in org.apache.juneau.rest">BasicRestConfig</a>)
 <ul>
 <li type="circle">org.apache.juneau.rest.remoteable.<a href="../../../../../org/apache/juneau/rest/remoteable/RemoteableServlet.html" title="class in org.apache.juneau.rest.remoteable"><span class="typeNameLink">RemoteableServlet</span></a></li>
 </ul>
diff --git a/content/site/apidocs/overview-summary.html b/content/site/apidocs/overview-summary.html
index d35f1d1..e6551af 100644
--- a/content/site/apidocs/overview-summary.html
+++ b/content/site/apidocs/overview-summary.html
@@ -7081,7 +7081,7 @@
          ShutdownResource.<jk>class</jk>
       }
    )
-   <jk>public class</jk> RootResources <jk>extends</jk> RestServletGroup {
+   <jk>public class</jk> RootResources <jk>extends</jk> BasicRestServletGroup {
       <jc>// NO CODE!!!</jc>
    }
          </p>
@@ -7097,9 +7097,9 @@
             <br>The method returns a POJO with is just a linked-list of beans with name/description properties.
          </p>  
          <p class='bcode'>
-   <jc>// The entire contents of the RestServletGroup class.</jc>
+   <jc>// The entire contents of the BasicRestServletGroup class.</jc>
    
-   <jk>public class</jk> RestServletGroup <jk>extends</jk> BasicRestServlet {
+   <jk>public class</jk> BasicRestServletGroup <jk>extends</jk> BasicRestServlet {
    
       <ja>@RestMethod</ja>(name=<jsf>GET</jsf>, path=<js>"/"</js>, description=<js>"Child resources"</js>)
       <jk>public</jk> ChildResourceDescriptions getChildren(RestRequest req) {
@@ -8861,7 +8861,7 @@
 
    <jc>// Servlet with class-level guard applied</jc>
    <ja>@RestResource</ja>(guards=BillyGuard.<jk>class</jk>)
-   <jk>public</jk> MyRestServlet <jk>extends</jk> RestServletDefult {
+   <jk>public</jk> MyRestServlet <jk>extends</jk> BasicRestServlet {
 
       <jc>// Delete method that only Billy is allowed to call.</jc>
       <ja>@RestMethod</ja>(name=<js>"DELETE"</js>)
@@ -8932,7 +8932,7 @@
       <p class='bcode'>
    <jc>// Associate the Traversable converter to all Java REST methods in this servlet</jc>
    <ja>@RestResource</ja>(converters=Traversable.<jk>class</jk>)
-   <jk>public</jk> MyRestServlet <jk>extends</jk> RestServlet {
+   <jk>public</jk> MyRestServlet <jk>extends</jk> BasicRestServlet {
       ...
    }
       </p>
@@ -9028,7 +9028,7 @@
       <p class='bcode'>
    <jc>// Servlet with associated resource bundle</jc>
    <ja>@RestResource</ja>(messages=<js>"nls/MyMessages"</js>)
-   <jk>public</jk> MyRestServlet <jk>extends</jk> RestServlet {
+   <jk>public</jk> MyRestServlet <jk>extends</jk> BasicRestServlet {
 
       <jc>// Returns the localized greeting from the "greeting" key in MyMessages.properties</jc>
       <ja>@RestMethod</ja>(name=<jsf>GET</jsf>, path=<js>"/"</js>)
@@ -9083,7 +9083,7 @@
       <p class='bcode'>
    <jc>// Servlet with automated support for GZIP compression</jc>
    <ja>@RestResource</ja>(encoders={GzipEncoder.<jk>class</jk>})
-   <jk>public</jk> MyRestServlet <jk>extends</jk> RestServlet {
+   <jk>public</jk> MyRestServlet <jk>extends</jk> BasicRestServlet {
       ...
    }
       </p>
@@ -9519,6 +9519,10 @@
       }
    }
       </p>
+      <h5 class='section'>See Also:</h5>
+      <ul class='doctree'>
+         <li class='link'><a class='doclink' href='#juneau-config'>juneau-config</a>
+      </ul>
    </div>
    
    <!-- ======================================================================================================== -->
@@ -10151,7 +10155,7 @@
       ),
       ...
    )
-   <jk>public class</jk> RootResources <jk>extends</jk> RestServletJenaGroup {...}
+   <jk>public class</jk> RootResources <jk>extends</jk> BasicRestServletJenaGroup {...}
          </p>        
          <p>
             The widget definition is shown below:
@@ -10261,7 +10265,7 @@
             <js>"source: $C{Source/gitHub}/org/apache/juneau/examples/rest/$R{servletClassSimple}.java"</js>
          },
    )
-   <jk>public class</jk> RootResources <jk>extends</jk> RestServletJenaGroup {...}
+   <jk>public class</jk> RootResources <jk>extends</jk> BasicRestServletJenaGroup {...}
          </p>
          <p>
             The <l>StyleMenuItem</l> is a widget that extends from <a href="org/apache/juneau/rest/widget/MenuItemWidget.html" title="class in org.apache.juneau.rest.widget"><code>MenuItemWidget</code></a>, a
@@ -10321,7 +10325,7 @@
       <jc>// Add a version header attribute to all responses</jc>
       defaultResponseHeaders={<js>"X-Version: 1.0"</js>}
    )
-   <jk>public</jk> MyRestServlet <jk>extends</jk> RestServlet {
+   <jk>public</jk> MyRestServlet <jk>extends</jk> BasicRestServlet {
       ...
    }        
       </p>
@@ -11280,7 +11284,7 @@
          ...
       }
    )
-   <jk>public class</jk> Root <jk>extends</jk> RestServletGroup {
+   <jk>public class</jk> Root <jk>extends</jk> BasicRestServletGroup {
       
       <jk>private final</jk> RestResourceResolver <jf>resolver</jf>;
       
@@ -12582,7 +12586,7 @@
       <p>
          The Microservice API consists of a combination of the Juneau Core, Server, and Client APIs and an embedded
          Eclipse Jetty Servlet Container.  
-         <br>It includes all libraries needed to execute in a Java 1.6+ environment.
+         <br>It includes all libraries needed to execute in a Java 1.7+ environment.
       </p>
       <p>
          Features include:
@@ -12593,7 +12597,7 @@
          <li>
             Packaged as a simple executable jar and configuration file.
          <li>
-            All the power of the Juneau Cloud Tools for defining REST servlets and clients with the ability to 
+            All the power of the Juneau ecosystem for defining REST servlets and clients with the ability to 
             serialize and parse POJOs as HTML, JSON, XML, RDF, URL-Encoding, and others.
          <li>
             An extensible API that allows you to hook into various lifecycle events.
@@ -12677,7 +12681,7 @@
          LogsResource.<jk>class</jk>
       }
    )
-   <jk>public class</jk> RootResources <jk>extends</jk> RestServletJenaGroup {
+   <jk>public class</jk> RootResources <jk>extends</jk> BasicRestServletJenaGroup {
       <jc>// No code</jc>
    }
                </p>
@@ -12938,7 +12942,7 @@
       </p>
       <p class='bcode'>
    <mk>Main-Class</mk>: <mv>org.apache.juneau.microservice.RestMicroservice</mv>
-   <mk>Main-ConfigFile</mk>: <mv>microservice.cfg</mv>
+   <mk>Main-ConfigFile</mk>: <mv>my-microservice.cfg</mv>
       <p>
          The <mk>Main-Class</mk> entry is the standard manifest entry describing the entry point for the executable jar.
          <br>In most cases, this value will always be <l>org.apache.juneau.microservice.RestMicroservice</l>.
@@ -12964,13 +12968,10 @@
          <p class='bcode'>
    <jc>// Get Main-Class from manifest file.</jc>
    String mainClass = Microservice.<jsm>getInstance</jsm>().getManifest().getString(<js>"Main-Class"</js>, <js>"unknown"</js>);
-    
-   <jc>// Get Rest-Resources from manifest file.</jc>
-   String[] restResources = Microservice.<jsm>getInstance</jsm>().getManifest().getStringArray(<js>"Rest-Resources"</js>);
          </p>
          <p>
-            The <a href="org/apache/juneau/utils/ManifestFile.html" title="class in org.apache.juneau.utils"><code>ManifestFile</code></a> class extends <a href="org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau"><code>ObjectMap</code></a>.
-            <br>That makes it possible to retrieve entries as a wide variety of object types such as java primitives, arrays, collections, 
+            The <a href="org/apache/juneau/utils/ManifestFile.html" title="class in org.apache.juneau.utils"><code>ManifestFile</code></a> class extends <a href="org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau"><code>ObjectMap</code></a>,
+            making it possible to retrieve entries as a wide variety of object types such as java primitives, arrays, collections, 
             maps, or even POJOs serialized as JSON.
          </p>
       </div>
@@ -12985,93 +12986,10 @@
          The microservice config file is an external INI-style configuration file that is used to configure
          your microservice.
       </p>
-      <p>
-         If you open the <l>my-microservice.cfg</l> file, you'll see several predefined sections and settings.
-         <br>The contents were shown in the previous sections.
-      </p>
-      <p>
-         Although the config file looks deceptively simple, the config file API is a very powerful feature with many 
-         capabilities, including:
-      </p>
-      <ul class='spaced-list'>
-         <li>
-            The ability to use variables to reference environment variables, system properties, other config file 
-            entries, and a host of other types.
-         <li>
-            The ability to store and retrieve POJOs as JSON.
-         <li>
-            APIs for updating, modifying, and saving configuration files without losing comments or formatting.
-         <li>
-            Extensive listener APIs.
+      <h5 class='section'>See Also:</h5>
+      <ul class='doctree'>
+         <li class='link'><a class='doclink' href='#juneau-config'>juneau-config</a>
       </ul>
-      
-      <h5 class='figure'>Examples:</h5>
-      <p class='bcode'>
-   <cc>#--------------------------</cc>
-   <cc># My section</cc>
-   <cc>#--------------------------</cc>
-   <cs>[MySection]</cs>
-   
-   <cc># An integer</cc>
-   <ck>anInt</ck> = <cv>1 </cv>
-   
-   <cc># A boolean</cc>
-   <ck>aBoolean</ck> = <cv>true </cv>
-   
-   <cc># An int array</cc>
-   <ck>anIntArray</ck> = <cv>1,2,3 </cv>
-   
-   <cc># A POJO that can be converted from a String</cc>
-   <ck>aURL</ck> = <cv>http://foo </cv>
-   
-   <cc># An encoded password</cc>
-   <ck>aPassword*</ck> = <cv>{HRAaRQoT}</cv>
-
-   <cc># A POJO that can be converted from JSON</cc>
-   <ck>aBean</ck> = <cv>{foo:'bar',baz:123}</cv>
-   
-   <cc># A system property</cc>
-   <ck>locale</ck> = <cv>$S{java.locale, en_US}</cv>
-   
-   <cc># An environment variable</cc>
-   <ck>path</ck> = <cv>$E{PATH, unknown}</cv>
-   
-   <cc># A manifest file entry</cc>
-   <ck>mainClass</ck> = <cv>$MF{Main-Class}</cv>
-   
-   <cc># Another value in this config file</cc>
-   <ck>sameAsAnInt</ck> = <cv>$C{MySection/anInt}</cv>
-   
-   <cc># A command-line argument in the form "myarg=foo"</cc>
-   <ck>myArg</ck> = <cv>$A{myarg}</cv>
-   
-   <cc># The first command-line argument</cc>
-   <ck>firstArg</ck> = <cv>$A{0}</cv>
-
-   <cc># Look for system property, or env var if that doesn't exist, or command-line arg if that doesn't exist.</cc>
-   <ck>nested</ck> = <cv>$S{mySystemProperty,$E{MY_ENV_VAR,$A{0}}}</cv>
-
-   <cc># A POJO with embedded variables</cc>
-   <ck>aBean2</ck> = <cv>{foo:'$A{0}',baz:$C{MySection/anInt}}</cv>
-   
-   </p>
-   <p class='bcode'>
-   <jc>// Java code for accessing config entries above.</jc>
-   Config c = Microservice.<jsm>getInstance</jsm>().getConfig();
-   
-   <jk>int</jk> anInt = c.getInt(<js>"MySection/anInt"</js>); 
-   <jk>boolean</jk> aBoolean = c.getBoolean(<js>"MySection/aBoolean"</js>); 
-   <jk>int</jk>[] anIntArray = c.getObject(<jk>int</jk>[].<jk>class</jk>, <js>"MySection/anIntArray"</js>); 
-   URL aURL = c.getObject(URL.<jk>class</jk>, <js>"MySection/aURL"</js>); 
-   String aPassword = c.getString(<js>"MySection/aPassword"</js>);
-   MyBean aBean = c.getObject(MyBean.<jk>class</jk>, <js>"MySection/aBean"</js>); 
-   Locale locale = c.getObject(Locale.<jk>class</jk>, <js>"MySection/locale"</js>); 
-   String path = c.getString(<js>"MySection/path"</js>); 
-   String mainClass = c.getString(<js>"MySection/mainClass"</js>); 
-   <jk>int</jk> sameAsAnInt = c.getInt(<js>"MySection/sameAsAnInt"</js>); 
-   String myArg = c.getString(<js>"MySection/myArg"</js>); 
-   String firstArg = c.getString(<js>"MySection/firstArg"</js>); 
-      </p>
    
       <!-- =========================================================================================================== -->
       <a id="juneau-microservice-server.ConfigApi"></a>
@@ -13082,9 +13000,9 @@
          </p>
          <ul class='doctree'>
             <li class='jm'><a href="org/apache/juneau/microservice/Microservice.html#getConfig--"><code>Microservice.getConfig()</code></a> 
-               <br>Any <a class='doclink' href='#DefaultRestSvlVariables'>initialization-time variables</a> and <l>$A</l> and <l>$MF</l> variables can be used.
+               <br>Any <a class='doclink' href='#DefaultRestSvlVariables'>initialization-time variables</a> can be used.
             <li class='jm'><a href="org/apache/juneau/rest/RestContext.html#getConfig--"><code>RestContext.getConfig()</code></a> 
-               <br>Any <a class='doclink' href='#DefaultRestSvlVariables'>initialization-time variables</a> and <l>$A</l> and <l>$MF</l> variables can be used.
+               <br>Any <a class='doclink' href='#DefaultRestSvlVariables'>initialization-time variables</a> can be used.
                <h5 class='figure'>Example usage:</h5>
                <p class='bcode'>
    <cc>#-------------------------------</cc>
@@ -13114,7 +13032,7 @@
             <li class='jm'>
                <a href="org/apache/juneau/rest/RestRequest.html#getConfig--"><code>RestRequest.getConfig()</code></a> 
                - An instance method to access it from inside a REST method.
-               <br>Any <a class='doclink' href='#DefaultRestSvlVariables'>initialization-time or request-time variables</a> and <l>$A</l> and <l>$MF</l> variables can be used.
+               <br>Any <a class='doclink' href='#DefaultRestSvlVariables'>initialization-time or request-time variables</a> can be used.
                
                <h5 class='figure'>Example usage:</h5>
                <p class='bcode'>
@@ -13201,7 +13119,7 @@
          Now let's take a look at the resource classes themselves.  
          <br>The top-level page...
       </p>
-      <img class='bordered' src='doc-files/MicroserviceServer.Running.6.png' style='width:800px;'>
+      <img class='bordered' src='doc-files/juneau-microservice-server.Running.1.png' style='width:800px;'>
       <p>
          ...is generated by this class...
       <p class='bcode'>
@@ -13210,10 +13128,6 @@
       title=<js>"My Microservice"</js>,
       description=<js>"Top-level resources page"</js>,
       htmldoc=<ja>@HtmlDoc</ja>(
-         widgets={
-            ContentTypeMenuItem.<jk>class</jk>,
-            StyleMenuItem.<jk>class</jk>
-         },
          navlinks={
             <js>"options: servlet:/?method=OPTIONS"</js>
          }
@@ -13224,7 +13138,7 @@
          LogsResource.<jk>class</jk>
       }
    )
-   <jk>public class</jk> RootResources <jk>extends</jk> RestServletJenaGroup {
+   <jk>public class</jk> RootResources <jk>extends</jk> BasicRestServletJenaGroup {
       <jc>// No code! </jc>
    }
       </p>
@@ -13387,7 +13301,7 @@
       <code>juneau-examples-core-7.1.0.zip</code> file. 
    </p>
    
-   <h5 class='topic'>Instructions on how to install juneau-examples-core project</h5>
+   <h5 class='topic'>juneau-examples-core install instructions</h5>
    <p>
       Download the <code>juneau-examples-core-7.1.0.zip</code> file from the downloads page
       (located in the binaries) and import it into your workspace as an existing project:
@@ -13427,7 +13341,7 @@
       using embedded Jetty.
    </p>  
    
-   <h5 class='topic'>Instructions on how to install juneau-examples-rest project</h5>
+   <h5 class='topic'>juneau-examples-rest install instructions</h5>
    <p>
       Download the <code>juneau-examples-rest-7.1.0.zip</code> file from the downloads page
       (located in the binaries) and import it into your workspace as an existing project:
@@ -13460,16 +13374,13 @@
       </p>
       <ul class='doctree'>
          <li class='jac'>
-            <a href="org/apache/juneau/rest/RestServlet.html" title="class in org.apache.juneau.rest"><code>org.apache.juneau.rest.RestServlet</code></a>
-            <br>Contains all the REST servlet logic.
+            <a href="org/apache/juneau/rest/RestServlet.html" title="class in org.apache.juneau.rest"><code>RestServlet</code></a> - Contains all the REST servlet logic.
             <ul>
                <li class='jac'>
-                  <a href="org/apache/juneau/rest/BasicRestServlet.html" title="class in org.apache.juneau.rest"><code>org.apache.juneau.rest.BasicRestServlet</code></a>
-                  <br>Defines default serializers and parsers, and OPTIONs page logic.
+                  <a href="org/apache/juneau/rest/BasicRestServlet.html" title="class in org.apache.juneau.rest"><code>BasicRestServlet</code></a> - Defines default serializers and parsers, and OPTIONs page logic.
                   <ul>
                      <li class='jac'>
-                        <a href="org/apache/juneau/rest/BasicRestServletGroup.html" title="class in org.apache.juneau.rest"><code>org.apache.juneau.rest.BasicRestServletGroup</code></a>
-                        <br>Specialized subclass for grouping other resources
+                        <a href="org/apache/juneau/rest/BasicRestServletGroup.html" title="class in org.apache.juneau.rest"><code>BasicRestServletGroup</code></a> - Specialized subclass for grouping other resources.
                      </li>
                   </ul>
                </li>
@@ -13479,7 +13390,7 @@
       <p>
          Pointing a browser to the resource shows the following:
       </p>
-      <img class='bordered' src='doc-files/Samples.Running.3.png'>
+      <img class='bordered' src='doc-files/Samples.Running.3.png' style='width:800px'>
       <p>
          The <l>RootResources</l> class can also be defined as a servlet in a <l>web.xml</l> file:
       </p>
@@ -13506,75 +13417,76 @@
     */</jd>
    <ja>@RestResource</ja>(
       path=<js>"/"</js>,
-      messages=<js>"nls/RootResources"</js>,
+      title=<js>"Root resources"</js>,
+      description=<js>"Example of a router resource page."</js>,
       htmldoc=<ja>@HtmlDoc</ja>(
+         widgets={
+            PoweredByApache.<jk>class</jk>,
+            ContentTypeMenuItem.<jk>class</jk>,
+            StyleMenuItem.<jk>class</jk>
+         },
          navlinks={
-            <js>"options: ?method=OPTIONS"</js>
-         }
+            <js>"options: ?method=OPTIONS"</js>,
+            <js>"$W{ContentTypeMenuItem}"</js>,
+            <js>"$W{StyleMenuItem}"</js>,
+            <js>"source: $C{Source/gitHub}/org/apache/juneau/examples/rest/$R{servletClassSimple}.java"</js>
+         },
+         aside={
+            <js>"&lt;div style='max-width:400px' class='text'&gt;"</js>,
+            <js>" &lt;p&gt;This is an example of a 'router' page that serves as a jumping-off point to child resources.&lt;/p&gt;"</js>,
+            <js>" &lt;p&gt;Resources can be nested arbitrarily deep through router pages.&lt;/p&gt;"</js>,
+            <js>" &lt;p&gt;Note the &lt;span class='link'&gt;options&lt;/span&gt; link provided that lets you see the generated swagger doc for this page.&lt;/p&gt;"</js>,
+            <js><js>"   &lt;p&gt;Also note the &lt;span class='link'&gt;sources&lt;/span&gt; link on these pages to view the source code for the page.&lt;/p&gt;"</js>,
+            "  &lt;p&gt;All content on pages in the UI are serialized POJOs.  In this case, it's a serialized array of beans with 2 properties, 'name' and 'description'.&lt;/p&gt;"</js>,
+            <js>" &lt;p&gt;Other features (such as this aside) are added through annotations.&lt;/p&gt;"</js>,
+            <js>"&lt;/div&gt;"</js>
+         },
+         footer=<js>"$W{PoweredByApache}"</js>
       ),
+      properties={
+         <jc>// For testing purposes, we want to use single quotes in all the serializers so it's easier to do simple
+         // String comparisons.
+         // You can apply any of the Serializer/Parser/BeanContext settings this way.</jc>
+         <ja>@Property</ja>(name=<jsf>SERIALIZER_quoteChar</jsf>, value=<js>"'"</js>)
+      },
       children={
-         HelloWorldResource.<jk>class</jk>, 
-         MethodExampleResource.<jk>class</jk>, 
-         RequestEchoResource.<jk>class</jk>, 
-         TempDirResource.<jk>class</jk>, 
-         AddressBookResource.<jk>class</jk>, 
-         SampleRemoteableServlet.<jk>class</jk>, 
-         PhotosResource.<jk>class</jk>, 
-         AtomFeedResource.<jk>class</jk>, 
-         JsonSchemaResource.<jk>class</jk>, 
-         SqlQueryResource.<jk>class</jk>, 
-         TumblrParserResource.<jk>class</jk>, 
-         CodeFormatterResource.<jk>class</jk>, 
-         UrlEncodedFormResource.<jk>class</jk>, 
-         SourceResource.<jk>class</jk>, 
-         ConfigResource.<jk>class</jk>, 
-         LogsResource.<jk>class</jk>, 
-         DockerRegistryResource.<jk>class</jk>, 
-         ShutdownResource.<jk>class</jk>     
+         HelloWorldResource.<jk>class</jk>,
+         PetStoreResource.<jk>class</jk>,
+         SystemPropertiesResource.<jk>class</jk>,
+         MethodExampleResource.<jk>class</jk>,
+         RequestEchoResource.<jk>class</jk>,
+         TempDirResource.<jk>class</jk>,
+         AddressBookResource.<jk>class</jk>,
+         SampleRemoteableServlet.<jk>class</jk>,
+         PhotosResource.<jk>class</jk>,
+         AtomFeedResource.<jk>class</jk>,
+         JsonSchemaResource.<jk>class</jk>,
+         SqlQueryResource.<jk>class</jk>,
+         TumblrParserResource.<jk>class</jk>,
+         CodeFormatterResource.<jk>class</jk>,
+         UrlEncodedFormResource.<jk>class</jk>,
+         ConfigResource.<jk>class</jk>,
+         LogsResource.<jk>class</jk>,
+         DockerRegistryResource.<jk>class</jk>,
+         PredefinedLabelsResource.<jk>class</jk>,
+         DebugResource.<jk>class</jk>,
+         ShutdownResource.<jk>class</jk>
       }
    )
-   <jk>public class</jk> RootResources <jk>extends</jk> RestServletJenaGroup {
-      <jk>private static final long</jk> <jsf>serialVersionUID</jsf> = 1L;
+   <jk>public class</jk> RootResources <jk>extends</jk> BasicRestServletJenaGroup {
+      <jc>// No code!</jc>
    }
       </p>
       <p>
-         The resource bundle contains the localized strings for the resource:
-      </p>
-      
-      <h5 class='figure'>RootResources.properties</h5>
-      <p class='bcode'>
-   <cc>#--------------------------------------------------------------------------------
-   # RootResources labels
-   #--------------------------------------------------------------------------------</cc>
-   <ck>title</ck> = <cv>Root resources</cv>
-   <ck>description</ck> = <cv>This is an example of a router resource that is used to access other resources.</cv>
-      </p>
-      <p>
-         The <l>title</l> and <l>description</l> keys identify the localized values
-         return by the <a href="org/apache/juneau/rest/RestRequest.html#getResourceTitle--"><code>RestRequest.getResourceTitle()</code></a> and 
-         <a href="org/apache/juneau/rest/RestRequest.html#getResourceDescription--"><code>RestRequest.getResourceDescription()</code></a> methods.
-      </p>
-      <p>
          The <l>children</l> annotation defines the child resources of this router resource.
-         These are resources whose paths are relative to the parent resource.       
+         <br>These are resources whose paths are direct decendents to the parent resource.         
       </p>
       <p>
-         Child resources must also be subclasses of <a href="org/apache/juneau/rest/RestServlet.html" title="class in org.apache.juneau.rest"><code>RestServlet</code></a>, and
-         must specify a <a href="org/apache/juneau/rest/annotation/RestResource.html#path--"><code>@RestResource.path()</code></a> annotation to 
+         Child resources must be annotated with the <a href="org/apache/juneau/rest/annotation/RestResource.html#path--"><code>@RestResource.path()</code></a> annotation to 
          identify the subpath of the child.
-         For example, the <l>HelloWorldResource</l> class is annotated as follows:
-      </p>
-      
-      <h5 class='figure'>HelloWorldResource.java</h5>
-      <p class='bcode'>
-   <ja>@RestResource</ja>(messages=<js>"nls/HelloWorldResource"</js>, path=<js>"/helloWorld"</js>)
-   <jk>public class</jk> HelloWorldResource <jk>extends</jk> BasicRestServlet {
+         <br>Children CAN extend from <a href="org/apache/juneau/rest/BasicRestServlet.html" title="class in org.apache.juneau.rest"><code>BasicRestServlet</code></a>, but it is not a requirement.
       </p>
       <p>
-         It should be noted that child resources do not need to be defined this way.  
-         They could also be defined as servlets in the same way as the root resource.  
-         The <l>children</l> annotation approach simply makes it easier to define them without having to touch the 
-         <l>web.xml</l> file again.
          Child resources can also be defined programmatically by using the 
          <a href="org/apache/juneau/rest/RestContextBuilder.html#children-java.lang.Class...-"><code>RestContextBuilder.children(Class[])</code></a> method.
       </p>
@@ -13582,21 +13494,20 @@
          Note that these router pages can be arbitrarily nested deep.  
          You can define many levels of router pages for arbitrarily hierarchical REST interfaces. 
       </p>
-      <ul class='doctree'>
-         <li class='info'>
-            Let's step back and describe what's going on here:
-            <br>During servlet initialization of the <l>RootResources</l> object, the toolkit looks for the 
-            <l>@RestResource.children()</l> annotation.  
-            If it finds it, it instantiates instances of each class and recursively performs servlet initialization 
-            on them.  
-            It then associates the child resource with the parent by the name specified by the 
-            <l>@RestResource.path()</l> annotation on the child class.  
-            When a request for the child URL (<l>/helloWorld</l>) is received, the <l>RootResources</l> servlet 
-            gets the request and sees that the URL remainder matches one of its child resources.  
-            It then forwards the request to the child resource for processing.  
-            The request passed to the child resource is the same as if the child resource had been deployed 
-            independently (e.g. path-info, resource-URI, and so forth).
-      </ul>
+      <p>
+         Let's step back and describe what's going on here:
+         <br>During servlet initialization of the <l>RootResources</l> object, the toolkit looks for the 
+         <l>@RestResource.children()</l> annotation.  
+         <br>If it finds it, it instantiates instances of each class and recursively performs servlet initialization 
+         on them.  
+         <br>It then associates the child resource with the parent by the name specified by the 
+         <l>@RestResource.path()</l> annotation on the child class.  
+         <br>When a request for the child URL (<l>/helloWorld</l>) is received, the <l>RootResources</l> servlet 
+         gets the request and sees that the URL remainder matches one of its child resources.  
+         <br>It then forwards the request to the child resource for processing.  
+         <br>The request passed to the child resource is the same as if the child resource had been deployed 
+         independently (e.g. path-info, resource-URI, and so forth).
+      </p>
    </div>   
 
    <!-- ======================================================================================================= -->
@@ -13613,17 +13524,19 @@
    * Sample REST resource that prints out a simple "Hello world!" message. 
    */</jd> 
    <ja>@RestResource</ja>( 
-      messages=<js>"nls/HelloWorldResource"</js>, 
-      path=<js>"/helloWorld"</js>, 
+      title=<js>"Hello World"</js>,
+      description=<js>"An example of the simplest-possible resource"</js>,
+      path=<js>"/helloWorld"</js>,
       htmldoc=<ja>@HtmlDoc</ja>(
-         navlinks={
-            <js>"up: request:/.."</js>,
-            <js>"options: servlet:/?method=OPTIONS"</js>
+         aside={
+            <js>"&lt;div style='max-width:400px' class='text'&gt;"</js>,
+            <js>" &lt;p&gt;This page shows a resource that simply response with a 'Hello world!' message&lt;/p&gt;"</js>,
+            <js>" &lt;p&gt;The POJO serialized is a simple String.&lt;/p&gt;"</js>,
+            <js>"&lt;/div&gt;"</js>
          }
       )
    ) 
-   <jk>public class</jk> HelloWorldResource <jk>extends</jk> BasicRestServlet { 
-      <jk>private static final long</jk> <jsf>serialVersionUID</jsf> = 1L; 
+   <jk>public class</jk> HelloWorldResource <jk>implements</jk> BasicRestConfig { 
       
       <jd>/** GET request handler */</jd> 
       <ja>@RestMethod</ja>(name=<jsf>GET</jsf>, path=<js>"/*"</js>) 
@@ -13632,40 +13545,32 @@
       } 
    }
       </p>
-      
-      <h5 class='figure'>HelloWorldResource.properties</h5>
-      <p class='bcode'>
-   <cc>#--------------------------------------------------------------------------------
-   # HelloWorldResource labels
-   #--------------------------------------------------------------------------------</cc>
-   <ck>title</ck> = <cv>Hello World sample resource</cv>
-   <ck>description</ck> = <cv>Simplest possible resource</cv>
-   <ck>sayHello.summary</ck> = <cv>Responds with "Hello world!"</cv>    
+      <p>
+         Notice that in this case we're not extending from <a href="org/apache/juneau/rest/RestServlet.html" title="class in org.apache.juneau.rest"><code>RestServlet</code></a>.  
+         <br>We are however implementing <a href="org/apache/juneau/rest/BasicRestConfig.html" title="interface in org.apache.juneau.rest"><code>BasicRestConfig</code></a> which is a no-op
+         interface that defines a default <ja>@RestResource</ja> annotation with all the serializers, parsers, 
+         and configuration defined on the <a href="org/apache/juneau/rest/BasicRestServlet.html" title="class in org.apache.juneau.rest"><code>BasicRestServlet</code></a> class.
       </p>
       <p>
-         The class hierarchy for this class is:
+         The only difference between implementing <l>BasicRestConfig</l> and extending from <l>BasicRestServlet</l>
+         is that the latter provides the following additional features:
       </p>
-      <ul class='doctree'>
-         <li class='jac'>
-            <a href="org/apache/juneau/rest/RestServlet.html" title="class in org.apache.juneau.rest"><code>org.apache.juneau.rest.RestServlet</code></a>
-            <br>Contains all the REST servlet logic.
-            <ul>
-               <li class='jac'>
-                  <a href="org/apache/juneau/rest/BasicRestServlet.html" title="class in org.apache.juneau.rest"><code>org.apache.juneau.rest.BasicRestServlet</code></a>
-                  <br>Defines default serializers and parsers, and OPTIONs page logic.
-               </li>
-            </ul>
-         </li>
+      <ul class='spaced-list'>
+         <li>A default OPTIONS method.
+         <li>It can be deployed like any servlet.
       </ul>
       <p>
+         All other examples in this project extend from <l>BasicRestServlet</l> so that they provide automatic OPTIONS page support.
+      </p>
+      <p>
          Pointing a browser to the resource shows the following:
       </p>
-      <img class='bordered' src='doc-files/Samples.HelloWorldResource.1.png'>
+      <img class='bordered' src='doc-files/Samples.HelloWorldResource.1.png' style='width:800px'>
       <p>
          Using the special <l>&amp;Accept=text/json</l> and <l>&amp;plainText=true</l> parameters
             allows us to see this page rendered as JSON:
       </p>     
-      <img class='bordered' src='doc-files/Samples.HelloWorldResource.2.png'>
+      <img class='bordered' src='doc-files/Samples.HelloWorldResource.2.png' style='width:800px'>
    </div>   
 
    <!-- ======================================================================================================= -->
@@ -13698,23 +13603,44 @@
    */</jd> 
    <ja>@RestResource</ja>( 
       path=<js>"/methodExample"</js>, 
-      messages=<js>"nls/MethodExampleResource"</js>, 
+      messages=<js>"nls/MethodExampleResource"</js>,
       htmldoc=<ja>@HtmlDoc</ja>(
          navlinks={
-            <js>"up: request:/.."</js>,
-            <js>"options: servlet:/?method=OPTIONS"</js>
+            <js>"up: servlet:/.."</js>,
+            <js>"options: servlet:/?method=OPTIONS"</js>,
+            <js>"source: $C{Source/gitHub}/org/apache/juneau/examples/rest/$R{servletClassSimple}.java"</js>
+         },
+         aside={
+            <js>"&lt;div style='max-width:400px' class='text'&gt;"</js>,
+            <js>" &lt;p&gt;Shows the different methods for retrieving HTTP query/form-data parameters, headers, and path variables.&lt;/p&gt;"</js>,
+            <js>" &lt;p&gt;Each method is functionally equivalent but demonstrate different ways to accomplish the same tasks.&lt;/p&gt;"</js>,
+            <js>"&lt;/div&gt;"</js>
          }
       )
    ) 
    <jk>public class</jk> MethodExampleResource <jk>extends</jk> BasicRestServlet { 
-      <jk>private static final long</jk> <jsf>serialVersionUID</jsf> = 1L; 
       
-      <jd>/** Example GET request that redirects to our example method */</jd> 
-      <ja>@RestMethod</ja>(name=<jsf>GET</jsf>, path=<js>"/"</js>) 
-      <jk>public</jk> Redirect doExample() <jk>throws</jk> Exception { 
-         <jk>return new</jk> Redirect(<js>"example1/xxx/123/{0}/xRemainder?q1=123&amp;q2=yyy"</js>, 
-            UUID.<jsm>randomUUID</jsm>()); 
-      } 
+      <jk>private static final</jk> UUID <jsf>SAMPLE_UUID</jsf> = UUID.<jsm>fromString</jsm>(<js>"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"</js>);
+      <jk>private static final</jk> String <jsf>SAMPLE_UUID_STRING</jsf> = <js>"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"</js>;
+   
+      <jd>/** Example GET request that redirects to our example method */</jd>
+      <ja>@RestMethod</ja>(name=<jsf>GET</jsf>, path=<js>"/"</js>)
+      <jk>public</jk> ResourceDescription[] doExample() <jk>throws</jk> Exception {
+         <jk>return new</jk> ResourceDescription[] {
+            <jk>new</jk> ResourceDescription(
+               <js>"example1/foo/123/"</js>+<jsf>SAMPLE_UUID</jsf>+<js>"/path-remainder?q1=456&amp;q2=bar"</js>, 
+               <js>"Example 1 - Annotated method attributes."</js>
+            ),
+            <jk>new</jk> ResourceDescription(
+               <js>"example2/foo/123/"</js>+<jsf>SAMPLE_UUID</jsf>+<js>"/path-remainder?q1=456&amp;q2=bar"</js>, 
+               <js>"Example 2 - Low-level RestRequest/RestResponse objects."</js>
+            ),
+            <jk>new</jk> ResourceDescription(
+               <js>"example3/foo/123/"</js>+<jsf>SAMPLE_UUID</jsf>+<js>"/path-remainder?q1=456&amp;q2=bar"</js>, 
+               <js>"Example 3 - Intermediate-level APIs."</js>
+            )
+         };
+      }
       
       <jd>/** 
        * Methodology #1 - GET request using annotated attributes.
@@ -13735,11 +13661,19 @@
             <ja>@Header</ja>(<js>"DNT"</js>) <jk>int</jk> doNotTrack
          ) {
    
-         <jc>// Send back a simple String response</jc>
-         String output = String.<jsm>format</jsm>(
-               <js>"method=%s, p1=%s, p2=%d, p3=%s, remainder=%s, q1=%d, q2=%s, q3=%s, lang=%s, accept=%s, dnt=%d"</js>,
-               method, p1, p2, p3, remainder, q1, q2, q3, lang, accept, doNotTrack);
-         <jk>return</jk> output;
+         <jc>// Send back a simple Map response</jc>
+         <jk>return new</jk> AMap&lt;String,Object&gt;()
+            .append(<js>"method"</js>, method)
+            .append(<js>"path-p1"</js>, p1)
+            .append(<js>"path-p2"</js>, p2)
+            .append(<js>"path-p3"</js>, p3)
+            .append(<js>"remainder"</js>, remainder)
+            .append(<js>"query-q1"</js>, q1)
+            .append(<js>"query-q2"</js>, q2)
+            .append(<js>"query-q3"</js>, q3)
+            .append(<js>"header-lang"</js>, lang)
+            .append(<js>"header-accept"</js>, accept)
+            .append(<js>"header-doNotTrack"</js>, doNotTrack);
       }
 
       <jd>/** 
@@ -13747,7 +13681,7 @@
        * This approach uses low-level request/response objects to perform the same as above.
        */</jd>
       <ja>@RestMethod</ja>(name=<jsf>GET</jsf>, path=<js>"/example2/{p1}/{p2}/{p3}/*"</js>)
-      <jk>public</jk> String example2(
+      <jk>public</jk> void example2(
             RestRequest req,          <jc>// A direct subclass of HttpServletRequest.</jc>
             RestResponse res          <jc>// A direct subclass of HttpServletResponse.</jc>
          ) {
@@ -13775,11 +13709,20 @@
          String accept = req.getHeader(<js>"Accept"</js>);
          <jk>int</jk> doNotTrack = req.getHeaders().get(<js>"DNT"</js>, <jk>int</jk>.<jk>class</jk>);
    
-         <jc>// Send back a simple String response</jc>
-         String output = String.format(
-               <js>"method=%s, p1=%s, p2=%d, p3=%s, remainder=%s, q1=%d, q2=%s, q3=%s, lang=%s, accept=%s, dnt=%d"</js>,
-               method, p1, p2, p3, remainder, q1, q2, q3, lang, accept, doNotTrack);
-         res.setOutput(output);  <jc>// Or use getWriter().</jc>
+         <jc>// Send back a simple Map response</jc>
+         Map&lt;String,Object&gt; m = <jk>new</jk> AMap&lt;String,Object&gt;()
+            .append(<js>"method"</js>, method)
+            .append(<js>"path-p1"</js>, p1)
+            .append(<js>"path-p2"</js>, p2)
+            .append(<js>"path-p3"</js>, p3)
+            .append(<js>"remainder"</js>, remainder)
+            .append(<js>"query-q1"</js>, q1)
+            .append(<js>"query-q2"</js>, q2)
+            .append(<js>"query-q3"</js>, q3)
+            .append(<js>"header-lang"</js>, lang)
+            .append(<js>"header-accept"</js>, accept)
+            .append(<js>"header-doNotTrack"</js>, doNotTrack);
+         res.setOutput(m);  <jc>// Use setOutput(Object) just to be different.</jc>
       }
 
       <jd>/** 
@@ -13813,11 +13756,19 @@
          <jc>// Headers.</jc>
          int doNotTrack = headers.get(<js>"DNT"</js>, <jk>int</jk>.<jk>class</jk>);
    
-         <jc>// Send back a simple String response</jc>
-         String output = String.format(
-               <js>"method=%s, p1=%s, p2=%d, p3=%s, remainder=%s, q1=%d, q2=%s, q3=%s, lang=%s, accept=%s, dnt=%d"</js>,
-               method, p1, p2, p3, remainder, q1, q2, q3, lang, accept, doNotTrack);
-         res.setOutput(output);
+         <jc>// Send back a simple Map response</jc>
+         <jk>return new</jk> AMap&lt;String,Object&gt;()
+            .append(<js>"method"</js>, method)
+            .append(<js>"path-p1"</js>, p1)
+            .append(<js>"path-p2"</js>, p2)
+            .append(<js>"path-p3"</js>, p3)
+            .append(<js>"remainder"</js>, remainder)
+            .append(<js>"query-q1"</js>, q1)
+            .append(<js>"query-q2"</js>, q2)
+            .append(<js>"query-q3"</js>, q3)
+            .append(<js>"header-lang"</js>, lang)
+            .append(<js>"header-accept"</js>, accept)
+            .append(<js>"header-doNotTrack"</js>, doNotTrack);
       }
    }
       </p>
@@ -13865,19 +13816,22 @@
       </ul>
       <p>
          There's a lot going on in this method.  
-         Notice how you're able to access URL attributes, parameters, headers, and content as parsed POJOs.  
-         All the input parsing is already done by the toolkit.  
-         You simply work with the resulting POJOs.
+         <br>Notice how you're able to access URL attributes, parameters, headers, and content as parsed POJOs.  
+         <br>All the input parsing is already done by the toolkit.  
+         <br>You simply work with the resulting POJOs.
       </p>
       <p>
          As you might notice, using annotations typically results in fewer lines of code and are therefore usually 
          preferred over the API approach, but both are equally valid.
       </p>  
       <p>
-         When you visit this page through the router page, you can see the following (after the automatic 
-         redirection occurs):
+         When you visit this page through the router page, you can see the top level page:
+      </p>
+      <img class='bordered' src="doc-files/Samples.MethodExampleResource.1.png" style='width:800px;'>
+      <p>
+         Clicking the first link on the page results in this page:
       </p>
-      <img class='bordered' src="doc-files/Samples.MethodExampleResource.1.png">
+      <img class='bordered' src="doc-files/Samples.MethodExampleResource.2.png" style='width:800px;'>
       <p>
          Notice how the conversion to POJOs is automatically done for us, even for non-standard POJOs such as UUID.
       </p>
@@ -13889,14 +13843,14 @@
       </p>
       <p>
          Much of the information populated on the OPTIONS page is determined through reflection.
-         This basic information can be augmented with information defined through:
+         <br>This basic information can be augmented with information defined through:
       </p>
       <ul class='spaced-list'>
          <li>
             Annotations - An example of this was shown in the <code>SystemPropertiesResource</code> example above.
             <br>Localized strings can be pulled from resource bundles using the <code>$L</code> localization variable.
          <li>
-            Resource bundle properties - Described in detail in this section.
+            Resource bundle properties - See <code>MethodExampleResource.properties</code> in the source.
          <li>
             Swagger JSON files with the same name and location as the resource class (e.g. 
             <code>MethodExampleResource.json</code>).
@@ -13905,7 +13859,7 @@
       </ul>
       <p>
          OPTIONS pages are simply serialized <a href="org/apache/juneau/dto/swagger/Swagger.html" title="class in org.apache.juneau.dto.swagger"><code>Swagger</code></a> DTO beans.
-         Localized versions of these beans are retrieved using the 
+         <br>Localized versions of these beans are retrieved using the 
          <a href="org/apache/juneau/rest/RestRequest.html#getSwagger--"><code>RestRequest.getSwagger()</code></a> method.
       </p>
       <p>
@@ -13923,8 +13877,8 @@
       </p>
       <p>
          The <l>OPTIONS</l> link that you see on the HTML version of the page is created 
-            through a property defined by the <a href="org/apache/juneau/html/HtmlDocSerializer.html" title="class in org.apache.juneau.html"><code>HtmlDocSerializer</code></a> class
-            and specified on the resource class annotation:
+         through a property defined by the <a href="org/apache/juneau/html/HtmlDocSerializer.html" title="class in org.apache.juneau.html"><code>HtmlDocSerializer</code></a> class
+         and specified on the resource class annotation:
       </p>
       <p class='bcode'>
    <ja>@RestResource</ja>(
@@ -13937,48 +13891,13 @@
       </p>
       <p>
          This simply creates a link that's the same URL as the resource URL appended with <l>"?method=OPTIONS"</l>, 
-            which is a shorthand way that the framework provides of defining overloaded GET requests.
-         Links using relative or absolute URLs can be defined this way.
-      </p>
-      <p>
-         Metadata about the servlet class is combined with localized strings from a properties file associated 
-            through a <code><ja>@RestResource</ja>(messages=<js>"nls/MethodExampleResources"</js>)</code> annotation.  
-         The properties file contains localized descriptions for the resource, resource methods, and method
-            parameters.
-      </p>  
-         
-      <h5 class='figure'>MethodExampleResource.properties</h5>
-      <p class='bcode'>
-   <cc>#--------------------------------------------------------------------------------
-   # MethodExampleResource labels
-   #--------------------------------------------------------------------------------</cc>
-   <ck>title = <cv>A simple REST method example resource</cv>
-   
-   <ck>doGetExample.summary</ck> = <cv>Sample GET method</cv>
-   <ck>doGetExample1.summary</ck> = <cv>Sample GET using annotations</cv>
-   <ck>doGetExample1.req.path.a1.description</ck> = <cv>Sample variable</cv>
-   <ck>doGetExample1.req.path.a2.description</ck> = <cv>Sample variable</cv>
-   <ck>doGetExample1.req.path.a3.description</ck> = <cv>Sample variable</cv>
-   <ck>doGetExample1.req.query.p1.description</ck> = <cv>Sample parameter</cv>
-   <ck>doGetExample1.req.query.p2.description</ck> = <cv>Sample parameter</cv>
-   <ck>doGetExample1.req.query.p3.description</ck> = <cv>Sample parameter</cv>
-   <ck>doGetExample1.req.header.Accept-Language.description</ck> = <cv>Sample header</cv>
-   <ck>doGetExample1.req.header.DNT.description</ck> = <cv>Sample header</cv>
-   <ck>doGetExample2.summary</ck> = <cv>Sample GET using Java APIs</cv>
-   <ck>doGetExample2.req.path.a1.description</ck> = <cv>Sample variable</cv>
-   <ck>doGetExample2.req.path.a2.description</ck> = <cv>Sample variable</cv>
-   <ck>doGetExample2.req.path.a3.description</ck> = <cv>Sample variable</cv>
-   <ck>doGetExample2.req.query.p1.description</ck> = <cv>Sample parameter</cv>
-   <ck>doGetExample2.req.query.p2.description</ck> = <cv>Sample parameter</cv>
-   <ck>doGetExample2.req.query.p3.description</ck> = <cv>Sample parameter</cv>
-   <ck>doGetExample2.req.header.Accept-Language.description</ck> = <cv>Sample header</cv>
-   <ck>doGetExample2.req.header.DNT.description</ck> = <cv>Sample header</cv>
-   <ck>getOptions.summary</ck> = <cv>View these options</cv>
+         which is a shorthand way that the framework provides of defining overloaded GET requests.
+         <br>Links using relative or absolute URLs can be defined this way.
       </p>
       <p>
          Clicking the <l>options</l> link on the page presents you with information about how to use this resource:
       </p>
-      <img class='bordered' src="doc-files/Samples.MethodExampleResource.2.png">
+      <img class='bordered' src="doc-files/Samples.MethodExampleResource.3.png" style='width:800px;'>
       <p>
          This page (like any other) can also be rendered in JSON or XML by using the <l>&amp;Accept</l> URL parameter.
       </p>
@@ -14010,87 +13929,87 @@
    <ja>@RestResource</ja>( 
       path=<js>"/urlEncodedForm"</js>, 
       messages=<js>"nls/UrlEncodedFormResource"</js>
+      title=<js>"URL-Encoded form example"</js>,
+      htmldoc=<ja>@HtmlDoc</ja>(
+         widgets={ 
+            StyleMenuItem.<jk>class</jk> 
+         },
+         navlinks={
+            <js>"up: request:/.."</js>,
+            <js>"$W{StyleMenuItem}"</js>,
+            <js>"source: $C{Source/gitHub}/org/apache/juneau/examples/rest/$R{servletClassSimple}.java"</js>
+         },
+         aside={
+            <js>"&lt;div style='min-width:200px' class='text'&gt;"</js>,
+            <js>" &lt;p&gt;Shows how to process a FORM POST body into a bean using the &lt;code&gt;@Body&lt;/code&gt; annotation.&lt;/p&gt;"</js>,
+            <js>" &lt;p&gt;Submitting the form post will simply echo the bean back on the response.&lt;/p&gt;"</js>,
+            <js>"&lt;/div&gt;"</js>
+         }
+      )
    ) 
    <jk>public class</jk> UrlEncodedFormResource <jk>extends</jk> BasicRestServlet { 
-      <jk>private static final long</jk> <jsf>serialVersionUID</jsf> = 1L; 
       
-      <jd>/** GET request handler */</jd> 
-      <ja>@RestMethod</ja>(name=<jsf>GET</jsf>, path=<js>"/"</js>) 
-      <jk>public</jk> ReaderResource doGet(RestRequest req) <jk>throws</jk> IOException { 
-         <jk>return</jk> req.getClasspathReaderResource(<js>"UrlEncodedForm.html"</js>, <jk>true</jk>); 
-      } 
-      
-      <jd>/** POST request handler */</jd> 
-      <ja>@RestMethod</ja>(name=<jsf>POST</jsf>, path=<js>"/"</js>) 
-      <jk>public</jk> Object doPost(<ja>@Body</ja> FormInputBean input) <jk>throws</jk> Exception { 
-         <jc>// Just mirror back the request</jc> 
-         <jk>return</jk> input; 
-      } 
-      
-      <jk>public static class</jk> FormInputBean { 
-         <jk>public</jk> String aString; 
-         <jk>public int</jk> aNumber; 
-         <ja>@BeanProperty</ja>(pojoSwaps=CalendarSwap.<jsf>ISO8601DT</jsf>.<jk>class</jk>) 
-         <jk>public</jk> Calendar aDate; 
-      } 
-   }     
-      </p>
-      <p>
-         The <a href="org/apache/juneau/rest/RestRequest.html#getClasspathReaderResource-java.lang.String-boolean-"><code>RestRequest.getClasspathReaderResource(String,boolean)</code></a> method pulls in the following
-            file located in the same package as the class:
-      </p>
-      
-      <h5 class='figure'>UrlEncodedForm.html</h5>
-      <b>TODO - Needs update</b>
-      <p class='bcode'>
-   <xt>&lt;html&gt;</xt> 
-   <xt>&lt;head&gt;</xt> 
-      <xt>&lt;meta</xt> <xa>http-equiv</xa>=<xs>"Content-Type"</xs> <xa>content</xa>=<xs>"text/html;charset=UTF-8"</xs><xt>&gt;</xt> 
-      <xt>&lt;style</xt> <xa>type</xa>=<xs>'text/css'</xs><xt>&gt;</xt> 
-         <xt>@import</xt> <xs>'$R{servletURI}/style.css'</xs>; 
-      <xt>&lt;/style&gt;</xt> 
-      <xt>&lt;script</xt> <xa>type</xa>=<xs>"text/javascript"</xs><xt>&gt;</xt> 
-         <jc>// Load results from IFrame into this document.</jc> 
-         <jk>function</jk> loadResults(buff) { 
-            <jk>var</jk> doc = buff.contentDocument || buff.contentWindow.document; 
-            <jk>var</jk> buffBody = doc.getElementById(<js>'data'</js>); 
-            document.getElementById(<js>'results'</js>).innerHTML = buffBody.innerHTML; 
-         } 
-      <xt>&lt;/script&gt;</xt> 
-   <xt>&lt;/head&gt;</xt> 
-   <xt>&lt;body&gt;</xt> 
-      <xt>&lt;h1&gt;</xt>$R{resourceTitle}<xt>&lt;/h1&gt;</xt> 
-      <xt>&lt;h2&gt;</xt>$R{resourceDescription}<xt>&lt;/h2&gt;</xt> 
-      <xt>&lt;div</xt> <xa>class</xa>=<xs>'data'</xs><xt>&gt;</xt> 
-         <xt>&lt;form</xt> <xa>id</xa>=<xs>'form'</xs> <xa>action</xa>=<xs>'$R{servletURI}'</xs> <xa>method</xa>=<xs>'POST'</xs> <xa>target</xa>=<xs>'buff'</xs><xt>&gt;</xt> 
-            <xt>&lt;table&gt;</xt> 
-               <xt>&lt;tr&gt;</xt> 
-                  <xt>&lt;th&gt;</xt>$L{aString}<xt>&lt;/th&gt;</xt> 
-                  <xt>&lt;td&gt;</xt><xt>&lt;input</xt> <xa>name</xa>=<xs>"aString"</xs> <xa>type</xa>=<xs>"text"</xs><xt>&gt;</xt><xt>&lt;/td&gt;</xt> 
-               <xt>&lt;/tr&gt;</xt> 
-               <xt>&lt;tr&gt;</xt> 
-                  <xt>&lt;th&gt;</xt>$L{aNumber}<xt>&lt;/th&gt;</xt> 
-                  <xt>&lt;td&gt;</xt><xt>&lt;input</xt> <xa>name</xa>=<xs>"aNumber"</xs> <xa>type</xa>=<xs>"number"</xs><xt>&gt;</xt><xt>&lt;/td&gt;</xt> 
-               <xt>&lt;/tr&gt;</xt> 
-               <xt>&lt;tr&gt;</xt> 
-                  <xt>&lt;th&gt;</xt>$L{aDate}<xt>&lt;/th&gt;</xt> 
-                  <xt>&lt;td&gt;</xt><xt>&lt;input</xt> <xa>name</xa>=<xs>"aDate"</xs> <xa>type</xa>=<xs>"datetime"</xs><xt>&gt;</xt> (ISO8601, e.g. "<xt>&lt;code&gt;</xt>2001-07-04T15:30:45Z<xt>&lt;/code&gt;</xt>")<xt>&lt;/td&gt;</xt> 
-               <xt>&lt;/tr&gt;</xt> 
-                  <xt>&lt;tr&gt;</xt> 
-                  <xt>&lt;td</xt> <xa>colspan</xa>=<xs>'2'</xs> <xa>align</xa>=<xs>'right'</xs><xt>&gt;</xt><xt>&lt;button</xt> <xa>type</xa>=<xs>"submit"</xs><xt>&gt;</xt>$L{submit}<xt>&lt;/button&gt;</xt><xt>&lt;/td&gt;</xt> 
-               <xt>&lt;/tr&gt;</xt> 
-            <xt>&lt;/table&gt;</xt> 
-         <xt>&lt;/form&gt;</xt> 
-         <xt>&lt;br&gt;</xt> 
-         <xt>&lt;div</xt> <xa>id</xa>=<xs>'results'</xs><xt>&gt;</xt> 
-         <xt>&lt;/div&gt;</xt> 
-      <xt>&lt;/div&gt;</xt> 
-      <xt>&lt;iframe</xt> <xa>name</xa>=<xs>'buff'</xs> <xa>style</xa>=<xs>'display:none'</xs> <xa>onload</xa>=<xs>"parent.loadResults(this)"</xs><xt>&gt;</xt><xt>&lt;/iframe&gt;</xt> 
-   <xt>&lt;/body&gt;</xt> 
-   <xt>&lt;/html&gt;</xt>     
+      <jd>/** GET request handler */</jd>
+      <ja>@RestMethod</ja>(
+         name=<jsf>GET</jsf>, 
+         path=<js>"/"</js>,
+         htmldoc=<ja>@HtmlDoc</ja>(
+            script={
+               <js>"// Load results from IFrame into this document."</js>,
+               <js>"function loadResults(buff) {"</js>,
+               <js>" var doc = buff.contentDocument || buff.contentWindow.document;"</js>,
+               <js>" var buffBody = doc.getElementById('data');"</js>,
+               <js>" document.getElementById('results').innerHTML = buffBody.innerHTML;"</js>,
+               <js>"}"</js>
+            }
+         )
+      )
+      <jk>public</jk> Div doGet(RestRequest req) {
+         <jk>return</jk> <jsm>div</jsm>(
+            <jsm>form</jsm>().id(<js>"form"</js>).action(<js>"servlet:/"</js>).method(<jsf>POST</jsf>).target(<js>"buff"</js>).children(
+               <jsm>table</jsm>(
+                  <jsm>tr</jsm>(
+                     <jsm>th</jsm>(req.getMessage(<js>"aString"</js>)),
+                     <jsm>td</jsm>(<jsm>input</jsm>().name(<js>"aString"</js>).type(<js>"text"</js>))
+                  ),
+                  <jsm>tr</jsm>(
+                     <jsm>th</jsm>(req.getMessage(<js>"aNumber"</js>)),
+                     <jsm>td</jsm>(<jsm>input</jsm>().name(<js>"aNumber"</js>).type(<js>"number"</js>))
+                  ),
+                  <jsm>tr</jsm>(
+                     <jsm>th</jsm>(req.getMessage(<js>"aDate"</js>)),
+                     <jsm>td</jsm>(<jsm>input</jsm>().name(<js>"aDate"</js>).type(<js>"datetime"</js>), <js>" (ISO8601, e.g. "</js>, <jsm>code</jsm>(<js>"2001-07-04T15:30:45Z"</js>), <js>" )"</js>)
+                  ),
+                  <jsm>tr</jsm>(
+                     <jsm>td</jsm>().colspan(2).style(<js>"text-align:right"</js>).children(
+                        <jsm>button</jsm>(<js>"submit"</js>, req.getMessage(<js>"submit"</js>))
+                     )
+                  )
+               )
+            ),
+            <jsm>br</jsm>(),
+            <jsm>div</jsm>().id(<js>"results"</js>),
+            <jsm>iframe</jsm>().name(<js>"buff"</js>).style(<js>"display:none"</js>).onload(<js>"parent.loadResults(this)"</js>)
+         );
+      }
+   
+      <jd>/** POST request handler */</jd>
+      <ja>@RestMethod</ja>(name=<jsf>POST</jsf>, path="/")
+      <jk>public</jk> Object doPost(<ja>@Body</ja> FormInputBean input) <jk>throws</jk> Exception {
+         <jc>// Just mirror back the request</jc>
+         <jk>return</jk> input;
+      }
+   
+      <jk>public static class</jk> FormInputBean {
+         <jk>public</jk> String <jf>aString</jf>;
+         <jk>public int</jk> <jf>aNumber</jf>;
+         <ja>@Swap</ja>(CalendarSwap.<jsf>ISO8601DT</jsf>.<jk>class</jk>)
+         <jk>public</jk> Calendar <jf>aDate</jf>;
+      }
+   }
       </p>
       <p>
-         The <l>$L</l> variables are string variable that pull in localized values from the resource bundle:
+         The localized messages are pulled from the resource bundle:
       </p>
       
       <h5 class='figure'>UrlEncodedFormResource.properties</h5>
@@ -14098,8 +14017,6 @@
    <cc>#--------------------------------------------------------------------------------
    # UrlEncodedFormResource labels
    #--------------------------------------------------------------------------------</cc>
-   <ck>title</ck> = <cv>URL-Encoded Form Post Example</cv>
-   <ck>description</ck> = <cv>Shows how URL-Encoded form input can be loaded into POJOs.  POJO is simply echoed back.</cv>
    <ck>aString</ck> = <cv>A String:</cv>
    <ck>aNumber</ck> = <cv>A Number:</cv>
    <ck>aDate</ck> = <cv>A Date:</cv>
@@ -14107,68 +14024,20 @@
       </p>
       <p>
          The <l>$R</l> variables are request string variables.  
-         In this case, <l>$R{resourceTitle}</l> and <l>$R{resourceDescription}</l> resolve to the values returned by 
+         <br>In this case, <l>$R{resourceTitle}</l> and <l>$R{resourceDescription}</l> resolve to the values returned by 
          <a href="org/apache/juneau/rest/RestRequest.html#getResourceTitle--"><code>RestRequest.getResourceTitle()</code></a> and 
          <a href="org/apache/juneau/rest/RestRequest.html#getResourceDescription--"><code>RestRequest.getResourceDescription()</code></a>.
       </p>
       <p>
          Pointing a browser to the resource shows the following:
       </p>
-      <img class='bordered' src='doc-files/Samples.UrlEncodedFormResource.1.png'>
+      <img class='bordered' src='doc-files/Samples.UrlEncodedFormResource.1.png' style='width:800px;'>
       <p>
          Entering some values and clicking <l>submit</l> causes the form bean to be populated
-            and returned back as a POJO response:
-      </p>
-      <img class='bordered' src='doc-files/Samples.UrlEncodedFormResource.2.png'>
-      <p>
-         Another option is to construct the HTML form in Java using <a class='doclink' 
-         href='org/apache/juneau/dto/html5/package-summary.html#TOC'>HTML5 beans</a>.
-         This is arguably a better approach since it's typically cleaner with less code, and the headers/links
-         are already part of the page.
+         and returned back as a POJO response:
       </p>
-      <p class='bcode'>
-   <jk>import static</jk> org.apache.juneau.dto.html5.HtmlBuilder.*;
+      <img class='bordered' src='doc-files/Samples.UrlEncodedFormResource.2.png' style='width:800px;'>
 
-   <jd>/** GET request handler */</jd>
-   <ja>@RestMethod</ja>(name=<jsf>GET</jsf>, path=<js>"/"</js>)
-   <jk>public</jk> Div doGet(RestRequest req) {
-      <jk>return</jk> div(
-         script(<js>"text/javascript"</js>,
-            <js>"\n  // Load results from IFrame into this document."</js>
-            +<js>"\n function loadResults(buff) {"</js>
-            +<js>"\n    var doc = buff.contentDocument || buff.contentWindow.document;"</js>
-            +<js>"\n    var buffBody = doc.getElementById('data');"</js>
-            +<js>"\n    document.getElementById('results').innerHTML = buffBody.innerHTML;"</js>
-            +<js>"\n }"</js>
-         ),
-         <jsf>form</jsf>().id(<js>"form"</js>).action(req.getServletURI()).method(<jsf>POST</jsf>).target(<js>"buff"</js>).children(
-            <jsf>table</jsf>(
-               <jsf>tr</jsf>(
-                  <jsf>th</jsf>(req.getMessage(<js>"aString"</js>)),
-                  <jsf>td</jsf>(<jsf>input</jsf>().name(<js>"aString"</js>).type(<js>"text"</js>))
-               ),
-               <jsf>tr</jsf>(
-                  <jsf>th</jsf>(req.getMessage(<js>"aNumber"</js>)),
-                  <jsf>td</jsf>(<jsf>input</jsf>().name(<js>"aNumber"</js>).type(<js>"number"</js>))
-               ),
-               <jsf>tr</jsf>(
-                  <jsf>th</jsf>(req.getMessage(<js>"aDate"</js>)),
-                  <jsf>td</jsf>(<jsf>input</jsf>().name(<js>"aDate"</js>).type(<js>"datetime"</js>), <js>" (ISO8601, e.g. "</js>, code(<js>"2001-07-04T15:30:45Z"</js>), <js>\" )"</js>)
-               ),
-               <jsf>tr</jsf>(
-                  <jsf>td</jsf>().colspan(2).style(<js>"text-align:right"</js>).children(
-                     <jsf>button</jsf>(<js>"submit"</js>, req.getMessage(<js>"submit"</js>))
-                  )
-               )
-            )
-         ),
-         <jsf>br</jsf>(),
-         <jsf>div</jsf>().id(<js>"results"</js>),
-         <jsf>iframe</jsf>().name(<js>"buff"</js>).style(<js>"display:none"</js>).onload(<js>"parent.loadResults(this)"</js>)
-      );
-   }
-      </p>
-      
       <h5 class='toc'>Additional Information</h5>
       <ul class='toc'>
          <li class='jm'>
@@ -16881,6 +16750,8 @@
             Fixed bug in <code>UriResolver</code> when request path info had special characters.
          <li>
             <a href="org/apache/juneau/rest/remoteable/RemoteableServlet.html" title="class in org.apache.juneau.rest.remoteable"><code>RemoteableServlet</code></a> now provides a form page for invoking remoteable methods in a browser.
+         <li>
+            Newlines were being stripped from <code><ja>@HtmlDoc</ja>(script)</code> when serialized which could cause script lines to become commented out.
       </ul>
    </div>
    
diff --git a/content/site/apidocs/overview-tree.html b/content/site/apidocs/overview-tree.html
index 825e1ed..b02f775 100644
--- a/content/site/apidocs/overview-tree.html
+++ b/content/site/apidocs/overview-tree.html
@@ -635,7 +635,7 @@
 <ul>
 <li type="circle">org.apache.juneau.rest.<a href="org/apache/juneau/rest/RestServlet.html" title="class in org.apache.juneau.rest"><span class="typeNameLink">RestServlet</span></a>
 <ul>
-<li type="circle">org.apache.juneau.rest.<a href="org/apache/juneau/rest/BasicRestServlet.html" title="class in org.apache.juneau.rest"><span class="typeNameLink">BasicRestServlet</span></a>
+<li type="circle">org.apache.juneau.rest.<a href="org/apache/juneau/rest/BasicRestServlet.html" title="class in org.apache.juneau.rest"><span class="typeNameLink">BasicRestServlet</span></a> (implements org.apache.juneau.rest.<a href="org/apache/juneau/rest/BasicRestConfig.html" title="interface in org.apache.juneau.rest">BasicRestConfig</a>)
 <ul>
 <li type="circle">org.apache.juneau.rest.<a href="org/apache/juneau/rest/BasicRestServletGroup.html" title="class in org.apache.juneau.rest"><span class="typeNameLink">BasicRestServletGroup</span></a>
 <ul>
@@ -1446,6 +1446,7 @@
 </ul>
 <h2 title="Interface Hierarchy">Interface Hierarchy</h2>
 <ul>
+<li type="circle">org.apache.juneau.rest.<a href="org/apache/juneau/rest/BasicRestConfig.html" title="interface in org.apache.juneau.rest"><span class="typeNameLink">BasicRestConfig</span></a></li>
 <li type="circle">org.apache.juneau.transform.<a href="org/apache/juneau/transform/Builder.html" title="interface in org.apache.juneau.transform"><span class="typeNameLink">Builder</span></a>&lt;T&gt;</li>
 <li type="circle">org.apache.juneau.utils.<a href="org/apache/juneau/utils/ClasspathResourceFinder.html" title="interface in org.apache.juneau.utils"><span class="typeNameLink">ClasspathResourceFinder</span></a></li>
 <li type="circle">org.apache.juneau.config.encode.<a href="org/apache/juneau/config/encode/ConfigEncoder.html" title="interface in org.apache.juneau.config.encode"><span class="typeNameLink">ConfigEncoder</span></a></li>
diff --git a/content/site/apidocs/src-html/org/apache/juneau/html/HtmlDocTemplateBasic.html b/content/site/apidocs/src-html/org/apache/juneau/html/HtmlDocTemplateBasic.html
index 40d503d..6237cba 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/html/HtmlDocTemplateBasic.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/html/HtmlDocTemplateBasic.html
@@ -67,7 +67,7 @@
 <span class="sourceLineNo">059</span>   public void script(HtmlDocSerializerSession session, HtmlWriter w, Object o) throws Exception {<a name="line.59"></a>
 <span class="sourceLineNo">060</span>      int i = 0;<a name="line.60"></a>
 <span class="sourceLineNo">061</span>      for (String s : session.getScript())<a name="line.61"></a>
-<span class="sourceLineNo">062</span>         w.sIf(i++ &gt; 0).appendln(3, s);<a name="line.62"></a>
+<span class="sourceLineNo">062</span>         w.sIf(i++ &gt; 0).append(3, s).append('\n'); // Must always append a newline even if whitespace disabled!<a name="line.62"></a>
 <span class="sourceLineNo">063</span>   }<a name="line.63"></a>
 <span class="sourceLineNo">064</span><a name="line.64"></a>
 <span class="sourceLineNo">065</span>   @Override /* HtmlDocTemplate */<a name="line.65"></a>
diff --git a/content/site/apidocs/src-html/org/apache/juneau/rest/BasicRestConfig.html b/content/site/apidocs/src-html/org/apache/juneau/rest/BasicRestConfig.html
new file mode 100644
index 0000000..2d18309
--- /dev/null
+++ b/content/site/apidocs/src-html/org/apache/juneau/rest/BasicRestConfig.html
@@ -0,0 +1,157 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../javadoc.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>// ***************************************************************************************************************************<a name="line.1"></a>
+<span class="sourceLineNo">002</span>// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *<a name="line.2"></a>
+<span class="sourceLineNo">003</span>// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *<a name="line.3"></a>
+<span class="sourceLineNo">004</span>// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance            *<a name="line.4"></a>
+<span class="sourceLineNo">005</span>// * with the License.  You may obtain a copy of the License at                                                              * <a name="line.5"></a>
+<span class="sourceLineNo">006</span>// *                                                                                                                         *<a name="line.6"></a>
+<span class="sourceLineNo">007</span>// *  http://www.apache.org/licenses/LICENSE-2.0                                                                             *<a name="line.7"></a>
+<span class="sourceLineNo">008</span>// *                                                                                                                         *<a name="line.8"></a>
+<span class="sourceLineNo">009</span>// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *<a name="line.9"></a>
+<span class="sourceLineNo">010</span>// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *<a name="line.10"></a>
+<span class="sourceLineNo">011</span>// * specific language governing permissions and limitations under the License.                                              *<a name="line.11"></a>
+<span class="sourceLineNo">012</span>// ***************************************************************************************************************************<a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.apache.juneau.rest;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import static org.apache.juneau.serializer.Serializer.*;<a name="line.15"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import org.apache.juneau.html.*;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import org.apache.juneau.json.*;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.apache.juneau.msgpack.*;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import org.apache.juneau.plaintext.*;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.juneau.rest.annotation.*;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.juneau.soap.*;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.juneau.uon.*;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.juneau.urlencoding.*;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.juneau.xml.*;<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>/**<a name="line.27"></a>
+<span class="sourceLineNo">028</span> * Basic configuration for a REST resource.<a name="line.28"></a>
+<span class="sourceLineNo">029</span> * <a name="line.29"></a>
+<span class="sourceLineNo">030</span> * &lt;p&gt;<a name="line.30"></a>
+<span class="sourceLineNo">031</span> * Classes that don't extend from {@link BasicRestServlet} can implement this interface to <a name="line.31"></a>
+<span class="sourceLineNo">032</span> * be configured with the same serializers/parsers/etc... as {@link BasicRestServlet}.<a name="line.32"></a>
+<span class="sourceLineNo">033</span> */<a name="line.33"></a>
+<span class="sourceLineNo">034</span>@RestResource(<a name="line.34"></a>
+<span class="sourceLineNo">035</span>   serializers={<a name="line.35"></a>
+<span class="sourceLineNo">036</span>      HtmlDocSerializer.class, // HTML must be listed first because Internet Explore does not include text/html in their Accept header.<a name="line.36"></a>
+<span class="sourceLineNo">037</span>      HtmlStrippedDocSerializer.class,<a name="line.37"></a>
+<span class="sourceLineNo">038</span>      HtmlSchemaDocSerializer.class,<a name="line.38"></a>
+<span class="sourceLineNo">039</span>      JsonSerializer.class,<a name="line.39"></a>
+<span class="sourceLineNo">040</span>      JsonSerializer.Simple.class,<a name="line.40"></a>
+<span class="sourceLineNo">041</span>      JsonSchemaSerializer.class,<a name="line.41"></a>
+<span class="sourceLineNo">042</span>      XmlDocSerializer.class,<a name="line.42"></a>
+<span class="sourceLineNo">043</span>      XmlSchemaDocSerializer.class,<a name="line.43"></a>
+<span class="sourceLineNo">044</span>      UonSerializer.class,<a name="line.44"></a>
+<span class="sourceLineNo">045</span>      UrlEncodingSerializer.class,<a name="line.45"></a>
+<span class="sourceLineNo">046</span>      MsgPackSerializer.class,<a name="line.46"></a>
+<span class="sourceLineNo">047</span>      SoapXmlSerializer.class,<a name="line.47"></a>
+<span class="sourceLineNo">048</span>      PlainTextSerializer.class<a name="line.48"></a>
+<span class="sourceLineNo">049</span>   },<a name="line.49"></a>
+<span class="sourceLineNo">050</span>   parsers={<a name="line.50"></a>
+<span class="sourceLineNo">051</span>      JsonParser.class,<a name="line.51"></a>
+<span class="sourceLineNo">052</span>      XmlParser.class,<a name="line.52"></a>
+<span class="sourceLineNo">053</span>      HtmlParser.class,<a name="line.53"></a>
+<span class="sourceLineNo">054</span>      UonParser.class,<a name="line.54"></a>
+<span class="sourceLineNo">055</span>      UrlEncodingParser.class,<a name="line.55"></a>
+<span class="sourceLineNo">056</span>      MsgPackParser.class,<a name="line.56"></a>
+<span class="sourceLineNo">057</span>      PlainTextParser.class<a name="line.57"></a>
+<span class="sourceLineNo">058</span>   },<a name="line.58"></a>
+<span class="sourceLineNo">059</span>   properties={<a name="line.59"></a>
+<span class="sourceLineNo">060</span>      // URI-resolution is disabled by default.  Need to enable it.<a name="line.60"></a>
+<span class="sourceLineNo">061</span>      @Property(name=SERIALIZER_uriResolution, value="ROOT_RELATIVE")<a name="line.61"></a>
+<span class="sourceLineNo">062</span>   },<a name="line.62"></a>
+<span class="sourceLineNo">063</span>   htmldoc=@HtmlDoc(<a name="line.63"></a>
+<span class="sourceLineNo">064</span>      header={<a name="line.64"></a>
+<span class="sourceLineNo">065</span>         "&lt;h1&gt;$R{resourceTitle}&lt;/h1&gt;",<a name="line.65"></a>
+<span class="sourceLineNo">066</span>         "&lt;h2&gt;$R{methodSummary,resourceDescription}&lt;/h2&gt;",<a name="line.66"></a>
+<span class="sourceLineNo">067</span>         "&lt;a href='http://juneau.apache.org'&gt;&lt;img src='$U{servlet:/htdocs/juneau.png}' style='position:absolute;top:5;right:5;background-color:transparent;height:30px'/&gt;&lt;/a&gt;"<a name="line.67"></a>
+<span class="sourceLineNo">068</span>      },<a name="line.68"></a>
+<span class="sourceLineNo">069</span>      navlinks={<a name="line.69"></a>
+<span class="sourceLineNo">070</span>         "up: request:/.."<a name="line.70"></a>
+<span class="sourceLineNo">071</span>      },<a name="line.71"></a>
+<span class="sourceLineNo">072</span>      stylesheet="$C{REST/stylesheet,servlet:/styles/devops.css}",<a name="line.72"></a>
+<span class="sourceLineNo">073</span>      head={<a name="line.73"></a>
+<span class="sourceLineNo">074</span>         "&lt;link rel='icon' href='$U{servlet:/htdocs/juneau.png}'/&gt;"<a name="line.74"></a>
+<span class="sourceLineNo">075</span>      }<a name="line.75"></a>
+<span class="sourceLineNo">076</span>   ),<a name="line.76"></a>
+<span class="sourceLineNo">077</span>   <a name="line.77"></a>
+<span class="sourceLineNo">078</span>   // Optional external configuration file.<a name="line.78"></a>
+<span class="sourceLineNo">079</span>   config="$S{juneau.configFile}",<a name="line.79"></a>
+<span class="sourceLineNo">080</span><a name="line.80"></a>
+<span class="sourceLineNo">081</span>   // These are static files that are served up by the servlet under the specified sub-paths.<a name="line.81"></a>
+<span class="sourceLineNo">082</span>   // For example, "/servletPath/htdocs/javadoc.css" resolves to the file "[servlet-package]/htdocs/javadoc.css"<a name="line.82"></a>
+<span class="sourceLineNo">083</span>   staticFiles={"htdocs:htdocs","styles:styles"}<a name="line.83"></a>
+<span class="sourceLineNo">084</span>)<a name="line.84"></a>
+<span class="sourceLineNo">085</span>public interface BasicRestConfig {}<a name="line.85"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/content/site/apidocs/src-html/org/apache/juneau/rest/BasicRestServlet.html b/content/site/apidocs/src-html/org/apache/juneau/rest/BasicRestServlet.html
index 1c0e9af..6b757a3 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/rest/BasicRestServlet.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/rest/BasicRestServlet.html
@@ -21,233 +21,187 @@
 <span class="sourceLineNo">013</span>package org.apache.juneau.rest;<a name="line.13"></a>
 <span class="sourceLineNo">014</span><a name="line.14"></a>
 <span class="sourceLineNo">015</span>import static org.apache.juneau.http.HttpMethodName.*;<a name="line.15"></a>
-<span class="sourceLineNo">016</span>import static org.apache.juneau.serializer.Serializer.*;<a name="line.16"></a>
-<span class="sourceLineNo">017</span><a name="line.17"></a>
-<span class="sourceLineNo">018</span>import org.apache.juneau.dto.swagger.*;<a name="line.18"></a>
-<span class="sourceLineNo">019</span>import org.apache.juneau.html.*;<a name="line.19"></a>
-<span class="sourceLineNo">020</span>import org.apache.juneau.jso.*;<a name="line.20"></a>
-<span class="sourceLineNo">021</span>import org.apache.juneau.json.*;<a name="line.21"></a>
-<span class="sourceLineNo">022</span>import org.apache.juneau.msgpack.*;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import org.apache.juneau.plaintext.*;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import org.apache.juneau.rest.annotation.*;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.juneau.soap.*;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.juneau.uon.*;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.juneau.urlencoding.*;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.juneau.xml.*;<a name="line.28"></a>
-<span class="sourceLineNo">029</span><a name="line.29"></a>
-<span class="sourceLineNo">030</span>/**<a name="line.30"></a>
-<span class="sourceLineNo">031</span> * Subclass of {@link RestServlet} with default serializers and parsers defined.<a name="line.31"></a>
-<span class="sourceLineNo">032</span> * <a name="line.32"></a>
-<span class="sourceLineNo">033</span> * &lt;p&gt;<a name="line.33"></a>
-<span class="sourceLineNo">034</span> * Supports the following request &lt;code&gt;Accept&lt;/code&gt; header values with the resulting response &lt;code&gt;Content-Type&lt;/code&gt;:<a name="line.34"></a>
-<span class="sourceLineNo">035</span> * &lt;table class='styled'&gt;<a name="line.35"></a>
-<span class="sourceLineNo">036</span> *    &lt;tr&gt;<a name="line.36"></a>
-<span class="sourceLineNo">037</span> *       &lt;th&gt;Accept&lt;/th&gt;<a name="line.37"></a>
-<span class="sourceLineNo">038</span> *       &lt;th&gt;Content-Type&lt;/th&gt;<a name="line.38"></a>
-<span class="sourceLineNo">039</span> *       &lt;th&gt;Serializer&lt;/th&gt;<a name="line.39"></a>
-<span class="sourceLineNo">040</span> *    &lt;/tr&gt;<a name="line.40"></a>
-<span class="sourceLineNo">041</span> *    &lt;tr&gt;<a name="line.41"></a>
-<span class="sourceLineNo">042</span> *       &lt;td class='code'&gt;application/json&lt;br&gt;text/json&lt;/td&gt;<a name="line.42"></a>
-<span class="sourceLineNo">043</span> *       &lt;td class='code'&gt;application/json&lt;/td&gt;<a name="line.43"></a>
-<span class="sourceLineNo">044</span> *       &lt;td&gt;{@link JsonSerializer}&lt;/td&gt;<a name="line.44"></a>
-<span class="sourceLineNo">045</span> *    &lt;/tr&gt;<a name="line.45"></a>
-<span class="sourceLineNo">046</span> *    &lt;tr&gt;<a name="line.46"></a>
-<span class="sourceLineNo">047</span> *       &lt;td class='code'&gt;application/json+simple&lt;br&gt;text/json+simple&lt;/td&gt;<a name="line.47"></a>
-<span class="sourceLineNo">048</span> *       &lt;td class='code'&gt;application/json&lt;/td&gt;<a name="line.48"></a>
-<span class="sourceLineNo">049</span> *       &lt;td&gt;{@link org.apache.juneau.json.JsonSerializer.Simple}&lt;/td&gt;<a name="line.49"></a>
-<span class="sourceLineNo">050</span> *    &lt;/tr&gt;<a name="line.50"></a>
-<span class="sourceLineNo">051</span> *    &lt;tr&gt;<a name="line.51"></a>
-<span class="sourceLineNo">052</span> *       &lt;td class='code'&gt;application/json+schema&lt;br&gt;text/json+schema&lt;/td&gt;<a name="line.52"></a>
-<span class="sourceLineNo">053</span> *       &lt;td class='code'&gt;application/json&lt;/td&gt;<a name="line.53"></a>
-<span class="sourceLineNo">054</span> *       &lt;td&gt;{@link JsonSchemaSerializer}&lt;/td&gt;<a name="line.54"></a>
-<span class="sourceLineNo">055</span> *    &lt;/tr&gt;<a name="line.55"></a>
-<span class="sourceLineNo">056</span> *    &lt;tr&gt;<a name="line.56"></a>
-<span class="sourceLineNo">057</span> *       &lt;td class='code'&gt;text/xml&lt;/td&gt;<a name="line.57"></a>
-<span class="sourceLineNo">058</span> *       &lt;td class='code'&gt;text/xml&lt;/td&gt;<a name="line.58"></a>
-<span class="sourceLineNo">059</span> *       &lt;td&gt;{@link XmlDocSerializer}&lt;/td&gt;<a name="line.59"></a>
-<span class="sourceLineNo">060</span> *    &lt;/tr&gt;<a name="line.60"></a>
-<span class="sourceLineNo">061</span> *    &lt;tr&gt;<a name="line.61"></a>
-<span class="sourceLineNo">062</span> *       &lt;td class='code'&gt;text/xml+schema&lt;/td&gt;<a name="line.62"></a>
-<span class="sourceLineNo">063</span> *       &lt;td class='code'&gt;text/xml&lt;/td&gt;<a name="line.63"></a>
-<span class="sourceLineNo">064</span> *       &lt;td&gt;{@link XmlSchemaDocSerializer}&lt;/td&gt;<a name="line.64"></a>
-<span class="sourceLineNo">065</span> *    &lt;/tr&gt;<a name="line.65"></a>
-<span class="sourceLineNo">066</span> *    &lt;tr&gt;<a name="line.66"></a>
-<span class="sourceLineNo">067</span> *       &lt;td class='code'&gt;text/html&lt;/td&gt;<a name="line.67"></a>
-<span class="sourceLineNo">068</span> *       &lt;td class='code'&gt;text/html&lt;/td&gt;<a name="line.68"></a>
-<span class="sourceLineNo">069</span> *       &lt;td&gt;{@link HtmlDocSerializer}&lt;/td&gt;<a name="line.69"></a>
-<span class="sourceLineNo">070</span> *    &lt;/tr&gt;<a name="line.70"></a>
-<span class="sourceLineNo">071</span> *    &lt;tr&gt;<a name="line.71"></a>
-<span class="sourceLineNo">072</span> *       &lt;td class='code'&gt;text/html+stripped&lt;/td&gt;<a name="line.72"></a>
-<span class="sourceLineNo">073</span> *       &lt;td class='code'&gt;text/html&lt;/td&gt;<a name="line.73"></a>
-<span class="sourceLineNo">074</span> *       &lt;td&gt;{@link HtmlStrippedDocSerializer}&lt;/td&gt;<a name="line.74"></a>
-<span class="sourceLineNo">075</span> *    &lt;/tr&gt;<a name="line.75"></a>
-<span class="sourceLineNo">076</span> *    &lt;tr&gt;<a name="line.76"></a>
-<span class="sourceLineNo">077</span> *       &lt;td class='code'&gt;text/uon&lt;/td&gt;<a name="line.77"></a>
-<span class="sourceLineNo">078</span> *       &lt;td class='code'&gt;text/uon&lt;/td&gt;<a name="line.78"></a>
-<span class="sourceLineNo">079</span> *       &lt;td&gt;{@link UonSerializer}&lt;/td&gt;<a name="line.79"></a>
-<span class="sourceLineNo">080</span> *    &lt;/tr&gt;<a name="line.80"></a>
-<span class="sourceLineNo">081</span> *    &lt;tr&gt;<a name="line.81"></a>
-<span class="sourceLineNo">082</span> *       &lt;td class='code'&gt;application/x-www-form-urlencoded&lt;/td&gt;<a name="line.82"></a>
-<span class="sourceLineNo">083</span> *       &lt;td class='code'&gt;application/x-www-form-urlencoded&lt;/td&gt;<a name="line.83"></a>
-<span class="sourceLineNo">084</span> *       &lt;td&gt;{@link UrlEncodingSerializer}&lt;/td&gt;<a name="line.84"></a>
-<span class="sourceLineNo">085</span> *    &lt;/tr&gt;<a name="line.85"></a>
-<span class="sourceLineNo">086</span> *    &lt;tr&gt;<a name="line.86"></a>
-<span class="sourceLineNo">087</span> *       &lt;td class='code'&gt;text/xml+soap&lt;/td&gt;<a name="line.87"></a>
-<span class="sourceLineNo">088</span> *       &lt;td class='code'&gt;text/xml&lt;/td&gt;<a name="line.88"></a>
-<span class="sourceLineNo">089</span> *       &lt;td&gt;{@link SoapXmlSerializer}&lt;/td&gt;<a name="line.89"></a>
-<span class="sourceLineNo">090</span> *    &lt;/tr&gt;<a name="line.90"></a>
-<span class="sourceLineNo">091</span> *    &lt;tr&gt;<a name="line.91"></a>
-<span class="sourceLineNo">092</span> *       &lt;td class='code'&gt;text/plain&lt;/td&gt;<a name="line.92"></a>
-<span class="sourceLineNo">093</span> *       &lt;td class='code'&gt;text/plain&lt;/td&gt;<a name="line.93"></a>
-<span class="sourceLineNo">094</span> *       &lt;td&gt;{@link PlainTextSerializer}&lt;/td&gt;<a name="line.94"></a>
-<span class="sourceLineNo">095</span> *    &lt;/tr&gt;<a name="line.95"></a>
-<span class="sourceLineNo">096</span> * &lt;/table&gt;<a name="line.96"></a>
-<span class="sourceLineNo">097</span> * &lt;p&gt;<a name="line.97"></a>
-<span class="sourceLineNo">098</span> * Supports the following request &lt;code&gt;Content-Type&lt;/code&gt; header values:<a name="line.98"></a>
-<span class="sourceLineNo">099</span> * &lt;/p&gt;<a name="line.99"></a>
-<span class="sourceLineNo">100</span> * &lt;table class='styled'&gt;<a name="line.100"></a>
-<span class="sourceLineNo">101</span> *    &lt;tr&gt;<a name="line.101"></a>
-<span class="sourceLineNo">102</span> *       &lt;th&gt;Content-Type&lt;/th&gt;<a name="line.102"></a>
-<span class="sourceLineNo">103</span> *       &lt;th&gt;Parser&lt;/th&gt;<a name="line.103"></a>
-<span class="sourceLineNo">104</span> *    &lt;/tr&gt;<a name="line.104"></a>
-<span class="sourceLineNo">105</span> *    &lt;tr&gt;<a name="line.105"></a>
-<span class="sourceLineNo">106</span> *       &lt;td class='code'&gt;application/json&lt;br&gt;text/json&lt;/td&gt;<a name="line.106"></a>
-<span class="sourceLineNo">107</span> *       &lt;td&gt;{@link JsonParser}&lt;/td&gt;<a name="line.107"></a>
-<span class="sourceLineNo">108</span> *    &lt;/tr&gt;<a name="line.108"></a>
-<span class="sourceLineNo">109</span> *    &lt;tr&gt;<a name="line.109"></a>
-<span class="sourceLineNo">110</span> *       &lt;td class='code'&gt;text/xml&lt;br&gt;application/xml&lt;/td&gt;<a name="line.110"></a>
-<span class="sourceLineNo">111</span> *       &lt;td&gt;{@link XmlParser}&lt;/td&gt;<a name="line.111"></a>
-<span class="sourceLineNo">112</span> *    &lt;/tr&gt;<a name="line.112"></a>
-<span class="sourceLineNo">113</span> *    &lt;tr&gt;<a name="line.113"></a>
-<span class="sourceLineNo">114</span> *       &lt;td class='code'&gt;text/html&lt;br&gt;text/html+stripped&lt;/td&gt;<a name="line.114"></a>
-<span class="sourceLineNo">115</span> *       &lt;td&gt;{@link HtmlParser}&lt;/td&gt;<a name="line.115"></a>
-<span class="sourceLineNo">116</span> *    &lt;/tr&gt;<a name="line.116"></a>
-<span class="sourceLineNo">117</span> *    &lt;tr&gt;<a name="line.117"></a>
-<span class="sourceLineNo">118</span> *       &lt;td class='code'&gt;text/uon&lt;/td&gt;<a name="line.118"></a>
-<span class="sourceLineNo">119</span> *       &lt;td&gt;{@link UonParser}&lt;/td&gt;<a name="line.119"></a>
-<span class="sourceLineNo">120</span> *    &lt;/tr&gt;<a name="line.120"></a>
-<span class="sourceLineNo">121</span> *    &lt;tr&gt;<a name="line.121"></a>
-<span class="sourceLineNo">122</span> *       &lt;td class='code'&gt;application/x-www-form-urlencoded&lt;/td&gt;<a name="line.122"></a>
-<span class="sourceLineNo">123</span> *       &lt;td&gt;{@link UrlEncodingParser}&lt;/td&gt;<a name="line.123"></a>
-<span class="sourceLineNo">124</span> *    &lt;/tr&gt;<a name="line.124"></a>
-<span class="sourceLineNo">125</span> *    &lt;tr&gt;<a name="line.125"></a>
-<span class="sourceLineNo">126</span> *       &lt;td class='code'&gt;text/plain&lt;/td&gt;<a name="line.126"></a>
-<span class="sourceLineNo">127</span> *       &lt;td&gt;{@link PlainTextParser}&lt;/td&gt;<a name="line.127"></a>
-<span class="sourceLineNo">128</span> *    &lt;/tr&gt;<a name="line.128"></a>
-<span class="sourceLineNo">129</span> * &lt;/table&gt;<a name="line.129"></a>
-<span class="sourceLineNo">130</span> * <a name="line.130"></a>
-<span class="sourceLineNo">131</span> * &lt;p&gt;<a name="line.131"></a>
-<span class="sourceLineNo">132</span> * It should be noted that we do NOT add {@link JsoParser} to the list of parsers since this could cause security<a name="line.132"></a>
-<span class="sourceLineNo">133</span> * issues.<a name="line.133"></a>
-<span class="sourceLineNo">134</span> * Use caution when using this particular parser as it could inadvertently cause code execution security holes.<a name="line.134"></a>
-<span class="sourceLineNo">135</span> * <a name="line.135"></a>
-<span class="sourceLineNo">136</span> * &lt;p&gt;<a name="line.136"></a>
-<span class="sourceLineNo">137</span> * The list of serializers and parsers can be appended to using the<a name="line.137"></a>
-<span class="sourceLineNo">138</span> * {@link RestResource#serializers() @RestResource.serializers()} and<a name="line.138"></a>
-<span class="sourceLineNo">139</span> * {@link RestResource#parsers() @RestResource.parsers()} annotations on subclasses.<a name="line.139"></a>
-<span class="sourceLineNo">140</span> * <a name="line.140"></a>
-<span class="sourceLineNo">141</span> * &lt;p&gt;<a name="line.141"></a>
-<span class="sourceLineNo">142</span> * This subclass also provides a default OPTIONS page by implementing a {@link #getOptions(RestRequest)} that returns a<a name="line.142"></a>
-<span class="sourceLineNo">143</span> * POJO consisting of beans describing the class.<a name="line.143"></a>
-<span class="sourceLineNo">144</span> * &lt;img class='bordered' src='doc-files/OptionsPage.png'&gt;<a name="line.144"></a>
-<span class="sourceLineNo">145</span> * <a name="line.145"></a>
-<span class="sourceLineNo">146</span> * &lt;p&gt;<a name="line.146"></a>
-<span class="sourceLineNo">147</span> * The OPTIONS page can be modified or augmented by overriding this method and providing your own data.<a name="line.147"></a>
-<span class="sourceLineNo">148</span> * <a name="line.148"></a>
-<span class="sourceLineNo">149</span> * &lt;h5 class='section'&gt;Notes:&lt;/h5&gt;<a name="line.149"></a>
-<span class="sourceLineNo">150</span> * &lt;ul class='spaced-list'&gt;<a name="line.150"></a>
-<span class="sourceLineNo">151</span> *    &lt;li&gt;<a name="line.151"></a>
-<span class="sourceLineNo">152</span> *       Provides a default HTML stylesheet by setting {@link HtmlDoc#stylesheet() @HtmlDoc.stylesheet()}<a name="line.152"></a>
-<span class="sourceLineNo">153</span> *       to &lt;js&gt;"styles/juneau.css"&lt;/js&gt;.<a name="line.153"></a>
-<span class="sourceLineNo">154</span> *    &lt;li&gt;<a name="line.154"></a>
-<span class="sourceLineNo">155</span> *       Provides a default classpath entry "htdocs" by setting<a name="line.155"></a>
-<span class="sourceLineNo">156</span> *       {@link RestResource#staticFiles() @RestResource.staticFiles()} to &lt;code&gt;{&lt;js&gt;"htdocs:htdocs"&lt;/js&gt;,&lt;js&gt;"styles:styles"&lt;/js&gt;}&lt;/code&gt;.<a name="line.156"></a>
-<span class="sourceLineNo">157</span> *       This allows files inside the &lt;code&gt;[servletPackage].htdocs&lt;/code&gt; package to be served up under the URL<a name="line.157"></a>
-<span class="sourceLineNo">158</span> *       &lt;code&gt;/servletPath/htdocs&lt;/code&gt;.<a name="line.158"></a>
-<span class="sourceLineNo">159</span> * &lt;/ul&gt;<a name="line.159"></a>
-<span class="sourceLineNo">160</span> * <a name="line.160"></a>
-<span class="sourceLineNo">161</span> * &lt;h5 class='section'&gt;See Also:&lt;/h5&gt;<a name="line.161"></a>
-<span class="sourceLineNo">162</span> * &lt;ul&gt;<a name="line.162"></a>
-<span class="sourceLineNo">163</span> *    &lt;li class='link'&gt;&lt;a class="doclink" href="../../../../overview-summary.html#juneau-rest-server.BasicRestServlet"&gt;Overview &amp;gt; juneau-rest-server &amp;gt; BasicRestServlet&lt;/a&gt;<a name="line.163"></a>
-<span class="sourceLineNo">164</span> * &lt;/ul&gt;<a name="line.164"></a>
-<span class="sourceLineNo">165</span> */<a name="line.165"></a>
-<span class="sourceLineNo">166</span>@RestResource(<a name="line.166"></a>
-<span class="sourceLineNo">167</span>   serializers={<a name="line.167"></a>
-<span class="sourceLineNo">168</span>      HtmlDocSerializer.class, // HTML must be listed first because Internet Explore does not include text/html in their Accept header.<a name="line.168"></a>
-<span class="sourceLineNo">169</span>      HtmlStrippedDocSerializer.class,<a name="line.169"></a>
-<span class="sourceLineNo">170</span>      HtmlSchemaDocSerializer.class,<a name="line.170"></a>
-<span class="sourceLineNo">171</span>      JsonSerializer.class,<a name="line.171"></a>
-<span class="sourceLineNo">172</span>      JsonSerializer.Simple.class,<a name="line.172"></a>
-<span class="sourceLineNo">173</span>      JsonSchemaSerializer.class,<a name="line.173"></a>
-<span class="sourceLineNo">174</span>      XmlDocSerializer.class,<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      XmlSchemaDocSerializer.class,<a name="line.175"></a>
-<span class="sourceLineNo">176</span>      UonSerializer.class,<a name="line.176"></a>
-<span class="sourceLineNo">177</span>      UrlEncodingSerializer.class,<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      MsgPackSerializer.class,<a name="line.178"></a>
-<span class="sourceLineNo">179</span>      SoapXmlSerializer.class,<a name="line.179"></a>
-<span class="sourceLineNo">180</span>      PlainTextSerializer.class<a name="line.180"></a>
-<span class="sourceLineNo">181</span>   },<a name="line.181"></a>
-<span class="sourceLineNo">182</span>   parsers={<a name="line.182"></a>
-<span class="sourceLineNo">183</span>      JsonParser.class,<a name="line.183"></a>
-<span class="sourceLineNo">184</span>      XmlParser.class,<a name="line.184"></a>
-<span class="sourceLineNo">185</span>      HtmlParser.class,<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      UonParser.class,<a name="line.186"></a>
-<span class="sourceLineNo">187</span>      UrlEncodingParser.class,<a name="line.187"></a>
-<span class="sourceLineNo">188</span>      MsgPackParser.class,<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      PlainTextParser.class<a name="line.189"></a>
-<span class="sourceLineNo">190</span>   },<a name="line.190"></a>
-<span class="sourceLineNo">191</span>   properties={<a name="line.191"></a>
-<span class="sourceLineNo">192</span>      // URI-resolution is disabled by default.  Need to enable it.<a name="line.192"></a>
-<span class="sourceLineNo">193</span>      @Property(name=SERIALIZER_uriResolution, value="ROOT_RELATIVE")<a name="line.193"></a>
-<span class="sourceLineNo">194</span>   },<a name="line.194"></a>
-<span class="sourceLineNo">195</span>   allowedMethodParams="OPTIONS",<a name="line.195"></a>
-<span class="sourceLineNo">196</span>   htmldoc=@HtmlDoc(<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      header={<a name="line.197"></a>
-<span class="sourceLineNo">198</span>         "&lt;h1&gt;$R{resourceTitle}&lt;/h1&gt;",<a name="line.198"></a>
-<span class="sourceLineNo">199</span>         "&lt;h2&gt;$R{methodSummary,resourceDescription}&lt;/h2&gt;",<a name="line.199"></a>
-<span class="sourceLineNo">200</span>         "&lt;a href='http://juneau.apache.org'&gt;&lt;img src='$U{servlet:/htdocs/juneau.png}' style='position:absolute;top:5;right:5;background-color:transparent;height:30px'/&gt;&lt;/a&gt;"<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      },<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      navlinks={<a name="line.202"></a>
-<span class="sourceLineNo">203</span>         "up: request:/..",<a name="line.203"></a>
-<span class="sourceLineNo">204</span>         "options: servlet:/?method=OPTIONS"<a name="line.204"></a>
-<span class="sourceLineNo">205</span>      },<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      stylesheet="$C{REST/stylesheet,servlet:/styles/devops.css}",<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      head={<a name="line.207"></a>
-<span class="sourceLineNo">208</span>         "&lt;link rel='icon' href='$U{servlet:/htdocs/juneau.png}'/&gt;"<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      }<a name="line.209"></a>
-<span class="sourceLineNo">210</span>   ),<a name="line.210"></a>
-<span class="sourceLineNo">211</span>   <a name="line.211"></a>
-<span class="sourceLineNo">212</span>   // Optional external configuration file.<a name="line.212"></a>
-<span class="sourceLineNo">213</span>   config="$S{juneau.configFile}",<a name="line.213"></a>
-<span class="sourceLineNo">214</span><a name="line.214"></a>
-<span class="sourceLineNo">215</span>   // These are static files that are served up by the servlet under the specified sub-paths.<a name="line.215"></a>
-<span class="sourceLineNo">216</span>   // For example, "/servletPath/htdocs/javadoc.css" resolves to the file "[servlet-package]/htdocs/javadoc.css"<a name="line.216"></a>
-<span class="sourceLineNo">217</span>   staticFiles={"htdocs:htdocs","styles:styles"}<a name="line.217"></a>
-<span class="sourceLineNo">218</span>)<a name="line.218"></a>
-<span class="sourceLineNo">219</span>public abstract class BasicRestServlet extends RestServlet {<a name="line.219"></a>
-<span class="sourceLineNo">220</span>   private static final long serialVersionUID = 1L;<a name="line.220"></a>
-<span class="sourceLineNo">221</span><a name="line.221"></a>
-<span class="sourceLineNo">222</span>   /**<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    * [OPTIONS /*] - Show resource options.<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    * <a name="line.224"></a>
-<span class="sourceLineNo">225</span>    * @param req The HTTP request.<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    * @return A bean containing the contents for the OPTIONS page.<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    */<a name="line.227"></a>
-<span class="sourceLineNo">228</span>   @RestMethod(name=OPTIONS, path="/*",<a name="line.228"></a>
-<span class="sourceLineNo">229</span>      htmldoc=@HtmlDoc(<a name="line.229"></a>
-<span class="sourceLineNo">230</span>         navlinks={<a name="line.230"></a>
-<span class="sourceLineNo">231</span>            "back: servlet:/",<a name="line.231"></a>
-<span class="sourceLineNo">232</span>            "json: servlet:/?method=OPTIONS&amp;Accept=text/json&amp;plainText=true"<a name="line.232"></a>
-<span class="sourceLineNo">233</span>         },<a name="line.233"></a>
-<span class="sourceLineNo">234</span>         aside="NONE"<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      ),<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      summary="Swagger documentation",<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      description="Auto-generated swagger documentation for this resource"<a name="line.237"></a>
-<span class="sourceLineNo">238</span>   )<a name="line.238"></a>
-<span class="sourceLineNo">239</span>   public Swagger getOptions(RestRequest req) {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      return req.getSwagger();<a name="line.240"></a>
-<span class="sourceLineNo">241</span>   }<a name="line.241"></a>
-<span class="sourceLineNo">242</span>}<a name="line.242"></a>
+<span class="sourceLineNo">016</span><a name="line.16"></a>
+<span class="sourceLineNo">017</span>import org.apache.juneau.dto.swagger.*;<a name="line.17"></a>
+<span class="sourceLineNo">018</span>import org.apache.juneau.html.*;<a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.apache.juneau.jso.*;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import org.apache.juneau.json.*;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.juneau.plaintext.*;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.juneau.rest.annotation.*;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.juneau.soap.*;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.juneau.uon.*;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.juneau.urlencoding.*;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.juneau.xml.*;<a name="line.26"></a>
+<span class="sourceLineNo">027</span><a name="line.27"></a>
+<span class="sourceLineNo">028</span>/**<a name="line.28"></a>
+<span class="sourceLineNo">029</span> * Subclass of {@link RestServlet} with default serializers and parsers defined.<a name="line.29"></a>
+<span class="sourceLineNo">030</span> * <a name="line.30"></a>
+<span class="sourceLineNo">031</span> * &lt;p&gt;<a name="line.31"></a>
+<span class="sourceLineNo">032</span> * Supports the following request &lt;code&gt;Accept&lt;/code&gt; header values with the resulting response &lt;code&gt;Content-Type&lt;/code&gt;:<a name="line.32"></a>
+<span class="sourceLineNo">033</span> * &lt;table class='styled'&gt;<a name="line.33"></a>
+<span class="sourceLineNo">034</span> *    &lt;tr&gt;<a name="line.34"></a>
+<span class="sourceLineNo">035</span> *       &lt;th&gt;Accept&lt;/th&gt;<a name="line.35"></a>
+<span class="sourceLineNo">036</span> *       &lt;th&gt;Content-Type&lt;/th&gt;<a name="line.36"></a>
+<span class="sourceLineNo">037</span> *       &lt;th&gt;Serializer&lt;/th&gt;<a name="line.37"></a>
+<span class="sourceLineNo">038</span> *    &lt;/tr&gt;<a name="line.38"></a>
+<span class="sourceLineNo">039</span> *    &lt;tr&gt;<a name="line.39"></a>
+<span class="sourceLineNo">040</span> *       &lt;td class='code'&gt;application/json&lt;br&gt;text/json&lt;/td&gt;<a name="line.40"></a>
+<span class="sourceLineNo">041</span> *       &lt;td class='code'&gt;application/json&lt;/td&gt;<a name="line.41"></a>
+<span class="sourceLineNo">042</span> *       &lt;td&gt;{@link JsonSerializer}&lt;/td&gt;<a name="line.42"></a>
+<span class="sourceLineNo">043</span> *    &lt;/tr&gt;<a name="line.43"></a>
+<span class="sourceLineNo">044</span> *    &lt;tr&gt;<a name="line.44"></a>
+<span class="sourceLineNo">045</span> *       &lt;td class='code'&gt;application/json+simple&lt;br&gt;text/json+simple&lt;/td&gt;<a name="line.45"></a>
+<span class="sourceLineNo">046</span> *       &lt;td class='code'&gt;application/json&lt;/td&gt;<a name="line.46"></a>
+<span class="sourceLineNo">047</span> *       &lt;td&gt;{@link org.apache.juneau.json.JsonSerializer.Simple}&lt;/td&gt;<a name="line.47"></a>
+<span class="sourceLineNo">048</span> *    &lt;/tr&gt;<a name="line.48"></a>
+<span class="sourceLineNo">049</span> *    &lt;tr&gt;<a name="line.49"></a>
+<span class="sourceLineNo">050</span> *       &lt;td class='code'&gt;application/json+schema&lt;br&gt;text/json+schema&lt;/td&gt;<a name="line.50"></a>
+<span class="sourceLineNo">051</span> *       &lt;td class='code'&gt;application/json&lt;/td&gt;<a name="line.51"></a>
+<span class="sourceLineNo">052</span> *       &lt;td&gt;{@link JsonSchemaSerializer}&lt;/td&gt;<a name="line.52"></a>
+<span class="sourceLineNo">053</span> *    &lt;/tr&gt;<a name="line.53"></a>
+<span class="sourceLineNo">054</span> *    &lt;tr&gt;<a name="line.54"></a>
+<span class="sourceLineNo">055</span> *       &lt;td class='code'&gt;text/xml&lt;/td&gt;<a name="line.55"></a>
+<span class="sourceLineNo">056</span> *       &lt;td class='code'&gt;text/xml&lt;/td&gt;<a name="line.56"></a>
+<span class="sourceLineNo">057</span> *       &lt;td&gt;{@link XmlDocSerializer}&lt;/td&gt;<a name="line.57"></a>
+<span class="sourceLineNo">058</span> *    &lt;/tr&gt;<a name="line.58"></a>
+<span class="sourceLineNo">059</span> *    &lt;tr&gt;<a name="line.59"></a>
+<span class="sourceLineNo">060</span> *       &lt;td class='code'&gt;text/xml+schema&lt;/td&gt;<a name="line.60"></a>
+<span class="sourceLineNo">061</span> *       &lt;td class='code'&gt;text/xml&lt;/td&gt;<a name="line.61"></a>
+<span class="sourceLineNo">062</span> *       &lt;td&gt;{@link XmlSchemaDocSerializer}&lt;/td&gt;<a name="line.62"></a>
+<span class="sourceLineNo">063</span> *    &lt;/tr&gt;<a name="line.63"></a>
+<span class="sourceLineNo">064</span> *    &lt;tr&gt;<a name="line.64"></a>
+<span class="sourceLineNo">065</span> *       &lt;td class='code'&gt;text/html&lt;/td&gt;<a name="line.65"></a>
+<span class="sourceLineNo">066</span> *       &lt;td class='code'&gt;text/html&lt;/td&gt;<a name="line.66"></a>
+<span class="sourceLineNo">067</span> *       &lt;td&gt;{@link HtmlDocSerializer}&lt;/td&gt;<a name="line.67"></a>
+<span class="sourceLineNo">068</span> *    &lt;/tr&gt;<a name="line.68"></a>
+<span class="sourceLineNo">069</span> *    &lt;tr&gt;<a name="line.69"></a>
+<span class="sourceLineNo">070</span> *       &lt;td class='code'&gt;text/html+stripped&lt;/td&gt;<a name="line.70"></a>
+<span class="sourceLineNo">071</span> *       &lt;td class='code'&gt;text/html&lt;/td&gt;<a name="line.71"></a>
+<span class="sourceLineNo">072</span> *       &lt;td&gt;{@link HtmlStrippedDocSerializer}&lt;/td&gt;<a name="line.72"></a>
+<span class="sourceLineNo">073</span> *    &lt;/tr&gt;<a name="line.73"></a>
+<span class="sourceLineNo">074</span> *    &lt;tr&gt;<a name="line.74"></a>
+<span class="sourceLineNo">075</span> *       &lt;td class='code'&gt;text/uon&lt;/td&gt;<a name="line.75"></a>
+<span class="sourceLineNo">076</span> *       &lt;td class='code'&gt;text/uon&lt;/td&gt;<a name="line.76"></a>
+<span class="sourceLineNo">077</span> *       &lt;td&gt;{@link UonSerializer}&lt;/td&gt;<a name="line.77"></a>
+<span class="sourceLineNo">078</span> *    &lt;/tr&gt;<a name="line.78"></a>
+<span class="sourceLineNo">079</span> *    &lt;tr&gt;<a name="line.79"></a>
+<span class="sourceLineNo">080</span> *       &lt;td class='code'&gt;application/x-www-form-urlencoded&lt;/td&gt;<a name="line.80"></a>
+<span class="sourceLineNo">081</span> *       &lt;td class='code'&gt;application/x-www-form-urlencoded&lt;/td&gt;<a name="line.81"></a>
+<span class="sourceLineNo">082</span> *       &lt;td&gt;{@link UrlEncodingSerializer}&lt;/td&gt;<a name="line.82"></a>
+<span class="sourceLineNo">083</span> *    &lt;/tr&gt;<a name="line.83"></a>
+<span class="sourceLineNo">084</span> *    &lt;tr&gt;<a name="line.84"></a>
+<span class="sourceLineNo">085</span> *       &lt;td class='code'&gt;text/xml+soap&lt;/td&gt;<a name="line.85"></a>
+<span class="sourceLineNo">086</span> *       &lt;td class='code'&gt;text/xml&lt;/td&gt;<a name="line.86"></a>
+<span class="sourceLineNo">087</span> *       &lt;td&gt;{@link SoapXmlSerializer}&lt;/td&gt;<a name="line.87"></a>
+<span class="sourceLineNo">088</span> *    &lt;/tr&gt;<a name="line.88"></a>
+<span class="sourceLineNo">089</span> *    &lt;tr&gt;<a name="line.89"></a>
+<span class="sourceLineNo">090</span> *       &lt;td class='code'&gt;text/plain&lt;/td&gt;<a name="line.90"></a>
+<span class="sourceLineNo">091</span> *       &lt;td class='code'&gt;text/plain&lt;/td&gt;<a name="line.91"></a>
+<span class="sourceLineNo">092</span> *       &lt;td&gt;{@link PlainTextSerializer}&lt;/td&gt;<a name="line.92"></a>
+<span class="sourceLineNo">093</span> *    &lt;/tr&gt;<a name="line.93"></a>
+<span class="sourceLineNo">094</span> * &lt;/table&gt;<a name="line.94"></a>
+<span class="sourceLineNo">095</span> * &lt;p&gt;<a name="line.95"></a>
+<span class="sourceLineNo">096</span> * Supports the following request &lt;code&gt;Content-Type&lt;/code&gt; header values:<a name="line.96"></a>
+<span class="sourceLineNo">097</span> * &lt;/p&gt;<a name="line.97"></a>
+<span class="sourceLineNo">098</span> * &lt;table class='styled'&gt;<a name="line.98"></a>
+<span class="sourceLineNo">099</span> *    &lt;tr&gt;<a name="line.99"></a>
+<span class="sourceLineNo">100</span> *       &lt;th&gt;Content-Type&lt;/th&gt;<a name="line.100"></a>
+<span class="sourceLineNo">101</span> *       &lt;th&gt;Parser&lt;/th&gt;<a name="line.101"></a>
+<span class="sourceLineNo">102</span> *    &lt;/tr&gt;<a name="line.102"></a>
+<span class="sourceLineNo">103</span> *    &lt;tr&gt;<a name="line.103"></a>
+<span class="sourceLineNo">104</span> *       &lt;td class='code'&gt;application/json&lt;br&gt;text/json&lt;/td&gt;<a name="line.104"></a>
+<span class="sourceLineNo">105</span> *       &lt;td&gt;{@link JsonParser}&lt;/td&gt;<a name="line.105"></a>
+<span class="sourceLineNo">106</span> *    &lt;/tr&gt;<a name="line.106"></a>
+<span class="sourceLineNo">107</span> *    &lt;tr&gt;<a name="line.107"></a>
+<span class="sourceLineNo">108</span> *       &lt;td class='code'&gt;text/xml&lt;br&gt;application/xml&lt;/td&gt;<a name="line.108"></a>
+<span class="sourceLineNo">109</span> *       &lt;td&gt;{@link XmlParser}&lt;/td&gt;<a name="line.109"></a>
+<span class="sourceLineNo">110</span> *    &lt;/tr&gt;<a name="line.110"></a>
+<span class="sourceLineNo">111</span> *    &lt;tr&gt;<a name="line.111"></a>
+<span class="sourceLineNo">112</span> *       &lt;td class='code'&gt;text/html&lt;br&gt;text/html+stripped&lt;/td&gt;<a name="line.112"></a>
+<span class="sourceLineNo">113</span> *       &lt;td&gt;{@link HtmlParser}&lt;/td&gt;<a name="line.113"></a>
+<span class="sourceLineNo">114</span> *    &lt;/tr&gt;<a name="line.114"></a>
+<span class="sourceLineNo">115</span> *    &lt;tr&gt;<a name="line.115"></a>
+<span class="sourceLineNo">116</span> *       &lt;td class='code'&gt;text/uon&lt;/td&gt;<a name="line.116"></a>
+<span class="sourceLineNo">117</span> *       &lt;td&gt;{@link UonParser}&lt;/td&gt;<a name="line.117"></a>
+<span class="sourceLineNo">118</span> *    &lt;/tr&gt;<a name="line.118"></a>
+<span class="sourceLineNo">119</span> *    &lt;tr&gt;<a name="line.119"></a>
+<span class="sourceLineNo">120</span> *       &lt;td class='code'&gt;application/x-www-form-urlencoded&lt;/td&gt;<a name="line.120"></a>
+<span class="sourceLineNo">121</span> *       &lt;td&gt;{@link UrlEncodingParser}&lt;/td&gt;<a name="line.121"></a>
+<span class="sourceLineNo">122</span> *    &lt;/tr&gt;<a name="line.122"></a>
+<span class="sourceLineNo">123</span> *    &lt;tr&gt;<a name="line.123"></a>
+<span class="sourceLineNo">124</span> *       &lt;td class='code'&gt;text/plain&lt;/td&gt;<a name="line.124"></a>
+<span class="sourceLineNo">125</span> *       &lt;td&gt;{@link PlainTextParser}&lt;/td&gt;<a name="line.125"></a>
+<span class="sourceLineNo">126</span> *    &lt;/tr&gt;<a name="line.126"></a>
+<span class="sourceLineNo">127</span> * &lt;/table&gt;<a name="line.127"></a>
+<span class="sourceLineNo">128</span> * <a name="line.128"></a>
+<span class="sourceLineNo">129</span> * &lt;p&gt;<a name="line.129"></a>
+<span class="sourceLineNo">130</span> * It should be noted that we do NOT add {@link JsoParser} to the list of parsers since this could cause security<a name="line.130"></a>
+<span class="sourceLineNo">131</span> * issues.<a name="line.131"></a>
+<span class="sourceLineNo">132</span> * Use caution when using this particular parser as it could inadvertently cause code execution security holes.<a name="line.132"></a>
+<span class="sourceLineNo">133</span> * <a name="line.133"></a>
+<span class="sourceLineNo">134</span> * &lt;p&gt;<a name="line.134"></a>
+<span class="sourceLineNo">135</span> * The list of serializers and parsers can be appended to using the<a name="line.135"></a>
+<span class="sourceLineNo">136</span> * {@link RestResource#serializers() @RestResource.serializers()} and<a name="line.136"></a>
+<span class="sourceLineNo">137</span> * {@link RestResource#parsers() @RestResource.parsers()} annotations on subclasses.<a name="line.137"></a>
+<span class="sourceLineNo">138</span> * <a name="line.138"></a>
+<span class="sourceLineNo">139</span> * &lt;p&gt;<a name="line.139"></a>
+<span class="sourceLineNo">140</span> * This subclass also provides a default OPTIONS page by implementing a {@link #getOptions(RestRequest)} that returns a<a name="line.140"></a>
+<span class="sourceLineNo">141</span> * POJO consisting of beans describing the class.<a name="line.141"></a>
+<span class="sourceLineNo">142</span> * &lt;img class='bordered' src='doc-files/OptionsPage.png'&gt;<a name="line.142"></a>
+<span class="sourceLineNo">143</span> * <a name="line.143"></a>
+<span class="sourceLineNo">144</span> * &lt;p&gt;<a name="line.144"></a>
+<span class="sourceLineNo">145</span> * The OPTIONS page can be modified or augmented by overriding this method and providing your own data.<a name="line.145"></a>
+<span class="sourceLineNo">146</span> * <a name="line.146"></a>
+<span class="sourceLineNo">147</span> * &lt;h5 class='section'&gt;Notes:&lt;/h5&gt;<a name="line.147"></a>
+<span class="sourceLineNo">148</span> * &lt;ul class='spaced-list'&gt;<a name="line.148"></a>
+<span class="sourceLineNo">149</span> *    &lt;li&gt;<a name="line.149"></a>
+<span class="sourceLineNo">150</span> *       Provides a default HTML stylesheet by setting {@link HtmlDoc#stylesheet() @HtmlDoc.stylesheet()}<a name="line.150"></a>
+<span class="sourceLineNo">151</span> *       to &lt;js&gt;"styles/juneau.css"&lt;/js&gt;.<a name="line.151"></a>
+<span class="sourceLineNo">152</span> *    &lt;li&gt;<a name="line.152"></a>
+<span class="sourceLineNo">153</span> *       Provides a default classpath entry "htdocs" by setting<a name="line.153"></a>
+<span class="sourceLineNo">154</span> *       {@link RestResource#staticFiles() @RestResource.staticFiles()} to &lt;code&gt;{&lt;js&gt;"htdocs:htdocs"&lt;/js&gt;,&lt;js&gt;"styles:styles"&lt;/js&gt;}&lt;/code&gt;.<a name="line.154"></a>
+<span class="sourceLineNo">155</span> *       This allows files inside the &lt;code&gt;[servletPackage].htdocs&lt;/code&gt; package to be served up under the URL<a name="line.155"></a>
+<span class="sourceLineNo">156</span> *       &lt;code&gt;/servletPath/htdocs&lt;/code&gt;.<a name="line.156"></a>
+<span class="sourceLineNo">157</span> * &lt;/ul&gt;<a name="line.157"></a>
+<span class="sourceLineNo">158</span> * <a name="line.158"></a>
+<span class="sourceLineNo">159</span> * &lt;h5 class='section'&gt;See Also:&lt;/h5&gt;<a name="line.159"></a>
+<span class="sourceLineNo">160</span> * &lt;ul&gt;<a name="line.160"></a>
+<span class="sourceLineNo">161</span> *    &lt;li class='link'&gt;&lt;a class="doclink" href="../../../../overview-summary.html#juneau-rest-server.BasicRestServlet"&gt;Overview &amp;gt; juneau-rest-server &amp;gt; BasicRestServlet&lt;/a&gt;<a name="line.161"></a>
+<span class="sourceLineNo">162</span> * &lt;/ul&gt;<a name="line.162"></a>
+<span class="sourceLineNo">163</span> */<a name="line.163"></a>
+<span class="sourceLineNo">164</span>@RestResource(<a name="line.164"></a>
+<span class="sourceLineNo">165</span>   allowedMethodParams="OPTIONS",<a name="line.165"></a>
+<span class="sourceLineNo">166</span>   htmldoc=@HtmlDoc(<a name="line.166"></a>
+<span class="sourceLineNo">167</span>      navlinks={<a name="line.167"></a>
+<span class="sourceLineNo">168</span>         "up: request:/..",<a name="line.168"></a>
+<span class="sourceLineNo">169</span>         "options: servlet:/?method=OPTIONS"<a name="line.169"></a>
+<span class="sourceLineNo">170</span>      }<a name="line.170"></a>
+<span class="sourceLineNo">171</span>   )<a name="line.171"></a>
+<span class="sourceLineNo">172</span>)<a name="line.172"></a>
+<span class="sourceLineNo">173</span>public abstract class BasicRestServlet extends RestServlet implements BasicRestConfig {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>   private static final long serialVersionUID = 1L;<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span>   /**<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    * [OPTIONS /*] - Show resource options.<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    * <a name="line.178"></a>
+<span class="sourceLineNo">179</span>    * @param req The HTTP request.<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    * @return A bean containing the contents for the OPTIONS page.<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    */<a name="line.181"></a>
+<span class="sourceLineNo">182</span>   @RestMethod(name=OPTIONS, path="/*",<a name="line.182"></a>
+<span class="sourceLineNo">183</span>      htmldoc=@HtmlDoc(<a name="line.183"></a>
+<span class="sourceLineNo">184</span>         navlinks={<a name="line.184"></a>
+<span class="sourceLineNo">185</span>            "back: servlet:/",<a name="line.185"></a>
+<span class="sourceLineNo">186</span>            "json: servlet:/?method=OPTIONS&amp;Accept=text/json&amp;plainText=true"<a name="line.186"></a>
+<span class="sourceLineNo">187</span>         },<a name="line.187"></a>
+<span class="sourceLineNo">188</span>         aside="NONE"<a name="line.188"></a>
+<span class="sourceLineNo">189</span>      ),<a name="line.189"></a>
+<span class="sourceLineNo">190</span>      summary="Swagger documentation",<a name="line.190"></a>
+<span class="sourceLineNo">191</span>      description="Auto-generated swagger documentation for this resource"<a name="line.191"></a>
+<span class="sourceLineNo">192</span>   )<a name="line.192"></a>
+<span class="sourceLineNo">193</span>   public Swagger getOptions(RestRequest req) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>      return req.getSwagger();<a name="line.194"></a>
+<span class="sourceLineNo">195</span>   }<a name="line.195"></a>
+<span class="sourceLineNo">196</span>}<a name="line.196"></a>
 
 
 
diff --git a/content/site/apidocs/src-html/org/apache/juneau/rest/BasicRestServletGroup.html b/content/site/apidocs/src-html/org/apache/juneau/rest/BasicRestServletGroup.html
index 460f2c5..9dbd5fa 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/rest/BasicRestServletGroup.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/rest/BasicRestServletGroup.html
@@ -41,7 +41,7 @@
 <span class="sourceLineNo">033</span> * &lt;/ul&gt;<a name="line.33"></a>
 <span class="sourceLineNo">034</span> */<a name="line.34"></a>
 <span class="sourceLineNo">035</span>@RestResource<a name="line.35"></a>
-<span class="sourceLineNo">036</span>public class BasicRestServletGroup extends BasicRestServlet {<a name="line.36"></a>
+<span class="sourceLineNo">036</span>public abstract class BasicRestServletGroup extends BasicRestServlet {<a name="line.36"></a>
 <span class="sourceLineNo">037</span>   private static final long serialVersionUID = 1L;<a name="line.37"></a>
 <span class="sourceLineNo">038</span><a name="line.38"></a>
 <span class="sourceLineNo">039</span>   /**<a name="line.39"></a>

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

Mime
View raw message