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 ee2320d  REST servlet refactoring
ee2320d is described below

commit ee2320d7bcfe7e02f7006914bbea4fe91347c55f
Author: JamesBognar <[email protected]>
AuthorDate: Mon Jan 3 12:31:52 2022 -0500

    REST servlet refactoring
---
 .../apache/juneau/serializer/SerializerSet.java    |   4 +-
 juneau-doc/src/main/javadoc/overview.html          |  30 ++++----
 .../rest/springboot/HelloWorldResource.java        |   5 +-
 .../examples/rest/springboot/RootResources.java    |   3 +-
 .../juneau/examples/rest/HelloWorldResource.java   |   5 +-
 .../juneau/examples/rest/PhotosResource.java       |   4 +-
 .../juneau/examples/rest/RequestEchoResource.java  |   4 +-
 .../apache/juneau/examples/rest/RootResources.java |   5 +-
 .../juneau/examples/rest/dto/AtomFeedResource.java |   5 +-
 .../juneau/examples/rest/dto/DtoExamples.java      |   5 +-
 .../examples/rest/dto/JsonSchemaResource.java      |   5 +-
 .../microservice/resources/ConfigResource.java     |   5 +-
 .../microservice/resources/DirectoryResource.java  |   4 +-
 .../microservice/resources/LogsResource.java       |   4 +-
 .../microservice/resources/SampleRootResource.java |   5 +-
 .../microservice/resources/ShutdownResource.java   |   5 +-
 .../apache/juneau/rest/test/ConfigResource.java    |   4 +-
 .../juneau/rest/test/LargePojosResource.java       |   5 +-
 .../java/org/apache/juneau/rest/test/Root.java     |   4 +-
 .../rest/test/client/ThirdPartyProxyResource.java  |   4 +-
 .../microservice/jetty/JettyMicroservice.java      |   2 +-
 .../jetty/resources/DebugResource.java             |   1 +
 .../jetty/template/HelloWorldResource.java         |   2 +-
 .../microservice/jetty/template/RootResources.java |   2 +-
 .../springboot/template/HelloWorldResource.java    |   5 +-
 .../springboot/template/RootResources.java         |   3 +-
 .../apache/juneau/rest/jaxrs/BasicProvider.java    |   2 +-
 .../java/org/apache/juneau/rest/BasicRestJena.java |  44 -----------
 .../org/apache/juneau/rest/BasicRestJenaGroup.java |  44 -----------
 .../juneau/rest/BasicRestServletJenaGroup.java     |  42 -----------
 .../BasicUniversalJenaConfig.java}                 |  83 ++++++++++-----------
 .../rest/springboot/BasicSpringRestServlet.java    |   3 +-
 .../juneau/rest/springboot/SpringRestServlet.java  |   2 +-
 .../rest/springboot/annotation/JuneauRestRoot.java |  52 -------------
 .../rest/springboot/annotation/package-info.java   |  18 -----
 .../java/org/apache/juneau/rest/RestContext.java   |   3 +-
 .../apache/juneau/rest/RestServletException.java   |   1 +
 .../org/apache/juneau/rest/annotation/Rest.java    |   1 +
 .../apache/juneau/rest/annotation/RestDelete.java  |   1 +
 .../org/apache/juneau/rest/annotation/RestGet.java |   1 +
 .../apache/juneau/rest/annotation/RestHook.java    |   1 +
 .../org/apache/juneau/rest/annotation/RestOp.java  |   1 +
 .../apache/juneau/rest/annotation/RestPost.java    |   1 +
 .../org/apache/juneau/rest/annotation/RestPut.java |   1 +
 .../{BasicJsonRest.java => BasicJsonConfig.java}   |   4 +-
 ...cJsonHtmlRest.java => BasicJsonHtmlConfig.java} |   8 +-
 ...sicOpenApiRest.java => BasicOpenApiConfig.java} |   2 +-
 ...pleJsonRest.java => BasicSimpleJsonConfig.java} |   2 +-
 ...niversalRest.java => BasicUniversalConfig.java} |   4 +-
 .../org/apache/juneau/rest/remote/RrpcServlet.java |   2 +-
 .../juneau/rest/{ => servlet}/BasicRestObject.java |   7 +-
 .../rest/{ => servlet}/BasicRestObjectGroup.java   |   5 +-
 .../rest/{ => servlet}/BasicRestOperations.java    |   3 +-
 .../rest/{ => servlet}/BasicRestServlet.java       |   7 +-
 .../rest/{ => servlet}/BasicRestServletGroup.java  |   5 +-
 .../juneau/rest/{ => servlet}/RestObject.java      |   5 +-
 .../juneau/rest/{ => servlet}/RestServlet.java     |   5 +-
 .../juneau/rest/vars/ServletInitParamVar.java      |   1 +
 .../rest => }/htdocs/MethodExampleResource1.png    | Bin
 .../juneau/rest => }/htdocs/QueryMenuItem.html     |   0
 .../apache/juneau/rest => }/htdocs/images/asf.png  | Bin
 .../juneau/rest => }/htdocs/images/juneau.png      | Bin
 .../apache/juneau/rest => }/htdocs/javadoc.css     |   0
 .../rest => }/htdocs/scripts/MenuItemWidget.js     |   0
 .../rest => }/htdocs/styles/MenuItemWidget.css     |   0
 .../rest => }/htdocs/styles/QueryMenuItem.css      |   0
 .../juneau/rest => }/htdocs/styles/SwaggerUI.css   |   0
 .../apache/juneau/rest => }/htdocs/themes/dark.css |   0
 .../juneau/rest => }/htdocs/themes/devops.css      |   0
 .../juneau/rest => }/htdocs/themes/light.css       |   0
 .../juneau/rest => }/htdocs/themes/original.css    |   0
 .../server/config/rest/LoadConfigResource.java     |   2 +-
 .../juneau/html/annotation/HtmlDocConfig_Test.java |  17 +++--
 .../juneau/http/SerializedHttpEntity_Test.java     |   2 +-
 .../http/remote/Remote_BodyAnnotation_Test.java    |   2 +-
 .../http/remote/Remote_CommonInterfaces_Test.java  |  16 ++--
 .../remote/Remote_RemoteOpAnnotation_Test.java     |   4 +-
 .../remote/Remote_ResponseAnnotation_Test.java     |   2 +-
 .../org/apache/juneau/http/remote/Remote_Test.java |  18 ++---
 .../juneau/http/remote/RrpcInterfaceTest.java      |   5 +-
 .../java/org/apache/juneau/rest/Swagger_Test.java  |   1 +
 .../rest/annotation/RestOp_BeanConfig_Test.java    |  17 +++--
 .../juneau/rest/annotation/Rest_Debug_Test.java    |  16 ++--
 .../client/BasicHttpRequestRetryHandler_Test.java  |   2 +-
 .../juneau/rest/client/RestCallException_Test.java |   2 +-
 .../rest/client/RestClient_BasicCalls_Test.java    |   5 +-
 .../juneau/rest/client/RestClient_Body_Test.java   |   2 +-
 .../client/RestClient_Config_BeanContext_Test.java |   2 +-
 .../client/RestClient_Config_Context_Test.java     |   2 +-
 .../client/RestClient_Config_OpenApi_Test.java     |   5 +-
 .../rest/client/RestClient_Config_Parser_Test.java |   2 +-
 .../client/RestClient_Config_RestClient_Test.java  |   2 +-
 .../client/RestClient_Config_Serializer_Test.java  |   2 +-
 .../rest/client/RestClient_FormData_Test.java      |   2 +-
 .../rest/client/RestClient_Headers_Test.java       |   5 +-
 .../rest/client/RestClient_Logging_Test.java       |   2 +-
 .../rest/client/RestClient_Marshalls_Test.java     |   5 +-
 .../juneau/rest/client/RestClient_Paths_Test.java  |   2 +-
 .../juneau/rest/client/RestClient_Query_Test.java  |   2 +-
 .../rest/client/RestClient_Response_Body_Test.java |   2 +-
 .../client/RestClient_Response_Headers_Test.java   |   2 +-
 .../rest/client/RestClient_Response_Test.java      |   2 +-
 .../apache/juneau/rest/client/RestClient_Test.java |   2 +-
 .../apache/juneau/rest/helper/Hyperlink_Test.java  |   5 +-
 104 files changed, 254 insertions(+), 396 deletions(-)

diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSet.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSet.java
index f999c44..8c78b6d 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSet.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSet.java
@@ -98,7 +98,7 @@ public final class SerializerSet {
         */
        @SuppressWarnings("javadoc")
        public static abstract class Inherit extends Serializer {
-               protected Inherit(Serializer.Builder builder) {
+               public Inherit(Serializer.Builder builder) {
                        super(builder);
                }
        }
@@ -110,7 +110,7 @@ public final class SerializerSet {
         */
        @SuppressWarnings("javadoc")
        public static abstract class NoInherit extends Serializer {
-               protected NoInherit(Serializer.Builder builder) {
+               public NoInherit(Serializer.Builder builder) {
                        super(builder);
                }
        }
diff --git a/juneau-doc/src/main/javadoc/overview.html 
b/juneau-doc/src/main/javadoc/overview.html
index b22a1ed..d078b68 100644
--- a/juneau-doc/src/main/javadoc/overview.html
+++ b/juneau-doc/src/main/javadoc/overview.html
@@ -14913,11 +14913,11 @@
                The following interfaces are also provided for defining REST 
endpoint classes:
        
        <ul class='javatree'>
-               <li class='jic'>{@link 
org.apache.juneau.rest.config.BasicUniversalRest} - Support for all languages.
-               <li class='jic'>{@link 
org.apache.juneau.rest.config.BasicJsonRest} - Support for JSON.
-               <li class='jic'>{@link 
org.apache.juneau.rest.config.BasicJsonHtmlRest} - Support for JSON and HTML.
-               <li class='jic'>{@link 
org.apache.juneau.rest.config.BasicSimpleJsonRest} - Support for simplified 
JSON.
-               <li class='jic'>{@link 
org.apache.juneau.rest.config.BasicOpenApiRest} - Support for OpenAPI. 
+               <li class='jic'>{@link 
org.apache.juneau.rest.config.BasicUniversalConfig} - Support for all languages.
+               <li class='jic'>{@link 
org.apache.juneau.rest.config.BasicJsonConfig} - Support for JSON.
+               <li class='jic'>{@link 
org.apache.juneau.rest.config.BasicJsonHtmlConfig} - Support for JSON and HTML.
+               <li class='jic'>{@link 
org.apache.juneau.rest.config.BasicSimpleJsonConfig} - Support for simplified 
JSON.
+               <li class='jic'>{@link 
org.apache.juneau.rest.config.BasicOpenApiConfig} - Support for OpenAPI. 
        </ul>
        <p>
                The interfaces have no methods to implement.  They simply 
aggregate common class-level
@@ -14968,11 +14968,11 @@
                following interfaces as well:
        </p>
        <ul class='javatreec'>
-               <li class='jic'>{@link 
org.apache.juneau.rest.config.BasicUniversalRest}
-               <li class='jic'>{@link 
org.apache.juneau.rest.config.BasicJsonRest}
-               <li class='jic'>{@link 
org.apache.juneau.rest.config.BasicJsonHtmlRest}
-               <li class='jic'>{@link 
org.apache.juneau.rest.config.BasicSimpleJsonRest}
-               <li class='jic'>{@link 
org.apache.juneau.rest.config.BasicOpenApiRest}
+               <li class='jic'>{@link 
org.apache.juneau.rest.config.BasicUniversalConfig}
+               <li class='jic'>{@link 
org.apache.juneau.rest.config.BasicJsonConfig}
+               <li class='jic'>{@link 
org.apache.juneau.rest.config.BasicJsonHtmlConfig}
+               <li class='jic'>{@link 
org.apache.juneau.rest.config.BasicSimpleJsonConfig}
+               <li class='jic'>{@link 
org.apache.juneau.rest.config.BasicOpenApiConfig}
        </ul>
        
        <h5 class='topic'>Path Variables</h5>
@@ -17194,11 +17194,11 @@
                </li>
                <li>Interfaces:
                        <ul class='javatreec'>
-                               <li class='jic'>{@link 
org.apache.juneau.rest.config.BasicUniversalRest}
-                               <li class='jic'>{@link 
org.apache.juneau.rest.config.BasicJsonRest}
-                               <li class='jic'>{@link 
org.apache.juneau.rest.config.BasicJsonHtmlRest}
-                               <li class='jic'>{@link 
org.apache.juneau.rest.config.BasicSimpleJsonRest}
-                               <li class='jic'>{@link 
org.apache.juneau.rest.config.BasicOpenApiRest}
+                               <li class='jic'>{@link 
org.apache.juneau.rest.config.BasicUniversalConfig}
+                               <li class='jic'>{@link 
org.apache.juneau.rest.config.BasicJsonConfig}
+                               <li class='jic'>{@link 
org.apache.juneau.rest.config.BasicJsonHtmlConfig}
+                               <li class='jic'>{@link 
org.apache.juneau.rest.config.BasicSimpleJsonConfig}
+                               <li class='jic'>{@link 
org.apache.juneau.rest.config.BasicOpenApiConfig}
                        </ul>
                </li>
        </ul>
diff --git 
a/juneau-examples/juneau-examples-rest-springboot/src/main/java/org/apache/juneau/examples/rest/springboot/HelloWorldResource.java
 
b/juneau-examples/juneau-examples-rest-springboot/src/main/java/org/apache/juneau/examples/rest/springboot/HelloWorldResource.java
index c1a3196..e82942e 100644
--- 
a/juneau-examples/juneau-examples-rest-springboot/src/main/java/org/apache/juneau/examples/rest/springboot/HelloWorldResource.java
+++ 
b/juneau-examples/juneau-examples-rest-springboot/src/main/java/org/apache/juneau/examples/rest/springboot/HelloWorldResource.java
@@ -17,8 +17,9 @@ import java.util.*;
 import javax.inject.*;
 
 import org.apache.juneau.html.annotation.*;
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
+import org.apache.juneau.rest.config.*;
+import org.apache.juneau.rest.servlet.*;
 
 /**
  * Sample REST resource that prints out a simple "Hello world!" message.
@@ -41,7 +42,7 @@ import org.apache.juneau.rest.annotation.*;
                "</div>"
        }
 )
-public class HelloWorldResource extends BasicRestObject {
+public class HelloWorldResource extends BasicRestObject implements 
BasicUniversalConfig {
 
        private final String message;
 
diff --git 
a/juneau-examples/juneau-examples-rest-springboot/src/main/java/org/apache/juneau/examples/rest/springboot/RootResources.java
 
b/juneau-examples/juneau-examples-rest-springboot/src/main/java/org/apache/juneau/examples/rest/springboot/RootResources.java
index 6bb09e9..e560cf1 100644
--- 
a/juneau-examples/juneau-examples-rest-springboot/src/main/java/org/apache/juneau/examples/rest/springboot/RootResources.java
+++ 
b/juneau-examples/juneau-examples-rest-springboot/src/main/java/org/apache/juneau/examples/rest/springboot/RootResources.java
@@ -16,6 +16,7 @@ import org.apache.juneau.examples.rest.dto.*;
 import org.apache.juneau.html.annotation.*;
 import org.apache.juneau.microservice.resources.*;
 import org.apache.juneau.rest.annotation.*;
+import org.apache.juneau.rest.config.*;
 import org.apache.juneau.rest.springboot.*;
 import org.apache.juneau.rest.widget.*;
 import org.apache.juneau.serializer.annotation.*;
@@ -72,6 +73,6 @@ import org.apache.juneau.serializer.annotation.*;
        // You can apply any of the Serializer/Parser/BeanContext settings this 
way.
        quoteChar="'"
 )
-public class RootResources extends BasicSpringRestServletGroup {
+public class RootResources extends BasicSpringRestServletGroup implements 
BasicUniversalConfig {
        private static final long serialVersionUID = 1L;
 }
diff --git 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/HelloWorldResource.java
 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/HelloWorldResource.java
index 42ff636..f959b23 100644
--- 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/HelloWorldResource.java
+++ 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/HelloWorldResource.java
@@ -13,8 +13,9 @@
 package org.apache.juneau.examples.rest;
 
 import org.apache.juneau.html.annotation.*;
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
+import org.apache.juneau.rest.config.*;
+import org.apache.juneau.rest.servlet.*;
 
 /**
  * Sample REST resource that prints out a simple "Hello world!" message.
@@ -37,7 +38,7 @@ import org.apache.juneau.rest.annotation.*;
                "</div>"
        }
 )
-public class HelloWorldResource extends BasicRestObject {
+public class HelloWorldResource extends BasicRestObject implements 
BasicUniversalConfig {
 
        /**
         * GET request handler.
diff --git 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/PhotosResource.java
 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/PhotosResource.java
index 8c099de..b65a8e1 100644
--- 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/PhotosResource.java
+++ 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/PhotosResource.java
@@ -21,6 +21,8 @@ import org.apache.juneau.http.annotation.*;
 import org.apache.juneau.http.response.*;
 import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
+import org.apache.juneau.rest.config.*;
+import org.apache.juneau.rest.servlet.*;
 
 import java.awt.image.*;
 import java.net.*;
@@ -45,7 +47,7 @@ import java.net.*;
        navlinks="options: ?method=OPTIONS"
 )
 @SuppressWarnings({ "javadoc" })
-public class PhotosResource extends BasicRestServlet {
+public class PhotosResource extends BasicRestServlet implements 
BasicUniversalConfig {
 
        private static final long serialVersionUID = 1L;
 
diff --git 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/RequestEchoResource.java
 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/RequestEchoResource.java
index b9e6b8c..c7c88f4 100644
--- 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/RequestEchoResource.java
+++ 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/RequestEchoResource.java
@@ -20,7 +20,9 @@ import org.apache.juneau.html.annotation.*;
 import org.apache.juneau.http.annotation.*;
 import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
+import org.apache.juneau.rest.config.*;
 import org.apache.juneau.rest.converter.*;
+import org.apache.juneau.rest.servlet.*;
 import org.apache.juneau.rest.widget.*;
 import org.apache.juneau.serializer.annotation.*;
 import org.apache.juneau.swaps.*;
@@ -80,7 +82,7 @@ import org.apache.juneau.swaps.*;
 @Bean(on="HttpServletRequest",interfaceClass=HttpServletRequest.class)
 @Bean(on="HttpSession",interfaceClass=HttpSession.class)
 @Bean(on="ServletContext",interfaceClass=ServletContext.class)
-public class RequestEchoResource extends BasicRestObject {
+public class RequestEchoResource extends BasicRestObject implements 
BasicUniversalConfig {
 
        /**
         * GET request handler.
diff --git 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/RootResources.java
 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/RootResources.java
index 6e0731b..bae6305 100644
--- 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/RootResources.java
+++ 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/RootResources.java
@@ -15,8 +15,9 @@ package org.apache.juneau.examples.rest;
 import org.apache.juneau.examples.rest.dto.*;
 import org.apache.juneau.html.annotation.*;
 import org.apache.juneau.microservice.resources.*;
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
+import org.apache.juneau.rest.config.*;
+import org.apache.juneau.rest.servlet.*;
 import org.apache.juneau.rest.widget.*;
 import org.apache.juneau.serializer.annotation.*;
 
@@ -72,7 +73,7 @@ import org.apache.juneau.serializer.annotation.*;
        // You can apply any of the Serializer/Parser/BeanContext settings this 
way.
        quoteChar="'"
 )
-public class RootResources extends BasicRestServletJenaGroup {
+public class RootResources extends BasicRestServletGroup implements 
BasicUniversalJenaConfig {
        // IMPORTANT!  If you don't need RDF support, change the parent class 
to ResourceGroup.
        // It allows you to remove the Jena prerequisite.
 
diff --git 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/dto/AtomFeedResource.java
 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/dto/AtomFeedResource.java
index c5f2f0a..f17f9d9 100644
--- 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/dto/AtomFeedResource.java
+++ 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/dto/AtomFeedResource.java
@@ -22,8 +22,9 @@ import org.apache.juneau.encoders.*;
 import org.apache.juneau.html.annotation.*;
 import org.apache.juneau.http.annotation.*;
 import org.apache.juneau.jena.annotation.*;
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
+import org.apache.juneau.rest.config.*;
+import org.apache.juneau.rest.servlet.*;
 import org.apache.juneau.rest.widget.*;
 import org.apache.juneau.serializer.annotation.*;
 
@@ -72,7 +73,7 @@ import org.apache.juneau.serializer.annotation.*;
        addRootProperty="true"
 )
 @Marshalled(onClass=Feed.class,example="$F{AtomFeedResource_example.json}")
-public class AtomFeedResource extends BasicRestServletJena {
+public class AtomFeedResource extends BasicRestServlet implements 
BasicUniversalJenaConfig {
        private static final long serialVersionUID = 1L;
 
        private Feed feed;     // The root resource object
diff --git 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/dto/DtoExamples.java
 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/dto/DtoExamples.java
index 24fdea1..21f7257 100644
--- 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/dto/DtoExamples.java
+++ 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/dto/DtoExamples.java
@@ -13,8 +13,9 @@
 package org.apache.juneau.examples.rest.dto;
 
 import org.apache.juneau.html.annotation.*;
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
+import org.apache.juneau.rest.config.*;
+import org.apache.juneau.rest.servlet.*;
 import org.apache.juneau.rest.widget.*;
 import org.apache.juneau.serializer.annotation.*;
 
@@ -62,6 +63,6 @@ import org.apache.juneau.serializer.annotation.*;
        // You can apply any of the Serializer/Parser/BeanContext settings this 
way.
        quoteChar="'"
 )
-public class DtoExamples extends BasicRestServletJenaGroup {
+public class DtoExamples extends BasicRestServletGroup implements 
BasicUniversalJenaConfig {
        private static final long serialVersionUID = 1L;
 }
diff --git 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/dto/JsonSchemaResource.java
 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/dto/JsonSchemaResource.java
index fb402b4..4131376 100644
--- 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/dto/JsonSchemaResource.java
+++ 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/dto/JsonSchemaResource.java
@@ -16,8 +16,9 @@ import org.apache.juneau.annotation.*;
 import org.apache.juneau.dto.jsonschema.*;
 import org.apache.juneau.html.annotation.*;
 import org.apache.juneau.http.annotation.*;
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
+import org.apache.juneau.rest.config.*;
+import org.apache.juneau.rest.servlet.*;
 import org.apache.juneau.rest.widget.*;
 
 /**
@@ -63,7 +64,7 @@ import org.apache.juneau.rest.widget.*;
        }
 )
 @Marshalled(on="Schema",example="$F{JsonSchemaResource_example.json}")
-public class JsonSchemaResource extends BasicRestServletJena {
+public class JsonSchemaResource extends BasicRestServlet implements 
BasicUniversalJenaConfig {
        private static final long serialVersionUID = 1L;
 
        private JsonSchema schema;     // The schema document
diff --git 
a/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/ConfigResource.java
 
b/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/ConfigResource.java
index 54da3c4..0fe54d1 100755
--- 
a/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/ConfigResource.java
+++ 
b/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/ConfigResource.java
@@ -25,8 +25,9 @@ import org.apache.juneau.http.annotation.FormData;
 import org.apache.juneau.http.annotation.Path;
 import org.apache.juneau.http.annotation.Response;
 import org.apache.juneau.http.annotation.Schema;
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
+import org.apache.juneau.rest.config.BasicUniversalConfig;
+import org.apache.juneau.rest.servlet.BasicRestServlet;
 import org.apache.juneau.http.response.*;
 
 /**
@@ -53,7 +54,7 @@ import org.apache.juneau.http.response.*;
        }
 )
 @SuppressWarnings("javadoc")
-public class ConfigResource extends BasicRestServlet {
+public class ConfigResource extends BasicRestServlet implements 
BasicUniversalConfig {
        private static final long serialVersionUID = 1L;
 
        @RestGet(
diff --git 
a/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java
 
b/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java
index acac476..545aea1 100755
--- 
a/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java
+++ 
b/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java
@@ -29,6 +29,8 @@ import org.apache.juneau.http.annotation.Schema;
 import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.beans.*;
+import org.apache.juneau.rest.config.BasicUniversalConfig;
+import org.apache.juneau.rest.servlet.BasicRestServlet;
 import org.apache.juneau.http.response.*;
 
 /**
@@ -74,7 +76,7 @@ import org.apache.juneau.http.response.*;
 )
 @HtmlConfig(uriAnchorText="PROPERTY_NAME")
 @SuppressWarnings("javadoc")
-public class DirectoryResource extends BasicRestServlet {
+public class DirectoryResource extends BasicRestServlet implements 
BasicUniversalConfig {
        private static final long serialVersionUID = 1L;
 
        
//-------------------------------------------------------------------------------------------------------------------
diff --git 
a/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
 
b/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
index c518503..298fa42 100755
--- 
a/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
+++ 
b/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
@@ -29,7 +29,9 @@ import org.apache.juneau.http.annotation.Schema;
 import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.beans.*;
+import org.apache.juneau.rest.config.BasicUniversalConfig;
 import org.apache.juneau.rest.converter.*;
+import org.apache.juneau.rest.servlet.BasicRestServlet;
 import org.apache.juneau.http.response.*;
 
 /**
@@ -50,7 +52,7 @@ import org.apache.juneau.http.response.*;
 )
 @HtmlConfig(uriAnchorText="PROPERTY_NAME")
 @SuppressWarnings("javadoc")
-public class LogsResource extends BasicRestServlet {
+public class LogsResource extends BasicRestServlet implements 
BasicUniversalConfig {
        private static final long serialVersionUID = 1L;
 
        
//-------------------------------------------------------------------------------------------------------------------
diff --git 
a/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/SampleRootResource.java
 
b/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/SampleRootResource.java
index 6e82854..3510d53 100755
--- 
a/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/SampleRootResource.java
+++ 
b/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/SampleRootResource.java
@@ -12,8 +12,9 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.microservice.resources;
 
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
+import org.apache.juneau.rest.config.BasicUniversalConfig;
+import org.apache.juneau.rest.servlet.BasicRestServletGroup;
 
 /**
  * Sample root REST resource.
@@ -31,6 +32,6 @@ import org.apache.juneau.rest.annotation.*;
        description="This is a sample router page",
        children={ConfigResource.class,LogsResource.class}
 )
-public class SampleRootResource extends BasicRestServletGroup {
+public class SampleRootResource extends BasicRestServletGroup implements 
BasicUniversalConfig {
        private static final long serialVersionUID = 1L;
 }
diff --git 
a/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/ShutdownResource.java
 
b/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/ShutdownResource.java
index 04ef54f..2d804f0 100755
--- 
a/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/ShutdownResource.java
+++ 
b/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/ShutdownResource.java
@@ -12,8 +12,9 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.microservice.resources;
 
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
+import org.apache.juneau.rest.config.BasicUniversalConfig;
+import org.apache.juneau.rest.servlet.BasicRestServlet;
 
 /**
  * Provides the capability to shut down this REST microservice through a REST 
call.
@@ -29,7 +30,7 @@ import org.apache.juneau.rest.annotation.*;
        path="/shutdown",
        title="Shut down this resource"
 )
-public class ShutdownResource extends BasicRestServlet {
+public class ShutdownResource extends BasicRestServlet implements 
BasicUniversalConfig {
 
        private static final long serialVersionUID = 1L;
 
diff --git 
a/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/ConfigResource.java
 
b/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/ConfigResource.java
index 717e81c..4d7f809 100644
--- 
a/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/ConfigResource.java
+++ 
b/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/ConfigResource.java
@@ -17,6 +17,8 @@ import static org.apache.juneau.http.HttpMethod.*;
 import org.apache.juneau.http.annotation.Path;
 import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
+import org.apache.juneau.rest.config.BasicUniversalConfig;
+import org.apache.juneau.rest.servlet.BasicRestServlet;
 
 /**
  * JUnit automated testcase resource.
@@ -25,7 +27,7 @@ import org.apache.juneau.rest.annotation.*;
        path="/testConfig"
 )
 @SuppressWarnings({"serial"})
-public class ConfigResource extends BasicRestServlet {
+public class ConfigResource extends BasicRestServlet implements 
BasicUniversalConfig {
 
        @RestOp(method=GET, path="/")
        public Object test1(RestRequest req) {
diff --git 
a/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/LargePojosResource.java
 
b/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/LargePojosResource.java
index 4d43ac5..dafc831 100644
--- 
a/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/LargePojosResource.java
+++ 
b/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/LargePojosResource.java
@@ -15,8 +15,9 @@ package org.apache.juneau.rest.test;
 import static org.apache.juneau.http.HttpMethod.*;
 
 import org.apache.juneau.http.annotation.Body;
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
+import org.apache.juneau.rest.config.BasicUniversalJenaConfig;
+import org.apache.juneau.rest.servlet.BasicRestServlet;
 import org.apache.juneau.testutils.pojos.*;
 
 /**
@@ -25,7 +26,7 @@ import org.apache.juneau.testutils.pojos.*;
 @Rest(
        path="/testLargePojos"
 )
-public class LargePojosResource extends BasicRestServletJena {
+public class LargePojosResource extends BasicRestServlet implements 
BasicUniversalJenaConfig {
        private static final long serialVersionUID = 1L;
 
        
//====================================================================================================
diff --git 
a/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/Root.java
 
b/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/Root.java
index 0cb2b66..22277c3 100644
--- 
a/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/Root.java
+++ 
b/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/Root.java
@@ -19,6 +19,8 @@ import org.apache.juneau.microservice.resources.*;
 import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.beans.*;
+import org.apache.juneau.rest.config.BasicUniversalConfig;
+import org.apache.juneau.rest.servlet.BasicRestServlet;
 import org.apache.juneau.rest.test.client.*;
 
 @Rest(
@@ -32,7 +34,7 @@ import org.apache.juneau.rest.test.client.*;
                ShutdownResource.class,
        }
 )
-public class Root extends BasicRestServlet {
+public class Root extends BasicRestServlet implements BasicUniversalConfig {
        private static final long serialVersionUID = 1L;
 
        @RestOp(method=GET, path="/")
diff --git 
a/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/client/ThirdPartyProxyResource.java
 
b/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/client/ThirdPartyProxyResource.java
index d9142a4..97c7848 100644
--- 
a/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/client/ThirdPartyProxyResource.java
+++ 
b/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/client/ThirdPartyProxyResource.java
@@ -31,7 +31,9 @@ import org.apache.juneau.http.annotation.Query;
 import org.apache.juneau.http.annotation.Schema;
 import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
+import org.apache.juneau.rest.config.BasicUniversalJenaConfig;
 import org.apache.juneau.rest.logging.*;
+import org.apache.juneau.rest.servlet.BasicRestServlet;
 import org.apache.juneau.serializer.annotation.*;
 import org.apache.juneau.testutils.pojos.*;
 
@@ -44,7 +46,7 @@ import org.apache.juneau.testutils.pojos.*;
 )
 @SerializerConfig(addRootType="true",addBeanTypes="true")
 @SuppressWarnings({"serial"})
-public class ThirdPartyProxyResource extends BasicRestServletJena {
+public class ThirdPartyProxyResource extends BasicRestServlet implements 
BasicUniversalJenaConfig {
 
        public static FileWriter logFile;
        static {
diff --git 
a/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/JettyMicroservice.java
 
b/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/JettyMicroservice.java
index 70f1350..8cfdc64 100644
--- 
a/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/JettyMicroservice.java
+++ 
b/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/JettyMicroservice.java
@@ -34,8 +34,8 @@ import org.apache.juneau.microservice.*;
 import org.apache.juneau.microservice.console.ConsoleCommand;
 import org.apache.juneau.parser.ParseException;
 import org.apache.juneau.reflect.ClassInfo;
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.Rest;
+import org.apache.juneau.rest.servlet.RestServlet;
 import org.apache.juneau.svl.*;
 import org.eclipse.jetty.server.*;
 import org.eclipse.jetty.server.Handler;
diff --git 
a/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/resources/DebugResource.java
 
b/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/resources/DebugResource.java
index ff97b3d..fbe0709 100644
--- 
a/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/resources/DebugResource.java
+++ 
b/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/resources/DebugResource.java
@@ -19,6 +19,7 @@ import org.apache.juneau.microservice.jetty.*;
 import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.beans.*;
+import org.apache.juneau.rest.servlet.BasicRestServlet;
 
 /**
  * Microservice debug utilities.
diff --git 
a/juneau-microservice/juneau-my-jetty-microservice/src/main/java/org/apache/juneau/microservice/jetty/template/HelloWorldResource.java
 
b/juneau-microservice/juneau-my-jetty-microservice/src/main/java/org/apache/juneau/microservice/jetty/template/HelloWorldResource.java
index 542615a..6d3598d 100755
--- 
a/juneau-microservice/juneau-my-jetty-microservice/src/main/java/org/apache/juneau/microservice/jetty/template/HelloWorldResource.java
+++ 
b/juneau-microservice/juneau-my-jetty-microservice/src/main/java/org/apache/juneau/microservice/jetty/template/HelloWorldResource.java
@@ -12,8 +12,8 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.microservice.jetty.template;
 
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
+import org.apache.juneau.rest.servlet.BasicRestServlet;
 
 /**
  * Sample REST resource that prints out a simple "Hello world!" message.
diff --git 
a/juneau-microservice/juneau-my-jetty-microservice/src/main/java/org/apache/juneau/microservice/jetty/template/RootResources.java
 
b/juneau-microservice/juneau-my-jetty-microservice/src/main/java/org/apache/juneau/microservice/jetty/template/RootResources.java
index a87ffd6..7d22c77 100755
--- 
a/juneau-microservice/juneau-my-jetty-microservice/src/main/java/org/apache/juneau/microservice/jetty/template/RootResources.java
+++ 
b/juneau-microservice/juneau-my-jetty-microservice/src/main/java/org/apache/juneau/microservice/jetty/template/RootResources.java
@@ -16,8 +16,8 @@ import org.apache.juneau.html.annotation.HtmlDocConfig;
 import org.apache.juneau.microservice.jetty.resources.DebugResource;
 import org.apache.juneau.microservice.resources.ConfigResource;
 import org.apache.juneau.microservice.resources.LogsResource;
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
+import org.apache.juneau.rest.servlet.BasicRestServletGroup;
 import org.apache.juneau.rest.widget.ContentTypeMenuItem;
 import org.apache.juneau.rest.widget.ThemeMenuItem;
 
diff --git 
a/juneau-microservice/juneau-my-springboot-microservice/src/main/java/org/apache/juneau/microservice/springboot/template/HelloWorldResource.java
 
b/juneau-microservice/juneau-my-springboot-microservice/src/main/java/org/apache/juneau/microservice/springboot/template/HelloWorldResource.java
index f038a06..c4359f6 100644
--- 
a/juneau-microservice/juneau-my-springboot-microservice/src/main/java/org/apache/juneau/microservice/springboot/template/HelloWorldResource.java
+++ 
b/juneau-microservice/juneau-my-springboot-microservice/src/main/java/org/apache/juneau/microservice/springboot/template/HelloWorldResource.java
@@ -17,8 +17,9 @@ import java.util.*;
 import javax.inject.*;
 
 import org.apache.juneau.html.annotation.*;
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
+import org.apache.juneau.rest.config.BasicUniversalConfig;
+import org.apache.juneau.rest.servlet.BasicRestObject;
 
 /**
  * Sample REST resource that prints out a simple "Hello world!" message.
@@ -41,7 +42,7 @@ import org.apache.juneau.rest.annotation.*;
                "</div>"
        }
 )
-public class HelloWorldResource extends BasicRestObject {
+public class HelloWorldResource extends BasicRestObject implements 
BasicUniversalConfig {
 
        private final String message;
 
diff --git 
a/juneau-microservice/juneau-my-springboot-microservice/src/main/java/org/apache/juneau/microservice/springboot/template/RootResources.java
 
b/juneau-microservice/juneau-my-springboot-microservice/src/main/java/org/apache/juneau/microservice/springboot/template/RootResources.java
index 42c1b7f..051ab0b 100644
--- 
a/juneau-microservice/juneau-my-springboot-microservice/src/main/java/org/apache/juneau/microservice/springboot/template/RootResources.java
+++ 
b/juneau-microservice/juneau-my-springboot-microservice/src/main/java/org/apache/juneau/microservice/springboot/template/RootResources.java
@@ -15,6 +15,7 @@ package org.apache.juneau.microservice.springboot.template;
 import org.apache.juneau.html.annotation.*;
 import org.apache.juneau.microservice.resources.*;
 import org.apache.juneau.rest.annotation.*;
+import org.apache.juneau.rest.config.BasicUniversalConfig;
 import org.apache.juneau.rest.springboot.*;
 import org.apache.juneau.rest.widget.*;
 import org.apache.juneau.serializer.annotation.*;
@@ -69,6 +70,6 @@ import org.apache.juneau.serializer.annotation.*;
        // You can apply any of the Serializer/Parser/BeanContext settings this 
way.
        quoteChar="'"
 )
-public class RootResources extends BasicSpringRestServletGroup {
+public class RootResources extends BasicSpringRestServletGroup implements 
BasicUniversalConfig {
        private static final long serialVersionUID = 1L;
 }
diff --git 
a/juneau-rest/juneau-rest-server-jaxrs/src/main/java/org/apache/juneau/rest/jaxrs/BasicProvider.java
 
b/juneau-rest/juneau-rest-server-jaxrs/src/main/java/org/apache/juneau/rest/jaxrs/BasicProvider.java
index 50bcea7..070ef67 100644
--- 
a/juneau-rest/juneau-rest-server-jaxrs/src/main/java/org/apache/juneau/rest/jaxrs/BasicProvider.java
+++ 
b/juneau-rest/juneau-rest-server-jaxrs/src/main/java/org/apache/juneau/rest/jaxrs/BasicProvider.java
@@ -17,7 +17,7 @@ import javax.ws.rs.ext.*;
 
 import org.apache.juneau.html.*;
 import org.apache.juneau.json.*;
-import org.apache.juneau.rest.*;
+import org.apache.juneau.rest.servlet.*;
 import org.apache.juneau.soap.*;
 import org.apache.juneau.uon.UonParser;
 import org.apache.juneau.uon.UonSerializer;
diff --git 
a/juneau-rest/juneau-rest-server-rdf/src/main/java/org/apache/juneau/rest/BasicRestJena.java
 
b/juneau-rest/juneau-rest-server-rdf/src/main/java/org/apache/juneau/rest/BasicRestJena.java
deleted file mode 100644
index 032f457..0000000
--- 
a/juneau-rest/juneau-rest-server-rdf/src/main/java/org/apache/juneau/rest/BasicRestJena.java
+++ /dev/null
@@ -1,44 +0,0 @@
-// 
***************************************************************************************************************************
-// * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements.  See the NOTICE file *
-// * distributed with this work for additional information regarding copyright 
ownership.  The ASF licenses this file        *
-// * to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance            *
-// * with the License.  You may obtain a copy of the License at                
                                              *
-// *                                                                           
                                              *
-// *  http://www.apache.org/licenses/LICENSE-2.0                               
                                              *
-// *                                                                           
                                              *
-// * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on an  *
-// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 
express or implied.  See the License for the        *
-// * specific language governing permissions and limitations under the 
License.                                              *
-// 
***************************************************************************************************************************
-package org.apache.juneau.rest;
-
-import javax.servlet.http.HttpServlet;
-
-import org.apache.juneau.jena.*;
-import org.apache.juneau.rest.annotation.*;
-
-/**
- * Identical to {@link BasicRestServletJena} but doesn't extend from {@link 
HttpServlet}
- *
- * <ul class='seealso'>
- *     <li class='link'>{@doc juneau-rest-server-rdf}
- *     <li class='extlink'>{@source}
- * </ul>
- */
-@SuppressWarnings("serial")
-@Rest(
-       serializers={
-               RdfXmlSerializer.class,
-               RdfXmlAbbrevSerializer.class,
-               TurtleSerializer.class,
-               NTripleSerializer.class,
-               N3Serializer.class
-       },
-       parsers={
-               RdfXmlParser.class,
-               TurtleParser.class,
-               NTripleParser.class,
-               N3Parser.class
-       }
-)
-public abstract class BasicRestJena extends BasicRestServlet {}
diff --git 
a/juneau-rest/juneau-rest-server-rdf/src/main/java/org/apache/juneau/rest/BasicRestJenaGroup.java
 
b/juneau-rest/juneau-rest-server-rdf/src/main/java/org/apache/juneau/rest/BasicRestJenaGroup.java
deleted file mode 100644
index ae9dfe1..0000000
--- 
a/juneau-rest/juneau-rest-server-rdf/src/main/java/org/apache/juneau/rest/BasicRestJenaGroup.java
+++ /dev/null
@@ -1,44 +0,0 @@
-// 
***************************************************************************************************************************
-// * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements.  See the NOTICE file *
-// * distributed with this work for additional information regarding copyright 
ownership.  The ASF licenses this file        *
-// * to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance            *
-// * with the License.  You may obtain a copy of the License at                
                                              *
-// *                                                                           
                                              *
-// *  http://www.apache.org/licenses/LICENSE-2.0                               
                                              *
-// *                                                                           
                                              *
-// * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on an  *
-// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 
express or implied.  See the License for the        *
-// * specific language governing permissions and limitations under the 
License.                                              *
-// 
***************************************************************************************************************************
-package org.apache.juneau.rest;
-
-import javax.servlet.http.HttpServlet;
-
-import org.apache.juneau.jena.*;
-import org.apache.juneau.rest.annotation.*;
-
-/**
- * Identical to {@link BasicRestServletJenaGroup} but doesn't extend from 
{@link HttpServlet}
- *
- * <ul class='seealso'>
- *     <li class='link'>{@doc juneau-rest-server-rdf}
- *     <li class='extlink'>{@source}
- * </ul>
- */
-@SuppressWarnings("serial")
-@Rest(
-       serializers={
-               RdfXmlSerializer.class,
-               RdfXmlAbbrevSerializer.class,
-               TurtleSerializer.class,
-               NTripleSerializer.class,
-               N3Serializer.class
-       },
-       parsers={
-               RdfXmlParser.class,
-               TurtleParser.class,
-               NTripleParser.class,
-               N3Parser.class
-       }
-)
-public abstract class BasicRestJenaGroup extends BasicRestServletGroup {}
diff --git 
a/juneau-rest/juneau-rest-server-rdf/src/main/java/org/apache/juneau/rest/BasicRestServletJenaGroup.java
 
b/juneau-rest/juneau-rest-server-rdf/src/main/java/org/apache/juneau/rest/BasicRestServletJenaGroup.java
deleted file mode 100644
index 12b5737..0000000
--- 
a/juneau-rest/juneau-rest-server-rdf/src/main/java/org/apache/juneau/rest/BasicRestServletJenaGroup.java
+++ /dev/null
@@ -1,42 +0,0 @@
-// 
***************************************************************************************************************************
-// * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements.  See the NOTICE file *
-// * distributed with this work for additional information regarding copyright 
ownership.  The ASF licenses this file        *
-// * to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance            *
-// * with the License.  You may obtain a copy of the License at                
                                              *
-// *                                                                           
                                              *
-// *  http://www.apache.org/licenses/LICENSE-2.0                               
                                              *
-// *                                                                           
                                              *
-// * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on an  *
-// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 
express or implied.  See the License for the        *
-// * specific language governing permissions and limitations under the 
License.                                              *
-// 
***************************************************************************************************************************
-package org.apache.juneau.rest;
-
-import org.apache.juneau.jena.*;
-import org.apache.juneau.rest.annotation.*;
-
-/**
- * Resource group with additional RDF support.
- *
- * <ul class='seealso'>
- *     <li class='link'>{@doc juneau-rest-server-rdf}
- *     <li class='extlink'>{@source}
- * </ul>
- */
-@SuppressWarnings("serial")
-@Rest(
-       serializers={
-               RdfXmlSerializer.class,
-               RdfXmlAbbrevSerializer.class,
-               TurtleSerializer.class,
-               NTripleSerializer.class,
-               N3Serializer.class
-       },
-       parsers={
-               RdfXmlParser.class,
-               TurtleParser.class,
-               NTripleParser.class,
-               N3Parser.class
-       }
-)
-public abstract class BasicRestServletJenaGroup extends BasicRestServletGroup 
{}
diff --git 
a/juneau-rest/juneau-rest-server-rdf/src/main/java/org/apache/juneau/rest/BasicRestServletJena.java
 
b/juneau-rest/juneau-rest-server-rdf/src/main/java/org/apache/juneau/rest/config/BasicUniversalJenaConfig.java
old mode 100755
new mode 100644
similarity index 89%
rename from 
juneau-rest/juneau-rest-server-rdf/src/main/java/org/apache/juneau/rest/BasicRestServletJena.java
rename to 
juneau-rest/juneau-rest-server-rdf/src/main/java/org/apache/juneau/rest/config/BasicUniversalJenaConfig.java
index f280dee..e75c6a5
--- 
a/juneau-rest/juneau-rest-server-rdf/src/main/java/org/apache/juneau/rest/BasicRestServletJena.java
+++ 
b/juneau-rest/juneau-rest-server-rdf/src/main/java/org/apache/juneau/rest/config/BasicUniversalJenaConfig.java
@@ -1,42 +1,41 @@
-// 
***************************************************************************************************************************
-// * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements.  See the NOTICE file *
-// * distributed with this work for additional information regarding copyright 
ownership.  The ASF licenses this file        *
-// * to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance            *
-// * with the License.  You may obtain a copy of the License at                
                                              *
-// *                                                                           
                                              *
-// *  http://www.apache.org/licenses/LICENSE-2.0                               
                                              *
-// *                                                                           
                                              *
-// * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on an  *
-// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 
express or implied.  See the License for the        *
-// * specific language governing permissions and limitations under the 
License.                                              *
-// 
***************************************************************************************************************************
-package org.apache.juneau.rest;
-
-import org.apache.juneau.jena.*;
-import org.apache.juneau.rest.annotation.*;
-
-/**
- * Resource servlet with additional RDF support.
- *
- * <ul class='seealso'>
- *     <li class='link'>{@doc juneau-rest-server-rdf}
- *     <li class='extlink'>{@source}
- * </ul>
- */
-@SuppressWarnings("serial")
-@Rest(
-       serializers={
-               RdfXmlSerializer.class,
-               RdfXmlAbbrevSerializer.class,
-               TurtleSerializer.class,
-               NTripleSerializer.class,
-               N3Serializer.class
-       },
-       parsers={
-               RdfXmlParser.class,
-               TurtleParser.class,
-               NTripleParser.class,
-               N3Parser.class
-       }
-)
-public abstract class BasicRestServletJena extends BasicRestServlet {}
+// 
***************************************************************************************************************************
+// * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements.  See the NOTICE file *
+// * distributed with this work for additional information regarding copyright 
ownership.  The ASF licenses this file        *
+// * to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance            *
+// * with the License.  You may obtain a copy of the License at                
                                              *
+// *                                                                           
                                              *
+// *  http://www.apache.org/licenses/LICENSE-2.0                               
                                              *
+// *                                                                           
                                              *
+// * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on an  *
+// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 
express or implied.  See the License for the        *
+// * specific language governing permissions and limitations under the 
License.                                              *
+// 
***************************************************************************************************************************
+package org.apache.juneau.rest.config;
+
+import org.apache.juneau.jena.*;
+import org.apache.juneau.rest.annotation.*;
+
+/**
+ * Identical to {@link BasicUniversalConfig} but includes RDF marshalling 
support.
+ *
+ * <ul class='seealso'>
+ *     <li class='link'>{@doc juneau-rest-server-rdf}
+ *     <li class='extlink'>{@source}
+ * </ul>
+ */
+@Rest(
+       serializers={
+               RdfXmlSerializer.class,
+               RdfXmlAbbrevSerializer.class,
+               TurtleSerializer.class,
+               NTripleSerializer.class,
+               N3Serializer.class
+       },
+       parsers={
+               RdfXmlParser.class,
+               TurtleParser.class,
+               NTripleParser.class,
+               N3Parser.class
+       }
+)
+public interface BasicUniversalJenaConfig extends BasicUniversalConfig {}
diff --git 
a/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/BasicSpringRestServlet.java
 
b/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/BasicSpringRestServlet.java
index 511a650..8860a63 100644
--- 
a/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/BasicSpringRestServlet.java
+++ 
b/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/BasicSpringRestServlet.java
@@ -25,6 +25,7 @@ import org.apache.juneau.plaintext.*;
 import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.config.*;
+import org.apache.juneau.rest.servlet.*;
 import org.apache.juneau.rest.stats.*;
 import org.apache.juneau.soap.*;
 import org.apache.juneau.uon.*;
@@ -153,7 +154,7 @@ import org.apache.juneau.xml.*;
  * @serial exclude
  */
 @Rest
-public abstract class BasicSpringRestServlet extends SpringRestServlet 
implements BasicUniversalRest, BasicRestOperations {
+public abstract class BasicSpringRestServlet extends SpringRestServlet 
implements BasicRestOperations, BasicJsonConfig {
        private static final long serialVersionUID = 1L;
 
        
//-----------------------------------------------------------------------------------------------------------------
diff --git 
a/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/SpringRestServlet.java
 
b/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/SpringRestServlet.java
index 1023660..3f84397 100644
--- 
a/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/SpringRestServlet.java
+++ 
b/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/SpringRestServlet.java
@@ -17,7 +17,7 @@ import java.util.*;
 import javax.inject.*;
 
 import org.apache.juneau.cp.*;
-import org.apache.juneau.rest.*;
+import org.apache.juneau.rest.servlet.*;
 import org.springframework.context.*;
 
 /**
diff --git 
a/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/annotation/JuneauRestRoot.java
 
b/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/annotation/JuneauRestRoot.java
deleted file mode 100644
index 18c49f5..0000000
--- 
a/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/annotation/JuneauRestRoot.java
+++ /dev/null
@@ -1,52 +0,0 @@
-// 
***************************************************************************************************************************
-// * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements.  See the NOTICE file *
-// * distributed with this work for additional information regarding copyright 
ownership.  The ASF licenses this file        *
-// * to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance            *
-// * with the License.  You may obtain a copy of the License at                
                                              *
-// *                                                                           
                                              *
-// *  http://www.apache.org/licenses/LICENSE-2.0                               
                                              *
-// *                                                                           
                                              *
-// * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on an  *
-// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 
express or implied.  See the License for the        *
-// * specific language governing permissions and limitations under the 
License.                                              *
-// 
***************************************************************************************************************************
-package org.apache.juneau.rest.springboot.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import org.apache.juneau.rest.RestServlet;
-import org.springframework.context.annotation.*;
-
-import java.lang.annotation.*;
-
-/**
- * Added to Spring application classes to denote Juneau REST resource classes 
to deploy as servlets.
- *
- * <p>
- * The annotation can be used in two places:
- * <ul class='spaced-list'>
- *     <li>
- *             On the source class of a Spring Boot application.
- *     <li>
- *             On {@link Bean}-annotated methods on configuration beans.
- * </ul>
- *
- * <ul class='seealso'>
- *     <li class='link'>{@doc juneau-rest-server-springboot}
- *     <li class='extlink'>{@source}
- * </ul>
- */
-@Target({TYPE,METHOD})
-@Retention(RUNTIME)
-@Documented
-@Inherited
-public @interface JuneauRestRoot {
-
-       /**
-        * Specifies one or more implementations of {@link RestServlet} to 
deploy as servlets.
-        * <p>
-        * This method is only applicable when used on the source class of a 
Spring Boot application.
-        */
-       Class<? extends RestServlet>[] servlets() default {};
-}
diff --git 
a/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/annotation/package-info.java
 
b/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/annotation/package-info.java
deleted file mode 100755
index e90e56d..0000000
--- 
a/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/annotation/package-info.java
+++ /dev/null
@@ -1,18 +0,0 @@
-// 
***************************************************************************************************************************
-// * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements.  See the NOTICE file *
-// * distributed with this work for additional information regarding copyright 
ownership.  The ASF licenses this file        *
-// * to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance            *
-// * with the License.  You may obtain a copy of the License at                
                                              *
-// *                                                                           
                                              *
-// *  http://www.apache.org/licenses/LICENSE-2.0                               
                                              *
-// *                                                                           
                                              *
-// * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on an  *
-// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 
express or implied.  See the License for the        *
-// * specific language governing permissions and limitations under the 
License.                                              *
-// 
***************************************************************************************************************************
-
-/**
- * Spring Boot Integration Annotations
- */
-package org.apache.juneau.rest.springboot.annotation;
-
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 912cf98..8d1c4b3 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
@@ -70,6 +70,7 @@ import org.apache.juneau.rest.httppart.*;
 import org.apache.juneau.rest.logging.*;
 import org.apache.juneau.rest.processor.*;
 import org.apache.juneau.rest.rrpc.*;
+import org.apache.juneau.rest.servlet.*;
 import org.apache.juneau.rest.staticfile.*;
 import org.apache.juneau.rest.stats.*;
 import org.apache.juneau.rest.swagger.*;
@@ -7238,7 +7239,7 @@ public class RestContext extends Context {
        /**
         * Called during servlet destruction to invoke all {@link 
HookEvent#DESTROY} methods.
         */
-       protected void destroy() {
+       public void destroy() {
                for (MethodInvoker x : destroyMethods) {
                        try {
                                x.invoke(beanStore, getResource());
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestServletException.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestServletException.java
index 63f1221..d1383e9 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestServletException.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestServletException.java
@@ -19,6 +19,7 @@ import java.text.*;
 import javax.servlet.*;
 
 import org.apache.juneau.internal.*;
+import org.apache.juneau.rest.servlet.*;
 
 /**
  * General exception thrown from {@link RestServlet} during construction or 
initialization.
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 d3f84bd..7c7fd33 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
@@ -37,6 +37,7 @@ import org.apache.juneau.rest.guard.*;
 import org.apache.juneau.rest.httppart.*;
 import org.apache.juneau.rest.logging.*;
 import org.apache.juneau.rest.processor.*;
+import org.apache.juneau.rest.servlet.*;
 import org.apache.juneau.rest.staticfile.*;
 import org.apache.juneau.rest.swagger.*;
 import org.apache.juneau.rest.vars.*;
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 5e158e7..1d83001 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
@@ -23,6 +23,7 @@ import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.guard.*;
 import org.apache.juneau.rest.httppart.*;
 import org.apache.juneau.rest.matcher.*;
+import org.apache.juneau.rest.servlet.*;
 import org.apache.juneau.rest.swagger.*;
 import org.apache.juneau.dto.swagger.*;
 import org.apache.juneau.encoders.*;
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 3b5b81d..7988ec3 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
@@ -24,6 +24,7 @@ import org.apache.juneau.rest.converter.*;
 import org.apache.juneau.rest.guard.*;
 import org.apache.juneau.rest.httppart.*;
 import org.apache.juneau.rest.matcher.*;
+import org.apache.juneau.rest.servlet.*;
 import org.apache.juneau.rest.swagger.*;
 import org.apache.juneau.serializer.*;
 import org.apache.juneau.dto.swagger.*;
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestHook.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestHook.java
index bca2026..a776e1c 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestHook.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestHook.java
@@ -20,6 +20,7 @@ import java.lang.annotation.*;
 import javax.servlet.http.*;
 
 import org.apache.juneau.rest.*;
+import org.apache.juneau.rest.servlet.*;
 
 /**
  * Identifies Java methods on a resource/servlet class that get invoked during 
particular lifecycle events of
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 502358a..575b1ac 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
@@ -24,6 +24,7 @@ import org.apache.juneau.rest.converter.*;
 import org.apache.juneau.rest.guard.*;
 import org.apache.juneau.rest.httppart.*;
 import org.apache.juneau.rest.matcher.*;
+import org.apache.juneau.rest.servlet.*;
 import org.apache.juneau.rest.swagger.*;
 import org.apache.juneau.serializer.*;
 import org.apache.juneau.http.header.*;
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 47513db..63c03d8 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
@@ -24,6 +24,7 @@ import org.apache.juneau.rest.converter.*;
 import org.apache.juneau.rest.guard.*;
 import org.apache.juneau.rest.httppart.*;
 import org.apache.juneau.rest.matcher.*;
+import org.apache.juneau.rest.servlet.*;
 import org.apache.juneau.rest.swagger.*;
 import org.apache.juneau.serializer.*;
 import org.apache.juneau.dto.swagger.*;
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 1ef31da..577dccd 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
@@ -24,6 +24,7 @@ import org.apache.juneau.rest.converter.*;
 import org.apache.juneau.rest.guard.*;
 import org.apache.juneau.rest.httppart.*;
 import org.apache.juneau.rest.matcher.*;
+import org.apache.juneau.rest.servlet.*;
 import org.apache.juneau.rest.swagger.*;
 import org.apache.juneau.serializer.*;
 import org.apache.juneau.dto.swagger.*;
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/config/BasicJsonRest.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/config/BasicJsonConfig.java
similarity index 97%
rename from 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/config/BasicJsonRest.java
rename to 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/config/BasicJsonConfig.java
index 92ce8eb..4904caf 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/config/BasicJsonRest.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/config/BasicJsonConfig.java
@@ -82,11 +82,13 @@ import org.apache.juneau.serializer.annotation.*;
        // Default serializers for all Java methods in the class.
        serializers={
                JsonSerializer.class,
+               SimpleJsonSerializer.class
        },
 
        // Default parsers for all Java methods in the class.
        parsers={
                JsonParser.class,
+               SimpleJsonParser.class
        },
 
        defaultAccept="text/json",
@@ -102,4 +104,4 @@ import org.apache.juneau.serializer.annotation.*;
        // Enable automatic resolution of URI objects to root-relative values.
        uriResolution="ROOT_RELATIVE"
 )
-public interface BasicJsonRest {}
+public interface BasicJsonConfig {}
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/config/BasicJsonHtmlRest.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/config/BasicJsonHtmlConfig.java
similarity index 97%
rename from 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/config/BasicJsonHtmlRest.java
rename to 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/config/BasicJsonHtmlConfig.java
index 848ad66..cce2636 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/config/BasicJsonHtmlRest.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/config/BasicJsonHtmlConfig.java
@@ -85,13 +85,15 @@ import org.apache.juneau.serializer.annotation.*;
        // Default serializers for all Java methods in the class.
        serializers={
                HtmlDocSerializer.class,
-               JsonSerializer.class
+               JsonSerializer.class,
+               SimpleJsonSerializer.class
        },
 
        // Default parsers for all Java methods in the class.
        parsers={
                HtmlParser.class,
-               JsonParser.class
+               JsonParser.class,
+               SimpleJsonParser.class
        },
 
        defaultAccept="text/json",
@@ -107,4 +109,4 @@ import org.apache.juneau.serializer.annotation.*;
        // Enable automatic resolution of URI objects to root-relative values.
        uriResolution="ROOT_RELATIVE"
 )
-public interface BasicJsonHtmlRest {}
+public interface BasicJsonHtmlConfig {}
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/config/BasicOpenApiRest.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/config/BasicOpenApiConfig.java
similarity index 99%
rename from 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/config/BasicOpenApiRest.java
rename to 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/config/BasicOpenApiConfig.java
index c27b71f..0013ee7 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/config/BasicOpenApiRest.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/config/BasicOpenApiConfig.java
@@ -102,4 +102,4 @@ import org.apache.juneau.serializer.annotation.*;
        // Enable automatic resolution of URI objects to root-relative values.
        uriResolution="ROOT_RELATIVE"
 )
-public interface BasicOpenApiRest {}
+public interface BasicOpenApiConfig {}
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/config/BasicSimpleJsonRest.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/config/BasicSimpleJsonConfig.java
similarity index 99%
rename from 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/config/BasicSimpleJsonRest.java
rename to 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/config/BasicSimpleJsonConfig.java
index 730a691..58d944c 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/config/BasicSimpleJsonRest.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/config/BasicSimpleJsonConfig.java
@@ -102,4 +102,4 @@ import org.apache.juneau.serializer.annotation.*;
        // When parsing generated beans, ignore unknown properties that may 
only exist as getters and not setters.
        ignoreUnknownBeanProperties="true"
 )
-public interface BasicSimpleJsonRest {}
+public interface BasicSimpleJsonConfig {}
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/config/BasicUniversalRest.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/config/BasicUniversalConfig.java
similarity index 98%
rename from 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/config/BasicUniversalRest.java
rename to 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/config/BasicUniversalConfig.java
index e6dbea4..e81a131 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/config/BasicUniversalRest.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/config/BasicUniversalConfig.java
@@ -19,8 +19,8 @@ import org.apache.juneau.json.*;
 import org.apache.juneau.msgpack.*;
 import org.apache.juneau.oapi.*;
 import org.apache.juneau.plaintext.*;
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
+import org.apache.juneau.rest.servlet.*;
 import org.apache.juneau.serializer.annotation.*;
 import org.apache.juneau.soap.*;
 import org.apache.juneau.uon.*;
@@ -195,4 +195,4 @@ import org.apache.juneau.xml.*;
        // By default, table cell contents should not wrap.
        nowrap="true"
 )
-public interface BasicUniversalRest {}
+public interface BasicUniversalConfig {}
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/remote/RrpcServlet.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/remote/RrpcServlet.java
index 5eae1f4d..2094573 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/remote/RrpcServlet.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/remote/RrpcServlet.java
@@ -29,8 +29,8 @@ import org.apache.juneau.http.annotation.*;
 import org.apache.juneau.http.annotation.Header;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.reflect.*;
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
+import org.apache.juneau.rest.servlet.*;
 import org.apache.juneau.http.header.*;
 import org.apache.juneau.http.remote.*;
 import org.apache.juneau.http.response.*;
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestObject.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/BasicRestObject.java
similarity index 94%
rename from 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestObject.java
rename to 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/BasicRestObject.java
index 5c82718..b6724ae 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestObject.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/BasicRestObject.java
@@ -10,13 +10,14 @@
 // * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 
express or implied.  See the License for the        *
 // * specific language governing permissions and limitations under the 
License.                                              *
 // 
***************************************************************************************************************************
-package org.apache.juneau.rest;
+package org.apache.juneau.rest.servlet;
 
 import java.util.*;
 
 import javax.servlet.http.*;
 
 import org.apache.juneau.dto.swagger.Swagger;
+import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.config.*;
 import org.apache.juneau.rest.stats.*;
@@ -28,7 +29,7 @@ import org.apache.juneau.http.response.*;
  * Identical to {@link BasicRestServlet} but doesn't extend from {@link 
HttpServlet}.
  *
  * <p>
- *     Implements basic configuration settings from {@link BasicUniversalRest} 
and
+ *     Implements basic configuration settings from {@link 
BasicUniversalConfig} and
  *     basic endpoint methods from {@link BasicRestOperations}.
  *
  * <p>
@@ -41,7 +42,7 @@ import org.apache.juneau.http.response.*;
  * </ul>
  */
 @Rest
-public abstract class BasicRestObject extends RestObject implements 
BasicUniversalRest, BasicRestOperations {
+public abstract class BasicRestObject extends RestObject implements 
BasicRestOperations, BasicJsonConfig {
 
        
//-----------------------------------------------------------------------------------------------------------------
        // BasicRestConfig methods
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestObjectGroup.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/BasicRestObjectGroup.java
similarity index 94%
rename from 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestObjectGroup.java
rename to 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/BasicRestObjectGroup.java
index eaf787f..8c51785 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestObjectGroup.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/BasicRestObjectGroup.java
@@ -10,10 +10,11 @@
 // * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 
express or implied.  See the License for the        *
 // * specific language governing permissions and limitations under the 
License.                                              *
 // 
***************************************************************************************************************************
-package org.apache.juneau.rest;
+package org.apache.juneau.rest.servlet;
 
 import javax.servlet.http.*;
 
+import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.beans.*;
 import org.apache.juneau.rest.config.*;
@@ -22,7 +23,7 @@ import org.apache.juneau.rest.config.*;
  * Identical to {@link BasicRestServletGroup} but doesn't extend from {@link 
HttpServlet}.
  *
  * <p>
- *     Implements basic configuration settings from {@link BasicUniversalRest} 
and
+ *     Implements basic configuration settings from {@link 
BasicUniversalConfig} and
  *     basic endpoint methods from {@link BasicRestOperations}.
  *
  * <ul class='seealso'>
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestOperations.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/BasicRestOperations.java
similarity index 98%
rename from 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestOperations.java
rename to 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/BasicRestOperations.java
index aa22955..5d86ddb 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestOperations.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/BasicRestOperations.java
@@ -10,7 +10,7 @@
 // * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 
express or implied.  See the License for the        *
 // * specific language governing permissions and limitations under the 
License.                                              *
 // 
***************************************************************************************************************************
-package org.apache.juneau.rest;
+package org.apache.juneau.rest.servlet;
 
 import static org.apache.juneau.http.HttpMethod.*;
 
@@ -23,6 +23,7 @@ import org.apache.juneau.html.annotation.*;
 import org.apache.juneau.http.annotation.*;
 import org.apache.juneau.http.resource.*;
 import org.apache.juneau.jsonschema.annotation.*;
+import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.stats.*;
 
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestServlet.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/BasicRestServlet.java
similarity index 95%
rename from 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestServlet.java
rename to 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/BasicRestServlet.java
index 016505b..7e1b29e 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestServlet.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/BasicRestServlet.java
@@ -10,7 +10,7 @@
 // * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 
express or implied.  See the License for the        *
 // * specific language governing permissions and limitations under the 
License.                                              *
 // 
***************************************************************************************************************************
-package org.apache.juneau.rest;
+package org.apache.juneau.rest.servlet;
 
 import java.util.*;
 
@@ -21,6 +21,7 @@ import org.apache.juneau.http.resource.*;
 import org.apache.juneau.http.response.*;
 import org.apache.juneau.json.*;
 import org.apache.juneau.plaintext.*;
+import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.config.*;
 import org.apache.juneau.rest.stats.*;
@@ -33,7 +34,7 @@ import org.apache.juneau.xml.*;
  * Subclass of {@link RestServlet} with default settings and standard methods 
defined.
  *
  * <p>
- *     Implements basic configuration settings from {@link BasicUniversalRest} 
and
+ *     Implements basic configuration settings from {@link 
BasicUniversalConfig} and
  *     basic endpoint methods from {@link BasicRestOperations}.
  *
  * <p>
@@ -137,7 +138,7 @@ import org.apache.juneau.xml.*;
  * @serial exclude
  */
 @Rest
-public abstract class BasicRestServlet extends RestServlet implements 
BasicUniversalRest, BasicRestOperations {
+public abstract class BasicRestServlet extends RestServlet implements 
BasicRestOperations, BasicJsonConfig {
        private static final long serialVersionUID = 1L;
 
        
//-----------------------------------------------------------------------------------------------------------------
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestServletGroup.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/BasicRestServletGroup.java
similarity index 94%
rename from 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestServletGroup.java
rename to 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/BasicRestServletGroup.java
index 4439e21..84767b9 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestServletGroup.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/BasicRestServletGroup.java
@@ -10,8 +10,9 @@
 // * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 
express or implied.  See the License for the        *
 // * specific language governing permissions and limitations under the 
License.                                              *
 // 
***************************************************************************************************************************
-package org.apache.juneau.rest;
+package org.apache.juneau.rest.servlet;
 
+import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.beans.*;
 import org.apache.juneau.rest.config.*;
@@ -20,7 +21,7 @@ import org.apache.juneau.rest.config.*;
  * Specialized subclass of {@link BasicRestServlet} for showing "group" pages.
  *
  * <p>
- *     Implements basic configuration settings from {@link BasicUniversalRest} 
and
+ *     Implements basic configuration settings from {@link 
BasicUniversalConfig} and
  *     basic endpoint methods from {@link BasicRestOperations}.
  *
  * <p>
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestObject.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/RestObject.java
similarity index 99%
rename from 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestObject.java
rename to 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/RestObject.java
index 88f069d..39371b0 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestObject.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/RestObject.java
@@ -10,7 +10,7 @@
 // * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 
express or implied.  See the License for the        *
 // * specific language governing permissions and limitations under the 
License.                                              *
 // 
***************************************************************************************************************************
-package org.apache.juneau.rest;
+package org.apache.juneau.rest.servlet;
 
 import static org.apache.juneau.internal.ClassUtils.*;
 import static org.apache.juneau.rest.annotation.HookEvent.*;
@@ -25,6 +25,7 @@ import javax.servlet.http.*;
 
 import org.apache.juneau.http.response.*;
 import org.apache.juneau.internal.*;
+import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.converter.*;
 import org.apache.juneau.rest.guard.*;
@@ -158,7 +159,7 @@ public abstract class RestObject {
         * Method that gets called during servlet initialization.
         *
         * <p>
-        * This method is called from within the {@link 
Servlet#init(ServletConfig)} method after the {@link RestContext.Builder}
+        * This method is called from within the {@link 
Servlet#init(ServletConfig)} method after the {@link 
org.apache.juneau.rest.RestContext.Builder}
         * object has been created and initialized with the annotations defined 
on the class, but before the
         * {@link RestContext} object has been created.
         *
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestServlet.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/RestServlet.java
similarity index 96%
rename from 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestServlet.java
rename to 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/RestServlet.java
index d6ef9c3..cb931f2 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestServlet.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/RestServlet.java
@@ -10,7 +10,7 @@
 // * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 
express or implied.  See the License for the        *
 // * specific language governing permissions and limitations under the 
License.                                              *
 // 
***************************************************************************************************************************
-package org.apache.juneau.rest;
+package org.apache.juneau.rest.servlet;
 
 import static java.util.logging.Level.*;
 import static javax.servlet.http.HttpServletResponse.*;
@@ -31,6 +31,7 @@ import javax.servlet.http.*;
 
 import org.apache.juneau.internal.*;
 import org.apache.juneau.reflect.*;
+import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.converter.*;
 import org.apache.juneau.rest.guard.*;
@@ -295,7 +296,7 @@ public abstract class RestServlet extends HttpServlet {
         * Method that gets called during servlet initialization.
         *
         * <p>
-        * This method is called from within the {@link 
Servlet#init(ServletConfig)} method after the {@link RestContext.Builder}
+        * This method is called from within the {@link 
Servlet#init(ServletConfig)} method after the {@link 
org.apache.juneau.rest.RestContext.Builder}
         * object has been created and initialized with the annotations defined 
on the class, but before the
         * {@link RestContext} object has been created.
         *
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/vars/ServletInitParamVar.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/vars/ServletInitParamVar.java
index f0901c4..58052fb 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/vars/ServletInitParamVar.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/vars/ServletInitParamVar.java
@@ -14,6 +14,7 @@ package org.apache.juneau.rest.vars;
 
 import org.apache.juneau.http.response.*;
 import org.apache.juneau.rest.*;
+import org.apache.juneau.rest.servlet.*;
 import org.apache.juneau.svl.*;
 
 /**
diff --git 
a/juneau-rest/juneau-rest-server/src/main/resources/org/apache/juneau/rest/htdocs/MethodExampleResource1.png
 
b/juneau-rest/juneau-rest-server/src/main/resources/htdocs/MethodExampleResource1.png
similarity index 100%
rename from 
juneau-rest/juneau-rest-server/src/main/resources/org/apache/juneau/rest/htdocs/MethodExampleResource1.png
rename to 
juneau-rest/juneau-rest-server/src/main/resources/htdocs/MethodExampleResource1.png
diff --git 
a/juneau-rest/juneau-rest-server/src/main/resources/org/apache/juneau/rest/htdocs/QueryMenuItem.html
 b/juneau-rest/juneau-rest-server/src/main/resources/htdocs/QueryMenuItem.html
similarity index 100%
rename from 
juneau-rest/juneau-rest-server/src/main/resources/org/apache/juneau/rest/htdocs/QueryMenuItem.html
rename to 
juneau-rest/juneau-rest-server/src/main/resources/htdocs/QueryMenuItem.html
diff --git 
a/juneau-rest/juneau-rest-server/src/main/resources/org/apache/juneau/rest/htdocs/images/asf.png
 b/juneau-rest/juneau-rest-server/src/main/resources/htdocs/images/asf.png
similarity index 100%
rename from 
juneau-rest/juneau-rest-server/src/main/resources/org/apache/juneau/rest/htdocs/images/asf.png
rename to 
juneau-rest/juneau-rest-server/src/main/resources/htdocs/images/asf.png
diff --git 
a/juneau-rest/juneau-rest-server/src/main/resources/org/apache/juneau/rest/htdocs/images/juneau.png
 b/juneau-rest/juneau-rest-server/src/main/resources/htdocs/images/juneau.png
similarity index 100%
rename from 
juneau-rest/juneau-rest-server/src/main/resources/org/apache/juneau/rest/htdocs/images/juneau.png
rename to 
juneau-rest/juneau-rest-server/src/main/resources/htdocs/images/juneau.png
diff --git 
a/juneau-rest/juneau-rest-server/src/main/resources/org/apache/juneau/rest/htdocs/javadoc.css
 b/juneau-rest/juneau-rest-server/src/main/resources/htdocs/javadoc.css
similarity index 100%
rename from 
juneau-rest/juneau-rest-server/src/main/resources/org/apache/juneau/rest/htdocs/javadoc.css
rename to juneau-rest/juneau-rest-server/src/main/resources/htdocs/javadoc.css
diff --git 
a/juneau-rest/juneau-rest-server/src/main/resources/org/apache/juneau/rest/htdocs/scripts/MenuItemWidget.js
 
b/juneau-rest/juneau-rest-server/src/main/resources/htdocs/scripts/MenuItemWidget.js
similarity index 100%
rename from 
juneau-rest/juneau-rest-server/src/main/resources/org/apache/juneau/rest/htdocs/scripts/MenuItemWidget.js
rename to 
juneau-rest/juneau-rest-server/src/main/resources/htdocs/scripts/MenuItemWidget.js
diff --git 
a/juneau-rest/juneau-rest-server/src/main/resources/org/apache/juneau/rest/htdocs/styles/MenuItemWidget.css
 
b/juneau-rest/juneau-rest-server/src/main/resources/htdocs/styles/MenuItemWidget.css
similarity index 100%
rename from 
juneau-rest/juneau-rest-server/src/main/resources/org/apache/juneau/rest/htdocs/styles/MenuItemWidget.css
rename to 
juneau-rest/juneau-rest-server/src/main/resources/htdocs/styles/MenuItemWidget.css
diff --git 
a/juneau-rest/juneau-rest-server/src/main/resources/org/apache/juneau/rest/htdocs/styles/QueryMenuItem.css
 
b/juneau-rest/juneau-rest-server/src/main/resources/htdocs/styles/QueryMenuItem.css
similarity index 100%
rename from 
juneau-rest/juneau-rest-server/src/main/resources/org/apache/juneau/rest/htdocs/styles/QueryMenuItem.css
rename to 
juneau-rest/juneau-rest-server/src/main/resources/htdocs/styles/QueryMenuItem.css
diff --git 
a/juneau-rest/juneau-rest-server/src/main/resources/org/apache/juneau/rest/htdocs/styles/SwaggerUI.css
 b/juneau-rest/juneau-rest-server/src/main/resources/htdocs/styles/SwaggerUI.css
similarity index 100%
rename from 
juneau-rest/juneau-rest-server/src/main/resources/org/apache/juneau/rest/htdocs/styles/SwaggerUI.css
rename to 
juneau-rest/juneau-rest-server/src/main/resources/htdocs/styles/SwaggerUI.css
diff --git 
a/juneau-rest/juneau-rest-server/src/main/resources/org/apache/juneau/rest/htdocs/themes/dark.css
 b/juneau-rest/juneau-rest-server/src/main/resources/htdocs/themes/dark.css
similarity index 100%
rename from 
juneau-rest/juneau-rest-server/src/main/resources/org/apache/juneau/rest/htdocs/themes/dark.css
rename to 
juneau-rest/juneau-rest-server/src/main/resources/htdocs/themes/dark.css
diff --git 
a/juneau-rest/juneau-rest-server/src/main/resources/org/apache/juneau/rest/htdocs/themes/devops.css
 b/juneau-rest/juneau-rest-server/src/main/resources/htdocs/themes/devops.css
similarity index 100%
rename from 
juneau-rest/juneau-rest-server/src/main/resources/org/apache/juneau/rest/htdocs/themes/devops.css
rename to 
juneau-rest/juneau-rest-server/src/main/resources/htdocs/themes/devops.css
diff --git 
a/juneau-rest/juneau-rest-server/src/main/resources/org/apache/juneau/rest/htdocs/themes/light.css
 b/juneau-rest/juneau-rest-server/src/main/resources/htdocs/themes/light.css
similarity index 100%
rename from 
juneau-rest/juneau-rest-server/src/main/resources/org/apache/juneau/rest/htdocs/themes/light.css
rename to 
juneau-rest/juneau-rest-server/src/main/resources/htdocs/themes/light.css
diff --git 
a/juneau-rest/juneau-rest-server/src/main/resources/org/apache/juneau/rest/htdocs/themes/original.css
 b/juneau-rest/juneau-rest-server/src/main/resources/htdocs/themes/original.css
similarity index 100%
rename from 
juneau-rest/juneau-rest-server/src/main/resources/org/apache/juneau/rest/htdocs/themes/original.css
rename to 
juneau-rest/juneau-rest-server/src/main/resources/htdocs/themes/original.css
diff --git 
a/juneau-sc/juneau-sc-server/src/main/java/org/apache/juneau/server/config/rest/LoadConfigResource.java
 
b/juneau-sc/juneau-sc-server/src/main/java/org/apache/juneau/server/config/rest/LoadConfigResource.java
index 430ea5c..3c5cd50 100644
--- 
a/juneau-sc/juneau-sc-server/src/main/java/org/apache/juneau/server/config/rest/LoadConfigResource.java
+++ 
b/juneau-sc/juneau-sc-server/src/main/java/org/apache/juneau/server/config/rest/LoadConfigResource.java
@@ -14,8 +14,8 @@ package org.apache.juneau.server.config.rest;
 
 import org.apache.juneau.http.annotation.Path;
 import org.apache.juneau.json.JsonSerializer;
-import org.apache.juneau.rest.RestServlet;
 import org.apache.juneau.rest.annotation.*;
+import org.apache.juneau.rest.servlet.*;
 import org.apache.juneau.server.config.repository.GetConfiguration;
 
 @Rest(path="/configs/*")
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/html/annotation/HtmlDocConfig_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/html/annotation/HtmlDocConfig_Test.java
index 0d45bbe..801a8c7 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/html/annotation/HtmlDocConfig_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/html/annotation/HtmlDocConfig_Test.java
@@ -2,10 +2,11 @@ package org.apache.juneau.html.annotation;
 
 import static org.junit.runners.MethodSorters.*;
 
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.client.*;
+import org.apache.juneau.rest.config.*;
 import org.apache.juneau.rest.mock.*;
+import org.apache.juneau.rest.servlet.*;
 import org.junit.*;
 
 
//***************************************************************************************************************************
@@ -31,7 +32,7 @@ public class HtmlDocConfig_Test {
 
        @Rest
        @HtmlDocConfig(aside={"a01a","a01b","INHERIT"})
-       public static class A1 extends BasicRestServlet {
+       public static class A1 extends BasicRestServlet implements 
BasicJsonHtmlConfig {
                @RestGet
                public Object a01() {
                        return "OK";
@@ -113,7 +114,7 @@ public class HtmlDocConfig_Test {
 
        @Rest
        @HtmlDocConfig(footer={"a01a","a01b"})
-       public static class B1 extends BasicRestServlet {
+       public static class B1 extends BasicRestServlet implements 
BasicJsonHtmlConfig {
                @RestGet
                public Object a01() {
                        return "OK";
@@ -195,7 +196,7 @@ public class HtmlDocConfig_Test {
 
        @Rest
        @HtmlDocConfig(header={"a01a","a01b"})
-       public static class C1 extends BasicRestServlet {
+       public static class C1 extends BasicRestServlet implements 
BasicJsonHtmlConfig {
                @RestGet
                public Object a01() {
                        return "OK";
@@ -277,7 +278,7 @@ public class HtmlDocConfig_Test {
 
        @Rest
        @HtmlDocConfig(navlinks={"a01a","a01b"})
-       public static class D1 extends BasicRestServlet {
+       public static class D1 extends BasicRestServlet implements 
BasicJsonHtmlConfig {
                @RestGet
                public Object a01() {
                        return "OK";
@@ -431,7 +432,7 @@ public class HtmlDocConfig_Test {
 
        @Rest
        @HtmlDocConfig(navlinks={"NONE"},nav={"a01a","a01b"})
-       public static class E1 extends BasicRestServlet {
+       public static class E1 extends BasicRestServlet implements 
BasicJsonHtmlConfig {
                @RestGet
                public Object a01() {
                        return "OK";
@@ -513,7 +514,7 @@ public class HtmlDocConfig_Test {
 
        @Rest
        @HtmlDocConfig(script={"a01a","a01b"})
-       public static class F1 extends BasicRestServlet {
+       public static class F1 extends BasicRestServlet implements 
BasicJsonHtmlConfig {
                @RestGet
                public Object a01() {
                        return "OK";
@@ -595,7 +596,7 @@ public class HtmlDocConfig_Test {
 
        @Rest
        @HtmlDocConfig(style={"a01a","a01b"},stylesheet="a01s",nowrap="false")
-       public static class G1 extends BasicRestServlet {
+       public static class G1 extends BasicRestServlet implements 
BasicJsonHtmlConfig {
                @RestGet
                public Object a01() {
                        return "OK";
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/http/SerializedHttpEntity_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/http/SerializedHttpEntity_Test.java
index ab6347c..e0a8d0d 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/http/SerializedHttpEntity_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/http/SerializedHttpEntity_Test.java
@@ -25,10 +25,10 @@ import org.apache.juneau.httppart.*;
 import org.apache.juneau.json.*;
 import org.apache.juneau.msgpack.*;
 import org.apache.juneau.oapi.*;
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.client.*;
 import org.apache.juneau.rest.mock.*;
+import org.apache.juneau.rest.servlet.*;
 import org.apache.juneau.testutils.pojos.*;
 
 import static org.apache.juneau.assertions.Assertions.*;
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/http/remote/Remote_BodyAnnotation_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/http/remote/Remote_BodyAnnotation_Test.java
index 1f758ad..7319e69 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/http/remote/Remote_BodyAnnotation_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/http/remote/Remote_BodyAnnotation_Test.java
@@ -160,7 +160,7 @@ public class Remote_BodyAnnotation_Test {
        
//-----------------------------------------------------------------------------------------------------------------
 
        @Rest
-       public static class B implements BasicOpenApiRest {
+       public static class B implements BasicOpenApiConfig {
                @RestPost
                public Object x1(@Body int b, @Header("Content-Type") String 
ct) {
                        assertEquals("text/openapi",ct);
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/http/remote/Remote_CommonInterfaces_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/http/remote/Remote_CommonInterfaces_Test.java
index 86127e7..178482c 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/http/remote/Remote_CommonInterfaces_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/http/remote/Remote_CommonInterfaces_Test.java
@@ -49,7 +49,7 @@ public class Remote_CommonInterfaces_Test {
        }
 
        @Rest
-       public static class A1 implements A, BasicSimpleJsonRest {
+       public static class A1 implements A, BasicSimpleJsonConfig {
                @Override
                @RestOp
                public String putX1(String b) {
@@ -81,7 +81,7 @@ public class Remote_CommonInterfaces_Test {
 
        @Remote
        @Rest
-       public static interface B extends BasicSimpleJsonRest {
+       public static interface B extends BasicSimpleJsonConfig {
                String putX1(@Body String b);
                String getX2(@Query("foo") String b);
                String getX3(@Header("foo") String b);
@@ -116,7 +116,7 @@ public class Remote_CommonInterfaces_Test {
 
        @Remote
        @Rest
-       public static interface C extends BasicSimpleJsonRest {
+       public static interface C extends BasicSimpleJsonConfig {
                Ok ok();
                Accepted accepted();
                AlreadyReported alreadyReported();
@@ -198,7 +198,7 @@ public class Remote_CommonInterfaces_Test {
 
        @Remote
        @Rest
-       public static interface D extends BasicSimpleJsonRest {
+       public static interface D extends BasicSimpleJsonConfig {
                BasicResource httpResource() throws IOException ;
        }
 
@@ -225,7 +225,7 @@ public class Remote_CommonInterfaces_Test {
 
        @Remote
        @Rest
-       public static interface E extends BasicSimpleJsonRest {
+       public static interface E extends BasicSimpleJsonConfig {
                void badRequest() throws BadRequest;
                void conflict() throws Conflict;
                void expectationFailed() throws ExpectationFailed;
@@ -613,7 +613,7 @@ public class Remote_CommonInterfaces_Test {
 
        @Remote
        @Rest
-       public static interface F extends BasicSimpleJsonRest {
+       public static interface F extends BasicSimpleJsonConfig {
                BadRequest badRequest();
                Conflict conflict();
                ExpectationFailed expectationFailed();
@@ -828,7 +828,7 @@ public class Remote_CommonInterfaces_Test {
 
        @Remote
        @Rest
-       public static interface G extends BasicSimpleJsonRest {
+       public static interface G extends BasicSimpleJsonConfig {
                Reader reader();
                InputStream inputStream();
        }
@@ -857,7 +857,7 @@ public class Remote_CommonInterfaces_Test {
 
        @Remote
        @Rest
-       public static interface IH extends BasicSimpleJsonRest {
+       public static interface IH extends BasicSimpleJsonConfig {
                SeeOtherRoot seeOtherRoot();
        }
 
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/http/remote/Remote_RemoteOpAnnotation_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/http/remote/Remote_RemoteOpAnnotation_Test.java
index 94104ba..7e36116 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/http/remote/Remote_RemoteOpAnnotation_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/http/remote/Remote_RemoteOpAnnotation_Test.java
@@ -167,7 +167,7 @@ public class Remote_RemoteOpAnnotation_Test {
        
//-----------------------------------------------------------------------------------------------------------------
 
        @Rest
-       public static class C implements BasicSimpleJsonRest {
+       public static class C implements BasicSimpleJsonConfig {
                @RestOp(path="/*")
                public String post(@Body String body) {
                        return body;
@@ -212,7 +212,7 @@ public class Remote_RemoteOpAnnotation_Test {
        
//-----------------------------------------------------------------------------------------------------------------
 
        @Rest
-       public static class D implements BasicOpenApiRest {
+       public static class D implements BasicOpenApiConfig {
                @RestPost(path="/*") @Response
                public String x1(@Body String body) {
                        return body;
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/http/remote/Remote_ResponseAnnotation_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/http/remote/Remote_ResponseAnnotation_Test.java
index 9939655..b91f7ac 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/http/remote/Remote_ResponseAnnotation_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/http/remote/Remote_ResponseAnnotation_Test.java
@@ -97,7 +97,7 @@ public class Remote_ResponseAnnotation_Test {
        }
 
        @Rest
-       public static class A3 implements BasicJsonRest {
+       public static class A3 implements BasicJsonConfig {
                @RestOp
                public ABean get() {
                        return bean;
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/http/remote/Remote_Test.java 
b/juneau-utest/src/test/java/org/apache/juneau/http/remote/Remote_Test.java
index 268184a..a8132ca 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/remote/Remote_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/remote/Remote_Test.java
@@ -20,12 +20,12 @@ import static org.apache.juneau.http.HttpHeaders.*;
 
 import java.util.concurrent.*;
 
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.client.*;
 import org.apache.juneau.rest.client.remote.*;
 import org.apache.juneau.rest.config.*;
 import org.apache.juneau.rest.mock.*;
+import org.apache.juneau.rest.servlet.*;
 import org.apache.juneau.http.*;
 import org.apache.juneau.http.header.*;
 import org.apache.juneau.marshall.*;
@@ -236,7 +236,7 @@ public class Remote_Test {
        
//-----------------------------------------------------------------------------------------------------------------
 
        @Rest(path="/C1")
-       public static class C implements BasicSimpleJsonRest {
+       public static class C implements BasicSimpleJsonConfig {
                @RestOp
                public String x1() {
                        return "foo";
@@ -279,7 +279,7 @@ public class Remote_Test {
        }
 
        @Rest(path="/C3")
-       public static class C3a implements BasicSimpleJsonRest {
+       public static class C3a implements BasicSimpleJsonConfig {
                @RestOp
                public String x1() {
                        return "bar";
@@ -316,7 +316,7 @@ public class Remote_Test {
        }
 
        @Rest(path="/C4")
-       public static class C4a implements BasicSimpleJsonRest {
+       public static class C4a implements BasicSimpleJsonConfig {
                @RestOp
                public String x1() throws C4c {
                        throw new C4c("foo");
@@ -384,7 +384,7 @@ public class Remote_Test {
        
//-----------------------------------------------------------------------------------------------------------------
 
        @Rest
-       public static class D1 implements BasicSimpleJsonRest {
+       public static class D1 implements BasicSimpleJsonConfig {
                @RestGet
                public void r202(org.apache.juneau.rest.RestResponse res) {
                        res.setStatus(202);
@@ -425,7 +425,7 @@ public class Remote_Test {
        }
 
        @Rest
-       public static class D2 implements BasicSimpleJsonRest {
+       public static class D2 implements BasicSimpleJsonConfig {
                @RestGet
                public Integer x1() {
                        return null;
@@ -456,7 +456,7 @@ public class Remote_Test {
        
//-----------------------------------------------------------------------------------------------------------------
 
        @Rest
-       public static class E implements BasicSimpleJsonRest {
+       public static class E implements BasicSimpleJsonConfig {
                @RestOp(method=HttpMethod.RRPC)
                public E1 proxy() {
                        return new E1() {
@@ -502,7 +502,7 @@ public class Remote_Test {
        }
 
        @Rest
-       public static class E5 implements BasicSimpleJsonRest {
+       public static class E5 implements BasicSimpleJsonConfig {
                @RestOp(method=HttpMethod.RRPC)
                public E5b proxy() {
                        return new E5b() {
@@ -532,7 +532,7 @@ public class Remote_Test {
        }
 
        @Rest
-       public static class E6 implements BasicSimpleJsonRest {
+       public static class E6 implements BasicSimpleJsonConfig {
                @RestOp(method=HttpMethod.RRPC)
                public E5b proxy() {
                        return new E5b() {
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/http/remote/RrpcInterfaceTest.java
 
b/juneau-utest/src/test/java/org/apache/juneau/http/remote/RrpcInterfaceTest.java
index f82db07..979815d 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/http/remote/RrpcInterfaceTest.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/http/remote/RrpcInterfaceTest.java
@@ -28,10 +28,11 @@ import org.apache.juneau.jena.*;
 import org.apache.juneau.json.*;
 import org.apache.juneau.msgpack.*;
 import org.apache.juneau.parser.*;
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
+import org.apache.juneau.rest.config.*;
 import org.apache.juneau.rest.logging.*;
 import org.apache.juneau.rest.mock.*;
+import org.apache.juneau.rest.servlet.*;
 import org.apache.juneau.serializer.*;
 import org.apache.juneau.serializer.annotation.*;
 import org.apache.juneau.testutils.pojos.*;
@@ -231,7 +232,7 @@ public class RrpcInterfaceTest {
 
        @Rest(callLogger=BasicDisabledRestLogger.class)
        @SerializerConfig(addRootType="true",addBeanTypes="true")
-       public static class InterfaceProxyResource extends BasicRestServletJena 
{
+       public static class InterfaceProxyResource extends BasicRestServlet 
implements BasicUniversalJenaConfig {
                private static final long serialVersionUID = 1L;
 
                
//-----------------------------------------------------------------------------------------------------------------
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/Swagger_Test.java 
b/juneau-utest/src/test/java/org/apache/juneau/rest/Swagger_Test.java
index 1263393..06e668c 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/Swagger_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/Swagger_Test.java
@@ -32,6 +32,7 @@ import org.apache.juneau.http.annotation.Tag;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.annotation.Swagger;
 import org.apache.juneau.rest.mock.*;
+import org.apache.juneau.rest.servlet.*;
 import org.apache.juneau.rest.swagger.*;
 import org.junit.*;
 
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestOp_BeanConfig_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestOp_BeanConfig_Test.java
index b37fbb1..0fa77c9 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestOp_BeanConfig_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/RestOp_BeanConfig_Test.java
@@ -15,9 +15,10 @@ package org.apache.juneau.rest.annotation;
 import static org.junit.runners.MethodSorters.*;
 
 import org.apache.juneau.annotation.*;
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.client.*;
+import org.apache.juneau.rest.config.*;
 import org.apache.juneau.rest.mock.*;
+import org.apache.juneau.rest.servlet.*;
 import org.junit.*;
 
 @FixMethodOrder(NAME_ASCENDING)
@@ -28,7 +29,7 @@ public class RestOp_BeanConfig_Test {
        // @BeanConfig(bpi)
        
//------------------------------------------------------------------------------------------------------------------
 
-       public static class A1 extends BasicRestServlet {
+       public static class A1 extends BasicRestServlet implements 
BasicUniversalConfig {
                @RestGet
                @Bean(onClass=X1.class, properties="a,_b")
                public Object a() throws Exception {
@@ -70,7 +71,7 @@ public class RestOp_BeanConfig_Test {
        // @BeanConfig(bpx)
        
//------------------------------------------------------------------------------------------------------------------
 
-       public static class A2 extends BasicRestServlet {
+       public static class A2 extends BasicRestServlet implements 
BasicUniversalConfig {
                @RestGet
                @Bean(on="X1", excludeProperties="a,_b")
                public Object a() throws Exception {
@@ -112,7 +113,7 @@ public class RestOp_BeanConfig_Test {
        // @BeanConfig(bpi) and @Bean(bpi)
        
//------------------------------------------------------------------------------------------------------------------
 
-       public static class A3 extends BasicRestServlet {
+       public static class A3 extends BasicRestServlet implements 
BasicUniversalConfig {
                @RestGet
                @Bean(onClass=X2.class, p="a,_b")
                public Object a() throws Exception {
@@ -154,7 +155,7 @@ public class RestOp_BeanConfig_Test {
        // @BeanConfig(bpx) and @Bean(bpi)
        
//------------------------------------------------------------------------------------------------------------------
 
-       public static class A4 extends BasicRestServlet {
+       public static class A4 extends BasicRestServlet implements 
BasicUniversalConfig {
                @RestGet
                @Bean(onClass=X2.class, xp="a,_b")
                public Object a() throws Exception {
@@ -196,7 +197,7 @@ public class RestOp_BeanConfig_Test {
        // @BeanConfig(bpi), meta-matching
        
//------------------------------------------------------------------------------------------------------------------
 
-       public static class A5 extends BasicRestServlet {
+       public static class A5 extends BasicRestServlet implements 
BasicUniversalConfig {
                @RestGet
                @Bean(on="*", p="a")
                public Object a() throws Exception {
@@ -218,7 +219,7 @@ public class RestOp_BeanConfig_Test {
        // @BeanConfig(bpi), fully-qualified class name
        
//------------------------------------------------------------------------------------------------------------------
 
-       public static class A6 extends BasicRestServlet {
+       public static class A6 extends BasicRestServlet implements 
BasicUniversalConfig {
                @RestGet
                
@Bean(on="org.apache.juneau.rest.annotation.RestOp_BeanConfig_Test$X1", p="a")
                public Object a() throws Exception {
@@ -240,7 +241,7 @@ public class RestOp_BeanConfig_Test {
        // @BeanConfig(bpi), negative matching
        
//------------------------------------------------------------------------------------------------------------------
 
-       public static class A7 extends BasicRestServlet {
+       public static class A7 extends BasicRestServlet implements 
BasicUniversalConfig {
                @RestGet
                @Bean(on="MyBean", p="a")
                public Object a() throws Exception {
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/Rest_Debug_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/Rest_Debug_Test.java
index 64f92c6..ef90bed 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/Rest_Debug_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/annotation/Rest_Debug_Test.java
@@ -14,12 +14,12 @@ package org.apache.juneau.rest.annotation;
 
 import static org.junit.runners.MethodSorters.*;
 
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.RestRequest;
 import org.apache.juneau.rest.client.*;
 import org.apache.juneau.rest.config.*;
 import org.apache.juneau.rest.logging.*;
 import org.apache.juneau.rest.mock.*;
+import org.apache.juneau.rest.servlet.*;
 import org.junit.*;
 
 @FixMethodOrder(NAME_ASCENDING)
@@ -50,7 +50,7 @@ public class Rest_Debug_Test {
        
//------------------------------------------------------------------------------------------------------------------
 
        @Rest(callLogger=CaptureLogger.class)
-       public static class A1_RestOp implements BasicUniversalRest {
+       public static class A1_RestOp implements BasicUniversalConfig {
                @RestOp
                public boolean aa(RestRequest req) {
                        return req.isDebug();
@@ -190,7 +190,7 @@ public class Rest_Debug_Test {
        }
 
        @Rest(callLogger=CaptureLogger.class)
-       public static class A1_RestGet implements BasicUniversalRest {
+       public static class A1_RestGet implements BasicUniversalConfig {
                @RestGet
                public boolean a(RestRequest req) {
                        return req.isDebug();
@@ -303,7 +303,7 @@ public class Rest_Debug_Test {
        
//------------------------------------------------------------------------------------------------------------------
 
        @Rest(callLogger=CaptureLogger.class, debug="true")
-       public static class A2 implements BasicUniversalRest {
+       public static class A2 implements BasicUniversalConfig {
                @RestOp
                public boolean a(RestRequest req) {
                        return req.isDebug();
@@ -382,7 +382,7 @@ public class Rest_Debug_Test {
        
//------------------------------------------------------------------------------------------------------------------
 
        @Rest(callLogger=CaptureLogger.class,debug="false")
-       public static class A3 implements BasicUniversalRest {
+       public static class A3 implements BasicUniversalConfig {
                @RestOp
                public boolean a(RestRequest req) {
                        return req.isDebug();
@@ -461,7 +461,7 @@ public class Rest_Debug_Test {
        
//------------------------------------------------------------------------------------------------------------------
 
        @Rest(callLogger=CaptureLogger.class,debug="conditional")
-       public static class A4 implements BasicUniversalRest {
+       public static class A4 implements BasicUniversalConfig {
                @RestOp
                public boolean a(RestRequest req) {
                        return req.isDebug();
@@ -547,7 +547,7 @@ public class Rest_Debug_Test {
                        + 
"C1.d1=conditional,C1.d2=conditional,C1.d3=CONDITIONAL,C1.d4=CONDITIONAL,C1.d5=CONDITIONAL,C1.d6=CONDITIONAL,"
                        + 
"C1.e1=foo,C1.e2,C1.e3=foo,C1.e4=foo,C1.e5=foo,C1.e6=foo,"
        )
-       public static class C1 implements BasicUniversalRest {
+       public static class C1 implements BasicUniversalConfig {
 
                @RestOp
                public boolean a1(RestRequest req) {
@@ -881,7 +881,7 @@ public class Rest_Debug_Test {
                        + 
"C2.d1=conditional,C2.d2=conditional,C2.d3=CONDITIONAL,C2.d4=CONDITIONAL,C2.d5=CONDITIONAL,C2.d6=CONDITIONAL,"
                        + 
"C2.e1=foo,C2.e2=,C2.e3=foo,C2.e4=foo,C2.e5=foo,C2.e6=foo,"
        )
-       public static class C2 implements BasicUniversalRest {
+       public static class C2 implements BasicUniversalConfig {
 
                @RestOp
                public boolean a1(RestRequest req) {
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/BasicHttpRequestRetryHandler_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/BasicHttpRequestRetryHandler_Test.java
index 953b460..19b2664 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/BasicHttpRequestRetryHandler_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/BasicHttpRequestRetryHandler_Test.java
@@ -24,9 +24,9 @@ import org.apache.http.HttpResponse;
 import org.apache.http.protocol.*;
 import org.apache.juneau.http.response.*;
 import org.apache.juneau.http.response.BasicHttpException;
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.mock.*;
+import org.apache.juneau.rest.servlet.*;
 import org.junit.*;
 
 public class BasicHttpRequestRetryHandler_Test {
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestCallException_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestCallException_Test.java
index 8edeeba..f756b3f 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestCallException_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestCallException_Test.java
@@ -21,9 +21,9 @@ import java.io.*;
 import org.apache.http.entity.*;
 import org.apache.juneau.marshall.*;
 import org.apache.juneau.parser.*;
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.mock.*;
+import org.apache.juneau.rest.servlet.*;
 import org.junit.*;
 
 @FixMethodOrder(NAME_ASCENDING)
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_BasicCalls_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_BasicCalls_Test.java
index 9e5368a..9fe7d1b 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_BasicCalls_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_BasicCalls_Test.java
@@ -31,9 +31,10 @@ import org.apache.juneau.collections.*;
 import org.apache.juneau.http.annotation.*;
 import org.apache.juneau.http.part.*;
 import org.apache.juneau.marshall.*;
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
+import org.apache.juneau.rest.config.*;
 import org.apache.juneau.rest.mock.*;
+import org.apache.juneau.rest.servlet.*;
 import org.apache.juneau.testutils.*;
 import org.junit.*;
 import org.apache.juneau.http.header.ContentType;
@@ -57,7 +58,7 @@ public class RestClient_BasicCalls_Test {
        private static ABean bean = ABean.get();
 
        @Rest
-       public static class A extends BasicRestObject {
+       public static class A extends BasicRestObject implements 
BasicUniversalConfig {
                @RestOp(path="/bean")
                public ABean getBean() {
                        return bean;
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Body_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Body_Test.java
index 912479d..51bbd2c 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Body_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Body_Test.java
@@ -25,10 +25,10 @@ import org.apache.http.*;
 import org.apache.juneau.http.entity.*;
 import org.apache.juneau.http.resource.*;
 import org.apache.juneau.json.*;
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.httppart.*;
 import org.apache.juneau.rest.mock.*;
+import org.apache.juneau.rest.servlet.*;
 import org.apache.juneau.serializer.*;
 import org.apache.juneau.testutils.pojos.*;
 import org.junit.*;
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 c2f7e6a..5be6fda 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
@@ -26,9 +26,9 @@ import org.apache.juneau.collections.*;
 import org.apache.juneau.http.header.*;
 import org.apache.juneau.json.*;
 import org.apache.juneau.parser.*;
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.mock.*;
+import org.apache.juneau.rest.servlet.*;
 import org.apache.juneau.swap.*;
 import org.junit.*;
 
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_Context_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_Context_Test.java
index c682a1d..57458eb 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_Context_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_Context_Test.java
@@ -18,9 +18,9 @@ import java.io.*;
 import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.reflect.*;
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.mock.*;
+import org.apache.juneau.rest.servlet.*;
 import org.apache.juneau.swap.*;
 import org.junit.*;
 
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_OpenApi_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_OpenApi_Test.java
index dffb992..c0e1d8e 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_OpenApi_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_OpenApi_Test.java
@@ -21,16 +21,17 @@ import java.io.*;
 
 import org.apache.juneau.collections.*;
 import org.apache.juneau.httppart.*;
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
+import org.apache.juneau.rest.config.*;
 import org.apache.juneau.rest.mock.*;
+import org.apache.juneau.rest.servlet.*;
 import org.junit.*;
 
 @FixMethodOrder(NAME_ASCENDING)
 public class RestClient_Config_OpenApi_Test {
 
        @Rest
-       public static class A extends BasicRestObject {
+       public static class A extends BasicRestObject implements 
BasicUniversalConfig {
                @RestPost
                public Reader echoBody(org.apache.juneau.rest.RestRequest req) 
throws IOException {
                        return req.getBody().getReader();
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_Parser_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_Parser_Test.java
index 6d4cc2f..91fbb7c 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_Parser_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_Parser_Test.java
@@ -20,9 +20,9 @@ import static org.apache.juneau.testutils.StreamUtils.*;
 
 import java.io.*;
 
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.mock.*;
+import org.apache.juneau.rest.servlet.*;
 import org.junit.*;
 
 @FixMethodOrder(NAME_ASCENDING)
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 aa90243..1b4f27a 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
@@ -38,10 +38,10 @@ import org.apache.juneau.http.response.*;
 import org.apache.juneau.httppart.*;
 import org.apache.juneau.json.*;
 import org.apache.juneau.marshall.*;
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.httppart.*;
 import org.apache.juneau.rest.mock.*;
+import org.apache.juneau.rest.servlet.*;
 import org.apache.juneau.testutils.*;
 import org.apache.juneau.xml.*;
 import org.junit.*;
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_Serializer_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_Serializer_Test.java
index c3d2f37..04eca79 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_Serializer_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_Serializer_Test.java
@@ -22,9 +22,9 @@ import java.util.*;
 import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.collections.*;
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.mock.*;
+import org.apache.juneau.rest.servlet.*;
 import org.junit.*;
 
 @FixMethodOrder(NAME_ASCENDING)
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_FormData_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_FormData_Test.java
index fbe8f3a..6f355df 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_FormData_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_FormData_Test.java
@@ -26,9 +26,9 @@ import org.apache.http.*;
 import org.apache.juneau.collections.*;
 import org.apache.juneau.http.part.*;
 import org.apache.juneau.httppart.*;
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.mock.*;
+import org.apache.juneau.rest.servlet.*;
 import org.apache.juneau.serializer.*;
 import org.apache.juneau.testutils.*;
 import org.apache.juneau.testutils.pojos.ABean;
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Headers_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Headers_Test.java
index fd94088..c68e6c2 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Headers_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Headers_Test.java
@@ -29,10 +29,11 @@ import org.apache.juneau.http.header.*;
 import org.apache.juneau.httppart.*;
 import org.apache.juneau.marshall.*;
 import org.apache.juneau.oapi.*;
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
+import org.apache.juneau.rest.config.*;
 import org.apache.juneau.rest.logging.*;
 import org.apache.juneau.rest.mock.*;
+import org.apache.juneau.rest.servlet.*;
 import org.apache.juneau.serializer.*;
 import org.apache.juneau.testutils.*;
 import org.apache.juneau.uon.*;
@@ -65,7 +66,7 @@ public class RestClient_Headers_Test {
        private static ABean bean = ABean.get();
 
        @Rest(callLogger=CaptureLogger.class)
-       public static class A extends BasicRestObject {
+       public static class A extends BasicRestObject implements 
BasicUniversalConfig {
                @RestGet
                public String[] headers(org.apache.juneau.rest.RestRequest req) 
{
                        return 
req.getHeaders().getAll(req.getHeader("Check").orElse(null)).stream().map(x -> 
x.getValue()).toArray(String[]::new);
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Logging_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Logging_Test.java
index 2c7951e..227678c 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Logging_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Logging_Test.java
@@ -21,9 +21,9 @@ import java.util.logging.*;
 import org.apache.http.entity.*;
 import org.apache.juneau.*;
 import org.apache.juneau.http.annotation.*;
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.mock.*;
+import org.apache.juneau.rest.servlet.*;
 import org.junit.*;
 
 @FixMethodOrder(NAME_ASCENDING)
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Marshalls_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Marshalls_Test.java
index 55a7cfa..affdf56 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Marshalls_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Marshalls_Test.java
@@ -20,9 +20,10 @@ import org.apache.juneau.http.annotation.Body;
 import org.apache.juneau.http.annotation.Header;
 import org.apache.juneau.http.header.*;
 import org.apache.juneau.marshall.*;
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
+import org.apache.juneau.rest.config.*;
 import org.apache.juneau.rest.mock.*;
+import org.apache.juneau.rest.servlet.*;
 import org.junit.*;
 
 @FixMethodOrder(NAME_ASCENDING)
@@ -50,7 +51,7 @@ public class RestClient_Marshalls_Test {
        public static Bean bean = Bean.create();
 
        @Rest
-       public static class A extends BasicRestObject {
+       public static class A extends BasicRestObject implements 
BasicUniversalConfig {
                @RestPost
                public Bean a01(@Body Bean b, @Header("Accept") String accept, 
@Header("Content-Type") String ct, @Header("X-Accept") String xaccept, 
@Header("X-Content-Type") String xct) {
                        assertEquals("Accept doesn't 
match",nn(xaccept),nn(accept));
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Paths_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Paths_Test.java
index 3b36f1a..5b885a9 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Paths_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Paths_Test.java
@@ -19,9 +19,9 @@ import static org.apache.juneau.http.HttpParts.*;
 
 import org.apache.juneau.http.part.*;
 import org.apache.juneau.httppart.*;
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.mock.*;
+import org.apache.juneau.rest.servlet.*;
 import org.junit.*;
 
 @FixMethodOrder(NAME_ASCENDING)
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Query_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Query_Test.java
index f32ab12..ee61b23 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Query_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Query_Test.java
@@ -25,9 +25,9 @@ import java.util.*;
 import org.apache.juneau.collections.*;
 import org.apache.juneau.http.part.*;
 import org.apache.juneau.httppart.*;
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.mock.*;
+import org.apache.juneau.rest.servlet.*;
 import org.apache.juneau.testutils.*;
 import org.apache.juneau.uon.*;
 import org.junit.*;
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Response_Body_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Response_Body_Test.java
index d541212..8b6554e 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Response_Body_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Response_Body_Test.java
@@ -33,9 +33,9 @@ import org.apache.http.message.*;
 import org.apache.juneau.*;
 import org.apache.juneau.json.*;
 import org.apache.juneau.parser.*;
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.mock.*;
+import org.apache.juneau.rest.servlet.*;
 import org.apache.juneau.utils.*;
 import org.apache.juneau.xml.*;
 import org.junit.*;
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 b6c2306..a5382b9 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
@@ -27,9 +27,9 @@ import java.util.regex.*;
 import org.apache.http.*;
 import org.apache.juneau.*;
 import org.apache.juneau.http.header.*;
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.mock.*;
+import org.apache.juneau.rest.servlet.*;
 import org.apache.juneau.utils.*;
 import org.junit.*;
 
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Response_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Response_Test.java
index 38870f4..f6a5c17 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Response_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Response_Test.java
@@ -29,9 +29,9 @@ import org.apache.http.message.*;
 import org.apache.http.params.*;
 import org.apache.juneau.http.annotation.*;
 import org.apache.juneau.parser.*;
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.mock.*;
+import org.apache.juneau.rest.servlet.*;
 import org.apache.juneau.utils.*;
 import org.junit.*;
 
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Test.java 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Test.java
index 4926b5a..82f952a 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Test.java
@@ -36,9 +36,9 @@ import org.apache.http.protocol.*;
 import org.apache.juneau.internal.*;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.reflect.*;
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.mock.*;
+import org.apache.juneau.rest.servlet.*;
 import org.junit.*;
 
 @FixMethodOrder(NAME_ASCENDING)
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/helper/Hyperlink_Test.java 
b/juneau-utest/src/test/java/org/apache/juneau/rest/helper/Hyperlink_Test.java
index 49b273c..84855db 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/helper/Hyperlink_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/helper/Hyperlink_Test.java
@@ -16,11 +16,12 @@ import static org.junit.runners.MethodSorters.*;
 
 import java.util.*;
 
-import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.beans.*;
 import org.apache.juneau.rest.client.*;
+import org.apache.juneau.rest.config.*;
 import org.apache.juneau.rest.mock.*;
+import org.apache.juneau.rest.servlet.*;
 import org.junit.*;
 
 @SuppressWarnings("serial")
@@ -28,7 +29,7 @@ import org.junit.*;
 public class Hyperlink_Test {
 
        @Rest
-       public static class A extends BasicRestServlet {
+       public static class A extends BasicRestServlet implements 
BasicUniversalConfig {
                @RestGet
                public Hyperlink a() {
                        return new Hyperlink("foo", "bar");

Reply via email to