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

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


The following commit(s) were added to refs/heads/master by this push:
     new 11bdf5c  Javadocs
11bdf5c is described below

commit 11bdf5c089f3b9ade2e58a69a0d44b4428287857
Author: JamesBognar <[email protected]>
AuthorDate: Tue Feb 8 12:55:09 2022 -0500

    Javadocs
---
 .../org/apache/juneau/dto/jsonschema/package.html  |  6 ++---
 .../src/main/java/org/apache/juneau/Context.java   |  2 +-
 .../main/java/org/apache/juneau/cp/FileFinder.java |  2 +-
 .../org/apache/juneau/html/HtmlDocSerializer.java  |  2 +-
 .../juneau/html/annotation/HtmlDocConfig.java      |  2 +-
 .../docs/Topics/01.Overview/05.o.RestServer.html   |  2 +-
 .../07.jm.ContextAnnotations.html                  |  2 +-
 .../29.jm.HtmlDetails/06.jm.HtmlDocSerializer.html |  2 +-
 .../05.juneau-config/02.jc.ReadingEntries.html     | 22 +----------------
 .../02.jc.ReadingEntries/02.jc.Arrays.html         |  2 +-
 .../Topics/05.juneau-config/05.jc.Sections.html    | 14 ++++-------
 .../10.jc.ConfigStores/03.jc.CustomStores.html     |  2 +-
 .../02.jrs.ChildResources.html                     |  2 +-
 .../03.jrs.PathVariables.html                      |  2 +-
 .../04.jrs.HttpParts/03.jrs.DefaultParts.html      |  2 +-
 .../06.juneau-rest-server/05.jrs.Marshalling.html  |  4 ++--
 .../06.jrs.HandlingFormPosts.html                  |  2 +-
 .../06.juneau-rest-server/07.jrs.Guards.html       |  4 ++--
 .../06.juneau-rest-server/10.jrs.Encoders.html     |  2 +-
 .../11.jrs.ConfigurationFiles.html                 |  4 ++--
 .../15.jrs.Swagger/02.jrs.BasicSwaggerInfo.html    |  8 +++----
 .../06.juneau-rest-server/22.jrs.Injection.html    |  4 ++--
 .../06.juneau-rest-server/24.jrs.RestContext.html  |  4 ++--
 .../02.jrss.ChildResources.html                    |  6 ++---
 .../01.jrc.PojoMarshalling.html                    |  8 -------
 .../10.jrc.DualPurposeInterfaces.html              |  2 +-
 .../03.jmj.ResourceClasses.html                    |  4 ++--
 .../05.jmj.Config.html                             |  4 ++--
 .../01.mjm.Installing.html                         |  2 +-
 .../01.msm.Installing.html                         |  2 +-
 .../01.jer.RootResources.html                      |  2 +-
 .../03.jer.DtoExamples.html                        |  4 ++--
 .../04.jer.ConfigResource.html                     |  2 +-
 .../01.jerj.Installing.html                        |  2 +-
 .../01.jers.Installing.html                        |  2 +-
 .../apache/juneau/rest/client/ResponseHeader.java  | 28 +++++++++++-----------
 .../org/apache/juneau/rest/client/RestClient.java  |  8 +++----
 .../apache/juneau/rest/client/RestResponse.java    |  4 ++--
 .../assertion/FluentResponseHeaderAssertion.java   | 16 ++++++-------
 .../org/apache/juneau/rest/mock/MockConsole.java   |  2 +-
 .../java/org/apache/juneau/rest/RestContext.java   | 16 ++++++-------
 .../java/org/apache/juneau/rest/RestOpContext.java |  4 ++--
 .../apache/juneau/rest/annotation/HookEvent.java   | 12 +++++-----
 .../org/apache/juneau/rest/annotation/Rest.java    |  8 +++----
 .../apache/juneau/rest/annotation/RestDelete.java  |  6 ++---
 .../org/apache/juneau/rest/annotation/RestGet.java |  4 ++--
 .../org/apache/juneau/rest/annotation/RestOp.java  |  4 ++--
 .../apache/juneau/rest/annotation/RestPost.java    |  4 ++--
 .../org/apache/juneau/rest/annotation/RestPut.java |  4 ++--
 .../org/apache/juneau/rest/beans/Hyperlink.java    |  2 +-
 .../juneau/rest/converter/RestConverter.java       |  2 +-
 .../org/apache/juneau/rest/guard/RestGuard.java    |  2 +-
 .../apache/juneau/rest/matcher/RestMatcher.java    |  2 +-
 .../juneau/rest/processor/ResponseProcessor.java   |  2 +-
 .../org/apache/juneau/rest/servlet/RestObject.java |  6 ++---
 .../apache/juneau/rest/servlet/RestServlet.java    |  6 ++---
 .../client/RestClient_Config_BeanContext_Test.java | 28 +++++++++++-----------
 .../client/RestClient_Config_RestClient_Test.java  |  6 ++---
 .../client/RestClient_Response_Headers_Test.java   | 26 ++++++++++----------
 59 files changed, 154 insertions(+), 186 deletions(-)

diff --git 
a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/jsonschema/package.html
 
b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/jsonschema/package.html
index 97b72b3..d229c5a 100644
--- 
a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/jsonschema/package.html
+++ 
b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/jsonschema/package.html
@@ -428,7 +428,7 @@
                        <js>"options: ?method=OPTIONS"</js>
                }
        )
-       <jk>public class</jk> JsonSchemaResource <jk>extends</jk> 
BasicRestServlet {
+       <jk>public class</jk> JsonSchemaResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
        
                <jk>private</jk> JsonSchema <jf>schema</jf>;     <jc>// The 
schema document</jc>
                
@@ -473,8 +473,8 @@
        
                <jd>/** OPTIONS request handler */</jd>
                <ja>@RestOp</ja>(method=<jsf>OPTIONS</jsf>, path=<js>"/*"</js>)
-               <jk>public</jk> ResourceOptions doOptions(RestRequest 
<jv>req</jv>) {
-                       <jk>return new</jk> ResourceOptions(<jk>this</jk>, 
<jv>req</jv>);
+               <jk>public</jk> Swagger doOptions(RestRequest <jv>req</jv>) {
+                       <jk>return new</jk> Swagger(<jk>this</jk>, 
<jv>req</jv>);
                }
        }
                        </p>
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Context.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Context.java
index ef5ca66..973a396 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Context.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Context.java
@@ -889,7 +889,7 @@ public abstract class Context implements AnnotationProvider 
{
         * <p>
         * Builders are used to define new contexts (e.g. serializers, parsers) 
based on existing configurations.
         *
-        * @return A new ContextBuilder object.
+        * @return A new Builder object.
         */
        public Builder copy() {
                throw unsupportedOperationException("Not implemented.");
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/FileFinder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/FileFinder.java
index 0bc8dd9..1a6bf2a 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/FileFinder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/FileFinder.java
@@ -65,7 +65,7 @@ import org.apache.juneau.internal.*;
  * <h5 class='section'>Example:</h5>
  * <p class='bjava'>
  *     <jk>public class</jk> MyFileFinder <jk>extends</jk> BasicFileFinder {
- *             <jk>public</jk> MyFileFinder(Builder <jv>builder</jv>) {
+ *             <jk>public</jk> MyFileFinder(FileFinder.Builder 
<jv>builder</jv>) {
  *                     <jk>super</jk>(<jv>builder</jv>);
  *             }
  *     }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializer.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializer.java
index 437bd45..3755d94 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializer.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializer.java
@@ -62,7 +62,7 @@ import org.apache.juneau.xml.*;
  *                     <js>"doc: doc"</js>
  *             }
  *     )
- *     <jk>public class</jk> AddressBookResource <jk>extends</jk> 
BasicRestServlet {
+ *     <jk>public class</jk> AddressBookResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
  * </p>
  *
  * <p>
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlDocConfig.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlDocConfig.java
index 5415078..eb78d31 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlDocConfig.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlDocConfig.java
@@ -342,7 +342,7 @@ public @interface HtmlDocConfig {
         *                      <js>"doc: doc"</js>
         *              }
         *      )
-        *      <jk>public class</jk> AddressBookResource <jk>extends</jk> 
BasicRestServlet {
+        *      <jk>public class</jk> AddressBookResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
         * </p>
         *
         * <ul class='notes'>
diff --git a/juneau-doc/docs/Topics/01.Overview/05.o.RestServer.html 
b/juneau-doc/docs/Topics/01.Overview/05.o.RestServer.html
index 8abfd92..0ed3d72 100644
--- a/juneau-doc/docs/Topics/01.Overview/05.o.RestServer.html
+++ b/juneau-doc/docs/Topics/01.Overview/05.o.RestServer.html
@@ -84,7 +84,7 @@
                |                       MyChildResource.<jk>class</jk>
                |               }
                |       )
-               |       <jk>public</jk> MyParentResource <jk>extends</jk> 
BasicRestServlet {...}
+               |       <jk>public</jk> MyParentResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {...}
        </p>
        <p class='bjava'>
                |       <jd>/** Child Resource */</jd>
diff --git 
a/juneau-doc/docs/Topics/02.juneau-marshall/07.jm.ContextAnnotations.html 
b/juneau-doc/docs/Topics/02.juneau-marshall/07.jm.ContextAnnotations.html
index e0b089f..9c1eb8e 100644
--- a/juneau-doc/docs/Topics/02.juneau-marshall/07.jm.ContextAnnotations.html
+++ b/juneau-doc/docs/Topics/02.juneau-marshall/07.jm.ContextAnnotations.html
@@ -34,7 +34,7 @@
                |       <ja>@RdfConfig</ja>(rdfxml_tab=<js>"5"</js>, 
addRootProperty=<js>"true"</js>)
                |       <ja>@BeanConfig</ja>(sortProperties=<js>"true"</js>, 
examples=<js>"Feed: $F{AddressBook_example.json}"</js>)
                |       <ja>@Bean</ja>(onClass=Address.<jk>class</jk>, 
properties=<js>"street,city,state"</js>)
-               |       <jk>public class</jk> AddressBookResource 
<jk>extends</jk> BasicRestServlet {
+               |       <jk>public class</jk> AddressBookResource 
<jk>extends</jk> BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
                |               ...
                |       }
        </p>
diff --git 
a/juneau-doc/docs/Topics/02.juneau-marshall/29.jm.HtmlDetails/06.jm.HtmlDocSerializer.html
 
b/juneau-doc/docs/Topics/02.juneau-marshall/29.jm.HtmlDetails/06.jm.HtmlDocSerializer.html
index 244f949..f52547a 100644
--- 
a/juneau-doc/docs/Topics/02.juneau-marshall/29.jm.HtmlDetails/06.jm.HtmlDocSerializer.html
+++ 
b/juneau-doc/docs/Topics/02.juneau-marshall/29.jm.HtmlDetails/06.jm.HtmlDocSerializer.html
@@ -82,7 +82,7 @@
                |                       <js>"&lt;/div&gt;"</js>
                |               }
                |       )
-               |       <jk>public class</jk> HelloWorldResource 
<jk>extends</jk> BasicRestServlet {...}
+               |       <jk>public class</jk> HelloWorldResource 
<jk>extends</jk> BasicRestServlet <jk>implements</jk> BasicUniversalConfig {...}
        </p>
        <p>
                The {@link oaj.html.HtmlDocSerializer.Builder#template(Class)} 
setting defines
diff --git a/juneau-doc/docs/Topics/05.juneau-config/02.jc.ReadingEntries.html 
b/juneau-doc/docs/Topics/05.juneau-config/02.jc.ReadingEntries.html
index d9dc942..670376a 100644
--- a/juneau-doc/docs/Topics/05.juneau-config/02.jc.ReadingEntries.html
+++ b/juneau-doc/docs/Topics/05.juneau-config/02.jc.ReadingEntries.html
@@ -34,27 +34,7 @@
                                                <li class='jm'>{@link 
oaj.config.Entry#orElseGet(Supplier) orElseGet(Supplier)}
                                        </ul>
                                </li>
-                               <li>Direct conversion methods
-                                       <ul class='javatreec'>
-                                               <li class='jm'>{@link 
oaj.config.Entry#to(Class) to(Class)}
-                                               <li class='jm'>{@link 
oaj.config.Entry#to(Parser,Class) to(Parser,Class)}
-                                               <li class='jm'>{@link 
oaj.config.Entry#to(Parser,Type,Type...) to(Parser,Type,Type...)}
-                                               <li class='jm'>{@link 
oaj.config.Entry#to(Type,Type...) to(Type,Type...)}
-                                               <li class='jm'>{@link 
oaj.config.Entry#toBoolean() toBoolean()}
-                                               <li class='jm'>{@link 
oaj.config.Entry#toBytes() toBytes()}
-                                               <li class='jm'>{@link 
oaj.config.Entry#toDouble() toDouble()}
-                                               <li class='jm'>{@link 
oaj.config.Entry#toFloat() toFloat()}
-                                               <li class='jm'>{@link 
oaj.config.Entry#toInteger() toInteger()}
-                                               <li class='jm'>{@link 
oaj.config.Entry#toList() toList()}
-                                               <li class='jm'>{@link 
oaj.config.Entry#toList(Parser) toList(Parser)}
-                                               <li class='jm'>{@link 
oaj.config.Entry#toLong() toLong()}
-                                               <li class='jm'>{@link 
oaj.config.Entry#toMap() toMap()}
-                                               <li class='jm'>{@link 
oaj.config.Entry#toMap(Parser) toMap(Parser)}
-                                               <li class='jm'>{@link 
oaj.config.Entry#toString() toString()}
-                                               <li class='jm'>{@link 
oaj.config.Entry#toStringArray() toStringArray()} 
-                                       </ul>
-                               </li>
-                               <li>Conversion through {@link 
java.util.Optional Optionals}
+                               <li>Conversion methods
                                        <ul class='javatreec'>
                                                <li class='jm'>{@link 
oaj.config.Entry#as(Class) as(Class)}
                                                <li class='jm'>{@link 
oaj.config.Entry#as(Parser,Class) as(Parser,Class)}
diff --git 
a/juneau-doc/docs/Topics/05.juneau-config/02.jc.ReadingEntries/02.jc.Arrays.html
 
b/juneau-doc/docs/Topics/05.juneau-config/02.jc.ReadingEntries/02.jc.Arrays.html
index 805c6de..b40b9b0 100644
--- 
a/juneau-doc/docs/Topics/05.juneau-config/02.jc.ReadingEntries/02.jc.Arrays.html
+++ 
b/juneau-doc/docs/Topics/05.juneau-config/02.jc.ReadingEntries/02.jc.Arrays.html
@@ -17,7 +17,7 @@
 
 <div class='topic'>
        <p>
-               The <c>toStringArray()</c> method allows you to retrieve 
comma-delimited lists of values:
+               The <c>asStringArray()</c> method allows you to retrieve 
comma-delimited lists of values:
        <p class='bini'>
                |       <ck>key1</ck> = <cv>foo, bar, baz</cv>
        </p>
diff --git a/juneau-doc/docs/Topics/05.juneau-config/05.jc.Sections.html 
b/juneau-doc/docs/Topics/05.juneau-config/05.jc.Sections.html
index c8996c0..2d3b6e7 100644
--- a/juneau-doc/docs/Topics/05.juneau-config/05.jc.Sections.html
+++ b/juneau-doc/docs/Topics/05.juneau-config/05.jc.Sections.html
@@ -28,17 +28,13 @@
                                <li class='jm'>{@link 
oaj.config.Section#asInterface(Class) asInterface(Class)}
                                <li class='jm'>{@link 
oaj.config.Section#asMap() asMap()}
                                <li class='jm'>{@link 
oaj.config.Section#isPresent() isPresent()}
-                               <li class='jm'>{@link 
oaj.config.Section#toBean(Class) toBean(Class)}
-                               <li class='jm'>{@link 
oaj.config.Section#toBean(Class,boolean) toBean(Class,boolean)}
-                               <li class='jm'>{@link 
oaj.config.Section#toInterface(Class) toInterface(Class)}
-                               <li class='jm'>{@link 
oaj.config.Section#toMap() toMap()}
                                <li class='jm'>{@link 
oaj.config.Section#writeToBean(Object,boolean) writeToBean(Object,boolean)}
                        </ul>
                </li>
        </ul>
        <p>     
-               The {@link oaj.config.Section#asMap() asMap()} and {@link 
oaj.config.Section#toMap() toMap()}
-               methods allow you to access a section as simple key/value 
pairs. 
+               The {@link oaj.config.Section#asMap() asMap()} 
+               method allows you to access a section as simple key/value 
pairs. 
        </p>
        <h5 class='figure'>Example:</h5>
        <p class='bini'>
@@ -53,7 +49,7 @@
                |       <jc>// Example usage</jc>
                |       Config <jv>config</jv> = 
Config.<jsm>create</jsm>(<js>"MyConfig.cfg"</js>).build();
                |       
-               |       OMap <jv>map</jv> = 
<jv>config</jv>.getSection(<js>"MyAddress"</js>).asMap();
+               |       OMap <jv>map</jv> = 
<jv>config</jv>.getSection(<js>"MyAddress"</js>).asMap().get();
                |       
                |       String <jv>street</jv> = 
<jv>map</jv>.getString(<js>"street"</js>);
                |       String <jv>city</jv> = 
<jv>map</jv>.getString(<js>"city"</js>);
@@ -65,7 +61,7 @@
        </p>
        <p>
                Config files can also be used to directly populate beans using 
-               {@link oaj.config.Section#asBean(Class) asBean()}, {@link 
oaj.config.Section#toBean(Class) toBean()}, or {@link 
oaj.config.Section#writeToBean(Object,boolean) writeToBean()}.
+               {@link oaj.config.Section#asBean(Class) asBean()} or {@link 
oaj.config.Section#writeToBean(Object,boolean) writeToBean()}.
        </p>
        <h5 class='figure'>Example:</h5>
        <p class='bini'>
@@ -136,7 +132,7 @@
                |       
                |       <jc>// Example usage.</jc>
                |       Config <jv>config</jv> = 
Config.<jsm>create</jsm>(<js>"MyConfig.cfg"</js>).build();
-               |       MyConfigInterface <jv>intf</jv> = 
<jv>config</jv>.getSection(<js>"MySection"</js>).toInterface(MyConfigInterface.<jk>class</jk>);
+               |       MyConfigInterface <jv>intf</jv> = 
<jv>config</jv>.getSection(<js>"MySection"</js>).asInterface(MyConfigInterface.<jk>class</jk>).get();
                |       
                |       <jc>// Read a value.</jc>
                |       <jk>int</jk> <jv>myInt</jv> = <jv>intf</jv>.getInt();
diff --git 
a/juneau-doc/docs/Topics/05.juneau-config/10.jc.ConfigStores/03.jc.CustomStores.html
 
b/juneau-doc/docs/Topics/05.juneau-config/10.jc.ConfigStores/03.jc.CustomStores.html
index c6c6194..6de461a 100644
--- 
a/juneau-doc/docs/Topics/05.juneau-config/10.jc.ConfigStores/03.jc.CustomStores.html
+++ 
b/juneau-doc/docs/Topics/05.juneau-config/10.jc.ConfigStores/03.jc.CustomStores.html
@@ -33,7 +33,7 @@
                |               <jk>private final</jk> Timer <jf>watcher</jf>;
                |               <jk>private final</jk> 
ConcurrentHashMap&låt;String,String> <jf>cache</jf> = <jk>new</jk> 
ConcurrentHashMap<>();
                |       
-               |               <jk>protected</jk> SqlStore(Builder 
<jv>builder</jv>) {
+               |               <jk>protected</jk> SqlStore(ConfigStore.Builder 
<jv>builder</jv>) {
                |                       <jk>super</jk>(<jv>builder</jv>);
                |                       <jk>this</jk>.<jf>jdbcUrl</jf> = 
<jv>builder</jv>.<jf>jdbcUrl</jf>;
                |                       <jk>this</jk>.<jf>tableName</jf> = 
<jv>builder</jv>.<jf>tableName</jf>;
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/02.jrs.AnnotatedClasses/02.jrs.ChildResources.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/02.jrs.AnnotatedClasses/02.jrs.ChildResources.html
index 0c19544..592b522 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/02.jrs.AnnotatedClasses/02.jrs.ChildResources.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/02.jrs.AnnotatedClasses/02.jrs.ChildResources.html
@@ -27,7 +27,7 @@
                |               path=<js>"/parent"</js>,
                |               children={MyChildResource.<jk>class</jk>}
                |       )
-               |       <jk>public</jk> MyRootResources <jk>extends</jk> 
BasicRestServletGroup {...}
+               |       <jk>public</jk> MyRootResources <jk>extends</jk> 
BasicRestServletGroup <jk>implements</jk> BasicUniversalConfig {...}
        </p>
        <p class='bjava'>
                |       <jd>/** Child Resource */</jd>
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/02.jrs.AnnotatedClasses/03.jrs.PathVariables.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/02.jrs.AnnotatedClasses/03.jrs.PathVariables.html
index ee6aa0d..513ab38 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/02.jrs.AnnotatedClasses/03.jrs.PathVariables.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/02.jrs.AnnotatedClasses/03.jrs.PathVariables.html
@@ -25,7 +25,7 @@
                |       <ja>@Rest</ja>(
                |               path=<js>"/myResource/{foo}/{bar}"</js>
                |       )
-               |       <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet {
+               |       <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
                |
                |               <ja>@RestPost</ja>(<js>"/{baz}"</js>)
                |               <jk>public void</jk> String doX(<ja>@Path</ja> 
String <jv>foo</jv>, <ja>@Path</ja> <jk>int</jk> <jv>bar</jv>) {
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/04.jrs.HttpParts/03.jrs.DefaultParts.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/04.jrs.HttpParts/03.jrs.DefaultParts.html
index 21deb7f..e7c1d8c 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/04.jrs.HttpParts/03.jrs.DefaultParts.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/04.jrs.HttpParts/03.jrs.DefaultParts.html
@@ -55,7 +55,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> 
BasicRestServlet {
+               |       <jk>public</jk> MyRestServlet <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
                |               ...
                |       }                       
        </p>
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/05.jrs.Marshalling.html 
b/juneau-doc/docs/Topics/06.juneau-rest-server/05.jrs.Marshalling.html
index 1fdb62a..4a5498b 100644
--- a/juneau-doc/docs/Topics/06.juneau-rest-server/05.jrs.Marshalling.html
+++ b/juneau-doc/docs/Topics/06.juneau-rest-server/05.jrs.Marshalling.html
@@ -113,7 +113,7 @@
                |       <ja>@BeanConfig</ja>(sortProperties=<js>"true"</js>)
                |       <ja>@SerializerConfig</ja>(trimNulls=<js>"true"</js>)
                |       <ja>@JsonConfig</ja>(escapeSolidus=<js>"true"</js>)
-               |       <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet {
+               |       <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
                |               
                |               <ja>@RestPost</ja>
                |               
<ja>@BeanConfig</ja>(sortProperties=<js>"false"</js>)
@@ -146,7 +146,7 @@
                |                       MyInterface.<jk>class</jk>
                |               }
                |       )
-               |       <jk>public</jk> MyResource <jk>extends</jk> 
BasicRestServlet {...}
+               |       <jk>public</jk> MyResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {...}
        </p>
        <p>
                Config annotations are defined for all serializers and parsers:
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/06.jrs.HandlingFormPosts.html 
b/juneau-doc/docs/Topics/06.juneau-rest-server/06.jrs.HandlingFormPosts.html
index 910ab80..65d022f 100644
--- a/juneau-doc/docs/Topics/06.juneau-rest-server/06.jrs.HandlingFormPosts.html
+++ b/juneau-doc/docs/Topics/06.juneau-rest-server/06.jrs.HandlingFormPosts.html
@@ -39,7 +39,7 @@
        </p>
        <p class='bjava'>                               
                |       <ja>@Rest</ja>(...)
-               |       <jk>public class</jk> MyRestResource <jk>extends</jk> 
BasicRestServlet {
+               |       <jk>public class</jk> MyRestResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
                |       
                |               <jc>// Our form input endpoint.</jc>
                |               <ja>@RestPost</ja>(<js>"/"</js>)
diff --git a/juneau-doc/docs/Topics/06.juneau-rest-server/07.jrs.Guards.html 
b/juneau-doc/docs/Topics/06.juneau-rest-server/07.jrs.Guards.html
index 7ee56bf..f74ac11 100644
--- a/juneau-doc/docs/Topics/06.juneau-rest-server/07.jrs.Guards.html
+++ b/juneau-doc/docs/Topics/06.juneau-rest-server/07.jrs.Guards.html
@@ -51,7 +51,7 @@
                |
                |       <jc>// Servlet with class-level guard applied</jc>
                |       <ja>@Rest</ja>(guards=BillyGuard.<jk>class</jk>)
-               |       <jk>public</jk> MyRestServlet <jk>extends</jk> 
BasicRestServlet {
+               |       <jk>public</jk> MyRestServlet <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
                |
                |               <jc>// Delete method that only Billy is allowed 
to call.</jc>
                |               <ja>@RestDelete</ja>
@@ -114,7 +114,7 @@
        |               path=<js>"/foo"</js>,
        |               roleGuard=<js>"ROLE_ADMIN || (ROLE_READ_WRITE 
&amp;&amp; ROLE_SPECIAL)"</js>
        |       )
-       |       <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet {
+       |       <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
        |               ...
        |       }
        </p>
diff --git a/juneau-doc/docs/Topics/06.juneau-rest-server/10.jrs.Encoders.html 
b/juneau-doc/docs/Topics/06.juneau-rest-server/10.jrs.Encoders.html
index 323e9e9..817eeb4 100644
--- a/juneau-doc/docs/Topics/06.juneau-rest-server/10.jrs.Encoders.html
+++ b/juneau-doc/docs/Topics/06.juneau-rest-server/10.jrs.Encoders.html
@@ -27,7 +27,7 @@
        <p class='bjava'>
                |       <jc>// Servlet with automated support for GZIP 
compression</jc>
                |       <ja>@Rest</ja>(encoders={GzipEncoder.<jk>class</jk>})
-               |       <jk>public</jk> MyRestServlet <jk>extends</jk> 
BasicRestServlet {
+               |       <jk>public</jk> MyRestServlet <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
                |               ...
                |       }
        </p>
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/11.jrs.ConfigurationFiles.html 
b/juneau-doc/docs/Topics/06.juneau-rest-server/11.jrs.ConfigurationFiles.html
index 016a9b6..9c70efc 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/11.jrs.ConfigurationFiles.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/11.jrs.ConfigurationFiles.html
@@ -146,7 +146,7 @@
                |               config=<js>"config_dir/myconfig.cfg"</js>,
                |               ...
                |       )
-               |       <jk>public class</jk> HelloWorldResource 
<jk>extends</jk> BasicRestServlet {
+               |       <jk>public class</jk> HelloWorldResource 
<jk>extends</jk> BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
                |               
                |               <jd>/** 
                |                * GET request handler.
@@ -183,7 +183,7 @@
                |               config=<js>"config_dir/myconfig.cfg"</js>,
                |               ...
                |       )
-               |       <jk>public class</jk> HelloWorldResource 
<jk>extends</jk> BasicRestServlet {
+               |       <jk>public class</jk> HelloWorldResource 
<jk>extends</jk> BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
                |               
                |               <jd>/** 
                |                * GET request handler.
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/02.jrs.BasicSwaggerInfo.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/02.jrs.BasicSwaggerInfo.html
index 71050c6..9427802 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/02.jrs.BasicSwaggerInfo.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/15.jrs.Swagger/02.jrs.BasicSwaggerInfo.html
@@ -35,7 +35,7 @@
                |               
swagger=<ja>@Swagger</ja>(<js>"$F{PetStoreResource.json}"</js>),
                |               ...
                |       )
-               |       <jk>public class</jk> PetStoreResource <jk>extends</jk> 
BasicRestServlet {...}
+               |       <jk>public class</jk> PetStoreResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {...}
        </p>
        <p>
                In this particular case, the Swagger is pulled in from a 
localized Swagger JSON file located in the 
@@ -91,7 +91,7 @@
                |               ),
                |               ...
                |       )
-               |       <jk>public class</jk> PetStoreResource <jk>extends</jk> 
BasicRestServlet {...}
+               |       <jk>public class</jk> PetStoreResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {...}
        </p>
        <p>
                However, a more typical (and less error-prone) scenario is to 
define all of your Swagger as annotations:
@@ -121,7 +121,7 @@
                |               ),
                |               ...
                |       )
-               |       <jk>public class</jk> PetStoreResource <jk>extends</jk> 
BasicRestServlet {...}
+               |       <jk>public class</jk> PetStoreResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {...}
        </p>
        <p>
                All annotations support {@doc jrs.SvlVariables SVL variables}, 
so you could for example
@@ -153,7 +153,7 @@
                |               ),
                |               ...
                |       )
-               |       <jk>public class</jk> PetStoreResource <jk>extends</jk> 
BasicRestServlet {...}
+               |       <jk>public class</jk> PetStoreResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {...}
        </p>
        <p>
                A third option is to define your Swagger information in your 
{@link oajr.annotation.Rest#messages @Rest(messages)} resource
diff --git a/juneau-doc/docs/Topics/06.juneau-rest-server/22.jrs.Injection.html 
b/juneau-doc/docs/Topics/06.juneau-rest-server/22.jrs.Injection.html
index 9f5549a..15d1380 100644
--- a/juneau-doc/docs/Topics/06.juneau-rest-server/22.jrs.Injection.html
+++ b/juneau-doc/docs/Topics/06.juneau-rest-server/22.jrs.Injection.html
@@ -82,7 +82,7 @@
                |                       ...
                |               }
                |       )
-               |       <jk>public class</jk> Root <jk>extends</jk> 
BasicRestServletGroup {
+               |       <jk>public class</jk> Root <jk>extends</jk> 
BasicRestServletGroup <jk>implements</jk> BasicUniversalConfig {
                |               
                |               <jk>private final</jk> RestResourceResolver 
<jf>resolver</jf>;
                |               
@@ -104,7 +104,7 @@
                |       <ja>@Rest</ja>(
                |               path=<js>"/child"</js>
                |       )
-               |       <jk>public class</jk> MyChildResource <jk>extends</jk> 
BasicRestServlet {
+               |       <jk>public class</jk> MyChildResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
                |       
                |               <jk>private final</jk> Bean1 <jf>bean1</jf>;
                |               <jk>private final</jk> Bean2 <jf>bean2</jf>;
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/24.jrs.RestContext.html 
b/juneau-doc/docs/Topics/06.juneau-rest-server/24.jrs.RestContext.html
index 31e3028..9da61e6 100644
--- a/juneau-doc/docs/Topics/06.juneau-rest-server/24.jrs.RestContext.html
+++ b/juneau-doc/docs/Topics/06.juneau-rest-server/24.jrs.RestContext.html
@@ -47,7 +47,7 @@
                |       <jk>public</jk> MyResource(RestContext.Builder builder) 
{
                |                       builder
                |                               
.swaps(TemporalCalendarSwap.Rfc1123DateTime.<jk>class</jk>)
-               |                               .set(<jsf>PARSER_debug</jsf>);
+               |                               .debug();
                |       }
                |
                |       <jc>// Option #2 - Use an INIT hook.</jc>
@@ -55,7 +55,7 @@
                |       <jk>public void</jk> init(RestContext.Builder builder) 
<jk>throws</jk> Exception {
                |                       builder
                |                               
.swaps(TemporalCalendarSwap.Rfc1123DateTime.<jk>class</jk>)
-               |                               .set(<jsf>PARSER_debug</jsf>);
+               |                               .debug();
                |       }
        </p>
        <p>
diff --git 
a/juneau-doc/docs/Topics/09.juneau-rest-server-springboot/02.jrss.ChildResources.html
 
b/juneau-doc/docs/Topics/09.juneau-rest-server-springboot/02.jrss.ChildResources.html
index 8726256..8108196 100644
--- 
a/juneau-doc/docs/Topics/09.juneau-rest-server-springboot/02.jrss.ChildResources.html
+++ 
b/juneau-doc/docs/Topics/09.juneau-rest-server-springboot/02.jrss.ChildResources.html
@@ -53,7 +53,7 @@
                |                       ChildResource.<jk>class</jk>
                |               }
                |       )
-               |       <jk>public class</jk> RootResource <jk>extends</jk> 
BasicRestServletGroup {
+               |       <jk>public class</jk> RootResource <jk>extends</jk> 
BasicRestServletGroup <jk>implements</jk> BasicUniversalConfig {
                |               <jc>// No code needed.</jc>
                |       }
        </p>
@@ -70,7 +70,7 @@
                |                       GrandChildResource.<jk>class</jk>
                |               }
                |       )
-               |       <jk>public class</jk> ChildResource <jk>extends</jk> 
BasicRestGroup {
+               |       <jk>public class</jk> ChildResource <jk>extends</jk> 
BasicRestGroup <jk>implements</jk> BasicUniversalConfig {
                |               <jc>// No code needed.</jc>
                |       }
        </p>
@@ -78,7 +78,7 @@
                |       <ja>@Rest</ja>(
                |               path=<js>"/grandchild"</js>
                |       )
-               |       <jk>public class</jk> GrandChildResource 
<jk>extends</jk> BasicRest {
+               |       <jk>public class</jk> GrandChildResource 
<jk>extends</jk> BasicRestObject <jk>implements</jk> BasicUniversalConfig {
                |               <jc>// Injectable bean</jc>
                |       }
        </p>
diff --git 
a/juneau-doc/docs/Topics/10.juneau-rest-client/01.jrc.PojoMarshalling.html 
b/juneau-doc/docs/Topics/10.juneau-rest-client/01.jrc.PojoMarshalling.html
index fe864c8..d32a000 100644
--- a/juneau-doc/docs/Topics/10.juneau-rest-client/01.jrc.PojoMarshalling.html
+++ b/juneau-doc/docs/Topics/10.juneau-rest-client/01.jrc.PojoMarshalling.html
@@ -91,14 +91,6 @@
                |       <jc>// Create a basic REST client with JSON 
support.</jc>
                |       <jc>// Use single-quotes and whitespace.</jc>
                |       RestClient <jv>client1</jv> = 
RestClient.<jsm>create</jsm>().json().sq().ws().build();
-               |
-               |       <jc>// Same, but using properties.</jc>
-               |       RestClient <jv>client2</jv> = RestClient
-               |               .<jsm>create</jsm>()
-               |               .json()
-               |               .set(<jsf>WSERIALIZER_quoteChar</jsf>, 
<js>'\''</js>)
-               |               .set(<jsf>WSERIALIZER_useWhitespace</jsf>)
-               |               .build();
        </p>
        
        <p>
diff --git 
a/juneau-doc/docs/Topics/10.juneau-rest-client/11.jrc.Proxies/10.jrc.DualPurposeInterfaces.html
 
b/juneau-doc/docs/Topics/10.juneau-rest-client/11.jrc.Proxies/10.jrc.DualPurposeInterfaces.html
index be0e9d3..769fc04 100644
--- 
a/juneau-doc/docs/Topics/10.juneau-rest-client/11.jrc.Proxies/10.jrc.DualPurposeInterfaces.html
+++ 
b/juneau-doc/docs/Topics/10.juneau-rest-client/11.jrc.Proxies/10.jrc.DualPurposeInterfaces.html
@@ -66,7 +66,7 @@
                |               title=<js>"Petstore application"</js>,
                |               ...
                |       )
-               |       <jk>public class</jk> PetStoreResource <jk>extends</jk> 
BasicRestJena <jk>implements</jk> PetStore {
+               |       <jk>public class</jk> PetStoreResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalJenaConfig, PetStore {
                |       
                |               ...
                |       
diff --git 
a/juneau-doc/docs/Topics/13.juneau-microservice-jetty/03.jmj.ResourceClasses.html
 
b/juneau-doc/docs/Topics/13.juneau-microservice-jetty/03.jmj.ResourceClasses.html
index 078a8d2..33fcbc9 100644
--- 
a/juneau-doc/docs/Topics/13.juneau-microservice-jetty/03.jmj.ResourceClasses.html
+++ 
b/juneau-doc/docs/Topics/13.juneau-microservice-jetty/03.jmj.ResourceClasses.html
@@ -36,7 +36,7 @@
                |                       LogsResource.<jk>class</jk>
                |               }
                |       )
-               |       <jk>public class</jk> RootResources <jk>extends</jk> 
BasicRestServletGroup {
+               |       <jk>public class</jk> RootResources <jk>extends</jk> 
BasicRestServletGroup <jk>implements</jk> BasicUniversalConfig {
                |               <jc>// No code! </jc>
                |       }
        </p>
@@ -77,7 +77,7 @@
                |               title=<js>"Hello World example"</js>,
                |               description=<js>"Simplest possible REST 
resource"</js>
                |       )
-               |       <jk>public class</jk> HelloWorldResource 
<jk>extends</jk> BasicRestServlet {
+               |       <jk>public class</jk> HelloWorldResource 
<jk>extends</jk> BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
                |       
                |               <ja>@RestGet</ja>(<js>"/*"</js>)
                |               <jk>public</jk> String sayHello() {
diff --git 
a/juneau-doc/docs/Topics/13.juneau-microservice-jetty/05.jmj.Config.html 
b/juneau-doc/docs/Topics/13.juneau-microservice-jetty/05.jmj.Config.html
index bdf7f0c..f394d60 100644
--- a/juneau-doc/docs/Topics/13.juneau-microservice-jetty/05.jmj.Config.html
+++ b/juneau-doc/docs/Topics/13.juneau-microservice-jetty/05.jmj.Config.html
@@ -119,7 +119,7 @@
                                |       <cc># Contents of MyHelloResource.java 
</cc>
                                |       
<cc>#---------------------------------</cc>
                                |       <ja>@Rest</ja>(...)
-                               |       <jk>public class</jk> MyHelloResource 
<jk>extends</jk> BasicRestServlet {
+                               |       <jk>public class</jk> MyHelloResource 
<jk>extends</jk> BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
                                |               <jk>private</jk> String 
<jf>greeting</jf>; 
                                |               
                                |               <jc>// Or access config file in 
servlet init method.</jc>
@@ -159,7 +159,7 @@
                                |               
messages=<js>"nls/Messages"</js>,
                                |               ...
                                |       )
-                               |       <jk>public class</jk> MyHelloResource 
<jk>extends</jk> BasicRestServlet {
+                               |       <jk>public class</jk> MyHelloResource 
<jk>extends</jk> BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
                                |
                                |               <jd>/** Standard hello message. 
*/</jd>
                                |               
<ja>@RestGet</ja>(<js>"/{person}"</js>)
diff --git 
a/juneau-doc/docs/Topics/14.my-jetty-microservice/01.mjm.Installing.html 
b/juneau-doc/docs/Topics/14.my-jetty-microservice/01.mjm.Installing.html
index fe85849..76c2143 100644
--- a/juneau-doc/docs/Topics/14.my-jetty-microservice/01.mjm.Installing.html
+++ b/juneau-doc/docs/Topics/14.my-jetty-microservice/01.mjm.Installing.html
@@ -81,7 +81,7 @@
                                |                       <js>"options: 
servlet:/?method=OPTIONS"</js>
                                |               }
                                |       )
-                               |       <jk>public class</jk> RootResources 
<jk>extends</jk> BasicRestServletGroup {
+                               |       <jk>public class</jk> RootResources 
<jk>extends</jk> BasicRestServletGroup <jk>implements</jk> BasicUniversalConfig 
{
                                |               <jc>// No code</jc>
                                |       }
                        </p>
diff --git 
a/juneau-doc/docs/Topics/15.my-springboot-microservice/01.msm.Installing.html 
b/juneau-doc/docs/Topics/15.my-springboot-microservice/01.msm.Installing.html
index 3b8e8b9..c70745b 100644
--- 
a/juneau-doc/docs/Topics/15.my-springboot-microservice/01.msm.Installing.html
+++ 
b/juneau-doc/docs/Topics/15.my-springboot-microservice/01.msm.Installing.html
@@ -87,7 +87,7 @@
                                LogsResource.<jk>class</jk>
                        }
                )
-               <jk>public class</jk> RootResources <jk>extends</jk> 
BasicRestServletGroup {
+               <jk>public class</jk> RootResources <jk>extends</jk> 
BasicRestServletGroup <jk>implements</jk> BasicUniversalConfig {
                        <jc>// No code</jc>
                }
                        </p>
diff --git 
a/juneau-doc/docs/Topics/17.juneau-examples-rest/01.jer.RootResources.html 
b/juneau-doc/docs/Topics/17.juneau-examples-rest/01.jer.RootResources.html
index 6395ee3..021ecb8 100644
--- a/juneau-doc/docs/Topics/17.juneau-examples-rest/01.jer.RootResources.html
+++ b/juneau-doc/docs/Topics/17.juneau-examples-rest/01.jer.RootResources.html
@@ -114,7 +114,7 @@
                |               // String comparisons.</jc>
                |               quoteChar=<js>"'"</js>
                |       )
-               |       <jk>public class</jk> RootResources <jk>extends</jk> 
BasicRestServletGroup {
+               |       <jk>public class</jk> RootResources <jk>extends</jk> 
BasicRestServletGroup <jk>implements</jk> BasicUniversalConfig {
                |               <jc>// No code!</jc>
                |       }
        </p>
diff --git 
a/juneau-doc/docs/Topics/17.juneau-examples-rest/03.jer.DtoExamples.html 
b/juneau-doc/docs/Topics/17.juneau-examples-rest/03.jer.DtoExamples.html
index ff7de05..8962d7b 100644
--- a/juneau-doc/docs/Topics/17.juneau-examples-rest/03.jer.DtoExamples.html
+++ b/juneau-doc/docs/Topics/17.juneau-examples-rest/03.jer.DtoExamples.html
@@ -74,7 +74,7 @@
                |       ) 
                |       <ja>@SerializerConfig</ja>(quoteChar=<js>"'"</js>)
                |       <ja>@RdfConfig</ja>(rdfxml_tab=<js>"5"</js>, 
addRootProperty=<js>"true"</js>)
-               |       <jk>public class</jk> AtomFeedResource <jk>extends</jk> 
BasicRestServlet { 
+               |       <jk>public class</jk> AtomFeedResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig { 
                |       
                |               <jk>private</jk> Feed <jf>feed</jf>; <jc>// The 
root resource object</jc> 
                |               
@@ -187,7 +187,7 @@
                |                       }
                |               )
                |       ) 
-               |       <jk>public class</jk> JsonSchemaResource 
<jk>extends</jk> BasicRestServlet { 
+               |       <jk>public class</jk> JsonSchemaResource 
<jk>extends</jk> BasicRestServlet <jk>implements</jk> BasicUniversalConfig { 
                |               <jk>private static final long</jk> 
<jsf>serialVersionUID</jsf> = 1L; 
                |               
                |               <jk>private</jk> JsonSchema schema; <jc>// The 
schema document</jc> 
diff --git 
a/juneau-doc/docs/Topics/17.juneau-examples-rest/04.jer.ConfigResource.html 
b/juneau-doc/docs/Topics/17.juneau-examples-rest/04.jer.ConfigResource.html
index 637fd18..2ea80f2 100644
--- a/juneau-doc/docs/Topics/17.juneau-examples-rest/04.jer.ConfigResource.html
+++ b/juneau-doc/docs/Topics/17.juneau-examples-rest/04.jer.ConfigResource.html
@@ -56,7 +56,7 @@
                |                       }
                |               )
                |       ) 
-               |       <jk>public class</jk> ConfigResource <jk>extends</jk> 
BasicRestServlet { 
+               |       <jk>public class</jk> ConfigResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig { 
                |               
                |               <ja>@RestGet</ja>(path=<js>"/"</js>, 
description=<js>"Show contents of config file."</js>) 
                |               <jk>public</jk> OMap getConfig() 
<jk>throws</jk> Exception {
diff --git 
a/juneau-doc/docs/Topics/18.juneau-examples-rest-jetty/01.jerj.Installing.html 
b/juneau-doc/docs/Topics/18.juneau-examples-rest-jetty/01.jerj.Installing.html
index e43f203..34b0ad4 100644
--- 
a/juneau-doc/docs/Topics/18.juneau-examples-rest-jetty/01.jerj.Installing.html
+++ 
b/juneau-doc/docs/Topics/18.juneau-examples-rest-jetty/01.jerj.Installing.html
@@ -102,7 +102,7 @@
                        // String comparisons.</jc>
                        quoteChar=<js>"'"</js>
                )
-               <jk>public class</jk> RootResources <jk>extends</jk> 
BasicRestServletGroup {
+               <jk>public class</jk> RootResources <jk>extends</jk> 
BasicRestServletGroup <jk>implements</jk> BasicUniversalConfig {
                        <jc>// No code</jc>
                }
                        </p>
diff --git 
a/juneau-doc/docs/Topics/19.juneau-examples-rest-springboot/01.jers.Installing.html
 
b/juneau-doc/docs/Topics/19.juneau-examples-rest-springboot/01.jers.Installing.html
index cd9e9f7..5a39292 100644
--- 
a/juneau-doc/docs/Topics/19.juneau-examples-rest-springboot/01.jers.Installing.html
+++ 
b/juneau-doc/docs/Topics/19.juneau-examples-rest-springboot/01.jers.Installing.html
@@ -107,7 +107,7 @@
                        // String comparisons.</jc>
                        quoteChar=<js>"'"</js>
                )
-               <jk>public class</jk> RootResources <jk>extends</jk> 
BasicRestServletGroup {
+               <jk>public class</jk> RootResources <jk>extends</jk> 
BasicRestServletGroup <jk>implements</jk> BasicUniversalConfig {
                        <jc>// No code</jc>
                }
                        </p>
diff --git 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseHeader.java
 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseHeader.java
index fa3008b..0c89479 100644
--- 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseHeader.java
+++ 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/ResponseHeader.java
@@ -353,12 +353,12 @@ public class ResponseHeader implements Header {
         * @return The converted type, or <jk>null</jk> if header is not 
present.
         * @throws RestCallException If value could not be parsed.
         */
-       public <T> Optional<T> asType(Type type, Type...args) throws 
RestCallException {
-               return asType(request.getClassMeta(type, args));
+       public <T> Optional<T> as(Type type, Type...args) throws 
RestCallException {
+               return as(request.getClassMeta(type, args));
        }
 
        /**
-        * Same as {@link #asType(Type,Type...)} but sets the value in a 
mutable for fluent calls.
+        * Same as {@link #as(Type,Type...)} but sets the value in a mutable 
for fluent calls.
         *
         * <p>
         * See {@doc jm.ComplexDataTypes Complex Data Types} for information on 
defining complex generic types of {@link Map Maps} and {@link Collection 
Collections}.
@@ -371,8 +371,8 @@ public class ResponseHeader implements Header {
         * @throws RestCallException If value could not be parsed.
         */
        @SuppressWarnings("unchecked")
-       public <T> RestResponse asType(Value<T> value, Type type, Type...args) 
throws RestCallException {
-               value.set((T)asType(type, args).orElse(null));
+       public <T> RestResponse as(Value<T> value, Type type, Type...args) 
throws RestCallException {
+               value.set((T)as(type, args).orElse(null));
                return response;
        }
 
@@ -384,12 +384,12 @@ public class ResponseHeader implements Header {
         * @return The converted type, or <jk>null</jk> if header is not 
present.
         * @throws RestCallException If value could not be parsed.
         */
-       public <T> Optional<T> asType(Class<T> type) throws RestCallException {
-               return asType(request.getClassMeta(type));
+       public <T> Optional<T> as(Class<T> type) throws RestCallException {
+               return as(request.getClassMeta(type));
        }
 
        /**
-        * Same as {@link #asType(Class)} but sets the value in a mutable for 
fluent calls.
+        * Same as {@link #as(Class)} but sets the value in a mutable for 
fluent calls.
         *
         * @param value The mutable to set the parsed header value in.
         * @param <T> The type to convert to.
@@ -397,8 +397,8 @@ public class ResponseHeader implements Header {
         * @return This object.
         * @throws RestCallException If value could not be parsed.
         */
-       public <T> RestResponse asType(Value<T> value, Class<T> type) throws 
RestCallException {
-               value.set(asType(type).orElse(null));
+       public <T> RestResponse as(Value<T> value, Class<T> type) throws 
RestCallException {
+               value.set(as(type).orElse(null));
                return response;
        }
 
@@ -410,7 +410,7 @@ public class ResponseHeader implements Header {
         * @return The converted type, or <jk>null</jk> if header is not 
present.
         * @throws RestCallException If value could not be parsed.
         */
-       public <T> Optional<T> asType(ClassMeta<T> type) throws 
RestCallException {
+       public <T> Optional<T> as(ClassMeta<T> type) throws RestCallException {
                try {
                        return ofNullable(parser.parse(HEADER, schema, 
getValue(), type));
                } catch (ParseException e) {
@@ -419,7 +419,7 @@ public class ResponseHeader implements Header {
        }
 
        /**
-        * Same as {@link #asType(ClassMeta)} but sets the value in a mutable 
for fluent calls.
+        * Same as {@link #as(ClassMeta)} but sets the value in a mutable for 
fluent calls.
         *
         * @param value The mutable to set the parsed header value in.
         * @param <T> The type to convert to.
@@ -427,8 +427,8 @@ public class ResponseHeader implements Header {
         * @return This object.
         * @throws RestCallException If value could not be parsed.
         */
-       public <T> RestResponse asType(Value<T> value, ClassMeta<T> type) 
throws RestCallException {
-               value.set(asType(type).orElse(null));
+       public <T> RestResponse as(Value<T> value, ClassMeta<T> type) throws 
RestCallException {
+               value.set(as(type).orElse(null));
                return response;
        }
 
diff --git 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
index 365d5fa..6b05543 100644
--- 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
+++ 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
@@ -596,8 +596,8 @@ import org.apache.juneau.xml.*;
  *     <ul>
  *             <li class='jm'><c>{@link ResponseHeader#isPresent() 
isPresent()} <jk>returns</jk> <jk>boolean</jk></c>
  *             <li class='jm'><c>{@link ResponseHeader#asString() asString()} 
<jk>returns</jk> String</c>
- *             <li class='jm'><c>{@link ResponseHeader#asType(Type,Type...) 
asType(Type,Type...)} <jk>returns</jk> T</c>
- *             <li class='jm'><c>{@link ResponseHeader#asType(Class) 
asType(Class&lt;T&gt;)} <jk>returns</jk> T</c>
+ *             <li class='jm'><c>{@link ResponseHeader#as(Type,Type...) 
as(Type,Type...)} <jk>returns</jk> T</c>
+ *             <li class='jm'><c>{@link ResponseHeader#as(Class) 
as(Class&lt;T&gt;)} <jk>returns</jk> T</c>
  *             <li class='jm'><c>{@link ResponseHeader#asMatcher(Pattern) 
asMatcher(Pattern)} <jk>returns</jk> {@link Matcher}</c>
  *             <li class='jm'><c>{@link ResponseHeader#asMatcher(String) 
asMatcher(String)} <jk>returns</jk> {@link Matcher}</c>
  *             <li class='jm'><c>{@link ResponseHeader#asHeader(Class) 
asHeader(Class&lt;T <jk>extends</jk> BasicHeader&gt; c)} <jk>returns</jk> 
{@link BasicHeader}</c>
@@ -673,8 +673,8 @@ import org.apache.juneau.xml.*;
  *             <li class='jm'><c>{@link ResponseBody#asReader(Charset) 
asReader(Charset)} <jk>returns</jk> Reader</c>
  *             <li class='jm'><c>{@link ResponseBody#pipeTo(OutputStream) 
pipeTo(OutputStream)} <jk>returns</jk> {@link RestResponse}</c>
  *             <li class='jm'><c>{@link ResponseBody#pipeTo(Writer) 
pipeTo(Writer)} <jk>returns</jk> {@link RestResponse}</c>
- *             <li class='jm'><c>{@link ResponseBody#as(Type,Type...) 
asType(Type,Type...)} <jk>returns</jk> T</c>
- *             <li class='jm'><c>{@link ResponseBody#as(Class) 
asType(Class&lt;T&gt;)} <jk>returns</jk> T</c>
+ *             <li class='jm'><c>{@link ResponseBody#as(Type,Type...) 
as(Type,Type...)} <jk>returns</jk> T</c>
+ *             <li class='jm'><c>{@link ResponseBody#as(Class) 
as(Class&lt;T&gt;)} <jk>returns</jk> T</c>
  *             <li class='jm'><c>{@link ResponseBody#asFuture(Class) 
asFuture(Class&lt;T&gt;)} <jk>returns</jk> Future&lt;T&gt;</c>
  *             <li class='jm'><c>{@link ResponseBody#asFuture(Type,Type...) 
asFuture(Type,Type...)} <jk>returns</jk> Future&lt;T&gt;</c>
  *             <li class='jm'><c>{@link ResponseBody#asString() asString()} 
<jk>returns</jk> String</c>
diff --git 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestResponse.java
 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestResponse.java
index 72ba6ea..c42c32d 100644
--- 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestResponse.java
+++ 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestResponse.java
@@ -238,7 +238,7 @@ public class RestResponse implements HttpResponse {
         * @throws RestCallException If REST call failed.
         */
        public Optional<ContentType> getContentType() throws RestCallException {
-               return getHeader("Content-Type").asType(ContentType.class);
+               return getHeader("Content-Type").as(ContentType.class);
        }
 
        /**
@@ -438,7 +438,7 @@ public class RestResponse implements HttpResponse {
                                        String name = 
pm.getPartName().orElse(null);
                                        ClassMeta<?> type = 
rc.getBeanContext().getClassMeta(method.getGenericReturnType());
                                        if (pt == RESPONSE_HEADER)
-                                               return 
getHeader(name).parser(pp).schema(schema).asType(type).orElse(null);
+                                               return 
getHeader(name).parser(pp).schema(schema).as(type).orElse(null);
                                        if (pt == RESPONSE_STATUS)
                                                return getStatusCode();
                                        return 
getBody().schema(schema).as(type);
diff --git 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/assertion/FluentResponseHeaderAssertion.java
 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/assertion/FluentResponseHeaderAssertion.java
index 5c734ef..6f38da8 100644
--- 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/assertion/FluentResponseHeaderAssertion.java
+++ 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/assertion/FluentResponseHeaderAssertion.java
@@ -71,8 +71,8 @@ import org.apache.juneau.serializer.*;
  *             <li class='jm'>{@link FluentResponseHeaderAssertion#asInteger()}
  *             <li class='jm'>{@link FluentResponseHeaderAssertion#asLong()}
  *             <li class='jm'>{@link 
FluentResponseHeaderAssertion#asZonedDateTime()}
- *             <li class='jm'>{@link 
FluentResponseHeaderAssertion#asType(Class)}
- *             <li class='jm'>{@link 
FluentResponseHeaderAssertion#asType(Type,Type...)}
+ *             <li class='jm'>{@link FluentResponseHeaderAssertion#as(Class)}
+ *             <li class='jm'>{@link 
FluentResponseHeaderAssertion#as(Type,Type...)}
  *             <li class='jm'>{@link 
FluentStringAssertion#replaceAll(String,String)}
  *             <li class='jm'>{@link 
FluentStringAssertion#replace(String,String)}
  *             <li class='jm'>{@link FluentStringAssertion#urlDecode()}
@@ -200,18 +200,18 @@ public class FluentResponseHeaderAssertion<R> extends 
FluentStringAssertion<R> {
        }
 
        /**
-        * Converts the parameter value to a type using {@link 
ResponseHeader#asType(Class)} and then returns the value as an any-object 
assertion.
+        * Converts the parameter value to a type using {@link 
ResponseHeader#as(Class)} and then returns the value as an any-object assertion.
         *
         * @param type The object type to create.
         * @return A new fluent assertion object.
         * @throws RestCallException If value could not be parsed.
         */
-       public <V> FluentAnyAssertion<V,R> asType(Class<V> type) throws 
RestCallException {
-               return new 
FluentAnyAssertion<>(value.asType(type).orElse(null), returns());
+       public <V> FluentAnyAssertion<V,R> as(Class<V> type) throws 
RestCallException {
+               return new FluentAnyAssertion<>(value.as(type).orElse(null), 
returns());
        }
 
        /**
-        * Converts the parameter value to a type using {@link 
ResponseHeader#asType(Type,Type...)} and then returns the value as an 
any-object assertion.
+        * Converts the parameter value to a type using {@link 
ResponseHeader#as(Type,Type...)} and then returns the value as an any-object 
assertion.
         *
         * <p>
         * See {@doc jm.ComplexDataTypes Complex Data Types} for information on 
defining complex generic types of {@link Map Maps} and {@link Collection 
Collections}.
@@ -221,8 +221,8 @@ public class FluentResponseHeaderAssertion<R> extends 
FluentStringAssertion<R> {
         * @return A new fluent assertion object.
         * @throws RestCallException If value could not be parsed.
         */
-       public FluentAnyAssertion<Object,R> asType(Type type, Type...args) 
throws RestCallException {
-               return new FluentAnyAssertion<>(value.asType(type, 
args).orElse(null), returns());
+       public FluentAnyAssertion<Object,R> as(Type type, Type...args) throws 
RestCallException {
+               return new FluentAnyAssertion<>(value.as(type, 
args).orElse(null), returns());
        }
 
        
//-----------------------------------------------------------------------------------------------------------------
diff --git 
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockConsole.java
 
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockConsole.java
index 0ad150c..960efb1 100644
--- 
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockConsole.java
+++ 
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockConsole.java
@@ -30,7 +30,7 @@ import org.apache.juneau.assertions.*;
  * <p class='bjava'>
  *     <jc>// A simple REST API that echos a posted bean.</jc>
  *     <ja>@Rest</ja>
- *     <jk>public class</jk> MyRest <jk>extends</jk> BasicRest {
+ *     <jk>public class</jk> MyRest <jk>extends</jk> BasicRestObject 
<jk>implements</jk> BasicUniversalConfig {
  *             <ja>@RestPost</ja>(<js>"/bean"</js>)
  *             <jk>public</jk> Bean postBean(<ja>@Body</ja> Bean 
<jv>bean</jv>) {
  *                     <jk>return</jk> <jv>bean</jv>;
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
index 598223c..e3b1e6d 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
@@ -1641,7 +1641,7 @@ public class RestContext extends Context {
                 *      <jk>public class</jk> MyResource {
                 *
                 *              <jc>// Option #2 - Defined via builder passed 
in through resource constructor.</jc>
-                *              <jk>public</jk> MyResource(Builder 
<jv>builder</jv>) <jk>throws</jk> Exception {
+                *              <jk>public</jk> MyResource(RestContext.Builder 
<jv>builder</jv>) <jk>throws</jk> Exception {
                 *
                 *                      <jc>// Using method on builder.</jc>
                 *                      
<jv>builder</jv>.responseProcessors(MyResponseProcessor.<jk>class</jk>);
@@ -1649,7 +1649,7 @@ public class RestContext extends Context {
                 *
                 *              <jc>// Option #3 - Defined via builder passed 
in through init method.</jc>
                 *              <ja>@RestHook</ja>(<jsf>INIT</jsf>)
-                *              <jk>public void</jk> init(Builder 
<jv>builder</jv>) <jk>throws</jk> Exception {
+                *              <jk>public void</jk> init(RestContext.Builder 
<jv>builder</jv>) <jk>throws</jk> Exception {
                 *                      
<jv>builder</jv>.responseProcessors(MyResponseProcessors.<jk>class</jk>);
                 *              }
                 *
@@ -2482,7 +2482,7 @@ public class RestContext extends Context {
                 *              }
                 *
                 *              <jc>// Option #3 - Registered via builder 
passed in through resource constructor.</jc>
-                *              <jk>public</jk> MyResource(Builder 
<jv>builder</jv>) <jk>throws</jk> Exception {
+                *              <jk>public</jk> MyResource(RestContext.Builder 
<jv>builder</jv>) <jk>throws</jk> Exception {
                 *
                 *                      <jc>// Using method on builder.</jc>
                 *                      
<jv>builder</jv>.fileFinder(MyFileFinder.<jk>class</jk>);
@@ -2493,7 +2493,7 @@ public class RestContext extends Context {
                 *
                 *              <jc>// Option #4 - Registered via builder 
passed in through init method.</jc>
                 *              <ja>@RestHook</ja>(<jsf>INIT</jsf>)
-                *              <jk>public void</jk> init(Builder 
<jv>builder</jv>) <jk>throws</jk> Exception {
+                *              <jk>public void</jk> init(RestContext.Builder 
<jv>builder</jv>) <jk>throws</jk> Exception {
                 *                      
<jv>builder</jv>.fileFinder(MyFileFinder.<jk>class</jk>);
                 *              }
                 *
@@ -3275,7 +3275,7 @@ public class RestContext extends Context {
                 *      <jk>public class</jk> MyResource {
                 *
                 *              <jc>// Option #2 - Registered via builder 
passed in through resource constructor.</jc>
-                *              <jk>public</jk> MyResource(Builder 
<jv>builder</jv>) <jk>throws</jk> Exception {
+                *              <jk>public</jk> MyResource(RestContext.Builder 
<jv>builder</jv>) <jk>throws</jk> Exception {
                 *
                 *                      <jc>// Using method on builder.</jc>
                 *                      
<jv>builder</jv>.restOpArgs(MyRestParam.<jk>class</jk>);
@@ -3283,7 +3283,7 @@ public class RestContext extends Context {
                 *
                 *              <jc>// Option #3 - Registered via builder 
passed in through init method.</jc>
                 *              <ja>@RestHook</ja>(<jsf>INIT</jsf>)
-                *              <jk>public void</jk> init(Builder 
<jv>builder</jv>) <jk>throws</jk> Exception {
+                *              <jk>public void</jk> init(RestContext.Builder 
<jv>builder</jv>) <jk>throws</jk> Exception {
                 *                      
<jv>builder</jv>.restOpArgs(MyRestParam.<jk>class</jk>);
                 *              }
                 *
@@ -5189,7 +5189,7 @@ public class RestContext extends Context {
                 *              by default is {@link BeanStore} which requires 
the class have one of the following
                 *              constructors:
                 *              <ul>
-                *                      <li><code><jk>public</jk> 
T(Builder)</code>
+                *                      <li><code><jk>public</jk> 
T(RestContext.Builder)</code>
                 *                      <li><code><jk>public</jk> T()</code>
                 *              </ul>
                 * </ul>
@@ -6071,7 +6071,7 @@ public class RestContext extends Context {
         *                      
<ja>@Property</ja>(name=<js>"v1"</js>,value=<js>"$R{foo,bar}"</js>),  <jc>// 
Request variable.  value="bar"</jc>
         *              }
         *      )
-        *      <jk>public class</jk> MyRestResource <jk>extends</jk> 
BasicRestServlet {
+        *      <jk>public class</jk> MyRestResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
         * </p>
         *
         * <p>
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContext.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContext.java
index 1664ee1..1394a6f 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContext.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContext.java
@@ -2018,7 +2018,7 @@ public class RestOpContext extends Context implements 
Comparable<RestOpContext>
                 *              
rolesDeclared=<js>"ROLE_ADMIN,ROLE_READ_WRITE,ROLE_READ_ONLY,ROLE_SPECIAL"</js>,
                 *              roleGuard=<js>"ROLE_ADMIN || (ROLE_READ_WRITE 
&amp;&amp; ROLE_SPECIAL)"</js>
                 *      )
-                *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet {
+                *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
                 *              ...
                 *      }
                 * </p>
@@ -2051,7 +2051,7 @@ public class RestOpContext extends Context implements 
Comparable<RestOpContext>
                 *              path=<js>"/foo"</js>,
                 *              roleGuard=<js>"ROLE_ADMIN || (ROLE_READ_WRITE 
&amp;&amp; ROLE_SPECIAL)"</js>
                 *      )
-                *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet {
+                *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
                 *              ...
                 *      }
                 * </p>
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/HookEvent.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/HookEvent.java
index 963a2c3..f1a20c7 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/HookEvent.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/HookEvent.java
@@ -61,7 +61,7 @@ public enum HookEvent {
         * <h5 class='figure'>Example:</h5>
         * <p class='bjava'>
         *      <ja>@Rest</ja>(...)
-        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet {
+        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
         *
         *              <jc>// Add a request attribute to all incoming 
requests.</jc>
         *              <ja>@RestHook</ja>(<jsf>START_CALL</jsf>)
@@ -175,7 +175,7 @@ public enum HookEvent {
         * <h5 class='figure'>Example:</h5>
         * <p class='bjava'>
         *      <ja>@Rest</ja>(...)
-        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet {
+        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
         *
         *              <jc>// Log the incoming request.</jc>
         *              <ja>@RestHook</ja>(<jsf>PRE_CALL</jsf>)
@@ -224,7 +224,7 @@ public enum HookEvent {
         * <h5 class='figure'>Example:</h5>
         * <p class='bjava'>
         *      <ja>@Rest</ja>(...)
-        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet {
+        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
         *
         *              <jc>// Log the result of the request.</jc>
         *              <ja>@RestHook</ja>(<jsf>POST_CALL</jsf>)
@@ -281,7 +281,7 @@ public enum HookEvent {
         * <h5 class='figure'>Example:</h5>
         * <p class='bjava'>
         *      <ja>@Rest</ja>(...)
-        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet {
+        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
         *
         *              <jc>// Log the time it took to execute the request.</jc>
         *              <ja>@RestHook</ja>(<jsf>END_CALL</jsf>)
@@ -335,7 +335,7 @@ public enum HookEvent {
         * <h5 class='figure'>Example:</h5>
         * <p class='bjava'>
         *      <ja>@Rest</ja>(...)
-        *      <jk>public class</jk> PetStoreResource <jk>extends</jk> 
ResourceJena {
+        *      <jk>public class</jk> PetStoreResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalJenaConfig {
         *
         *              <jc>// Our database.</jc>
         *              <jk>private</jk> Map&lt;Integer,Pet&gt; <jf>petDB</jf>;
@@ -445,7 +445,7 @@ public enum HookEvent {
         * <h5 class='figure'>Example:</h5>
         * <p class='bjava'>
         *      <ja>@Rest</ja>(...)
-        *      <jk>public class</jk> PetStoreResource <jk>extends</jk> 
ResourceJena {
+        *      <jk>public class</jk> PetStoreResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalJenaConfig {
         *
         *              <jc>// Our database.</jc>
         *              <jk>private</jk> Map&lt;Integer,Pet&gt; <jf>petDB</jf>;
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/Rest.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/Rest.java
index b822ded..2e3ef11 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/Rest.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/Rest.java
@@ -916,7 +916,7 @@ public @interface Rest {
         *      <ja>@Rest</ja>(
         *              children={ChildResource.<jk>class</jk>}
         *      )
-        *      <jk>public class</jk> TopLevelResource <jk>extends</jk> 
BasicRestServlet {...}
+        *      <jk>public class</jk> TopLevelResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {...}
         *
         *      <ja>@Rest</ja>(
         *              path=<js>"/child"</js>,
@@ -952,7 +952,7 @@ public @interface Rest {
         *      <ja>@Rest</ja>(
         *              path=<js>"/myResource/{foo}/{bar}"</js>
         *      )
-        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet {
+        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
         *
         *              <ja>@RestGet</ja>(<js>"/{baz}"</js>)
         *              <jk>public void</jk> String doX(<ja>@Path</ja> String 
<jv>foo</jv>, <ja>@Path</ja> <jk>int</jk> <jv>bar</jv>, <ja>@Path</ja> MyPojo 
<jv>baz</jv>) {
@@ -1098,7 +1098,7 @@ public @interface Rest {
         *              path=<js>"/foo"</js>,
         *              roleGuard=<js>"ROLE_ADMIN || (ROLE_READ_WRITE 
&amp;&amp; ROLE_SPECIAL)"</js>
         *      )
-        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet {
+        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
         *              ...
         *      }
         * </p>
@@ -1153,7 +1153,7 @@ public @interface Rest {
         *              
rolesDeclared=<js>"ROLE_ADMIN,ROLE_READ_WRITE,ROLE_READ_ONLY,ROLE_SPECIAL"</js>,
         *              roleGuard=<js>"ROLE_ADMIN || (ROLE_READ_WRITE 
&amp;&amp; ROLE_SPECIAL)"</js>
         *      )
-        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet {
+        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
         *              ...
         *      }
         * </p>
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestDelete.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestDelete.java
index 6153f43..15c95b9 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestDelete.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestDelete.java
@@ -355,7 +355,7 @@ public @interface RestDelete {
         * <p>
         * The programmatic equivalent to this annotation is:
         * <p class='bjava'>
-        *      RestOpContext.Builder <jv>builder</jv> = 
RestOpContext.Builder.<jsm>create</jsm>(<jv>method</jv>,<jv>restContext</jv>);
+        *      RestOpContext.Builder <jv>builder</jv> = 
RestOpContext.<jsm>create</jsm>(<jv>method</jv>,<jv>restContext</jv>);
         *      <jv>builder</jv>.getEncoders().set(<jv>classes</jv>);
         * </p>
         *
@@ -438,7 +438,7 @@ public @interface RestDelete {
         *
         * <h5 class='section'>Example:</h5>
         * <p class='bjava'>
-        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet {
+        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
         *
         *              <ja>@RestDelete</ja>(
         *                      path=<js>"/foo"</js>,
@@ -494,7 +494,7 @@ public @interface RestDelete {
         *
         * <h5 class='section'>Example:</h5>
         * <p class='bjava'>
-        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet {
+        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
         *
         *              <ja>@RestDelete</ja>(
         *                      path=<js>"/foo"</js>,
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestGet.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestGet.java
index e419c0c..ac6684f 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestGet.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestGet.java
@@ -475,7 +475,7 @@ public @interface RestGet {
         *
         * <h5 class='section'>Example:</h5>
         * <p class='bjava'>
-        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet {
+        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
         *
         *              <ja>@RestGet</ja>(
         *                      path=<js>"/foo"</js>,
@@ -531,7 +531,7 @@ public @interface RestGet {
         *
         * <h5 class='section'>Example:</h5>
         * <p class='bjava'>
-        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet {
+        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
         *
         *              <ja>@RestGet</ja>(
         *                      path=<js>"/foo"</js>,
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOp.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOp.java
index 012623b..28a2994 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOp.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOp.java
@@ -696,7 +696,7 @@ public @interface RestOp {
         *
         * <h5 class='section'>Example:</h5>
         * <p class='bjava'>
-        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet {
+        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
         *
         *              <ja>@RestOp</ja>(
         *                      method=<jsf>GET</jsf>,
@@ -753,7 +753,7 @@ public @interface RestOp {
         *
         * <h5 class='section'>Example:</h5>
         * <p class='bjava'>
-        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet {
+        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
         *
         *              <ja>@RestOp</ja>(
         *                      method=<jsf>GET</jsf>,
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPost.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPost.java
index 14ce95f..20263ed 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPost.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPost.java
@@ -621,7 +621,7 @@ public @interface RestPost {
         *
         * <h5 class='section'>Example:</h5>
         * <p class='bjava'>
-        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet {
+        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
         *
         *              <ja>@RestPost</ja>(
         *                      path=<js>"/foo"</js>,
@@ -677,7 +677,7 @@ public @interface RestPost {
         *
         * <h5 class='section'>Example:</h5>
         * <p class='bjava'>
-        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet {
+        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
         *
         *              <ja>@RestPost</ja>(
         *                      path=<js>"/foo"</js>,
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPut.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPut.java
index 029b6cb..b6f06fb 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPut.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPut.java
@@ -621,7 +621,7 @@ public @interface RestPut {
         *
         * <h5 class='section'>Example:</h5>
         * <p class='bjava'>
-        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet {
+        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
         *
         *              <ja>@RestPut</ja>(
         *                      path=<js>"/foo"</js>,
@@ -677,7 +677,7 @@ public @interface RestPut {
         *
         * <h5 class='section'>Example:</h5>
         * <p class='bjava'>
-        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet {
+        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
         *
         *              <ja>@RestPut</ja>(
         *                      path=<js>"/foo"</js>,
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/beans/Hyperlink.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/beans/Hyperlink.java
index 5918171..560700a 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/beans/Hyperlink.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/beans/Hyperlink.java
@@ -20,7 +20,7 @@ import org.apache.juneau.dto.html5.*;
  * <h5 class='figure'>Examples:</h5>
  * <p class='bjava>
  *     <ja>@Rest</ja>
- *     <jk>public class</jk> MyRest <jk>extends</jk> BasicRestServlet {
+ *     <jk>public class</jk> MyRest <jk>extends</jk> BasicRestServlet 
<jk>implements</jk> BasicUniversalConfig {
  *
  *             <jc>// Produces &lt;a href=&quot;/foo&quot;>bar&lt;/a></jc>
  *             <ja>@RestGet</ja>
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/converter/RestConverter.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/converter/RestConverter.java
index 8349e5f..801b01d 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/converter/RestConverter.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/converter/RestConverter.java
@@ -34,7 +34,7 @@ import org.apache.juneau.serializer.*;
  *
  * <h5 class='section'>Example:</h5>
  * <p class='bjava'>
- *     <jk>public class</jk> RequestEchoResource <jk>extends</jk> 
BasicRestServlet {
+ *     <jk>public class</jk> RequestEchoResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
  *
  *             <jc>// GET request handler</jc>
  *             <ja>@RestGet</ja>(path=<js>"/*"</js>, 
converters={Queryable.<jk>class</jk>,Traversable.<jk>class</jk>})
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/guard/RestGuard.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/guard/RestGuard.java
index eb7aea6..5826a03 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/guard/RestGuard.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/guard/RestGuard.java
@@ -46,7 +46,7 @@ import org.apache.juneau.http.response.*;
  *
  * <h5 class='topic'>Example usage:</h5>
  * <p class='bjava'>
- *     <jk>public</jk> MyResource <jk>extends</jk> BasicRestServlet {
+ *     <jk>public</jk> MyResource <jk>extends</jk> BasicRestServlet 
<jk>implements</jk> BasicUniversalConfig {
  *
  *             <jc>// Delete method with guard that only allows Billy to call 
it.</jc>
  *             <ja>@RestDelete</ja>(guards=BillyGuard.<jk>class</jk>)
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/matcher/RestMatcher.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/matcher/RestMatcher.java
index b08357a..2c81cb7 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/matcher/RestMatcher.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/matcher/RestMatcher.java
@@ -36,7 +36,7 @@ import org.apache.juneau.rest.annotation.*;
  *
  * <h5 class='section'>Example:</h5>
  * <p class='bjava'>
- *     <jk>public class</jk> MyResource <jk>extends</jk> BasicRestServlet {
+ *     <jk>public class</jk> MyResource <jk>extends</jk> BasicRestServlet 
<jk>implements</jk> BasicUniversalConfig {
  *
  *             <ja>@RestGet</ja>(path=<js>"/foo"</js>, 
matchers=IsDNT.<jk>class</jk>)
  *             <jk>public</jk> Object doGetWithDNT() {
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/processor/ResponseProcessor.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/processor/ResponseProcessor.java
index 03dc689..3ac8a5a 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/processor/ResponseProcessor.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/processor/ResponseProcessor.java
@@ -46,7 +46,7 @@ import org.apache.juneau.rest.annotation.*;
  *             path=<js>"/example"</js>,
  *             responseProcessors=FooProcessor.<jk>class</jk>
  *     )
- *     <jk>public class</jk> Example <jk>extends</jk> BasicRestServlet {
+ *     <jk>public class</jk> Example <jk>extends</jk> BasicRestServlet 
<jk>implements</jk> BasicUniversalConfig {
  *
  *             <ja>@RestGet</ja>(<js>"/"</js>)
  *             <jk>public</jk> Foo test1() {
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/RestObject.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/RestObject.java
index 512658f..5ee7905 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/RestObject.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/RestObject.java
@@ -170,7 +170,7 @@ public abstract class RestObject {
         * <h5 class='figure'>Example:</h5>
         * <p class='bjava'>
         *      <ja>@Rest</ja>(...)
-        *      <jk>public class</jk> PetStoreResource <jk>extends</jk> 
ResourceJena {
+        *      <jk>public class</jk> PetStoreResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalJenaConfig {
         *
         *              <jc>// Our database.</jc>
         *              <jk>private</jk> Map&lt;Integer,Pet&gt; <jf>petDB</jf>;
@@ -264,7 +264,7 @@ public abstract class RestObject {
         * <h5 class='figure'>Example:</h5>
         * <p class='bjava'>
         *      <ja>@Rest</ja>(...)
-        *      <jk>public class</jk> PetStoreResource <jk>extends</jk> 
ResourceJena {
+        *      <jk>public class</jk> PetStoreResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalJenaConfig {
         *
         *              <jc>// Our database.</jc>
         *              <jk>private</jk> Map&lt;Integer,Pet&gt; <jf>petDB</jf>;
@@ -304,7 +304,7 @@ public abstract class RestObject {
         * <h5 class='figure'>Example:</h5>
         * <p class='bjava'>
         *      <ja>@Rest</ja>(...)
-        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet {
+        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
         *
         *              <jc>// Add a request attribute to all incoming 
requests.</jc>
         *              <ja>@Override</ja>
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/RestServlet.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/RestServlet.java
index b2fff46..bbe4b11 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/RestServlet.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/RestServlet.java
@@ -292,7 +292,7 @@ public abstract class RestServlet extends HttpServlet {
         * <h5 class='figure'>Example:</h5>
         * <p class='bjava'>
         *      <ja>@Rest</ja>(...)
-        *      <jk>public class</jk> PetStoreResource <jk>extends</jk> 
BasicRestServlet {
+        *      <jk>public class</jk> PetStoreResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
         *
         *              <jc>// Our database.</jc>
         *              <jk>private</jk> Map&lt;Integer,Pet&gt; <jf>petDB</jf>;
@@ -392,7 +392,7 @@ public abstract class RestServlet extends HttpServlet {
         * <h5 class='figure'>Example:</h5>
         * <p class='bjava'>
         *      <ja>@Rest</ja>(...)
-        *      <jk>public class</jk> PetStoreResource <jk>extends</jk> 
BasicRestServlet {
+        *      <jk>public class</jk> PetStoreResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
         *
         *              <jc>// Our database.</jc>
         *              <jk>private</jk> Map&lt;Integer,Pet&gt; <jf>petDB</jf>;
@@ -432,7 +432,7 @@ public abstract class RestServlet extends HttpServlet {
         * <h5 class='figure'>Example:</h5>
         * <p class='bjava'>
         *      <ja>@Rest</ja>(...)
-        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet {
+        *      <jk>public class</jk> MyResource <jk>extends</jk> 
BasicRestServlet <jk>implements</jk> BasicUniversalConfig {
         *
         *              <jc>// Add a request attribute to all incoming 
requests.</jc>
         *              <ja>@Override</ja>
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_BeanContext_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_BeanContext_Test.java
index 4ae4e4c..fb595e3 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_BeanContext_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_BeanContext_Test.java
@@ -109,7 +109,7 @@ public class RestClient_Config_BeanContext_Test {
                        .assertBody().is("1")
                        .assertHeader("X").is("1");
                assertEquals(1,x.getBody().as(A2a.class).f);
-               assertEquals(1,x.getHeader("X").asType(A2a.class).get().f);
+               assertEquals(1,x.getHeader("X").as(A2a.class).get().f);
        }
 
        public static class A3 {
@@ -139,7 +139,7 @@ public class RestClient_Config_BeanContext_Test {
                        .assertBody().is("{f1:1,f2:2}")
                        .assertHeader("X").is("f1=1,f2=2");
                assertEquals(2,x.getBody().as(A3.class).f2);
-               assertEquals(2,x.getHeader("X").asType(A3.class).get().f2);
+               assertEquals(2,x.getHeader("X").as(A3.class).get().f2);
        }
 
        public static interface A4a {
@@ -184,7 +184,7 @@ public class RestClient_Config_BeanContext_Test {
                        .is("{f1:1}")
                        .assertHeader("X").is("f1=1");
                assertEquals(0,x.getBody().as(A4b.class).f2);
-               assertEquals(0,x.getHeader("X").asType(A4b.class).get().f2);
+               assertEquals(0,x.getHeader("X").as(A4b.class).get().f2);
 
                x = client(A2b.class)
                        .beanProperties(A4b.class,"f1")
@@ -196,7 +196,7 @@ public class RestClient_Config_BeanContext_Test {
                        .assertBody().is("{f1:1}")
                        .assertHeader("X").is("f1=1");
                assertEquals(0,x.getBody().as(A4b.class).f2);
-               assertEquals(0,x.getHeader("X").asType(A4b.class).get().f2);
+               assertEquals(0,x.getHeader("X").as(A4b.class).get().f2);
 
                x = client(A2b.class)
                        .beanProperties(A4b.class,"f1")
@@ -208,7 +208,7 @@ public class RestClient_Config_BeanContext_Test {
                        .assertBody().is("{f1:1}")
                        .assertHeader("X").is("f1=1");
                assertEquals(0,x.getBody().as(A4b.class).f2);
-               assertEquals(0,x.getHeader("X").asType(A4b.class).get().f2);
+               assertEquals(0,x.getHeader("X").as(A4b.class).get().f2);
 
                x = client(A2b.class)
                        .beanProperties(A4b.class,"f1")
@@ -220,7 +220,7 @@ public class RestClient_Config_BeanContext_Test {
                        .assertBody().is("{f1:1}")
                        .assertHeader("X").is("f1=1");
                assertEquals(0,x.getBody().as(A4b.class).f2);
-               assertEquals(0,x.getHeader("X").asType(A4b.class).get().f2);
+               assertEquals(0,x.getHeader("X").as(A4b.class).get().f2);
 
                x = client(A2b.class)
                        .interfaces(A4a.class)
@@ -232,7 +232,7 @@ public class RestClient_Config_BeanContext_Test {
                        .assertBody().is("{f3:3}")
                        .assertHeader("X").is("f3=3");
                assertEquals(3,x.getBody().as(A4b.class).f3);
-               assertEquals(3,x.getHeader("X").asType(A4b.class).get().f3);
+               assertEquals(3,x.getHeader("X").as(A4b.class).get().f3);
        }
 
        public static class A5  {
@@ -273,7 +273,7 @@ public class RestClient_Config_BeanContext_Test {
                        .assertBody().is("{f1:1,f2:2}")
                        .assertHeader("X").is("f1=1,f2=2");
                assertEquals(2,x.getBody().as(A5.class).f2);
-               assertEquals(2,x.getHeader("X").asType(A5.class).get().f2);
+               assertEquals(2,x.getHeader("X").as(A5.class).get().f2);
        }
 
        public static class A6 {}
@@ -424,7 +424,7 @@ public class RestClient_Config_BeanContext_Test {
                        .assertBody().is("{f1:1,f2:2}")
                        .assertHeader("X").is("f1=1,f2=2");
                assertEquals("1/0",x.getBody().as(A9.class).toString());
-               
assertEquals("1/0",x.getHeader("X").asType(A9.class).get().toString());
+               
assertEquals("1/0",x.getHeader("X").as(A9.class).get().toString());
 
                x = client(A2b.class)
                        .beanPropertiesReadOnly(A9.class,"f2")
@@ -436,7 +436,7 @@ public class RestClient_Config_BeanContext_Test {
                        .assertBody().is("{f1:1,f2:2}")
                        .assertHeader("X").is("f1=1,f2=2");
                assertEquals("1/0",x.getBody().as(A9.class).toString());
-               
assertEquals("1/0",x.getHeader("X").asType(A9.class).get().toString());
+               
assertEquals("1/0",x.getHeader("X").as(A9.class).get().toString());
 
                x = client(A2b.class)
                        .beanPropertiesReadOnly("O9","f2")
@@ -448,7 +448,7 @@ public class RestClient_Config_BeanContext_Test {
                        .assertBody().is("{f1:1,f2:2}")
                        .assertHeader("X").is("f1=1,f2=2");
                assertEquals("1/0",x.getBody().as(A9.class).toString());
-               
assertEquals("1/0",x.getHeader("X").asType(A9.class).get().toString());
+               
assertEquals("1/0",x.getHeader("X").as(A9.class).get().toString());
        }
 
        @Test
@@ -465,7 +465,7 @@ public class RestClient_Config_BeanContext_Test {
                        .assertBody().is("{f1:1}")
                        .assertHeader("X").is("f1=1");
                assertEquals("1/0",x.getBody().as(A9.class).toString());
-               
assertEquals("1/0",x.getHeader("X").asType(A9.class).get().toString());
+               
assertEquals("1/0",x.getHeader("X").as(A9.class).get().toString());
 
                x = client(A2b.class)
                        .beanPropertiesWriteOnly(A9.class,"f2")
@@ -477,7 +477,7 @@ public class RestClient_Config_BeanContext_Test {
                        .assertBody().is("{f1:1}")
                        .assertHeader("X").is("f1=1");
                assertEquals("1/0",x.getBody().as(A9.class).toString());
-               
assertEquals("1/0",x.getHeader("X").asType(A9.class).get().toString());
+               
assertEquals("1/0",x.getHeader("X").as(A9.class).get().toString());
 
                x = client(A2b.class)
                        .beanPropertiesWriteOnly("A9","f2")
@@ -489,7 +489,7 @@ public class RestClient_Config_BeanContext_Test {
                        .assertBody().is("{f1:1}")
                        .assertHeader("X").is("f1=1");
                assertEquals("1/0",x.getBody().as(A9.class).toString());
-               
assertEquals("1/0",x.getHeader("X").asType(A9.class).get().toString());
+               
assertEquals("1/0",x.getHeader("X").as(A9.class).get().toString());
        }
 
        @Test
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_RestClient_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_RestClient_Test.java
index b092296..b941a23 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_RestClient_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_RestClient_Test.java
@@ -471,13 +471,13 @@ public class RestClient_Config_RestClient_Test {
        @Test
        public void a12_partSerializer_partParser() throws Exception {
                RestClient x = 
client(A12.class).headers(serializedHeader("Foo", 
bean)).partSerializer(A12a.class).partParser(A12b.class).build();
-               ABean b = 
x.get("/").header("Foo",bean).run().assertHeader("Foo").is("x{f:1}").getHeader("Foo").asType(ABean.class).get();
+               ABean b = 
x.get("/").header("Foo",bean).run().assertHeader("Foo").is("x{f:1}").getHeader("Foo").as(ABean.class).get();
                assertEquals("{f:1}",b.toString());
-               b = 
x.get().header("Foo",bean).run().assertHeader("Foo").is("x{f:1}").getHeader("Foo").asType(ABean.class).get();
+               b = 
x.get().header("Foo",bean).run().assertHeader("Foo").is("x{f:1}").getHeader("Foo").as(ABean.class).get();
                assertEquals("{f:1}",b.toString());
 
                x = client(A12.class).headers(serializedHeader("Foo", 
bean)).partSerializer(new A12a(MockWriterSerializer.create())).partParser(new 
A12b(MockReaderParser.create())).build();
-               b = 
x.get("/").header("Foo",bean).run().assertHeader("Foo").is("x{f:1}").getHeader("Foo").asType(ABean.class).get();
+               b = 
x.get("/").header("Foo",bean).run().assertHeader("Foo").is("x{f:1}").getHeader("Foo").as(ABean.class).get();
                assertEquals("{f:1}",b.toString());
        }
 
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Response_Headers_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Response_Headers_Test.java
index f46efd7..d94e25d 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Response_Headers_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Response_Headers_Test.java
@@ -105,44 +105,44 @@ public class RestClient_Response_Headers_Test {
        @SuppressWarnings("unchecked")
        @Test
        public void a04_asType() throws Exception {
-               Integer i = 
checkFooClient().build().get("/echo").header("Foo","123").run().getHeader("Foo").asType(Integer.class).orElse(null);
+               Integer i = 
checkFooClient().build().get("/echo").header("Foo","123").run().getHeader("Foo").as(Integer.class).orElse(null);
                assertEquals(123, i.intValue());
 
                Value<Integer> m1 = Value.empty();
-               
checkFooClient().build().get("/echo").header("Foo","123").run().getHeader("Foo").asType(m1,Integer.class);
+               
checkFooClient().build().get("/echo").header("Foo","123").run().getHeader("Foo").as(m1,Integer.class);
                assertEquals(123, m1.get().intValue());
 
-               List<Integer> l = (List<Integer>) 
checkFooClient().build().get("/echo").header("Foo","1,2").run().getHeader("Foo").asType(LinkedList.class,Integer.class).get();
+               List<Integer> l = (List<Integer>) 
checkFooClient().build().get("/echo").header("Foo","1,2").run().getHeader("Foo").as(LinkedList.class,Integer.class).get();
                assertObject(l).asJson().is("[1,2]");
 
                Value<Integer> m2 = Value.empty();
-               
checkFooClient().build().get("/echo").header("Foo","1,2").run().getHeader("Foo").asType(m2,LinkedList.class,Integer.class);
+               
checkFooClient().build().get("/echo").header("Foo","1,2").run().getHeader("Foo").as(m2,LinkedList.class,Integer.class);
 
                ClassMeta<LinkedList<Integer>> cm1 = 
BeanContext.DEFAULT.getClassMeta(LinkedList.class, Integer.class);
                ClassMeta<Integer> cm2 = 
BeanContext.DEFAULT.getClassMeta(Integer.class);
 
-               l = 
checkFooClient().build().get("/echo").header("Foo","1,2").run().getHeader("Foo").asType(cm1).get();
+               l = 
checkFooClient().build().get("/echo").header("Foo","1,2").run().getHeader("Foo").as(cm1).get();
                assertObject(l).asJson().is("[1,2]");
 
                Value<LinkedList<Integer>> m3 = Value.empty();
-               
checkFooClient().build().get("/echo").header("Foo","1,2").run().getHeader("Foo").asType(m3,cm1);
+               
checkFooClient().build().get("/echo").header("Foo","1,2").run().getHeader("Foo").as(m3,cm1);
                assertObject(m3.get()).asJson().is("[1,2]");
 
-               
assertThrown(()->checkFooClient().build().get("/echo").header("Foo","foo").run().getHeader("Foo").asType(m2,cm1)).messages().any(contains("Invalid
 number"));
+               
assertThrown(()->checkFooClient().build().get("/echo").header("Foo","foo").run().getHeader("Foo").as(m2,cm1)).messages().any(contains("Invalid
 number"));
 
-               Optional<List<Integer>> o1 = 
checkFooClient().build().get("/echo").header("Foo","1,2").run().getHeader("Foo").asType(LinkedList.class,Integer.class);
+               Optional<List<Integer>> o1 = 
checkFooClient().build().get("/echo").header("Foo","1,2").run().getHeader("Foo").as(LinkedList.class,Integer.class);
                assertObject(o1.get()).asJson().is("[1,2]");
-               o1 = 
checkFooClient().build().get("/echo").header("Foo","1,2").run().getHeader("Bar").asType(LinkedList.class,Integer.class);
+               o1 = 
checkFooClient().build().get("/echo").header("Foo","1,2").run().getHeader("Bar").as(LinkedList.class,Integer.class);
                assertFalse(o1.isPresent());
 
-               Optional<Integer> o2 = 
checkFooClient().build().get("/echo").header("Foo","1").run().getHeader("Foo").asType(Integer.class);
+               Optional<Integer> o2 = 
checkFooClient().build().get("/echo").header("Foo","1").run().getHeader("Foo").as(Integer.class);
                assertEquals(1, o2.get().intValue());
-               o2 = 
checkFooClient().build().get("/echo").header("Foo","1").run().getHeader("Bar").asType(Integer.class);
+               o2 = 
checkFooClient().build().get("/echo").header("Foo","1").run().getHeader("Bar").as(Integer.class);
                assertFalse(o2.isPresent());
 
-               o2 = 
checkFooClient().build().get("/echo").header("Foo","1").run().getHeader("Foo").asType(cm2);
+               o2 = 
checkFooClient().build().get("/echo").header("Foo","1").run().getHeader("Foo").as(cm2);
                assertEquals(1, o2.get().intValue());
-               o2 = 
checkFooClient().build().get("/echo").header("Foo","1").run().getHeader("Bar").asType(cm2);
+               o2 = 
checkFooClient().build().get("/echo").header("Foo","1").run().getHeader("Bar").as(cm2);
                assertFalse(o2.isPresent());
 
                
assertTrue(checkFooClient().build().get("/echo").header("Foo","foo").run().getHeader("Foo").asMatcher("foo").matches());

Reply via email to