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 98e1a9f  Create org.apache.juneau.rest.helper package.
98e1a9f is described below

commit 98e1a9f007e687c3f1efb0eb317d2b11845c477c
Author: JamesBognar <jamesbog...@apache.org>
AuthorDate: Sun Apr 8 20:01:52 2018 -0400

    Create org.apache.juneau.rest.helper package.
---
 .../apache/juneau/dto/swagger/OperationMap.java    |  2 +-
 juneau-doc/src/main/javadoc/overview.html          | 91 +++++++++++++---------
 .../juneau/examples/rest/DirectoryResource.java    |  1 +
 .../examples/rest/DockerRegistryResource.java      |  2 +-
 .../examples/rest/MethodExampleResource.java       |  2 +-
 .../juneau/examples/rest/PetStoreResource.java     |  1 +
 .../examples/rest/PredefinedLabelsResource.java    |  2 +-
 .../examples/rest/SystemPropertiesResource.java    | 32 ++++----
 .../juneau/examples/rest/TempDirResource.java      |  1 +
 .../rest/addressbook/AddressBookResource.java      |  1 +
 .../examples/rest/petstore/PetStoreResource.java   | 22 +-----
 .../juneau/examples/rest/RootResourcesTest.java    |  2 +-
 .../microservice/resources/DebugResource.java      |  2 +-
 .../microservice/resources/DirectoryResource.java  |  1 +
 .../microservice/resources/LogsResource.java       |  1 +
 .../java/org/apache/juneau/rest/test/Root.java     |  2 +-
 .../apache/juneau/rest/BasicRestCallHandler.java   |  1 +
 .../apache/juneau/rest/BasicRestServletGroup.java  |  2 +-
 .../org/apache/juneau/rest/ResponseHandler.java    |  1 +
 .../java/org/apache/juneau/rest/RestContext.java   |  1 +
 .../java/org/apache/juneau/rest/RestRequest.java   |  1 +
 .../rest/{labels => helper}/BeanDescription.java   |  2 +-
 .../ChildResourceDescriptions.java                 |  2 +-
 .../RedirectHandler.java => helper/Ok.java}        | 87 +++++++++++----------
 .../juneau/rest/{ => helper}/ReaderResource.java   |  2 +-
 .../rest/{ => helper}/ReaderResourceBuilder.java   |  2 +-
 .../apache/juneau/rest/{ => helper}/Redirect.java  |  5 +-
 .../RedirectServletRoot.java}                      | 76 ++++++++----------
 .../{labels => helper}/ResourceDescription.java    |  4 +-
 .../juneau/rest/{ => helper}/StreamResource.java   |  2 +-
 .../rest/{ => helper}/StreamResourceBuilder.java   |  2 +-
 .../rest/{labels => helper}/package-info.java      |  4 +-
 .../juneau/rest/response/RedirectHandler.java      |  1 +
 .../juneau/rest/response/StreamableHandler.java    |  1 +
 .../juneau/rest/response/WritableHandler.java      |  1 +
 .../java/org/apache/juneau/rest/vars/FileVar.java  |  1 +
 36 files changed, 187 insertions(+), 176 deletions(-)

diff --git 
a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/OperationMap.java
 
b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/OperationMap.java
index f7cae77..8221758 100644
--- 
a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/OperationMap.java
+++ 
b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/OperationMap.java
@@ -67,7 +67,7 @@ public class OperationMap extends TreeMap<String,Operation> {
        }
        
        /**
-        * Fluent-style {@link #put(String, Operation)} method.
+        * Fluent-style put method.
         * 
         * @param httpMethodName The HTTP method name.
         * @param operation The operation.
diff --git a/juneau-doc/src/main/javadoc/overview.html 
b/juneau-doc/src/main/javadoc/overview.html
index 1efcf80..21fb2a4 100644
--- a/juneau-doc/src/main/javadoc/overview.html
+++ b/juneau-doc/src/main/javadoc/overview.html
@@ -329,7 +329,7 @@
                </ol>
                <li><p><a class='doclink' 
href='#juneau-rest-server.Injection'>Using with Spring and Injection 
frameworks</a></p>
                <li><p><a class='doclink' 
href='#juneau-rest-server.HTTP2'>Using HTTP/2 features</a></p>
-               <li><p><a class='doclink' 
href='#juneau-rest-server.PredefinedLabelBeans'>Predefined Label Beans</a></p>
+               <li><p><a class='doclink' 
href='#juneau-rest-server.PredefinedHelperBeans'>Predefined Helper Beans</a></p>
                <li><p><a class='doclink' 
href='#juneau-rest-server.OtherNotes'>Other Notes</a></p>
        </ol>
        <li><p class='toc2'><a class='doclink' 
href='#juneau-rest-server-jaxrs'><i>juneau-rest-server-jaxrs</i></a></p>
@@ -12003,7 +12003,7 @@
                                        {@link 
org.apache.juneau.rest.RestResponse#getNegotiatedWriter()}.
                                        <br>Note that you should call {@link 
org.apache.juneau.rest.RestResponse#setContentType(String)} to set 
                                        the <l>Content-Type</l> header if you 
use this object type.
-                               <li class='jc'>{@link 
org.apache.juneau.rest.Redirect}
+                               <li class='jc'>{@link 
org.apache.juneau.rest.helper.Redirect}
                                        <br>Represents an HTTP redirect 
response.
                                <li class='jc'>{@link 
org.apache.juneau.Streamable}
                                        <br>Interface that identifies that an 
object can be serialized directly to an output stream.
@@ -12079,13 +12079,13 @@
                <h4 class='topic' onclick='toggle(this)'>7.6.11 - 
ReaderResource</h4>
                <div class='topic'>
                        <p>
-                               The {@link 
org.apache.juneau.rest.ReaderResource} class is a convenience object for 
defining thread-safe
+                               The {@link 
org.apache.juneau.rest.helper.ReaderResource} class is a convenience object for 
defining thread-safe
                                reusable character-based responses.
                                <br>In essence, it's a container for character 
data with optional response headers and support for
                                resolving SVL variables.
                        </p>
                        <p>
-                               The {@link 
org.apache.juneau.rest.ReaderResource} class implements the {@link 
org.apache.juneau.Writable}
+                               The {@link 
org.apache.juneau.rest.helper.ReaderResource} class implements the {@link 
org.apache.juneau.Writable}
                                interface which is handled by the {@link 
org.apache.juneau.rest.response.WritableHandler} class.
                                <br>This allows these objects to be returned as 
responses by REST methods.
                        </p>
@@ -12107,12 +12107,12 @@
                                The important methods on this class are:
                        </p>
                        <ul class='doctree'>
-                               <li class='jc'>{@link 
org.apache.juneau.rest.ReaderResourceBuilder}
+                               <li class='jc'>{@link 
org.apache.juneau.rest.helper.ReaderResourceBuilder}
                                <ul>
-                                       <li class='jm'>{@link 
org.apache.juneau.rest.ReaderResourceBuilder#contents(Object...) 
contents(Object...)}
-                                       <li class='jm'>{@link 
org.apache.juneau.rest.ReaderResourceBuilder#header(String,Object) 
header(String,Object)}
-                                       <li class='jm'>{@link 
org.apache.juneau.rest.ReaderResourceBuilder#mediaType(MediaType) 
mediaType(MediaType)}
-                                       <li class='jm'>{@link 
org.apache.juneau.rest.ReaderResourceBuilder#varResolver(VarResolverSession) 
varResolver(VarResolverSession)}
+                                       <li class='jm'>{@link 
org.apache.juneau.rest.helper.ReaderResourceBuilder#contents(Object...) 
contents(Object...)}
+                                       <li class='jm'>{@link 
org.apache.juneau.rest.helper.ReaderResourceBuilder#header(String,Object) 
header(String,Object)}
+                                       <li class='jm'>{@link 
org.apache.juneau.rest.helper.ReaderResourceBuilder#mediaType(MediaType) 
mediaType(MediaType)}
+                                       <li class='jm'>{@link 
org.apache.juneau.rest.helper.ReaderResourceBuilder#varResolver(VarResolverSession)
 varResolver(VarResolverSession)}
                                </ul>
                        </ul>
                </div>
@@ -12122,11 +12122,11 @@
                <h4 class='topic' onclick='toggle(this)'>7.6.12 - 
StreamResource</h4>
                <div class='topic'>
                        <p>
-                               The {@link 
org.apache.juneau.rest.StreamResource} class is the binary equivalent to the 
{@link org.apache.juneau.rest.ReaderResource} object.
+                               The {@link 
org.apache.juneau.rest.helper.StreamResource} class is the binary equivalent to 
the {@link org.apache.juneau.rest.helper.ReaderResource} object.
                                <br>In essence, it's a container for binary 
data with optional response headers.
                        </p>
                        <p>
-                               The {@link 
org.apache.juneau.rest.StreamResource} class implements the {@link 
org.apache.juneau.Streamable}
+                               The {@link 
org.apache.juneau.rest.helper.StreamResource} class implements the {@link 
org.apache.juneau.Streamable}
                                interface which is handled by the {@link 
org.apache.juneau.rest.response.StreamableHandler} class.
                                <br>This allows these objects to be returned as 
responses by REST methods.
                        </p>
@@ -12147,11 +12147,11 @@
                                The important methods on this class are:
                        </p>
                        <ul class='doctree'>
-                               <li class='jc'>{@link 
org.apache.juneau.rest.StreamResourceBuilder}
+                               <li class='jc'>{@link 
org.apache.juneau.rest.helper.StreamResourceBuilder}
                                <ul>
-                                       <li class='jm'>{@link 
org.apache.juneau.rest.StreamResourceBuilder#contents(Object...) 
contents(Object...)}
-                                       <li class='jm'>{@link 
org.apache.juneau.rest.StreamResourceBuilder#header(String,Object) 
header(String,Object)}
-                                       <li class='jm'>{@link 
org.apache.juneau.rest.StreamResourceBuilder#mediaType(MediaType) 
mediaType(MediaType)}
+                                       <li class='jm'>{@link 
org.apache.juneau.rest.helper.StreamResourceBuilder#contents(Object...) 
contents(Object...)}
+                                       <li class='jm'>{@link 
org.apache.juneau.rest.helper.StreamResourceBuilder#header(String,Object) 
header(String,Object)}
+                                       <li class='jm'>{@link 
org.apache.juneau.rest.helper.StreamResourceBuilder#mediaType(MediaType) 
mediaType(MediaType)}
                                </ul>
                        </ul>
                </div>
@@ -12161,7 +12161,7 @@
                <h4 class='topic' onclick='toggle(this)'>7.6.13 - Redirect</h4>
                <div class='topic'>
                        <p>
-                               The {@link org.apache.juneau.rest.Redirect} 
object is a convenience shortcut for performing <code>HTTP 302</code> redirects.
+                               The {@link 
org.apache.juneau.rest.helper.Redirect} object is a convenience shortcut for 
performing <code>HTTP 302</code> redirects.
                        </p>
                        <p>
                                <l>Redirect</l> objects are handled by the 
{@link org.apache.juneau.rest.response.RedirectHandler} class.
@@ -15365,15 +15365,15 @@
        </div>
        
        <!-- 
=======================================================================================================
 -->
-       <a id='juneau-rest-server.PredefinedLabelBeans'></a>
-       <h3 class='topic' onclick='toggle(this)'>7.35 - Predefined Label 
Beans</h3>
+       <a id='juneau-rest-server.PredefinedHelperBeans'></a>
+       <h3 class='topic' onclick='toggle(this)'>7.35 - Predefined Helper 
Beans</h3>
        <div class='topic'>
                <p>
-                       The {@link org.apache.juneau.rest.labels} package 
contains some reusable beans that are useful for 
+                       The {@link org.apache.juneau.rest.helper} package 
contains some reusable beans that are useful for 
                        creating linked items in HTML views.
                </p>
                <p>
-                       The {@link 
org.apache.juneau.rest.labels.ResourceDescription} class is a bean with 
name/description
+                       The {@link 
org.apache.juneau.rest.helper.ResourceDescription} class is a bean with 
name/description
                        properties for labeling and linking to child resources.
                        <br>The following examples is pulled from the REST 
examples:
                </p>
@@ -15407,7 +15407,7 @@
        }
                </p>
                <p>
-                       The {@link 
org.apache.juneau.rest.labels.BeanDescription} class provides a simple view
+                       The {@link 
org.apache.juneau.rest.helper.BeanDescription} class provides a simple view
                        of a bean and it's properties.
                </p>
                <p class='bcode w800'>
@@ -17838,7 +17838,7 @@
                </p>
                <ul class='spaced-list'>
                        <li>
-                               Using the {@link 
org.apache.juneau.rest.Redirect} object to perform redirections.
+                               Using the {@link 
org.apache.juneau.rest.helper.Redirect} object to perform redirections.
                        <li>
                                Using the various Java method parameter 
annotations to retrieve request attributes, parameters, etc.
                        <li>
@@ -18036,7 +18036,7 @@
                                <l>doExample()</l>
                                <br>The root page. 
                                <br>Performs a simple redirection to the 
<l>doGetExample1()</l> method using a 
-                               {@link org.apache.juneau.rest.Redirect} object.
+                               {@link org.apache.juneau.rest.helper.Redirect} 
object.
                        <li class='jm'>
                                <l>example1()</l>
                                <br>Shows how to use the following annotations:
@@ -19894,7 +19894,7 @@
                        <li>
                                Accessing a docker registry REST API as POJOs 
using {@link org.apache.juneau.rest.client.RestClient}.
                        <li>
-                               Using the {@link 
org.apache.juneau.rest.labels.ResourceDescription} class to implement a 
top-level 
+                               Using the {@link 
org.apache.juneau.rest.helper.ResourceDescription} class to implement a 
top-level 
                                'router' page.
                        <li>
                                Using the {@link 
org.apache.juneau.rest.RestContext#getConfig()} method to access external 
@@ -21381,6 +21381,23 @@
                                        <li class='ja'>{@link 
org.apache.juneau.rest.annotation.Path}
                                        <li class='ja'>{@link 
org.apache.juneau.rest.annotation.Query}
                                </ul>
+                       <li>
+                               "Helper" classes (i.e. reusable beans that can 
be returned by REST methods) have been moved to the following package with some 
new additions:
+                               <ul class='doctree'>
+                                       <li class='jp'>{@link 
org.apache.juneau.rest.helper}
+                                       <ul>
+                                               <li class='jc'>{@link 
org.apache.juneau.rest.helper.BeanDescription}
+                                               <li class='jc'>{@link 
org.apache.juneau.rest.helper.ChildResourceDescriptions}
+                                               <li class='jc'>{@link 
org.apache.juneau.rest.helper.Ok}
+                                               <li class='jc'>{@link 
org.apache.juneau.rest.helper.ReaderResource}
+                                               <li class='jc'>{@link 
org.apache.juneau.rest.helper.ReaderResourceBuilder}
+                                               <li class='jc'>{@link 
org.apache.juneau.rest.helper.Redirect}
+                                               <li class='jc'>{@link 
org.apache.juneau.rest.helper.RedirectServletRoot}
+                                               <li class='jc'>{@link 
org.apache.juneau.rest.helper.ResourceDescription}
+                                               <li class='jc'>{@link 
org.apache.juneau.rest.helper.StreamResource}
+                                               <li class='jc'>{@link 
org.apache.juneau.rest.helper.StreamResourceBuilder}
+                                       </ul>
+                               </ul>
                </ul>
                
                <h5 class='topic w800'>juneau-rest-client</h5>
@@ -21789,8 +21806,8 @@
                        <li>
                                New builder classes:
                                <ul>
-                                       <li>{@link 
org.apache.juneau.rest.ReaderResourceBuilder}
-                                       <li>{@link 
org.apache.juneau.rest.StreamResourceBuilder}
+                                       
<li><code><del>ReaderResourceBuilder</del></code>
+                                       
<li><code><del>StreamResourceBuilder</del></code>
                                </ul>
                        <li>
                                {@link 
org.apache.juneau.rest.RestResponse#getNegotiatedOutputStream()} now returns a 
@@ -22714,7 +22731,7 @@
        )
                                </p>
                        <li>
-                               New {@link 
org.apache.juneau.rest.ReaderResource#toCommentStrippedString()} method.
+                               New 
<code><del>ReaderResource.toCommentStrippedString()</del></code> method.
                        <li>
                                The <code>bpIncludes()</code> and 
<code>bpExcludes()</code> annotations on <ja>@RestMethod</ja>
                                has been replaced with the following:
@@ -23328,8 +23345,8 @@
        )
                                </p>
                        <li><code><del>RestResource.stylesheet()</del></code> 
can now take in a comma-delimited list of stylesheet paths.
-                       <li>{@link org.apache.juneau.rest.StreamResource} can 
now contain multiple sources from a variety of source types (e.g. 
<code><jk>byte</jk>[]</code> arrays, <code>InputStreams</code>, 
<code>Files</code>, etc...)
-                               and is now immutable.  It also includes a new 
{@link org.apache.juneau.rest.StreamResourceBuilder} class.
+                       <li><code><del>StreamResource</del></code> can now 
contain multiple sources from a variety of source types (e.g. 
<code><jk>byte</jk>[]</code> arrays, <code>InputStreams</code>, 
<code>Files</code>, etc...)
+                               and is now immutable.  It also includes a new 
<code><del>StreamResourceBuilder</del></code> class.
                        <li>Simplified remoteable proxies using the 
<code><ja>@RestMethod</ja>(name=<js>"PROXY"</js>)</code> annotation on REST 
methods.
                                Used to expose interface proxies without the 
need for {@link org.apache.juneau.rest.remoteable.RemoteableServlet}.
                        <p class='bcode w800'>
@@ -24239,12 +24256,12 @@
 
                <h5 class='topic w800'>Server</h5>
                <ul class='spaced-list'>
-                       <li>New {@link org.apache.juneau.rest.ReaderResource} 
class.   
+                       <li>New <code><del>ReaderResource</del></code> class.   
                                Represents the contents of a text file with 
convenience methods for resolving
                                <del><code>StringVar</code></del> variables and 
adding HTTP response headers.   
                                REST Java methods can return instances of these 
to serialize <code>Readers</code>
                                        containing text with 
<del><code>StringVarResolver</code></del> variables in them.
-                       <li>New {@link org.apache.juneau.rest.StreamResource} 
class.   
+                       <li>New <code><del>StreamResource</del></code> class.   
                                REST Java methods can return instances of these 
to serialize <code>OutputStreams</code>.
                        <li>Fixed a bug in the stack trace hash algorithm in 
{@link org.apache.juneau.rest.RestException}.
                        <li>New methods in {@link 
org.apache.juneau.rest.RestRequest}:
@@ -24624,7 +24641,7 @@
                                        
<li><del><code>Param.description()</code></del>
                                        
<li><del><code>QParam.description()</code></del>
                                </ul>
-                       <li>Support for sorting resources by name in {@link 
org.apache.juneau.rest.labels.ChildResourceDescriptions}.
+                       <li>Support for sorting resources by name in 
<code><del>ChildResourceDescriptions</del></code>.
                </ul>
                
                <h5 class='topic w800'>Samples</h5>
@@ -24673,7 +24690,7 @@
                <ul class='spaced-list'>
                        <li>New 
<code><del>RestRequest.getServletParentURI()</del></code> method.
                        <li>New <code>$R{servletParentURI}</code> variable.
-                       <li>Removed final modifier from {@link 
org.apache.juneau.rest.labels.ChildResourceDescriptions}.
+                       <li>Removed final modifier from 
<code><del>ChildResourceDescriptions</del></code>.
                </ul>
                
                <h5 class='topic w800'>Samples</h5>
@@ -25119,7 +25136,7 @@
                        Juno 5.1.0.5 is a moderate update.
                </p>
                <ul class='spaced-list'>
-                       <li>New {@link org.apache.juneau.rest.Redirect} class 
that simplifies performing redirections in REST methods.
+                       <li>New <code><del>Redirect</del></code> class that 
simplifies performing redirections in REST methods.
                        <li>New pluggable {@link 
org.apache.juneau.rest.ResponseHandler} class and {@link 
org.apache.juneau.rest.annotation.RestResource#responseHandlers() 
@RestResource.responseHandlers()} annotation
                                for defining customer response handlers for 
special kinds of POJOs.
                        <li>New method 
<del><code>UrlEncodingSerializer.serializeUrlPart(Object)</code></del> method.
@@ -25132,7 +25149,7 @@
                        <li>Fixed bug in {@link 
org.apache.juneau.json.JsonSerializer} where <js>"_class"</js> and 
<js>"items"</js> attributes were not quoted in strict mode when using 
SERIALIZER_addClassAttrs feature.      
                        <li>Fixed bug where <code>Content-Encoding</code> 
and<code>Character-Encoding</code> headers were being set when calling {@link 
org.apache.juneau.rest.RestResponse#getOutputStream()}.
                                These should not be set if interacting with the 
output streams at a low level.
-                       <li>Eliminated various convenience 
<code>RestResponse.sendRedirect(...)</code> methods due to the introduction of 
the {@link org.apache.juneau.rest.Redirect} class.
+                       <li>Eliminated various convenience 
<code>RestResponse.sendRedirect(...)</code> methods due to the introduction of 
the <code><del>Redirect</del></code> class.
                </ul>
        </div>
 
@@ -25284,7 +25301,7 @@
                        <li>Various new methods added to {@link 
org.apache.juneau.internal.StringUtils} and {@link 
org.apache.juneau.internal.ClassUtils}.
                        <li>Improved support on 
<code><del>BeanContext.getClassMetaFromString(String)</del></code>.<br>
                                Now supports resolving <code>"long[]"</code>, 
and so forth.
-                       <li>{@link 
org.apache.juneau.rest.labels.ResourceDescription} name parameter is now 
automatically URL-encoded in links.
+                       <li><code><del>ResourceDescription</del></code> name 
parameter is now automatically URL-encoded in links.
                        <li>{@link org.apache.juneau.rest.RestRequest} now 
correctly handles cases involving URL-encoded characters in the 
                                path info portion of URLs (e.g. 
<code>http://host/contextRoot/foo%2Fbar</code>).
                        <li>Removed lazy-initialization that required locking 
in {@link org.apache.juneau.ClassMeta}.  
@@ -25682,7 +25699,7 @@
                                Child resource paths are specified through 
{@link org.apache.juneau.rest.annotation.RestResource#path() 
@RestResource.path()}.
                </li>
                <li>
-                       New {@link 
org.apache.juneau.rest.labels.ChildResourceDescriptions} bean for automatically 
generating the contents of router resource pages.
+                       New <code><del>ChildResourceDescriptions</del></code> 
bean for automatically generating the contents of router resource pages.
                </li>
                <li>
                                Changed 
<code><ja>@RestMethod</ja>.pattern()</code> to {@link 
org.apache.juneau.rest.annotation.RestMethod#path() @RestMethod.path()} for 
naming consistency.
diff --git 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/DirectoryResource.java
 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/DirectoryResource.java
index 6bfd28c..ca7a2e2 100644
--- 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/DirectoryResource.java
+++ 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/DirectoryResource.java
@@ -26,6 +26,7 @@ import java.util.logging.*;
 import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.converters.*;
+import org.apache.juneau.rest.helper.*;
 import org.apache.juneau.rest.widget.*;
 import org.apache.juneau.utils.*;
 
diff --git 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/DockerRegistryResource.java
 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/DockerRegistryResource.java
index a02f634..b167a76 100644
--- 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/DockerRegistryResource.java
+++ 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/DockerRegistryResource.java
@@ -21,7 +21,7 @@ import org.apache.juneau.config.*;
 import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.client.*;
-import org.apache.juneau.rest.labels.*;
+import org.apache.juneau.rest.helper.*;
 
 /**
  * Sample resource that shows how to mirror query results from a Docker 
registry.
diff --git 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/MethodExampleResource.java
 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/MethodExampleResource.java
index fe3ae03..bcfa53b 100644
--- 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/MethodExampleResource.java
+++ 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/MethodExampleResource.java
@@ -19,7 +19,7 @@ import java.util.*;
 import org.apache.juneau.http.*;
 import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
-import org.apache.juneau.rest.labels.*;
+import org.apache.juneau.rest.helper.*;
 import org.apache.juneau.utils.*;
 
 /**
diff --git 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/PetStoreResource.java
 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/PetStoreResource.java
index 5ca3a92..5a1f779 100644
--- 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/PetStoreResource.java
+++ 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/PetStoreResource.java
@@ -29,6 +29,7 @@ import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.annotation.Body;
 import org.apache.juneau.rest.converters.*;
+import org.apache.juneau.rest.helper.*;
 import org.apache.juneau.rest.widget.*;
 import org.apache.juneau.serializer.*;
 import org.apache.juneau.transforms.*;
diff --git 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/PredefinedLabelsResource.java
 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/PredefinedLabelsResource.java
index e04ae04..73fdd69 100644
--- 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/PredefinedLabelsResource.java
+++ 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/PredefinedLabelsResource.java
@@ -18,7 +18,7 @@ import org.apache.juneau.examples.addressbook.*;
 import org.apache.juneau.html.annotation.*;
 import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
-import org.apache.juneau.rest.labels.*;
+import org.apache.juneau.rest.helper.*;
 import org.apache.juneau.rest.widget.*;
 
 /**
diff --git 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/SystemPropertiesResource.java
 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/SystemPropertiesResource.java
index ca27d3f..0b5b07d 100644
--- 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/SystemPropertiesResource.java
+++ 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/SystemPropertiesResource.java
@@ -23,6 +23,7 @@ import org.apache.juneau.encoders.*;
 import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.annotation.Body;
+import org.apache.juneau.rest.helper.*;
 import org.apache.juneau.rest.widget.*;
 
 @RestResource(
@@ -115,13 +116,13 @@ public class SystemPropertiesResource extends 
BasicRestServlet {
                description="Returns the value of the specified system 
property.",
                swagger={
                        "responses:{",
-                               "200: {description:'The system property value, 
or null if not found.'}",
+                               "200: {description:'The system property value, 
or null if not found'}",
                        "}"
                }
        )
        public String getSystemProperty(
                        @Path(description="The system property name.", 
example="PATH") String propertyName
-               ) throws Throwable {
+               ) {
                
                return System.getProperty(propertyName);
        }
@@ -132,13 +133,13 @@ public class SystemPropertiesResource extends 
BasicRestServlet {
                description="Sets a new value for the specified system 
property.",
                guards=AdminGuard.class
        )
-       public RedirectToRoot setSystemProperty(
+       public RedirectServletRoot setSystemProperty(
                        @Path(description="The system property name") String 
propertyName, 
                        @Body(description="The new system property value") 
String value
                ) throws UserNotAdminException {
                
                System.setProperty(propertyName, value);
-               return new RedirectToRoot();
+               return RedirectServletRoot.INSTANCE;
        }
 
        @RestMethod(
@@ -147,12 +148,12 @@ public class SystemPropertiesResource extends 
BasicRestServlet {
                description="Takes in a map of key/value pairs and creates a 
set of new system properties.",
                guards=AdminGuard.class
        )
-       public RedirectToRoot setSystemProperties(
+       public RedirectServletRoot setSystemProperties(
                        @Body(description="The new system property values", 
example="{key1:'val1',key2:123}") java.util.Properties newProperties
                ) throws UserNotAdminException {
                
                System.setProperties(newProperties);
-               return new RedirectToRoot();
+               return RedirectServletRoot.INSTANCE;
        }
 
        @RestMethod(
@@ -161,12 +162,12 @@ public class SystemPropertiesResource extends 
BasicRestServlet {
                description="Deletes the specified system property.",
                guards=AdminGuard.class
        )
-       public RedirectToRoot deleteSystemProperty(
+       public RedirectServletRoot deleteSystemProperty(
                        @Path(description="The system property name") String 
propertyName
                ) throws UserNotAdminException {
                
                System.clearProperty(propertyName);
-               return new RedirectToRoot();
+               return RedirectServletRoot.INSTANCE;
        }
 
        @RestMethod(
@@ -205,9 +206,13 @@ public class SystemPropertiesResource extends 
BasicRestServlet {
                description="Accepts a simple form post of a system property 
name/value pair.",
                guards=AdminGuard.class
        )
-       public RedirectToRoot formPagePost(@FormData("name") String name, 
@FormData("value") String value) throws UserNotAdminException {
+       public RedirectServletRoot formPagePost(
+                       @FormData("name") String name, 
+                       @FormData("value") String value
+               ) throws UserNotAdminException {
+               
                System.setProperty(name, value);
-               return new RedirectToRoot();
+               return RedirectServletRoot.INSTANCE;
        }
        
        
@@ -223,12 +228,5 @@ public class SystemPropertiesResource extends 
BasicRestServlet {
                        super("User is not an administrator");
                }
        }
-
-       @ResponseInfo(code=302, description="Redirect to root.", 
headers={"Location:{description:'Redirect URI', type:'string'}"}, 
schema="IGNORE")
-       public static class RedirectToRoot extends Redirect {
-               public RedirectToRoot() {
-                       super("servlet:/");
-               }
-       }
        
 }
\ No newline at end of file
diff --git 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/TempDirResource.java
 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/TempDirResource.java
index 280884f..03cc272 100644
--- 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/TempDirResource.java
+++ 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/TempDirResource.java
@@ -24,6 +24,7 @@ import org.apache.commons.io.*;
 import org.apache.juneau.dto.html5.*;
 import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
+import org.apache.juneau.rest.helper.*;
 import org.apache.juneau.rest.widget.*;
 import org.apache.juneau.utils.*;
 
diff --git 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/addressbook/AddressBookResource.java
 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/addressbook/AddressBookResource.java
index a356770..87da92b 100644
--- 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/addressbook/AddressBookResource.java
+++ 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/addressbook/AddressBookResource.java
@@ -30,6 +30,7 @@ import org.apache.juneau.microservice.*;
 import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.converters.*;
+import org.apache.juneau.rest.helper.*;
 import org.apache.juneau.rest.widget.*;
 import org.apache.juneau.transform.*;
 import org.apache.juneau.utils.*;
diff --git 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/petstore/PetStoreResource.java
 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/petstore/PetStoreResource.java
index f81a0ff..18f927d 100644
--- 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/petstore/PetStoreResource.java
+++ 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/petstore/PetStoreResource.java
@@ -13,6 +13,7 @@
 package org.apache.juneau.examples.rest.petstore;
 
 import static org.apache.juneau.dto.swagger.ui.SwaggerUI.*;
+import static org.apache.juneau.rest.helper.Ok.*;
 
 import java.util.*;
 
@@ -20,7 +21,7 @@ import org.apache.juneau.internal.*;
 import org.apache.juneau.microservice.*;
 import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
-import org.apache.juneau.rest.labels.*;
+import org.apache.juneau.rest.helper.*;
 import org.apache.juneau.rest.widget.*;
 
 /**
@@ -474,23 +475,4 @@ public class PetStoreResource extends BasicRestServletJena 
{
                req.getSession().removeAttribute("login-expires");
                return OK;
        }
-       
-       
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-       // Helper beans
-       
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-       
-       static final Ok OK = new Ok();
-       
-       @ResponseInfo(code=200, example="'OK'")
-       public static class Ok {
-
-               @Override
-               public String toString() {
-                       return "OK";
-               }
-               
-               public static Ok fromString(String s) {
-                       return OK;
-               }
-       }
 }
\ No newline at end of file
diff --git 
a/juneau-examples/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/RootResourcesTest.java
 
b/juneau-examples/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/RootResourcesTest.java
index c135a52..32cfa70 100644
--- 
a/juneau-examples/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/RootResourcesTest.java
+++ 
b/juneau-examples/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/RootResourcesTest.java
@@ -19,7 +19,7 @@ import org.apache.juneau.dto.swagger.*;
 import org.apache.juneau.html.*;
 import org.apache.juneau.json.*;
 import org.apache.juneau.rest.client.*;
-import org.apache.juneau.rest.labels.*;
+import org.apache.juneau.rest.helper.*;
 import org.apache.juneau.xml.*;
 import org.junit.*;
 
diff --git 
a/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/DebugResource.java
 
b/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/DebugResource.java
index 957ba0d..c41ba77 100644
--- 
a/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/DebugResource.java
+++ 
b/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/DebugResource.java
@@ -20,7 +20,7 @@ import org.apache.juneau.internal.*;
 import org.apache.juneau.microservice.*;
 import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
-import org.apache.juneau.rest.labels.*;
+import org.apache.juneau.rest.helper.*;
 
 /**
  * Microservice debug utilities.
diff --git 
a/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java
 
b/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java
index 7f1b24f..44e2b7f 100755
--- 
a/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java
+++ 
b/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java
@@ -28,6 +28,7 @@ import org.apache.juneau.annotation.*;
 import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.converters.*;
+import org.apache.juneau.rest.helper.*;
 import org.apache.juneau.transforms.*;
 import org.apache.juneau.utils.*;
 
diff --git 
a/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
 
b/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
index 6ba43d1..aff8328 100755
--- 
a/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
+++ 
b/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
@@ -29,6 +29,7 @@ import org.apache.juneau.dto.LinkString;
 import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.converters.*;
+import org.apache.juneau.rest.helper.*;
 import org.apache.juneau.transforms.*;
 
 /**
diff --git 
a/juneau-microservice/juneau-microservice-test/src/main/java/org/apache/juneau/rest/test/Root.java
 
b/juneau-microservice/juneau-microservice-test/src/main/java/org/apache/juneau/rest/test/Root.java
index f52f038..b5fc1f4 100644
--- 
a/juneau-microservice/juneau-microservice-test/src/main/java/org/apache/juneau/rest/test/Root.java
+++ 
b/juneau-microservice/juneau-microservice-test/src/main/java/org/apache/juneau/rest/test/Root.java
@@ -17,7 +17,7 @@ import static org.apache.juneau.http.HttpMethodName.*;
 import org.apache.juneau.microservice.resources.*;
 import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
-import org.apache.juneau.rest.labels.*;
+import org.apache.juneau.rest.helper.*;
 
 @RestResource(
        path="/",
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestCallHandler.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestCallHandler.java
index 1b8a3a5..ed09093 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestCallHandler.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestCallHandler.java
@@ -24,6 +24,7 @@ import javax.servlet.*;
 import javax.servlet.http.*;
 
 import org.apache.juneau.rest.annotation.*;
+import org.apache.juneau.rest.helper.*;
 import org.apache.juneau.rest.vars.*;
 
 /**
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/BasicRestServletGroup.java
index 5c437ff..7e30ff7 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/BasicRestServletGroup.java
@@ -15,7 +15,7 @@ package org.apache.juneau.rest;
 import static org.apache.juneau.http.HttpMethodName.*;
 
 import org.apache.juneau.rest.annotation.*;
-import org.apache.juneau.rest.labels.*;
+import org.apache.juneau.rest.helper.*;
 
 /**
  * Specialized subclass of {@link BasicRestServlet} for showing "group" pages.
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ResponseHandler.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ResponseHandler.java
index 802d847..4432a08 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ResponseHandler.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ResponseHandler.java
@@ -18,6 +18,7 @@ import javax.servlet.http.*;
 
 import org.apache.juneau.*;
 import org.apache.juneau.rest.annotation.*;
+import org.apache.juneau.rest.helper.*;
 import org.apache.juneau.rest.response.*;
 
 /**
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 2777171..3d212b1 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
@@ -46,6 +46,7 @@ import org.apache.juneau.parser.*;
 import org.apache.juneau.plaintext.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.converters.*;
+import org.apache.juneau.rest.helper.*;
 import org.apache.juneau.rest.response.*;
 import org.apache.juneau.rest.vars.*;
 import org.apache.juneau.rest.widget.*;
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
index f134546..c4c9928 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
@@ -38,6 +38,7 @@ import org.apache.juneau.httppart.*;
 import org.apache.juneau.internal.*;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.rest.annotation.*;
+import org.apache.juneau.rest.helper.*;
 import org.apache.juneau.rest.widget.*;
 import org.apache.juneau.serializer.*;
 import org.apache.juneau.svl.*;
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/labels/BeanDescription.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/BeanDescription.java
similarity index 96%
rename from 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/labels/BeanDescription.java
rename to 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/BeanDescription.java
index 080594d..0d419a6 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/labels/BeanDescription.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/BeanDescription.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.labels;
+package org.apache.juneau.rest.helper;
 
 import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/labels/ChildResourceDescriptions.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/ChildResourceDescriptions.java
similarity index 96%
rename from 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/labels/ChildResourceDescriptions.java
rename to 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/ChildResourceDescriptions.java
index 547acd2..d20e3ae 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/labels/ChildResourceDescriptions.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/ChildResourceDescriptions.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.labels;
+package org.apache.juneau.rest.helper;
 
 import java.util.*;
 
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/RedirectHandler.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/Ok.java
similarity index 59%
copy from 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/RedirectHandler.java
copy to 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/Ok.java
index 798378c..99c7d85 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/RedirectHandler.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/Ok.java
@@ -1,42 +1,45 @@
-// 
***************************************************************************************************************************
-// * 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.response;
-
-import java.io.*;
-
-import org.apache.juneau.rest.*;
-
-/**
- * Response handler for {@link Redirect} objects.
- * 
- * <h5 class='section'>See Also:</h5>
- * <ul>
- *     <li class='link'><a class="juneau-rest-server &gt; " 
href="../../../../../overview-summary.html#juneau-rest-server.MethodReturnTypes">Overview
 &gt; Method Return Types</a>
- * </ul>
- */
-public final class RedirectHandler implements ResponseHandler {
-
-       @Override /* ResponseHandler */
-       public boolean handle(RestRequest req, RestResponse res, Object output) 
throws IOException, RestException {
-               if (output instanceof Redirect) {
-                       Redirect r = (Redirect)output;
-                       String uri = req.getUriResolver().resolve(r.getURI());
-                       int rc = r.getHttpResponseCode();
-                       if (rc != 0)
-                               res.setStatus(rc);   // TODO - This may get 
ignored by the call below.
-                       res.sendRedirect(uri);
-                       return true;
-               }
-               return false;
-       }
-}
+// 
***************************************************************************************************************************
+// * 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.helper;
+
+import org.apache.juneau.rest.annotation.*;
+
+/**
+ * Represents a simple OK REST response.
+ * 
+ * <p>
+ * The response consist of the serialized string <js>"OK"</js>.
+ */
+@ResponseInfo(code=200, example="'OK'")
+public class Ok {
+       
+       /**
+        * Reusable instance.
+        */
+       public static final Ok OK = new Ok();
+
+       @Override /* Object */
+       public String toString() {
+               return "OK";
+       }
+       
+       /**
+        * Used to convert example into an OK object.
+        * 
+        * @param s Ignored.
+        * @return The static {@link #OK} object.
+        */
+       public static Ok fromString(String s) {
+               return OK;
+       }
+}
\ No newline at end of file
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ReaderResource.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/ReaderResource.java
similarity index 96%
rename from 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ReaderResource.java
rename to 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/ReaderResource.java
index c235cbd..d3d2360 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ReaderResource.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/ReaderResource.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.helper;
 
 import static org.apache.juneau.internal.CollectionUtils.*;
 import static org.apache.juneau.internal.IOUtils.*;
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ReaderResourceBuilder.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/ReaderResourceBuilder.java
similarity index 99%
rename from 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ReaderResourceBuilder.java
rename to 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/ReaderResourceBuilder.java
index 6cc44c7..6386433 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ReaderResourceBuilder.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/ReaderResourceBuilder.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.helper;
 
 import java.io.*;
 import java.util.*;
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/Redirect.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/Redirect.java
similarity index 92%
rename from 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/Redirect.java
rename to 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/Redirect.java
index ce222f6..3dcd402 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/Redirect.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/Redirect.java
@@ -10,13 +10,15 @@
 // * "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.helper;
 
 import static org.apache.juneau.internal.StringUtils.*;
 
 import java.net.*;
 import java.text.*;
 
+import org.apache.juneau.rest.annotation.*;
+
 /**
  * REST methods can return this object as a shortcut for performing <code>HTTP 
302</code> redirects.
  * 
@@ -25,6 +27,7 @@ import java.text.*;
  *     <li class='link'><a class="doclink" 
href="../../../../overview-summary.html#juneau-rest-server.Redirect">Overview 
&gt; juneau-rest-server &gt; Redirect</a>
  * </ul>
  */
+@ResponseInfo(code=302, description="Redirect", 
headers={"Location:{description:'Redirect URI', type:'string', format:'uri'}"}, 
schema="IGNORE")
 public class Redirect {
 
        private final int httpResponseCode;
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/RedirectHandler.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/RedirectServletRoot.java
similarity index 59%
copy from 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/RedirectHandler.java
copy to 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/RedirectServletRoot.java
index 798378c..71f6f2a 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/RedirectHandler.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/RedirectServletRoot.java
@@ -1,42 +1,34 @@
-// 
***************************************************************************************************************************
-// * 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.response;
-
-import java.io.*;
-
-import org.apache.juneau.rest.*;
-
-/**
- * Response handler for {@link Redirect} objects.
- * 
- * <h5 class='section'>See Also:</h5>
- * <ul>
- *     <li class='link'><a class="juneau-rest-server &gt; " 
href="../../../../../overview-summary.html#juneau-rest-server.MethodReturnTypes">Overview
 &gt; Method Return Types</a>
- * </ul>
- */
-public final class RedirectHandler implements ResponseHandler {
-
-       @Override /* ResponseHandler */
-       public boolean handle(RestRequest req, RestResponse res, Object output) 
throws IOException, RestException {
-               if (output instanceof Redirect) {
-                       Redirect r = (Redirect)output;
-                       String uri = req.getUriResolver().resolve(r.getURI());
-                       int rc = r.getHttpResponseCode();
-                       if (rc != 0)
-                               res.setStatus(rc);   // TODO - This may get 
ignored by the call below.
-                       res.sendRedirect(uri);
-                       return true;
-               }
-               return false;
-       }
-}
+// 
***************************************************************************************************************************
+// * 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.helper;
+
+import org.apache.juneau.rest.annotation.*;
+
+/**
+ * Convenience subclass of {@link Redirect} for redirecting a response to the 
servlet root.
+ */
+@ResponseInfo(description="Redirect to servlet root")
+public class RedirectServletRoot extends Redirect {
+       
+       /**
+        * Reusable instance.
+        */
+       public static final RedirectServletRoot INSTANCE = new 
RedirectServletRoot();
+       
+       /**
+        * Constructor.
+        */
+       public RedirectServletRoot() {
+               super("servlet:/");
+       }
+}
\ No newline at end of file
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/labels/ResourceDescription.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/ResourceDescription.java
similarity index 94%
rename from 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/labels/ResourceDescription.java
rename to 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/ResourceDescription.java
index 68376b0..d419358 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/labels/ResourceDescription.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/ResourceDescription.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.labels;
+package org.apache.juneau.rest.helper;
 
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.html.annotation.*;
+import org.apache.juneau.rest.annotation.*;
 
 /**
  * Shortcut label for child resources.  Typically used in router resources.
@@ -29,6 +30,7 @@ import org.apache.juneau.html.annotation.*;
  * </ul>
  */
 @Bean(properties="name,description", fluentSetters=true)
+@ResponseInfo(schema="IGNORE")
 public final class ResourceDescription implements 
Comparable<ResourceDescription> {
 
        private String name, description;
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/StreamResource.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/StreamResource.java
similarity index 96%
rename from 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/StreamResource.java
rename to 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/StreamResource.java
index 999c80e..0a68c36 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/StreamResource.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/StreamResource.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.helper;
 
 import static org.apache.juneau.internal.CollectionUtils.*;
 import static org.apache.juneau.internal.IOUtils.*;
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/StreamResourceBuilder.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/StreamResourceBuilder.java
similarity index 99%
rename from 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/StreamResourceBuilder.java
rename to 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/StreamResourceBuilder.java
index df55172..226de63 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/StreamResourceBuilder.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/StreamResourceBuilder.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.helper;
 
 import java.io.*;
 import java.util.*;
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/labels/package-info.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/package-info.java
similarity index 93%
rename from 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/labels/package-info.java
rename to 
juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/package-info.java
index 3ea441b..fa950f7 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/labels/package-info.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/package-info.java
@@ -13,6 +13,6 @@
  
***************************************************************************************************************************/
 
 /**
- * REST Interface Label Classes
+ * REST Interface Helper Classes
  */
-package org.apache.juneau.rest.labels;
\ No newline at end of file
+package org.apache.juneau.rest.helper;
\ No newline at end of file
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/RedirectHandler.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/RedirectHandler.java
index 798378c..9964c42 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/RedirectHandler.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/RedirectHandler.java
@@ -15,6 +15,7 @@ package org.apache.juneau.rest.response;
 import java.io.*;
 
 import org.apache.juneau.rest.*;
+import org.apache.juneau.rest.helper.*;
 
 /**
  * Response handler for {@link Redirect} objects.
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/StreamableHandler.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/StreamableHandler.java
index 766016b..6a92040 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/StreamableHandler.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/StreamableHandler.java
@@ -20,6 +20,7 @@ import java.util.*;
 import org.apache.juneau.*;
 import org.apache.juneau.http.*;
 import org.apache.juneau.rest.*;
+import org.apache.juneau.rest.helper.*;
 
 /**
  * Response handler for {@link Writable} and {@link ReaderResource} objects.
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/WritableHandler.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/WritableHandler.java
index dad3bec..b5f37b8 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/WritableHandler.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/WritableHandler.java
@@ -20,6 +20,7 @@ import java.util.*;
 import org.apache.juneau.*;
 import org.apache.juneau.http.*;
 import org.apache.juneau.rest.*;
+import org.apache.juneau.rest.helper.*;
 
 /**
  * Response handler for {@link Writable} and {@link ReaderResource} objects.
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/vars/FileVar.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/vars/FileVar.java
index 1f3e3e8..384c81b 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/vars/FileVar.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/vars/FileVar.java
@@ -13,6 +13,7 @@
 package org.apache.juneau.rest.vars;
 
 import org.apache.juneau.rest.*;
+import org.apache.juneau.rest.helper.*;
 import org.apache.juneau.svl.*;
 import org.apache.juneau.utils.*;
 

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

Reply via email to