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 56ae132  Update docs.
56ae132 is described below

commit 56ae132afee047c615c6b39b374d8cd1274dec69
Author: JamesBognar <[email protected]>
AuthorDate: Sat Feb 13 20:02:45 2021 -0500

    Update docs.
---
 .../13.DynamicallyAppliedAnnotations.html          |  2 +-
 .../28.OpenApiDetails/02.OpenApiSerializers.html   |  4 +-
 .../01.RestHelloWorldExample.html                  |  2 +-
 .../05.BasicRestServletGroup.html                  |  2 +-
 .../03.RestInstantiation/06.BasicRestGroup.html    |  2 +-
 .../04.RestAnnotation/02.RestPath.html             | 10 +--
 .../06.RestMethod/01.RestmParameters.html          | 34 +++++-----
 .../06.RestMethod/02.RestmRestRequest.html         |  4 +-
 .../06.RestMethod/03.RestmRestResponse.html        |  4 +-
 .../06.RestMethod/04.RestmRequestBody.html         | 10 +--
 .../06.RestMethod/05.RestmRequestHeaders.html      | 14 ++--
 .../06.RestMethod/06.RestmRequestAttributes.html   | 12 ++--
 .../06.RestMethod/07.RestmRequestQuery.html        | 14 ++--
 .../06.RestMethod/08.RestmRequestFormData.html     | 14 ++--
 .../06.RestMethod/09.RestmPath.html                | 32 ++++------
 .../06.RestMethod/10.RestmRequestPathMatch.html    | 16 ++---
 .../06.RestMethod/11.RestmReturnTypes.html         | 32 +++++-----
 .../06.RestMethod/12.RestmReaderResource.html      |  6 +-
 .../06.RestMethod/13.RestmStreamResource.html      |  4 +-
 .../06.RestMethod/14.RestmMatchers.html            |  8 +--
 .../06.RestMethod/15.RestmPredefinedResponses.html | 20 +++---
 .../16.RestmPredefinedExceptions.html              |  8 +--
 .../17.RestmPredefinedHelperBeans.html             | 36 +++++------
 .../Topics/06.juneau-rest-server/07.RestRpc.html   | 16 ++---
 .../08.RestOpenApiSchemaPartParsing.html           | 26 ++++----
 .../09.RestOpenApiSchemaPartSerializing.html       | 10 +--
 .../01.RestBodyAnnotation.html                     | 19 +++---
 .../02.RestFormDataAnnotation.html                 | 36 +++++------
 .../03.RestHasFormDataAnnotation.html              | 10 +--
 .../04.RestQueryAnnotation.html                    | 36 +++++------
 .../05.RestHasQueryAnnotation.html                 | 10 +--
 .../06.RestHeaderAnnotation.html                   | 26 ++++----
 .../07.RestPathAnnotation.html                     | 38 +++++------
 .../08.RestRequestAnnotation.html                  | 20 +++---
 .../09.RestResponseAnnotation.html                 | 74 +++++++++++-----------
 .../10.RestResponseHeaderAnnotation.html           | 14 ++--
 .../11.RestResponseStatusAnnotation.html           | 12 ++--
 .../11.RestHandlingFormPosts.html                  |  6 +-
 .../12.RestHandlingMultiPartFormPosts.html         | 48 +++++++-------
 .../06.juneau-rest-server/13.RestSerializers.html  | 14 ++--
 .../06.juneau-rest-server/14.RestParsers.html      | 16 ++---
 .../15.RestConfigurableProperties.html             |  8 +--
 .../06.juneau-rest-server/18.RestHandlingUris.html |  2 +-
 .../06.juneau-rest-server/19.RestGuards.html       | 18 +++---
 .../06.juneau-rest-server/21.RestConverters.html   | 30 ++++-----
 .../06.juneau-rest-server/22.RestMessages.html     |  2 +-
 .../25.RestConfigurationFiles.html                 | 12 ++--
 .../27.RestClientVersioning.html                   |  6 +-
 .../01.RestSwaggerBasicRestServlet.html            |  4 +-
 .../29.RestSwagger/03.RestSwaggerTags.html         |  3 +-
 .../29.RestSwagger/04.RestSwaggerOperations.html   |  6 +-
 .../29.RestSwagger/05.RestSwaggerParameters.html   | 17 ++---
 .../06.RestSwaggerParameterExamples.html           |  5 +-
 .../29.RestSwagger/07.RestSwaggerResponses.html    |  3 +-
 .../08.RestSwaggerResponseExamples.html            | 29 ++++-----
 .../29.RestSwagger/09.RestSwaggerModels.html       |  2 +-
 .../02.RestHtmlWidgets.html                        | 16 ++---
 .../03.RestHtmlPredefinedWidgets.html              | 13 ++--
 .../33.RestLoggingAndDebugging.html                | 26 ++++----
 .../35.RestOverloadingHttpMethods.html             |  2 +-
 .../37.RestCustomSerializersAndParsers.html        | 74 ++++++++++------------
 .../11.RestcProxies/01.RestcRemote.html            | 12 ++--
 .../10.juneau-rest-mock/01.MockRestClient.html     |  8 +--
 .../03.MicroserviceJettyResourceClasses.html       |  2 +-
 .../05.MicroserviceJettyConfig.html                | 12 ++--
 .../02.RestExamplesHelloWorldResource.html         |  2 +-
 .../03.RestExamplesDtoExamples.html                | 14 ++--
 .../04.RestExamplesConfigResource.html             | 52 +++++++--------
 68 files changed, 535 insertions(+), 566 deletions(-)

diff --git 
a/juneau-doc/docs/Topics/02.juneau-marshall/13.DynamicallyAppliedAnnotations.html
 
b/juneau-doc/docs/Topics/02.juneau-marshall/13.DynamicallyAppliedAnnotations.html
index 7216ebd..99cb23a 100644
--- 
a/juneau-doc/docs/Topics/02.juneau-marshall/13.DynamicallyAppliedAnnotations.html
+++ 
b/juneau-doc/docs/Topics/02.juneau-marshall/13.DynamicallyAppliedAnnotations.html
@@ -54,7 +54,7 @@ Dynamically Applied Annotations
        (described later in {@doc juneau-rest-server}): 
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja> 
+       <ja>@RestGet</ja> 
        <ja>@BeanConfig</ja>(
                applyBean={
                        <ja>@Bean</ja>(on=<js>"Address"</js>, 
bpi=<js>"AddressBean: street,city,state"</js>)
diff --git 
a/juneau-doc/docs/Topics/02.juneau-marshall/28.OpenApiDetails/02.OpenApiSerializers.html
 
b/juneau-doc/docs/Topics/02.juneau-marshall/28.OpenApiDetails/02.OpenApiSerializers.html
index 4ce27fd..8298ad6 100644
--- 
a/juneau-doc/docs/Topics/02.juneau-marshall/28.OpenApiDetails/02.OpenApiSerializers.html
+++ 
b/juneau-doc/docs/Topics/02.juneau-marshall/28.OpenApiDetails/02.OpenApiSerializers.html
@@ -25,7 +25,7 @@ OpenAPI Serializers
        The following example is a preview showing an HTTP body defined as 
pipe-delimited list of comma-delimited numbers (e.g. 
<js>"1,2,3|4,5,6|7,8,9"</js>):
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<js>"POST"</js>, path=<js>"/2dLongArray"</js>)  
+       <ja>@RestPost</ja>(<js>"/2dLongArray"</js>)     
        <jk>public void</jk> post2dLongArray(
                <ja>@Body</ja>(
                        schema=<ja>@Schema</ja>(
@@ -51,7 +51,7 @@ OpenAPI Serializers
        ) {...}
 
        <jc>// Alternate shortened format.</jc>
-       <ja>@RestOp</ja>(method=<js>"POST"</js>, path=<js>"/2dLongArray"</js>)  
+       <ja>@RestPost</ja>(<js>"/2dLongArray"</js>)     
        <jk>public void</jk> post2dLongArray(
                <ja>@Body</ja>(
                        schema=<ja>@Schema</ja>(
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/01.RestHelloWorldExample.html 
b/juneau-doc/docs/Topics/06.juneau-rest-server/01.RestHelloWorldExample.html
index de05fd2..cf1e3be 100644
--- a/juneau-doc/docs/Topics/06.juneau-rest-server/01.RestHelloWorldExample.html
+++ b/juneau-doc/docs/Topics/06.juneau-rest-server/01.RestHelloWorldExample.html
@@ -65,7 +65,7 @@ Hello World Example
        )
        <jk>public class</jk> HelloWorldResource <jk>extends</jk> 
BasicUniversalRest {
        
-               <ja>@RestOp</ja>(method=<jsf>GET</jsf>, path=<js>"/*"</js>, 
summary=<js>"Responds with \"Hello world!\""</js>)
+               <ja>@RestGet</ja>(path=<js>"/*"</js>, summary=<js>"Responds 
with \"Hello world!\""</js>)
                <jk>public</jk> String sayHello() {
                        <jk>return</jk> <js>"Hello world!"</js>;
                }
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/03.RestInstantiation/05.BasicRestServletGroup.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/03.RestInstantiation/05.BasicRestServletGroup.html
index 3dd6a7a..65a3fd1 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/03.RestInstantiation/05.BasicRestServletGroup.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/03.RestInstantiation/05.BasicRestServletGroup.html
@@ -63,7 +63,7 @@ BasicRestServletGroup
        
        <jk>public class</jk> BasicRestServletGroup <jk>extends</jk> 
BasicRestServlet {
        
-               <ja>@RestOp</ja>(method=<jsf>GET</jsf>, path=<js>"/"</js>, 
description=<js>"Child resources"</js>)
+               <ja>@RestGet</ja>(path=<js>"/"</js>, description=<js>"Child 
resources"</js>)
                <jk>public</jk> ChildResourceDescriptions 
getChildren(RestRequest req) {
                        <jk>return new</jk> 
ChildResourceDescriptions(<jk>this</jk>, req);
                }
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/03.RestInstantiation/06.BasicRestGroup.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/03.RestInstantiation/06.BasicRestGroup.html
index 77dda6b..6078c8f 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/03.RestInstantiation/06.BasicRestGroup.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/03.RestInstantiation/06.BasicRestGroup.html
@@ -28,7 +28,7 @@ BasicRestGroup
        
        <jk>public class</jk> BasicRestGroup <jk>extends</jk> BasicRest {
        
-               <ja>@RestOp</ja>(method=<jsf>GET</jsf>, path=<js>"/"</js>, 
description=<js>"Child resources"</js>)
+               <ja>@RestGet</ja>(path=<js>"/"</js>, description=<js>"Child 
resources"</js>)
                <jk>public</jk> ChildResourceDescriptions 
getChildren(RestRequest req) {
                        <jk>return new</jk> 
ChildResourceDescriptions(<jk>this</jk>, req);
                }
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/04.RestAnnotation/02.RestPath.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/04.RestAnnotation/02.RestPath.html
index 946fcd5..5f44d0b 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/04.RestAnnotation/02.RestPath.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/04.RestAnnotation/02.RestPath.html
@@ -54,9 +54,7 @@
                path=<js>"/grandchild"</js>
        )
        <jk>public class</jk> GrandchildResource {
-               <ja>@RestOp</ja>(
-                       path=<js>"/"</js>
-               )
+               <ja>@RestGet</ja>(<js>"/"</js>)
                <jk>public</jk> String sayHello() {
                        <jk>return</jk> <js>"Hello!"</js>;
                }
@@ -120,10 +118,8 @@
        )
        <jk>public class</jk> MyResource <jk>extends</jk> BasicRestServlet {
 
-               <ja>@RestOp</ja>(
-                       path=<js>"/{baz}"</js>
-               )
-               <jk>public void</jk> String doX(<ja>@Path</ja> String foo, 
<ja>@Path</ja> <jk>int</jk> bar, <ja>@Path</ja> MyPojo baz) {
+               <ja>@RestPost</ja>(<js>"/{baz}"</js>)
+               <jk>public void</jk> String doX(<ja>@Path</ja> String 
<jv>foo</jv>, <ja>@Path</ja> <jk>int</jk> <jv>bar</jv>, <ja>@Path</ja> MyPojo 
<jv>baz</jv>) {
                        ...
                }
        }
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/01.RestmParameters.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/01.RestmParameters.html
index 7488bba..31aedd7 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/01.RestmParameters.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/01.RestmParameters.html
@@ -115,24 +115,24 @@ Java Method Parameters
 </ul>
 <h5 class='figure'>Example:</h5>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<jsf>GET</jsf>, 
path=<js>"/example1/{a1}/{a2}/{a3}/*"</js>)
+       <ja>@RestGet</ja>(<js>"/example1/{a1}/{a2}/{a3}/*"</js>)
        <jk>public</jk> String doGetExample1(
-               RestRequest req,
-               RestResponse res,
-               <ja>@Method</ja> String method,
-               <ja>@Path</ja>(<js>"a1"</js>) String a1,
-               <ja>@Path</ja>(<js>"a2"</js>) <jk>int</jk> a2,
-               <ja>@Path</ja>(<js>"a3"</js>) UUID a3,
-               <ja>@Query</ja>(<js>"p1"</js>) <jk>int</jk> p1,
-               <ja>@Query</ja>(<js>"p2"</js>) String p2,
-               <ja>@Query</ja>(<js>"p3"</js>) UUID p3,
-               <ja>@HasQuery</ja>(<js>"p3"</js>) boolean hasP3,
-               <ja>@Path</ja>(<js>"/*"</js>) String remainder,
-               <ja>@Header</ja>(<js>"Accept-Language"</js>) String lang,
-               <ja>@Header</ja>(<js>"Accept"</js>) String accept,
-               <ja>@Header</ja>(<js>"DNT"</js>) <jk>int</jk> doNotTrack,
-               RequestProperties properties,
-               ResourceBundle nls
+               RestRequest <jv>req</jv>,
+               RestResponse <jv>res</jv>,
+               <ja>@Method</ja> String <jv>method</jv>,
+               <ja>@Path</ja>(<js>"a1"</js>) String <jv>a1</jv>,
+               <ja>@Path</ja>(<js>"a2"</js>) <jk>int</jk> <jv>a2</jv>,
+               <ja>@Path</ja>(<js>"a3"</js>) UUID <jv>a3</jv>,
+               <ja>@Query</ja>(<js>"p1"</js>) <jk>int</jk> <jv>p1</jv>,
+               <ja>@Query</ja>(<js>"p2"</js>) String <jv>p2</jv>,
+               <ja>@Query</ja>(<js>"p3"</js>) UUID <jv>p3</jv>,
+               <ja>@HasQuery</ja>(<js>"p3"</js>) boolean <jv>hasP3</jv>,
+               <ja>@Path</ja>(<js>"/*"</js>) String <jv>remainder</jv>,
+               <ja>@Header</ja>(<js>"Accept-Language"</js>) String 
<jv>lang</jv>,
+               <ja>@Header</ja>(<js>"Accept"</js>) String <jv>accept</jv>,
+               <ja>@Header</ja>(<js>"DNT"</js>) <jk>int</jk> 
<jv>doNotTrack</jv>,
+               RequestAttributes <jv>attributes</jv>,
+               ResourceBundle <jv>nls</jv>
        ) {
                <jc>// Do something with all of those</jc>
        }
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/02.RestmRestRequest.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/02.RestmRestRequest.html
index 39b251b..2059f33 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/02.RestmRestRequest.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/02.RestmRestRequest.html
@@ -21,8 +21,8 @@ RestRequest
        It can be accessed by passing it as a parameter on your REST Java 
method:
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(...)
-       <jk>public</jk> Object myMethod(RestRequest req) {...}                  
+       <ja>@RestPost</ja>(...)
+       <jk>public</jk> Object myMethod(RestRequest <jv>req</jv>) {...}         
        
 </p>
 <p>
        There are many useful methods on this object, but the main ones are 
shown below:
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/03.RestmRestResponse.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/03.RestmRestResponse.html
index ae04dab..3372826 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/03.RestmRestResponse.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/03.RestmRestResponse.html
@@ -21,8 +21,8 @@ RestResponse
        It can be accessed by passing it as a parameter on your REST Java 
method:
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(...)
-       <jk>public</jk> Object myMethod(RestResponse req) {...}                 
+       <ja>@RestPost</ja>(...)
+       <jk>public</jk> Object myMethod(RestResponse <jv>req</jv>) {...}        
                
 </p>
 <p>
        Some important methods on this class are:
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/04.RestmRequestBody.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/04.RestmRequestBody.html
index a8e4975..1617f92 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/04.RestmRequestBody.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/04.RestmRequestBody.html
@@ -20,15 +20,15 @@ RequestBody
        It can be accessed by passing it as a parameter on your REST Java 
method:
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(...)
-       <jk>public</jk> Object myMethod(RequestBody body) {...}                 
+       <ja>@RestPost</ja>(...)
+       <jk>public</jk> Object myMethod(RequestBody <jv>body</jv>) {...}        
                
 </p>
 <h5 class='figure'>Example:</h5>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(...)
-       <jk>public void</jk> doPost(RequestBody body) {
+       <ja>@RestPost</ja>(...)
+       <jk>public void</jk> doPost(RequestBody <jv>body</jv>) {
                <jc>// Convert body to a linked list of Person objects.</jc>
-               List&lt;Person&gt; l = body.asType(LinkedList.<jk>class</jk>, 
Person.<jk>class</jk>);
+               List&lt;Person&gt; <jv>list</jv> = 
<jv>body</jv>.asType(LinkedList.<jk>class</jk>, Person.<jk>class</jk>);
                ...
        }
 </p>
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/05.RestmRequestHeaders.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/05.RestmRequestHeaders.html
index f5cdd13..b240fd3 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/05.RestmRequestHeaders.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/05.RestmRequestHeaders.html
@@ -20,22 +20,22 @@ RequestHeaders
        It can be accessed by passing it as a parameter on your REST Java 
method:
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(...)
-       <jk>public</jk> Object myMethod(RequestHeaders headers) {...}           
        
+       <ja>@RestPost</ja>(...)
+       <jk>public</jk> Object myMethod(RequestHeaders <jv>headers</jv>) {...}  
                
 </p>
 <h5 class='figure'>Example:</h5>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(...)
-       <jk>public</jk> Object myMethod(RequestHeaders headers) {
+       <ja>@RestPost</ja>(...)
+       <jk>public</jk> Object myMethod(RequestHeaders <jv>headers</jv>) {
 
                <jc>// Add a default value.</jc>
-               headers.addDefault(<js>"ETag"</js>, <jsf>DEFAULT_UUID</jsf>);
+               <jv>headers</jv>.addDefault(<js>"ETag"</js>, 
<jsf>DEFAULT_UUID</jsf>);
        
                <jc>// Get a header value as a POJO.</jc>
-               UUID etag = headers.get(<js>"ETag"</js>, UUID.<jk>class</jk>);
+               UUID <jv>etag</jv> = <jv>headers</jv>.get(<js>"ETag"</js>, 
UUID.<jk>class</jk>);
        
                <jc>// Get a standard header.</jc>
-               CacheControl = headers.getCacheControl();
+               CacheControl <jv>cacheControl</jv> = 
<jv>headers</jv>.getCacheControl().orElse(<jk>null</jk>);
        }                       
 </p>
 <p>
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/06.RestmRequestAttributes.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/06.RestmRequestAttributes.html
index c04fc74..0ba064f 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/06.RestmRequestAttributes.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/06.RestmRequestAttributes.html
@@ -26,19 +26,19 @@ RequestAttributes
        that API are also available when working with request attributes: 
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(...)
-       <jk>public</jk> Object myMethod(RequestAttributes attributes) {...}     
                
+       <ja>@RestPost</ja>(...)
+       <jk>public</jk> Object myMethod(RequestAttributes <jv>attributes</jv>) 
{...}                    
 </p>
 <h5 class='figure'>Example:</h5>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(...)
-       <jk>public</jk> Object myMethod(RequestAttributes attributes) {
+       <ja>@RestPost</ja>(...)
+       <jk>public</jk> Object myMethod(RequestAttributes <jv>attributes</jv>) {
 
                <jc>// Add a default value.</jc>
-               attributes.putIfNotExists(<js>"Foo"</js>, 123);
+               <jv>attributes</jv>.putIfNotExists(<js>"Foo"</js>, 123);
        
                <jc>// Get an attribute value as a POJO.</jc>
-               UUID etag = attributes.get(<js>"ETag"</js>, 
UUID.<jk>class</jk>);
+               UUID <jv>etag</jv> = <jv>attributes</jv>.get(<js>"ETag"</js>, 
UUID.<jk>class</jk>);
        }                       
 </p>
 <p>
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/07.RestmRequestQuery.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/07.RestmRequestQuery.html
index ccc70b8..0dbb4dd 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/07.RestmRequestQuery.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/07.RestmRequestQuery.html
@@ -20,18 +20,18 @@ RequestQuery
        It can be accessed by passing it as a parameter on your REST Java 
method:
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(...)
-       <jk>public</jk> Object myMethod(RequestQuery query) {...}               
        
+       <ja>@RestPost</ja>(...)
+       <jk>public</jk> Object myMethod(RequestQuery <jv>query</jv>) {...}      
                
 </p>
 <h5 class='figure'>Example:</h5>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(...)
-       <jk>public</jk> Object myMethod(RequestQuery query) {
+       <ja>@RestPost</ja>(...)
+       <jk>public</jk> Object myMethod(RequestQuery <jv>query</jv>) {
 
                <jc>// Get query parameters converted to various types.</jc>
-               <jk>int</jk> p1 = query.get(<js>"p1"</js>, 0, 
<jk>int</jk>.<jk>class</jk>);
-               String p2 = query.get(<js>"p2"</js>, String.<jk>class</jk>);
-               UUID p3 = query.get(<js>"p3"</js>, UUID.<jk>class</jk>);
+               <jk>int</jk> <jv>p1</jv> = <jv>query</jv>.get(<js>"p1"</js>, 0, 
<jk>int</jk>.<jk>class</jk>);
+               String <jv>p2</jv> = <jv>query</jv>.get(<js>"p2"</js>, 
String.<jk>class</jk>);
+               UUID <jv>p3</jv> = <jv>query</jv>.get(<js>"p3"</js>, 
UUID.<jk>class</jk>);
         }                      
 </p>
 <p>
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/08.RestmRequestFormData.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/08.RestmRequestFormData.html
index af5eace..47457d7 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/08.RestmRequestFormData.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/08.RestmRequestFormData.html
@@ -20,18 +20,18 @@ RequestFormData
        It can be accessed by passing it as a parameter on your REST Java 
method:
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(...)
-       <jk>public</jk> Object myMethod(RequestFormData query) {...}            
        
+       <ja>@RestPost</ja>(...)
+       <jk>public</jk> Object myMethod(RequestFormData <jv>formData</jv>) 
{...}                        
 </p>
 <h5 class='figure'>Example:</h5>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(...)
-       <jk>public</jk> Object myMethod(RequestFormData formData) {
+       <ja>@RestPost</ja>(...)
+       <jk>public</jk> Object myMethod(RequestFormData <jv>formData</jv>) {
 
                <jc>// Get query parameters converted to various types.</jc>
-               <jk>int</jk> p1 = formData.get(<js>"p1"</js>, 0, 
<jk>int</jk>.<jk>class</jk>);
-               String p2 = formData.get(<js>"p2"</js>, String.<jk>class</jk>);
-               UUID p3 = formData.get(<js>"p3"</js>, UUID.<jk>class</jk>);
+               <jk>int</jk> <jv>p1</jv> = <jv>formData</jv>.get(<js>"p1"</js>, 
0, <jk>int</jk>.<jk>class</jk>);
+               String <jv>p2</jv> = <jv>formData<jv>.get(<js>"p2"</js>, 
String.<jk>class</jk>);
+               UUID <jv>p3</jv> = <jv>formData</jv>.get(<js>"p3"</js>, 
UUID.<jk>class</jk>);
         }                      
 </p>
 <p>
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/09.RestmPath.html 
b/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/09.RestmPath.html
index 589661b..f0eabaa 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/09.RestmPath.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/09.RestmPath.html
@@ -28,20 +28,20 @@
 </p>
 <p class='bpcode w800'>
        <jc>// Default method</jc>
-       <ja>@RestOp</ja>(method=<jsf>GET</jsf>, path=<js>"/*"</js>)
+       <ja>@RestGet</ja>(path=<js>"/*"</js>)
        <jk>public void</jk> doGetDefault() {
                ...
        }
 
        <jc>// Method with path pattern</jc>
-       <ja>@RestOp</ja>(method=<jsf>GET</jsf>, path=<js>"/xxx"</js>)
+       <ja>@RestGet</ja>(path=<js>"/xxx"</js>)
        <jk>public void</jk> doGetNoArgs(...) {
                ...
        }
 
        <jc>// Method with path pattern with arguments</jc>
-       <ja>@RestOp</ja>(method=<jsf>GET</jsf>, 
path=<js>"/xxx/{foo}/{bar}/{baz}/{bing}"</js>)
-       <jk>public void</jk> doGetWithArgs(<ja>@Path</ja>(<js>"foo"</js>) 
String foo, <ja>@Path</ja>(<js>"bar"</js>) <jk>int</jk> bar, 
<ja>@Path</ja>(<js>"baz"</js>) MyEnum baz, <ja>@Path</ja>(<js>"bing"</js>) UUID 
bing) {
+       <ja>@RestGet</ja>(path=<js>"/xxx/{foo}/{bar}/{baz}/{bing}"</js>)
+       <jk>public void</jk> doGetWithArgs(<ja>@Path</ja>(<js>"foo"</js>) 
String <jv>foo</jv>, <ja>@Path</ja>(<js>"bar"</js>) <jk>int</jk> <jv>bar</jv>, 
<ja>@Path</ja>(<js>"baz"</js>) MyEnum <jv>baz</jv>, 
<ja>@Path</ja>(<js>"bing"</js>) UUID <jv>qux</jv>) {
                ...
        }
 </p>
@@ -51,36 +51,30 @@
 </p>
 <p class='bpcode w800'>
        <jc>// Try first </jc>
-       <ja>@RestOp</ja>(method=<jsf>GET</jsf>, path=<js>"/foo/bar"</js>)
+       <ja>@RestGet</ja>(<js>"/foo/bar"</js>)
        <jk>public void</jk> method1() {
                ...
        }
 
        <jc>// Try second</jc>
-       <ja>@RestOp</ja>(method=<jsf>GET</jsf>, path=<js>"/foo/{bar}"</js>)
+       <ja>@RestGet</ja>(<js>"/foo/{bar}"</js>)
        <jk>public void</jk> method2(...) {
                ...
        }
 
        <jc>// Try third</jc>
-       <ja>@RestOp</ja>(method=<jsf>GET</jsf>, path=<js>"/foo/*"</js>)
+       <ja>@RestGet</ja>(<js>"/foo/*"</js>)
        <jk>public void</jk> method3(...) {
                ...
        }
 
        <jc>// Try last</jc>
-       <ja>@RestOp</ja>(method=<jsf>GET</jsf>, path=<js>"/*"</js>)
+       <ja>@RestGet</ja>(<js>"/*"</js>)
        <jk>public void</jk> method4(...) {
                ...
        }
 </p>
 <p>
-       The match heuristic behavior can be overridden by the 
-       {@link oajr.annotation.RestOp#priority() @RestOp(priority)} annotation 
-       property.
-       However, in practice this is almost never needed.
-</p>
-<p>
        Paths that end with <js>"/*"</js> will do a prefix match on the 
incoming URL.  
        Any remainder after the match can be accessed through 
        {@link oajr.RequestPath#getRemainder()} or parameters with the 
@@ -92,12 +86,12 @@
        The following example shows the distinction.
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<jsf>GET</jsf>, path=<js>"/*"</js>)
-       <jk>public void</jk> doGet(<ja>@Path</ja>(<js>"/*"</js>) String 
remainder) {
+       <ja>@RestGet</ja>(<js>"/*"</js>)
+       <jk>public void</jk> doGet(<ja>@Path</ja>(<js>"/*"</js>) String 
<jv>remainder</jv>) {
                <jc>// URL path pattern can have remainder accessible through 
req.getRemainder().</jc>
        }
 
-       <ja>@RestOp</ja>(method=<jsf>PUT</jsf>, path=<js>"/"</js>)
+       <ja>@RestPut</ja>(<js>"/"</js>)
        <jk>public void</jk> doPut() {
                <jc>// URL path pattern must match exactly and will cause a 404 
error if a remainder exists.</jc>
        }
@@ -108,8 +102,8 @@
 </p>
 <p class='bpcode w800'>
        <jc>// Example GET request with access to query parameters</jc>
-       <ja>@RestOp</ja>(method=<jsf>GET</jsf>, path=<js>"/urlWithParams"</js>)
-       <jk>public</jk> String doGetWithParams(<ja>@Query</ja>(<js>"foo"</js>) 
String foo, <ja>@Query</ja>(<js>"bar"</js>) <jk>int</jk> bar, 
<ja>@Query</ja>(<js>"baz"</js>) UUID baz) <jk>throws</jk> Exception {
+       <ja>@RestGet</ja>(<js>"/urlWithParams"</js>)
+       <jk>public</jk> String doGetWithParams(<ja>@Query</ja>(<js>"foo"</js>) 
String <jv>foo</jv>, <ja>@Query</ja>(<js>"bar"</js>) <jk>int</jk> <jv>bar</jv>, 
<ja>@Query</ja>(<js>"baz"</js>) UUID <jv>baz</jv>) <jk>throws</jk> Exception {
                <jk>return</jk> <js>"GET 
/urlWithParams?foo="</js>+foo+<js>"&amp;bar="</js>+bar+<js>"&amp;baz="</js>+baz;
        }
 </p>
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/10.RestmRequestPathMatch.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/10.RestmRequestPathMatch.html
index 093ccb8..8859b15 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/10.RestmRequestPathMatch.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/10.RestmRequestPathMatch.html
@@ -20,19 +20,19 @@ RequestPathMatch
        and remainder on the URL path.
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(...)
-       <jk>public</jk> Object myMethod(RequestPathMatch path) {...}            
        
+       <ja>@RestPost</ja>(...)
+       <jk>public</jk> Object myMethod(RequestPathMatch <jv>path</jv>) {...}   
                
 </p>
 <h5 class='figure'>Example:</h5>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(..., path=<js>"/{foo}/{bar}/{baz}/*"</js>)
-       <jk>public void</jk> doGet(RequestPathMatch path) {
+       <ja>@RestPost</ja>(..., path=<js>"/{foo}/{bar}/{baz}/*"</js>)
+       <jk>public void</jk> doGet(RequestPathMatch <jv>pathMatch</jv>) {
                <jc>// Example URL:  /123/qux/true/quux</jc>
                
-               <jk>int</jk> foo = pm.getInt(<js>"foo"</js>);  <jc>// =123</jc>
-               String bar = pm.getString(<js>"bar"</js>);  <jc>// =qux</jc>
-               <jk>boolean</jk> baz = pm.getBoolean(<js>"baz"</js>);  <jc>// 
=true</jc>
-               String remainder = pm.getRemainder();  <jc>// =quux</jc>
+               <jk>int</jk> <jv>foo</jv> = 
<jv>pathMatch</jv>.getInt(<js>"foo"</js>);  <jc>// =123</jc>
+               String <jv>bar</jv> = 
<jv>pathMatch</jv>.getString(<js>"bar"</js>);  <jc>// =qux</jc>
+               <jk>boolean</jk> <jv>baz</jv> = 
<jv>pathMatch</jv>.getBoolean(<js>"baz"</js>);  <jc>// =true</jc>
+               String <jv>remainder</jv> = <jv>pathMatch</jv>.getRemainder();  
<jc>// =quux</jc>
        }
 </p>
 <p>
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/11.RestmReturnTypes.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/11.RestmReturnTypes.html
index 23bad01..0be4da1 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/11.RestmReturnTypes.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/11.RestmReturnTypes.html
@@ -22,7 +22,7 @@ Method Return Types
 </p>
 <h5 class='figure'>Example:</h5>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<jsf>GET</jsf>)
+       <ja>@RestGet</ja>
        <jk>public</jk> String doGet() {
                <jk>return</jk> <js>"Hello World!"</js>;
        }
@@ -76,28 +76,28 @@ Method Return Types
 <h5 class='figure'>Example:</h5>
 <p class='bpcode w800'>
        <jc>// Equivalent method 1</jc>
-       <ja>@RestOp</ja>(method=<jsf>GET</jsf>, 
path=<js>"/example1/{personId}"</js>)
-       <jk>public</jk> Person doGet1(<ja>@Path</ja>(<js>"personId"</js>) UUID 
personId) {
-               Person p = getPersonById(personId);
-               <jk>return</jk> p;
+       <ja>@RestGet</ja>(<js>"/example1/{personId}"</js>)
+       <jk>public</jk> Person doGet1(<ja>@Path</ja>(<js>"personId"</js>) UUID 
<jv>personId</jv>) {
+               Person <jv>person</jv> = 
<jsm>getPersonById</jsm>(<jv>personId</jv>);
+               <jk>return</jk> <jv>person</jv>;
        }
 
        <jc>// Equivalent method 2</jc>
-       <ja>@RestOp</ja>(method=<jsf>GET</jsf>, 
path=<js>"/example2/{personId}"</js>)
-       <jk>public void</jk> doGet2(RestResponse res, 
<ja>@Path</ja>(<js>"personId"</js>) UUID personId) {
-               Person p = getPersonById(personId);
-               res.setOutput(p);
+       <ja>@RestGet</ja>(<js>"/example2/{personId}"</js>)
+       <jk>public void</jk> doGet2(RestResponse <jv>res</jv>, 
<ja>@Path</ja>(<js>"personId"</js>) UUID personId) {
+               Person <jv>person</jv> = 
<jsm>getPersonById</jsm>(<jv>personId</jv>);
+               <jv>res</jv>.setOutput(<jv>person</jv>);
        }
 
        <jc>// (Sorta) Equivalent method 3</jc>
        <jc>// (Ignores any converters or method-level properties)</jc>
-       <ja>@RestOp</ja>(method=<jsf>GET</jsf>, 
path=<js>"/example3/{personId}"</js>)
-       <jk>public void</jk> doGet3(RestRequest req, RestResponse res, 
<ja>@Path</ja>(<js>"personId"</js>) UUID personId) {
-               Person p = getPersonById(personId);
-               String accept = req.getHeader(<js>"Accept"</js>, 
<js>"text/json"</js>);
-               WriterSerializer s = 
res.getSerializerGroup().getWriterSerializer(accept);
-               res.setContentType(s.getResponseContentType());
-               s.serialize(p, res.getNegotiatedWriter());
+       <ja>@RestGet</ja>(<js>"/example3/{personId}"</js>)
+       <jk>public void</jk> doGet3(RestRequest <jv>req</jv>, RestResponse 
<jv>res</jv>, <ja>@Path</ja>(<js>"personId"</js>) UUID personId) {
+               Person <jv>person</jv> = 
<jsm>getPersonById</jsm>(<jv>personId</jv>);
+               String <jv>accept</jv> = 
<jv>req</jv>.getStringHeader(<js>"Accept"</js>).orElse(<js>"text/json"</js>);
+               WriterSerializer <jv>serializer</jv> = 
<jv>res</jv>.getSerializerGroup().getWriterSerializer(<jv>accept</jv>);
+               
<jv>res</jv>.setContentType(<jv>serializer</jv>.getResponseContentType());
+               <jv>serializer</jv>.serialize(<jv>person</jv>, 
<jv>res</jv>.getNegotiatedWriter());
        }
 </p>
 <ul class='seealso'>
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/12.RestmReaderResource.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/12.RestmReaderResource.html
index 3ca257a..c9916e5 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/12.RestmReaderResource.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/12.RestmReaderResource.html
@@ -28,13 +28,13 @@ ReaderResource (TODO)
 </p>
 <h5 class='figure'>Example:</h5>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>
-       <jk>public</jk> Object sayHello(RestRequest req) {
+       <ja>@RestGet</ja>
+       <jk>public</jk> Object sayHello(RestRequest <jv>req</jv>) {
        
                <jc>// Return a reader resource loaded from a file with support 
for request-time SVL variables.</jc>
                <jk>return</jk> ReaderResource.<jsm>create</jsm>()
                        .contents(<jk>new</jk> File(<js>"helloWorld.txt"</js>))
-                       .varResolver(req.getVarResolver()) 
+                       .varResolver(<jv>req</jv>.getVarResolver()) 
                        .header(<js>"Cache-Control"</js>, <js>"no-cache"</js>)
                        .mediaType(<jsf>TEXT_PLAIN</jsf>)
                        .build();
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/13.RestmStreamResource.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/13.RestmStreamResource.html
index 3e2cea9..59a5b06 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/13.RestmStreamResource.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/13.RestmStreamResource.html
@@ -25,8 +25,8 @@ StreamResource (TODO)
 </p>
 <h5 class='figure'>Example:</h5>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(...)
-       <jk>public</jk> Object showPicture(RestRequest req) {
+       <ja>@RestGet</ja>(...)
+       <jk>public</jk> Object showPicture(RestRequest <jv>req</jv>) {
        
                <jc>// Return a stream resource loaded from a file.</jc>
                <jk>return</jk> StreamResource.<jsm>create</jsm>()
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/14.RestmMatchers.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/14.RestmMatchers.html
index bde04d3..d810266 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/14.RestmMatchers.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/14.RestmMatchers.html
@@ -23,13 +23,13 @@
 <h5 class='figure'>Example:</h5>
 <p class='bpcode w800'>
        <jc>// GET method that gets invoked for administrators</jc>
-       <ja>@RestOp</ja>(method=<jsf>GET</jsf>, path=<js>"/*"</js>, 
matchers=IsAdminMatcher.<jk>class</jk>)
+       <ja>@RestGet</ja>(path=<js>"/*"</js>, 
matchers=IsAdminMatcher.<jk>class</jk>)
        <jk>public</jk> Object doGetForAdmin() {
                ...
        }
 
        <jc>// GET method that gets invoked for everyone else</jc>
-       <ja>@RestOp</ja>(method=<jsf>GET</jsf>, path=<js>"/*"</js>)
+       <ja>@RestGet</ja>(<js>"/*"</js>)
        <jk>public</jk> Object doGetForEveryoneElse() {
                ...
        }
@@ -41,8 +41,8 @@
        <jk>public class</jk> IsAdminMatcher <jk>extends</jk> RestMatcher {
 
                <ja>@Override</ja> <jc>/* RestMatcher */</jc>
-               <jk>public boolean</jk> matches(RestRequest req) {
-                       <jk>return</jk> 
req.isUserInRole(<js>"ADMINS_GROUP"</js>);
+               <jk>public boolean</jk> matches(RestRequest <jv>req</jv>) {
+                       <jk>return</jk> 
<jv>req</jv>.isUserInRole(<js>"ADMINS_GROUP"</js>);
                }
        }
 </p>
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/15.RestmPredefinedResponses.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/15.RestmPredefinedResponses.html
index 51a2928..efe0763 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/15.RestmPredefinedResponses.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/15.RestmPredefinedResponses.html
@@ -21,18 +21,18 @@ Predefined Responses
 </p>
 <h5 class='figure'>Examples:</h5>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<js>"POST"</js>, path=<js>"/pets"</js>)
-       <jk>public</jk> Ok addPet(<ja>@Body</ja> Pet pet) {
-               <jsm>addPet</jsm>(Pet);
+       <ja>@RestPost</ja>(<js>"/pets"</js>)
+       <jk>public</jk> Ok addPet(<ja>@Body</ja> Pet <jv>pet</jv>) {
+               <jsm>addPet</jsm>(<jv>pet</jv>);
                
                <jc>// Predefined "200 OK" response bean.</jc>
                <jk>return new</jk> Ok();  <jc>// Could also use Ok.OK 
instance</jc> 
        }
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<js>"POST"</js>, path=<js>"/pets"</js>)
-       <jk>public</jk> SeeOther addPet(<ja>@Body</ja> Pet pet) {
-               <jsm>addPet</jsm>(Pet);
+       <ja>@RestPost</ja>(<js>"/pets"</js>)
+       <jk>public</jk> SeeOther addPet(<ja>@Body</ja> Pet <jv>pet</jv>) {
+               <jsm>addPet</jsm>(<jv>pet</jv>);
                
                <jc>// Predefined "302 See Other" response bean with redirect 
to /pets.</jc>
                <jk>return new</jk> SeeOther(<js>"servlet:/pets"</js>);  
@@ -105,7 +105,7 @@ Predefined Responses
        <jk>public class</jk> SeeOtherServletRoot <jk>extends</jk> SeeOther {
        
                <jk>public</jk> SeeOtherServletRoot() {
-                       <jk>super</jk>(URI.create("servlet:/"));
+                       
<jk>super</jk>(URI.<jsm>create</jsm>(<js>"servlet:/"</js>));
                }
        }
 </p>
@@ -116,9 +116,9 @@ Predefined Responses
        in the following example (since all we see is an Object response). 
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<js>"POST"</js>, path=<js>"/pets"</js>)
-       <jk>public</jk> Object addPet(<ja>@Body</ja> Pet pet) {
-               <jsm>addPet</jsm>(Pet);
+       <ja>@RestPost</ja>(<js>"/pets"</js>)
+       <jk>public</jk> Object addPet(<ja>@Body</ja> Pet <jv>pet</jv>) {
+               <jsm>addPet</jsm>(<jv>pet</jv>);
                
                <jc>// Note the Object return type.</jc>
                <jk>return new</jk> SeeOther(<js>"servlet:/pets"</js>);  
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/16.RestmPredefinedExceptions.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/16.RestmPredefinedExceptions.html
index 2277212..15ea7b9 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/16.RestmPredefinedExceptions.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/16.RestmPredefinedExceptions.html
@@ -25,13 +25,13 @@ Predefined Exceptions
 </p>
 <h5 class='figure'>Example:</h5>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<js>"GET"</js>, path=<js>"/user/login"</js>)
+       <ja>@RestGet</ja>(<js>"/user/login"</js>)
        <jk>public</jk> Ok login(
-               <ja>@FormData</ja>(<js>"username"</js>) String username, 
-               <ja>@FormData</ja>(<js>"password"</js>) String password,
+               <ja>@FormData</ja>(<js>"username"</js>) String 
<jv>username</jv>, 
+               <ja>@FormData</ja>(<js>"password"</js>) String <jv>password</jv>
        ) <jk>throws</jk> Unauthorized 
        {
-               <jk>if</jk> (! <jsm>isOK</jsm>(username, password))
+               <jk>if</jk> (! <jsm>isOK</jsm>(<jv>username</jv>, 
<jv>password</jv>))
                        <jk>throw new</jk> Unauthorized(<js>"You're not 
welcome!"</js>);
                        
                <jk>return</jk> Ok.<jsf>OK</jsf>;
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/17.RestmPredefinedHelperBeans.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/17.RestmPredefinedHelperBeans.html
index 8bae465..44b6e06 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/17.RestmPredefinedHelperBeans.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/06.RestMethod/17.RestmPredefinedHelperBeans.html
@@ -40,7 +40,7 @@ Predefined Helper Beans
        <ja>@Resource</ja>
        <jk>public class</jk> PredefinedLabelsResource {
        
-               <ja>@RestOp</ja>(method=<jsf>GET</jsf>, path=<js>"/"</js>)
+               <ja>@RestGet</ja>(<js>"/"</js>)
                <jk>public</jk> ResourceDescription[] getChildMethods() {
                        <jk>return new</jk> ResourceDescription[] {
                                <jk>new</jk> 
ResourceDescription(<js>"beanDescription"</js>, <js>"BeanDescription"</js>),
@@ -75,7 +75,7 @@ Predefined Helper Beans
        <ja>@Resource</ja>
        <jk>public class</jk> PredefinedLabelsResource {
        
-               <ja>@RestOp</ja>(method=<jsf>GET</jsf>, path=<js>"/"</js>)
+               <ja>@RestGet</ja>(<js>"/"</js>)
                <jk>public</jk> ResourceDescriptions getChildMethods() {
                        <jk>return new</jk> ResourceDescriptions()
                                .append(<js>"beanDescription"</js>, 
<js>"BeanDescription"</js>)
@@ -89,7 +89,7 @@ Predefined Helper Beans
        for rendering custom hyperlinks:
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>
+       <ja>@RestGet</ja>
        <jk>public</jk> MyLink[] htmlLinks() {
                <jk>return new</jk> MyLink[] {
                        <jk>new</jk> MyLink(<js>"apache"</js>, 
<js>"http://apache.org";</js>),
@@ -104,9 +104,9 @@ Predefined Helper Beans
                <jc>// Simple bean properties.</jc>
                <jk>public</jk> String <jf>name</jf>, <jf>href</jf>;  
        
-               <jk>public</jk> MyLink(String name, String href) {
-                       <jk>this</jk>.<jf>name</jf> = name;
-                       <jk>this</jk>.<jf>href</jf> = href;
+               <jk>public</jk> MyLink(String <jv>name</jv>, String 
<jv>href</jv>) {
+                       <jk>this</jk>.<jf>name</jf> = <jv>name</jv>;
+                       <jk>this</jk>.<jf>href</jf> = <jv>href</jv>;
                }
        }
 </p>                   
@@ -116,7 +116,7 @@ Predefined Helper Beans
        The following is equivalent to above.
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>
+       <ja>@RestGet</ja>
        <jk>public</jk> LinkString[] htmlLinks() {
                <jk>return new</jk> LinkString[] {
                        <jk>new</jk> LinkString(<js>"apache"</js>, 
<js>"http://apache.org";</js>),
@@ -138,7 +138,7 @@ Predefined Helper Beans
        of a bean and it's properties.
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<jsf>GET</jsf>, 
path=<js>"/beanDescription"</js>)
+       <ja>@RestGet</ja>(<js>"/beanDescription"</js>)
        <jk>public</jk> BeanDescription getBeanDescription() {
                <jk>return new</jk> BeanDescription(Person.<jk>class</jk>);
        }       
@@ -160,9 +160,9 @@ Predefined Helper Beans
        <ja>@Rest</ja>
        <jk>public abstract class</jk> BasicRestServletGroup <jk>extends</jk> 
BasicRestServlet {
        
-               <ja>@RestOp</ja>(method=<jsf>GET</jsf>, path=<js>"/"</js>, 
summary=<js>"Navigation page"</js>)
-               <jk>public</jk> ChildResourceDescriptions 
getChildren(RestRequest req) <jk>throws</jk> Exception {
-                       <jk>return new</jk> ChildResourceDescriptions(req);
+               <ja>@RestGet</ja>(path=<js>"/"</js>, summary=<js>"Navigation 
page"</js>)
+               <jk>public</jk> ChildResourceDescriptions 
getChildren(RestRequest <jv>req</jv>) <jk>throws</jk> Exception {
+                       <jk>return new</jk> 
ChildResourceDescriptions(<jv>req</jv>);
                }
        }
 </p>
@@ -201,21 +201,21 @@ Predefined Helper Beans
        of a resource class.
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<js>"POST"</js>, path=<js>"/pets"</js>)
-       <jk>public</jk> SeeOtherRoot addPet(<ja>@Body</ja> Pet pet) {
-               <jsm>addPet</jsm>(Pet);
+       <ja>@RestPost</ja>(<js>"/pets"</js>)
+       <jk>public</jk> SeeOtherRoot addPet(<ja>@Body</ja> Pet <jv>pet</jv>) {
+               <jsm>addPet</jsm>(<jv>pet</jv>);
                
                <jc>// Redirects to the servlet root URL.</jc>
-               <jk>return</jk> SeeOtherRoot.INSTANCE;  
+               <jk>return</jk> SeeOtherRoot.<jsf>INSTANCE</jsf>;  
        }
 </p>
 <p>
        The runtime behavior is the same as the following:
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<js>"POST"</js>, path=<js>"/pets"</js>)
-       <jk>public</jk> SeeOther addPet(<ja>@Body</ja> Pet pet) {
-               <jsm>addPet</jsm>(Pet);
+       <ja>@RestPost</ja>(<js>"/pets"</js>)
+       <jk>public</jk> SeeOther addPet(<ja>@Body</ja> Pet <jv>pet</jv>) {
+               <jsm>addPet</jsm>(<jv>pet</jv>);
                
                <jc>// Redirects to the servlet root URL.</jc>
                <jk>return new</jk> 
SeeOther(URI.<jsm>create</jsm>(<js>"servlet:/"</js>));  
diff --git a/juneau-doc/docs/Topics/06.juneau-rest-server/07.RestRpc.html 
b/juneau-doc/docs/Topics/06.juneau-rest-server/07.RestRpc.html
index 3c65e56..f816de1 100644
--- a/juneau-doc/docs/Topics/06.juneau-rest-server/07.RestRpc.html
+++ b/juneau-doc/docs/Topics/06.juneau-rest-server/07.RestRpc.html
@@ -169,14 +169,14 @@ REST/RPC
        
                <ja>@Override</ja> <jc>/* RrpcServlet */</jc>
                <jk>protected</jk> Map&lt;Class&lt;?&gt;,Object&gt; 
getServiceMap() <jk>throws</jk> Exception {
-                       Map&lt;Class&lt;?&gt;,Object&gt; m = <jk>new</jk> 
LinkedHashMap&lt;Class&lt;?&gt;,Object&gt;();
+                       Map&lt;Class&lt;?&gt;,Object&gt; <jv>map</jv> = 
<jk>new</jk> LinkedHashMap&lt;Class&lt;?&gt;,Object&gt;();
        
                        <jc>// In this simplified example, we expose the same 
POJO service under two different interfaces.
                        // One is IAddressBook which only exposes methods 
defined on that interface, and
                        // the other is AddressBook itself which exposes all 
methods defined on the class itself (dangerous!).</jc>
-                       m.put(IAddressBook.<jk>class</jk>, 
<jf>addressBook</jf>);
-                       m.put(AddressBook.<jk>class</jk>, <jf>addressBook</jf>);
-                       <jk>return</jk> m;
+                       <jv>map</jv>.put(IAddressBook.<jk>class</jk>, 
<jf>addressBook</jf>);
+                       <jv>map</jv>.put(AddressBook.<jk>class</jk>, 
<jf>addressBook</jf>);
+                       <jk>return</jk> <jv>map</jv>;
                }
        }
 </p>
@@ -192,7 +192,7 @@ REST/RPC
        <jc>// Our exposed interface.</jc>
        <ja>@RestOp</ja>(method=<jsf>RRPC</jsf>, 
path=<js>"/addressbookproxy/*"</js>)
        <jk>public</jk> IAddressBook getProxy() {
-               <jk>return</jk> addressBook;
+               <jk>return</jk> <jf>addressBook</jf>;
        }
 </p>
 
@@ -230,13 +230,13 @@ REST/RPC
        First, we need to create the serialized form of the arguments:
 </p>
 <p class='bpcode w800'>
-       Object[] args = <jk>new</jk> Object[] {
+       Object[] <jv>args</jv> = <jk>new</jk> Object[] {
                <jk>new</jk> CreatePerson(<js>"Test Person"</js>,
                        AddressBook.<jsm>toCalendar</jsm>(<js>"Aug 1, 
1999"</js>),
                        <jk>new</jk> CreateAddress(<js>"Test street"</js>, 
<js>"Test city"</js>, <js>"Test state"</js>, 12345, <jk>true</jk>))
        };
-       String asJson = 
SimpleJsonSerializer.<jsf>DEFAULT_READABLE</jsf>.toString(args);
-       System.<jsf>err</jsf>.println(asJson);
+       String <jv>asJson</jv> = 
SimpleJsonSerializer.<jsf>DEFAULT_READABLE</jsf>.toString(<jv>args</jv>);
+       System.<jsf>err</jsf>.println(<jv>asJson</jv>);
 </p>
 <p>
        That produces the following JSON output:
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/08.RestOpenApiSchemaPartParsing.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/08.RestOpenApiSchemaPartParsing.html
index 9bfde01..cea79ad 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/08.RestOpenApiSchemaPartParsing.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/08.RestOpenApiSchemaPartParsing.html
@@ -30,7 +30,7 @@ OpenAPI Schema Part Parsing
        For example, the following shows how a pipe-delimited list of 
comma-delimited numbers (e.g. <js>"1,2,3|4,5,6|7,8,9"</js>) in a query 
parameter can be converted to a 2-dimensional array of <c>Longs</c>:
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<js>"GET"</js>, path=<js>"/testQuery"</js>)     
+       <ja>@RestGet</ja>(<js>"/testQuery"</js>)        
        <jk>public void</jk> testQuery(
                <ja>@Query</ja>(
                        name=<js>"queryParamName"</js>,
@@ -47,7 +47,7 @@ OpenAPI Schema Part Parsing
                        minLength=1,
                        maxLength=10
                )
-               Long[][] queryParameter
+               Long[][] <jv>queryParameter</jv>
        ) {...}
 </p>
 <p>
@@ -58,7 +58,7 @@ OpenAPI Schema Part Parsing
        The following shows the same for a request body:
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<js>"POST"</js>, path=<js>"/testBody"</js>)     
+       <ja>@RestPost</ja>(<js>"/testBody"</js>)        
        <jk>public void</jk> testBody(
                <ja>@Body</ja>(
                        parsers=OpenApiParser.<jk>class</jk>,
@@ -80,7 +80,7 @@ OpenAPI Schema Part Parsing
                                maxLength=10
                        )
                )
-               Long[][] body
+               Long[][] <jv>body</jv>
        ) {...}
 </p>
 <p>
@@ -88,36 +88,36 @@ OpenAPI Schema Part Parsing
        For example, instead of <c>Longs</c> in the example above, we could 
also define a 2-dimensional array of POJOs convertible from <c>Longs</c>:
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<js>"POST"</js>, path=<js>"/2dLongArray"</js>)  
-       <jk>public void</jk> testBody(<ja>@Body</ja>(...) MyPojo[][] body) {...}
+       <ja>@RestPost</ja>(<js>"/2dLongArray"</js>)     
+       <jk>public void</jk> testBody(<ja>@Body</ja>(...) MyPojo[][] 
<jv>body</jv>) {...}
        
        <jc>// POJO convertible from a Long.</jc>
        <jk>public class</jk> MyPojo {
-               <jk>public</jk> MyPojo(Long input) {...}
+               <jk>public</jk> MyPojo(Long <jv>input</jv>) {...}
        }
 </p>
 <p>
        Or even POJOs that take in arrays of <c>Longs[]</c>:
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<js>"POST"</js>, path=<js>"/2dLongArray"</js>)  
-       <jk>public void</jk> testBody(<ja>@Body</ja>(...) MyPojo[] body) {...}
+       <ja>@RestPost</ja>(<js>"/2dLongArray"</js>)     
+       <jk>public void</jk> testBody(<ja>@Body</ja>(...) MyPojo[] 
<jv>body</jv>) {...}
        
        <jc>// POJO convertible from a Long[].</jc>
        <jk>public class</jk> MyPojo {
-               <jk>public</jk> MyPojo(Long[] input) {...}
+               <jk>public</jk> MyPojo(Long[] <jv>input</jv>) {...}
        }
 </p>
 <p>
        Or even POJOs that take in the whole 2-dimensional array:
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<js>"POST"</js>, path=<js>"/2dLongArray"</js>)  
-       <jk>public void</jk> testBody(<ja>@Body</ja>(...) MyPojo body) {...}
+       <ja>@RestPost</ja>(<js>"/2dLongArray"</js>)     
+       <jk>public void</jk> testBody(<ja>@Body</ja>(...) MyPojo <jv>body</jv>) 
{...}
        
        <jc>// POJO convertible from a Long[][].</jc>
        <jk>public class</jk> MyPojo {
-               <jk>public</jk> MyPojo(Long[][] input) {...}
+               <jk>public</jk> MyPojo(Long[][] <jv>input</jv>) {...}
        }
 </p>
 <p>
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/09.RestOpenApiSchemaPartSerializing.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/09.RestOpenApiSchemaPartSerializing.html
index 04795d3..cb7dcc6 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/09.RestOpenApiSchemaPartSerializing.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/09.RestOpenApiSchemaPartSerializing.html
@@ -27,7 +27,7 @@ OpenAPI Schema Part Serializing
        For example, the following shows how a pipe-delimited list of 
comma-delimited numbers (e.g. <js>"1,2,3|4,5,6|7,8,9"</js>) in a response 
header can be converted to a 2-dimensional array of <c>Longs</c>:
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<js>"GET"</js>, 
path=<js>"/testResponseHeader"</js>)    
+       <ja>@RestGet</ja>(<js>"/testResponseHeader"</js>)       
        <jk>public void</jk> testResponseHeader(
                <ja>@ResponseHeader</ja>(
                        name=<js>"My-Header"</js>,
@@ -44,16 +44,16 @@ OpenAPI Schema Part Serializing
                        minLength=1,
                        maxLength=10
                )
-               Value&lt;Long[][]&gt; header
+               Value&lt;Long[][]&gt; <jv>header</jv>
        ) {
-               header.set(<jk>new</jk> Long[][]{...});
+               <jv>header</jv>.set(<jk>new</jk> Long[][]{...});
        }
 </p>
 <p>
        The following shows the same for a response body:
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<js>"GET"</js>, 
path=<js>"/testResponseBody"</js>)      
+       <ja>@RestGet</ja>(<js>"/testResponseBody"</js>) 
        <jk>public void</jk> testResponseBody(
                <ja>@Response</ja>(
                        serializers=OpenApiSerialier.<jk>class</jk>,
@@ -75,7 +75,7 @@ OpenAPI Schema Part Serializing
                                maxLength=10
                        )
                )
-               Value&lt;Long[][]&gt; responseBody
+               Value&lt;Long[][]&gt; <jv>responseBody</jv>
        ) {...}
 </p>
 <p>
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/01.RestBodyAnnotation.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/01.RestBodyAnnotation.html
index 00941d6..2f57500 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/01.RestBodyAnnotation.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/01.RestBodyAnnotation.html
@@ -35,13 +35,13 @@
 <h5 class='figure'>Examples:</h5>
 <p class='bpcode w800'>
        <jc>// Defined on parameter</jc>
-       <ja>@RestOp</ja>(method=<jsf>POST</jsf>)
-       <jk>public void</jk> addPet(<ja>@Body</ja> Pet pet) {...}
+       <ja>@RestPost</ja>
+       <jk>public void</jk> addPet(<ja>@Body</ja> Pet <jv>pet</jv>) {...}
 </p>
 <p class='bpcode w800'>
        <jc>// Defined on POJO class</jc>
-       <ja>@RestOp</ja>(method=<jsf>POST</jsf>)
-       <jk>public void</jk> addPet(Pet pet) {...}
+       <ja>@RestPost</ja>
+       <jk>public void</jk> addPet(Pet <jv>pet</jv>) {...}
        
        <ja>@Body</ja>
        <jk>public class</jk> Pet {...}
@@ -50,9 +50,9 @@
        This is functionally equivalent to the following code:
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<jsf>POST</jsf>)
-       <jk>public void</jk> addPet(RestRequest req) {
-               Person person = req.getBody().asType(Pet.<jk>class</jk>);
+       <ja>@RestPost</ja>
+       <jk>public void</jk> addPet(RestRequest <jv>req</jv>) {
+               Pet <jv>pet</jv> = 
<jv>req</jv>.getBody().asType(Pet.<jk>class</jk>);
                ...
        }
 </p>
@@ -110,8 +110,7 @@
 </p>
 <p class='bpcode w800'>
        <jc>// Body is a pipe-delimited list of comma-delimited lists of 
longs.</jc>
-       <ja>@RestOp</ja>(
-               method=<js>"POST"</js>, 
+       <ja>@RestPost</ja>(
                path=<js>"/testBody"</js>,
                serializers=OpenApiSerializers.<jk>class</jk>,
                defaultAccept=<js>"text/openapi"</js>
@@ -135,7 +134,7 @@
                                maxLength=10
                        )
                )
-               Long[][] body
+               Long[][] <jv>body</jv>
        ) {...}
 </p>
 <p>
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/02.RestFormDataAnnotation.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/02.RestFormDataAnnotation.html
index eced4f4..7c71e67 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/02.RestFormDataAnnotation.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/02.RestFormDataAnnotation.html
@@ -55,22 +55,22 @@
 </p>
 <h5 class='figure'>Example:</h5>
 <p class='bpcode w800'>        
-       <ja>@RestOp</ja>(method=<jsf>POST</jsf>)
+       <ja>@RestPost</ja>
        <jk>public void</jk> doPost(
-               <ja>@FormData</ja>(<js>"p1"</js>) <jk>int</jk> p1, 
-               <ja>@FormData</ja>(<js>"p2"</js>) String p2, 
-               <ja>@FormData</ja>(<js>"p3"</js>) UUID p3) {...}
+               <ja>@FormData</ja>(<js>"p1"</js>) <jk>int</jk> <jv>p1</jv>, 
+               <ja>@FormData</ja>(<js>"p2"</js>) String <jv>p2</jv>, 
+               <ja>@FormData</ja>(<js>"p3"</js>) UUID <jv>p3</jv>) {...}
 </p>
 <p>
        This is functionally equivalent to the following code:
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<jsf>POST</jsf>)
-       <jk>public void</jk> doPost(RestRequest req) {
-               RequestFormData fd = req.getFormData();
-               <jk>int</jk> p1 = fd.get(<js>"p1"</js>, 0, 
<jk>int</jk>.<jk>class</jk>);
-               String p2 = fd.get(<js>"p2"</js>, String.<jk>class</jk>);
-               UUID p3 = fd.get(<js>"p3"</js>, UUID.<jk>class</jk>);
+       <ja>@RestPost</ja>
+       <jk>public void</jk> doPost(RestRequest <jv>req</jv>) {
+               RequestFormData <jv>formData</jv> = <jv>req</jv>.getFormData();
+               <jk>int</jk> <jv>p1</jv> = <jv>formData</jv>.get(<js>"p1"</js>, 
0, <jk>int</jk>.<jk>class</jk>);
+               String <jv>p2</jv> = <jv>formData</jv>.get(<js>"p2"</js>, 
String.<jk>class</jk>);
+               UUID <jv>p3</jv> = <jv>formData</jv>.get(<js>"p3"</js>, 
UUID.<jk>class</jk>);
        }
 </p>
 
@@ -81,18 +81,18 @@
 <h5 class='figure'>Examples:</h5>
 <p class='bpcode w800'>
        <jc>// Multiple values passed as a map.</jc>
-       <ja>@RestOp</ja>(method=<jsf>POST</jsf>)
-       <jk>public void</jk> doPost(<ja>@FormData</ja>(<js>"*"</js>) 
Map&lt;String,Object&gt; map) {...}
+       <ja>@RestPost</ja>
+       <jk>public void</jk> doPost(<ja>@FormData</ja>(<js>"*"</js>) 
Map&lt;String,Object&gt; <jv>map</jv>) {...}
 </p>
 <p class='bpcode w800'>
        <jc>// Same, but name "*" is inferred.</jc>
-       <ja>@RestOp</ja>(method=<jsf>POST</jsf>)
-       <jk>public void</jk> doPost(<ja>@FormData</ja> Map&lt;String,Object&gt; 
map) {...}
+       <ja>@RestPost</ja>
+       <jk>public void</jk> doPost(<ja>@FormData</ja> Map&lt;String,Object&gt; 
<jv>map</jv>) {...}
 </p>
 <p class='bpcode w800'>
        <jc>// Multiple values passed as a bean.</jc>
-       <ja>@RestOp</ja>(method=<jsf>POST</jsf>)
-       <jk>public void</jk> doPost(<ja>@FormData</ja> MyBean bean) {...}
+       <ja>@RestPost</ja>
+       <jk>public void</jk> doPost(<ja>@FormData</ja> MyFormBean 
<jv>bean</jv>) {...}
 </p>
 
 <p>
@@ -104,7 +104,7 @@
        For example, the following shows how a pipe-delimited list of 
comma-delimited numbers (e.g. <js>"1,2,3|4,5,6|7,8,9"</js>) can be converted to 
a 2-dimensional array of <c>Longs</c>:
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<js>"POST"</js>, path=<js>"/testFormData"</js>) 
+       <ja>@RestPost</ja>(<js>"/testFormData"</js>)    
        <jk>public void</jk> testFormData(
                <ja>@FormData</ja>(
                        name=<js>"formDataParamName"</js>,
@@ -121,7 +121,7 @@
                        minLength=1,
                        maxLength=10
                )
-               Long[][] formDataParameter
+               Long[][] <jv>formDataParameter</jv>
        ) {...}
 </p>
 <p>
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/03.RestHasFormDataAnnotation.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/03.RestHasFormDataAnnotation.html
index b881d9c..3c901a0 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/03.RestHasFormDataAnnotation.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/03.RestHasFormDataAnnotation.html
@@ -24,16 +24,16 @@
 
 <h5 class='figure'>Example:</h5>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<jsf>POST</jsf>)
-       <jk>public void</jk> doPost(<ja>@HasFormData</ja>(<js>"p1"</js>) 
<jk>boolean</jk> p1) {...}
+       <ja>@RestPost</ja>
+       <jk>public void</jk> doPost(<ja>@HasFormData</ja>(<js>"p1"</js>) 
<jk>boolean</jk> <jv>p1</jv>) {...}
 </p>
 <p>
        This is functionally equivalent to the following code:
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<jsf>POST</jsf>)
-       <jk>public void</jk> doPost(RestRequest req) {
-               <jk>boolean</jk> p1 = req.hasFormData(<js>"p1"</js>);
+       <ja>@RestPost</ja>
+       <jk>public void</jk> doPost(RestRequest <jv>req</jv>) {
+               <jk>boolean</jk> <jv>p1</jv> = 
<jv>req</jv>.hasFormData(<js>"p1"</js>);
                ...
        }
 </p>
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/04.RestQueryAnnotation.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/04.RestQueryAnnotation.html
index 502f589..91e1b6d 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/04.RestQueryAnnotation.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/04.RestQueryAnnotation.html
@@ -61,22 +61,22 @@
 </p>
 <h5 class='figure'>Example:</h5>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<jsf>GET</jsf>)
+       <ja>@RestGet</ja>
        <jk>public void</jk> doGet(
-               <ja>@Query</ja>(<js>"p1"</js>) <jk>int</jk> p1, 
-               <ja>@Query</ja>(<js>"p2"</js>) String p2, 
-               <ja>@Query</ja>(<js>"p3"</js>) UUID p3) {...}
+               <ja>@Query</ja>(<js>"p1"</js>) <jk>int</jk> <jv>p1</jv>, 
+               <ja>@Query</ja>(<js>"p2"</js>) String <jv>p2</jv>, 
+               <ja>@Query</ja>(<js>"p3"</js>) UUID <jv>p3</jv>) {...}
 </p>
 <p>
        This is functionally equivalent to the following code:
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<jsf>GET</jsf>)
-       <jk>public void</jk> doGet(RestRequest req) {
-               RequestQuery q = req.getQuery();
-               <jk>int</jk> p1 = q.get(<js>"p1"</js>, 0, 
<jk>int</jk>.<jk>class</jk>);
-               String p2 = q.get(<js>"p2"</js>, String.<jk>class</jk>);
-               UUID p3 = q.get(<js>"p3"</js>, UUID.<jk>class</jk>);
+       <ja>@RestGet</ja>
+       <jk>public void</jk> doGet(RestRequest <jv>req</jv>) {
+               RequestQuery <jv>query</jv> = <jv>req</jv>.getQuery();
+               <jk>int</jk> <jv>p1</jv> = <jv>query</jv>.get(<js>"p1"</js>, 0, 
<jk>int</jk>.<jk>class</jk>);
+               String <jv>p2</jv> = <jv>query</jv>.get(<js>"p2"</js>, 
String.<jk>class</jk>);
+               UUID <jv>p3</jv> = <jv>query</jv>.get(<js>"p3"</js>, 
UUID.<jk>class</jk>);
        }
 </p>
 
@@ -88,18 +88,18 @@
 <h5 class='figure'>Examples:</h5>
 <p class='bpcode w800'>
        <jc>// Multiple values passed as a map.</jc>
-       <ja>@RestOp</ja>(method=<jsf>GET</jsf>)
-       <jk>public void</jk> doGet(<ja>@Query</ja>(<js>"*"</js>) 
Map&lt;String,Object&gt; map) {...}
+       <ja>@RestGet</ja>
+       <jk>public void</jk> doGet(<ja>@Query</ja>(<js>"*"</js>) 
Map&lt;String,Object&gt; <jv>map</jv>) {...}
 </p>
 <p class='bpcode w800'>
        <jc>// Same, but name "*" is inferred.</jc>
-       <ja>@RestOp</ja>(method=<jsf>GET</jsf>)
-       <jk>public void</jk> doGet(<ja>@Query</ja> Map&lt;String,Object&gt; 
map) {...}
+       <ja>@RestGet</ja>
+       <jk>public void</jk> doGet(<ja>@Query</ja> Map&lt;String,Object&gt; 
<jv>map</jv>) {...}
 </p>
 <p class='bpcode w800'>
        <jc>// Multiple values passed as a bean.</jc>
-       <ja>@RestOp</ja>(method=<jsf>GET</jsf>)
-       <jk>public void</jk> doGet(<ja>@Query</ja> MyBean bean) {...}
+       <ja>@RestGet</ja>
+       <jk>public void</jk> doGet(<ja>@Query</ja> MyQueryBean <jv>bean</jv>) 
{...}
 </p>
 
 <p>
@@ -111,7 +111,7 @@
        For example, the following shows how a pipe-delimited list of 
comma-delimited numbers (e.g. <js>"1,2,3|4,5,6|7,8,9"</js>) can be converted to 
a 2-dimensional array of <c>Longs</c>:
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<js>"GET"</js>, path=<js>"/testQuery"</js>)     
+       <ja>@RestGet</ja>(<js>"/testQuery"</js>)        
        <jk>public void</jk> testQuery(
                <ja>@Query</ja>(
                        name=<js>"queryParamName"</js>,
@@ -128,7 +128,7 @@
                        minLength=1,
                        maxLength=10
                )
-               Long[][] queryParameter
+               Long[][] <jv>queryParameter</jv>
        ) {...}
 </p>
 <p>
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/05.RestHasQueryAnnotation.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/05.RestHasQueryAnnotation.html
index 79d5cc0..1bf673c 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/05.RestHasQueryAnnotation.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/05.RestHasQueryAnnotation.html
@@ -30,16 +30,16 @@
  </p>
 <h5 class='figure'>Example:</h5>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<jsf>GET</jsf>)
-       <jk>public void</jk> doGet(<ja>@HasQuery</ja>(<js>"p1"</js>) 
<jk>boolean</jk> p1) {...}
+       <ja>@RestGet</ja>
+       <jk>public void</jk> doGet(<ja>@HasQuery</ja>(<js>"p1"</js>) 
<jk>boolean</jk> <jv>p1</jv>) {...}
 </p>
 <p>
        This is functionally equivalent to the following code:
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<jsf>GET</jsf>)
-       <jk>public void</jk> doGet(RestRequest req) {
-               <jk>boolean</jk> p1 = req.hasQuery(<js>"p1"</js>);
+       <ja>@RestGet</ja>
+       <jk>public void</jk> doGet(RestRequest <jv>req</jv>) {
+               <jk>boolean</jk> <jv>p1</jv> = 
<jv>req</jv>.hasQuery(<js>"p1"</js>);
                ...
        }
 </p>
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/06.RestHeaderAnnotation.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/06.RestHeaderAnnotation.html
index 68a0d70..f987ae3 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/06.RestHeaderAnnotation.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/06.RestHeaderAnnotation.html
@@ -53,17 +53,17 @@
 </p>
 <h5 class='figure'>Example:</h5>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<jsf>GET</jsf>)
-       <jk>public void</jk> doGet(<ja>@Header</ja>(<js>"ETag"</js>) UUID etag) 
{...}
+       <ja>@RestGet</ja>
+       <jk>public void</jk> doGet(<ja>@Header</ja>(<js>"ETag"</js>) UUID 
<jv>etag</jv>) {...}
 </p>
 <p>
        This is functionally equivalent to the following code:
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<jsf>GET</jsf>)
-       <jk>public void</jk> doGet(RestRequest req) {
-               RequestHeaders h = req.getHeaders();
-               UUID etag = h.get(<js>"ETag"</js>, UUID.<jk>class</jk>);
+       <ja>@RestGet</ja>
+       <jk>public void</jk> doGet(RestRequest <jv>req</jv>) {
+               RequestHeaders <jv>headers</jv> = <jv>req</jv>.getHeaders();
+               UUID <jv>etag</jv> = <jv>headers</jv>.get(<js>"ETag"</js>, 
UUID.<jk>class</jk>);
        }
 </p>
 
@@ -74,18 +74,18 @@
 <h5 class='figure'>Examples:</h5>
 <p class='bpcode w800'>
        <jc>// Multiple values passed as a map.</jc>
-       <ja>@RestOp</ja>(method=<jsf>GET</jsf>)
-       <jk>public void</jk> doGet(<ja>@Header</ja>(<js>"*"</js>) 
Map&lt;String,Object&gt; map) {...}
+       <ja>@RestGet</ja>
+       <jk>public void</jk> doGet(<ja>@Header</ja>(<js>"*"</js>) 
Map&lt;String,Object&gt; <jv>map</jv>) {...}
 </p>
 <p class='bpcode w800'>
        <jc>// Same, but name "*" is inferred.</jc>
-       <ja>@RestOp</ja>(method=<jsf>GET</jsf>)
-       <jk>public void</jk> doGet(<ja>@Header</ja> Map&lt;String,Object&gt; 
map) {...}
+       <ja>@RestGet</ja>
+       <jk>public void</jk> doGet(<ja>@Header</ja> Map&lt;String,Object&gt; 
<jv>map</jv>) {...}
 </p>
 <p class='bpcode w800'>
        <jc>// Multiple values passed as a bean.</jc>
-       <ja>@RestOp</ja>(method=<jsf>GET</jsf>)
-       <jk>public void</jk> doGet(<ja>@Header</ja> MyBean bean) {...}
+       <ja>@RestGet</ja>
+       <jk>public void</jk> doGet(<ja>@Header</ja> MyBean <jv>bean</jv>) {...}
 </p>
 
 <p>
@@ -97,7 +97,7 @@
        For example, the following shows how a pipe-delimited list of 
comma-delimited numbers (e.g. <js>"1,2,3|4,5,6|7,8,9"</js>) can be converted to 
a 2-dimensional array of <c>Longs</c>:
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<js>"GET"</js>, path=<js>"/testHeader"</js>)    
+       <ja>@RestGet</ja>(<js>"/testHeader"</js>)       
        <jk>public void</jk> testHeader(
                <ja>@Header</ja>(
                        name=<js>"My-Header"</js>,
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/07.RestPathAnnotation.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/07.RestPathAnnotation.html
index beb0bcc..cd4f888 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/07.RestPathAnnotation.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/07.RestPathAnnotation.html
@@ -48,25 +48,25 @@
 </p>
 <h5 class='figure'>Example:</h5>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<jsf>GET</jsf>, 
path=<js>"/myurl/{foo}/{bar}/{baz}/*"</js>)
+       <ja>@RestGet</ja>(<js>"/myurl/{foo}/{bar}/{baz}/*"</js>)
        <jk>public void</jk> doGet(
-                       <ja>@Path</ja>(<js>"foo"</js>) String foo,
-                       <ja>@Path</ja>(<js>"bar"</js>) <jk>int</jk> bar,
-                       <ja>@Path</ja>(<js>"baz"</js>) UUID baz,
-                       <ja>@Path</ja>(<js>"/*"</js>) String remainder 
+                       <ja>@Path</ja>(<js>"foo"</js>) String <jv>foo</jv>,
+                       <ja>@Path</ja>(<js>"bar"</js>) <jk>int</jk> 
<jv>bar</jv>,
+                       <ja>@Path</ja>(<js>"baz"</js>) UUID <jv>baz</jv>,
+                       <ja>@Path</ja>(<js>"/*"</js>) String <jv>remainder</jv> 
                ) {...}
 </p>
 <p>
        This is functionally equivalent to the following code:
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<jsf>GET</jsf>, 
path=<js>"/myurl/{foo}/{bar}/{baz}/*"</js>)
-       <jk>public void</jk> doGet(RestRequest req) {
-               RequestPath p = req.getPathMatch();
-               String foo = p.getString(<js>"foo"</js>);
-               <jk>int</jk> bar = p.get(<js>"bar"</js>, 
<jk>int</jk>.<jk>class</jk>);
-               UUID baz = p.get(<js>"baz"</js>, UUID.<jk>class</jk>);
-               String remainder = p.getRemainder();
+       <ja>@RestGet</ja>(<js>"/myurl/{foo}/{bar}/{baz}/*"</js>)
+       <jk>public void</jk> doGet(RestRequest <jv>req</jv>) {
+               RequestPath <jv>path</jv> = <jv>req</jv>.getPathMatch();
+               String <jv>foo</jv> = <jv>path</jv>.getString(<js>"foo"</js>);
+               <jk>int</jk> <jv>bar</jv> = <jv>path</jv>.get(<js>"bar"</js>, 
<jk>int</jk>.<jk>class</jk>);
+               UUID <jv>baz</jv> = <jv>path</jv>.get(<js>"baz"</js>, 
UUID.<jk>class</jk>);
+               String <jv>remainder</jv> = <jv>path</jv>.getRemainder();
        }
 </p>
 <p>
@@ -80,18 +80,18 @@
 <h5 class='figure'>Examples:</h5>
 <p class='bpcode w800'>
        <jc>// Multiple values passed as a map.</jc>
-       <ja>@RestOp</ja>(method=<jsf>GET</jsf>, path=<js>"/{a}/{b}/{c}/*"</js>)
-       <jk>public void</jk> doGet(<ja>@Path</ja>(<js>"*"</js>) 
Map&lt;String,Object&gt; map) {...}
+       <ja>@RestGet</ja>(<js>"/{a}/{b}/{c}/*"</js>)
+       <jk>public void</jk> doGet(<ja>@Path</ja>(<js>"*"</js>) 
Map&lt;String,Object&gt; <jv>map</jv>) {...}
 </p>
 <p class='bpcode w800'>
        <jc>// Same, but name "*" is inferred.</jc>
-       <ja>@RestOp</ja>(method=<jsf>GET</jsf>, path=<js>"/{a}/{b}/{c}/*"</js>)
-       <jk>public void</jk> doGet(<ja>@Path</ja> Map&lt;String,Object&gt; map) 
{...}
+       <ja>@RestGet</ja>(<js>"/{a}/{b}/{c}/*"</js>)
+       <jk>public void</jk> doGet(<ja>@Path</ja> Map&lt;String,Object&gt; 
<jv>map</jv>) {...}
 </p>
 <p class='bpcode w800'>
        <jc>// Multiple values passed as a bean.</jc>
-       <ja>@RestOp</ja>(method=<jsf>GET</jsf>, path=<js>"/{a}/{b}/{c}/*"</js>)
-       <jk>public void</jk> doGet(<ja>@Path</ja> MyBean bean) {...}
+       <ja>@RestGet</ja>(<js>"/{a}/{b}/{c}/*"</js>)
+       <jk>public void</jk> doGet(<ja>@Path</ja> MyBean <jv>bean</jv>) {...}
 </p>
 
 <p>
@@ -121,7 +121,7 @@
                        minLength=1,
                        maxLength=10
                )
-               Long[][] pathParameter
+               Long[][] <jv>pathParameter</jv>
        ) {...}
 </p>
 <p>
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/08.RestRequestAnnotation.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/08.RestRequestAnnotation.html
index 8608618..829e9b7 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/08.RestRequestAnnotation.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/08.RestRequestAnnotation.html
@@ -28,8 +28,8 @@
 
 <h5 class='figure'>Example:</h5>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(path=<js>"/pets/{petId}"</js>)
-       <jk>public void</jk> putPet(UpdatePet updatePet) {...}
+       <ja>@RestPut</ja>(<js>"/pets/{petId}"</js>)
+       <jk>public void</jk> putPet(UpdatePet <jv>updatePet</jv>) {...}
 
        <ja>@Request</ja>
        <jk>public interface</jk> UpdatePet {
@@ -51,12 +51,12 @@
        The example above is identical in behavior to specifying individual 
annotated parameters on the <ja>@RestOp</ja>-annotated method:
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(path=<js>"/pets/{petId}"</js>)
+       <ja>@RestPut</ja>(<js>"/pets/{petId}"</js>)
        <jk>public void</jk> putPet(
-               <ja>@Path</ja>(<js>"petId"</js>) <jk>int</jk> petId,
-               <ja>@Query</ja>(<js>"verbose"</js>) <jk>boolean</jk> debug,
-               <ja>@Header</ja>(<js>"*"</js>) Map&lt;String,Object&gt; 
allHeaders,
-               <ja>@Body</ja> Pet pet
+               <ja>@Path</ja>(<js>"petId"</js>) <jk>int</jk> <jv>petId</jv>,
+               <ja>@Query</ja>(<js>"verbose"</js>) <jk>boolean</jk> 
<jv>debug</jv>,
+               <ja>@Header</ja>(<js>"*"</js>) Map&lt;String,Object&gt; 
<jv>allHeaders</jv>,
+               <ja>@Body</ja> Pet <jv>pet</jv>
        ) 
        {...}
 </p>
@@ -84,7 +84,7 @@
                                maximumLength=10
                        )
                )
-               <jk>int</jk>[][] getPipedCdlInts();
+               <jk>int</jk>[][] <jv>getPipedCdlInts</jv>();
        }
 </p>
 <p>
@@ -92,8 +92,8 @@
 </p>
 <h5 class='figure'>Example:</h5>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(path=<js>"/pets/{petId}"</js>)
-       <jk>public void</jk> putPet(<ja>@Request</ja> UpdatePet updatePet) {...}
+       <ja>@RestPut</ja>(<js>"/pets/{petId}"</js>)
+       <jk>public void</jk> putPet(<ja>@Request</ja> UpdatePet 
<jv>updatePet</jv>) {...}
 
        <ja>@Request</ja>
        <jk>public interface</jk> UpdatePet {...}
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/09.RestResponseAnnotation.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/09.RestResponseAnnotation.html
index ee97baa..f3bb474 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/09.RestResponseAnnotation.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/09.RestResponseAnnotation.html
@@ -72,13 +72,13 @@
        }
 
        <jc>// Our REST method that throws an annotated exception.</jc>
-       <ja>@RestOp</ja>(method=<js>"GET"</js>, path=<js>"/user/login"</js>)
+       <ja>@RestGet</ja>(<js>"/user/login"</js>)
        <jk>public</jk> Ok login(
-               <ja>@FormData</ja>(<js>"username"</js>) String username, 
-               <ja>@FormData</ja>(<js>"password"</js>) String password
+               <ja>@FormData</ja>(<js>"username"</js>) String 
<jv>username</jv>, 
+               <ja>@FormData</ja>(<js>"password"</js>) String <jv>password</jv>
        ) <jk>throws</jk> InvalidLogin 
        {
-               checkCredentials(username, password);
+               <jsm>checkCredentials</jsm>(<jv>username</jv>, 
<jv>password</jv>);
                <jk>return new</jk> Ok();
        }
 </p>
@@ -135,8 +135,8 @@
        <jk>public class</jk> Redirect {
                <jk>private final</jk> URI <jf>location</jf>;
        
-               <jk>public</jk> Redirect(URI location) {
-                       <jk>this</jk>.<jf>location</jf> = location;
+               <jk>public</jk> Redirect(URI <jv>location</jv>) {
+                       <jk>this</jk>.<jf>location</jf> = <jv>location</jv>;
                }
        
                <ja>@ResponseHeader</ja>(
@@ -144,7 +144,7 @@
                        format=<js>"uri"</js>
                )
                <jk>public</jk> URI getLocation() {
-                       <jk>return</jk> location;
+                       <jk>return</jk> <jf>location</jf>;
                }
 
                <ja>@ResponseBody</ja>
@@ -155,8 +155,8 @@
 </p>
 <p class='bpcode w800'>
        <jc>// Usage</jc>
-       <ja>@RestOp</ja>(method=<jsf>POST</jsf>)
-       <jk>public</jk> Redirect addPet(Pet pet) {
+       <ja>@RestPost</ja>
+       <jk>public</jk> Redirect postPet(Pet pet) {
                <jc>// Redirect to servlet root</jc>
                <jk>return new</jk> 
Redirect(URI.<jsm>create</jsm>(<js>"servlet:/"</js>));
        }
@@ -168,14 +168,14 @@
        the same as applying it to the return type (albeit for this method 
only).
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<js>"GET"</js>, path=<js>"/user/login"</js>)
+       <ja>@RestGet</ja>(<js>"/user/login"</js>)
        <ja>@Response</ja>(code=200, description=<js>"OK"</js>)
        <jk>public</jk> Ok login(
-               <ja>@FormData</ja>(<js>"username"</js>) String username, 
-               <ja>@FormData</ja>(<js>"password"</js>) String password
+               <ja>@FormData</ja>(<js>"username"</js>) String 
<jv>username</jv>, 
+               <ja>@FormData</ja>(<js>"password"</js>) String <jv>password</jv>
        ) <jk>throws</jk> InvalidLogin
        {
-               checkCredentials(username, password);
+               <jsm>checkCredentials</jsm>(<jv>username</jv>, 
<jv>password</jv>);
                <jk>return new</jk> Ok();
        }
 </p>
@@ -191,29 +191,29 @@
        is {@link oaj.Value} (a placeholder for objects).
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<js>"GET"</js>, path=<js>"/user/login"</js>)
+       <ja>@RestGet</ja>(<js>"/user/login"</js>)
        <jk>public void</jk> login(
-               <ja>@FormData</ja>(<js>"username"</js>) String username, 
-               <ja>@FormData</ja>(<js>"password"</js>) String password,
-               <ja>@Response</ja>(code=200, description=<js>"Login 
succeeded"</js>) Value&lt;String&gt; body
+               <ja>@FormData</ja>(<js>"username"</js>) String 
<jv>username</jv>, 
+               <ja>@FormData</ja>(<js>"password"</js>) String <jv>password,/,
+               <ja>@Response</ja>(code=200, description=<js>"Login 
succeeded"</js>) Value&lt;String&gt; <jv>body</jv>
        ) <jk>throws</jk> InvalidLogin 
        {
-               checkCredentials(username, password);
-               body.set(<js>"OK"</js>);
+               <jsm>checkCredentials</jsm>(<jv>username</jv>, 
<jv>password</jv>);
+               <jv>body</jv>.set(<js>"OK"</js>);
        }
 </p>
 <p>
        <ja>@Response</ja>-annotated types can also be used as value parameters:
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(...)
+       <ja>@RestGet</ja>(...)
        <jk>public void</jk> login(
                ...
-               <ja>@Response</ja> Value&lt;Ok&gt; res
+               <ja>@Response</ja> Value&lt;Ok&gt; <jv>res</jv>
        ) <jk>throws</jk> InvalidLogin 
        {
                ...
-               res.set(<jk>new</jk> Ok());
+               <jv>res</jv>.set(<jk>new</jk> Ok());
        }
 </p>
 <p>
@@ -221,14 +221,14 @@
        that it's a <ja>@Response</ja> bean.
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<js>"GET"</js>, path=<js>"/user/login"</js>)
+       <ja>@RestGet</ja>(<js>"/user/login"</js>)
        <jk>public void</jk> login(
                ...
-               Value&lt;Ok&gt; res  <jc>// @Response annotation not 
needed.</jc>
+               Value&lt;Ok&gt; <jv>res</jv>  <jc>// @Response annotation not 
needed.</jc>
        ) <jk>throws</jk> InvalidLogin 
        {
                ...
-               res.set(<jk>new</jk> Ok());
+               <jv>res</jv>.set(<jk>new</jk> Ok());
        }
 </p>
 
@@ -320,22 +320,22 @@
                        serializers=OpenApiSerializer.<jk>class</jk>,
                        defaultAccept=<js>"text/openapi"</js>
                )
-               <ja>@RestOp</ja>
+               <ja>@RestGet</ja>
                <jk>public</jk> String[] example1() {
                        <jk>return new</jk> 
String[]{<js>"foo"</js>,<js>"bar"</js>};
                }
 
                <jc>// Example 2 - Same as above.  Annotation on parameter.</jc>
-               <ja>@RestOp</ja>
+               <ja>@RestGet</ja>
                <jk>public void</jk> example2(
                        <ja>@Response</ja>(
                                serializers=OpenApiSerializer.<jk>class</jk>,
                                defaultAccept=<js>"text/openapi"</js>
                        ) 
-                       Value&lt;String[]&gt; body
+                       Value&lt;String[]&gt; <jv>body</jv>
                ) 
                {
-                       body.set(<jk>new</jk> 
String[]{<js>"foo"</js>,<js>"bar"</js>});
+                       <jv>body</jv>.set(<jk>new</jk> 
String[]{<js>"foo"</js>,<js>"bar"</js>});
                }
        }
 </p>
@@ -351,7 +351,7 @@
                        defaultAccept=<js>"text/openapi"</js>,
                        
schema=<ja>@Schema</ja>(collectionFormat=<js>"pipes"</js>)
                )
-               <ja>@RestOp</ja>
+               <ja>@RestGet</ja>
                <jk>public</jk> String[] example1() {
                        <jk>return new</jk> 
String[]{<js>"foo"</js>,<js>"bar"</js>};
                }
@@ -384,19 +384,19 @@
        The following two examples are equivalent:
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<js>"GET"</js>, path=<js>"/ok"</js>)
+       <ja>@RestGet</ja>(<js>"/ok"</js>)
        <jk>public void</jk> sendContinue(
-               <ja>@Response</ja>(code=100) Value&lt;String&gt; body
+               <ja>@Response</ja>(code=100) Value&lt;String&gt; <jv>body</jv>
        ) 
        {
-               body.set(<js>"OK"</js>);
+               <jv>body</jv>.set(<js>"OK"</js>);
        }
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(method=<js>"GET"</js>, path=<js>"/ok"</js>)
-       <jk>public void</jk> sendContinue(RestResponse res) {
-               res.setStatus(100);
-               res.setOutput(<js>"OK"</js>);
+       <ja>@RestGet</ja>(<js>"/ok"</js>)
+       <jk>public void</jk> sendContinue(RestResponse <jv>res</jv>) {
+               <jv>res</jv>.setStatus(100);
+               <jv>res</jv>.setOutput(<js>"OK"</js>);
        }
 </p>
 
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/10.RestResponseHeaderAnnotation.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/10.RestResponseHeaderAnnotation.html
index 0303635..1020de1 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/10.RestResponseHeaderAnnotation.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/10.RestResponseHeaderAnnotation.html
@@ -57,14 +57,14 @@
 </p>
 <p class='bpcode w800'>
        <jc>// Example #1 - Setting header directly on RestResponse object.</jc>
-       <ja>@RestOp</ja>(...)
+       <ja>@RestGet</ja>(...)
        <jk>public void</jk> login(RestResponse res) {
                res.setHeader(<js>"X-Rate-Limit"</js>, 1000);
                ...
        }
  
        <jc>// Example #2 - Use on parameter.</jc>
-       <ja>@RestOp</ja>(...)
+       <ja>@RestGet</ja>(...)
        <jk>public void</jk> login(
                        <ja>@ResponseHeader</ja>(
                                name=<js>"X-Rate-Limit"</js>,
@@ -73,17 +73,17 @@
                                description=<js>"Calls per hour allowed by the 
user."</js>,
                                example=<js>"123"</js>
                        )
-                       Value&lt;Integer&gt; rateLimit
+                       Value&lt;Integer&gt; <jv>rateLimit</jv>
        ) 
        {
-               rateLimit.set(1000);
+               <jv>rateLimit</jv>.set(1000);
                ...
        }
 
        <jc>// Example #3 - Use on type.</jc>
-       <ja>@RestOp</ja>(...)
-       <jk>public void</jk> login(Value&lt;RateLimit&gt; rateLimit) {
-               rateLimit.set(<jk>new</jk> RateLimit());
+       <ja>@RestGet</ja>(...)
+       <jk>public void</jk> login(Value&lt;RateLimit&gt; <jv>rateLimit</jv>) {
+               <jv>rateLimit</jv>.set(<jk>new</jk> RateLimit());
                ...
        }
 
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/11.RestResponseStatusAnnotation.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/11.RestResponseStatusAnnotation.html
index 25f4e3d..fe4eff3 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/11.RestResponseStatusAnnotation.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/10.RestHttpPartAnnotations/11.RestResponseStatusAnnotation.html
@@ -28,14 +28,14 @@
 <h5 class='figure'>Examples:</h5>
 <p class='bpcode w800'>
        <jc>// Defined on parameter.</jc>
-       <ja>@RestOp</ja>(method=<js>"GET"</js>, path=<js>"/user/login"</js>)
+       <ja>@RestGet</ja>(<js>"/user/login"</js>)
        <jk>public void</jk> login(
-               <ja>@FormData</ja>(<js>"username"</js>) String username, 
-               <ja>@FormData</ja>(<js>"password"</js>) String password,
-               <ja>@ResponseStatus</ja> Value&lt;Integer&gt; status
+               <ja>@FormData</ja>(<js>"username"</js>) String 
<jv>username</jv>, 
+               <ja>@FormData</ja>(<js>"password"</js>) String 
<jv>password</jv>,
+               <ja>@ResponseStatus</ja> Value&lt;Integer&gt; <jv>status</jv>
        ) 
        {
-               <jk>if</jk> (! isValid(username, password))
-                       status.set(401);
+               <jk>if</jk> (! <jsm>isValid</jsm>(<jv>username</jv>, 
<jv>password</jv>))
+                       <jv>status</jv>.set(401);
        }
 </p>
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/11.RestHandlingFormPosts.html 
b/juneau-doc/docs/Topics/06.juneau-rest-server/11.RestHandlingFormPosts.html
index 05ad30b..f185d76 100644
--- a/juneau-doc/docs/Topics/06.juneau-rest-server/11.RestHandlingFormPosts.html
+++ b/juneau-doc/docs/Topics/06.juneau-rest-server/11.RestHandlingFormPosts.html
@@ -27,7 +27,7 @@ Handling Form Posts
        <jk>public class</jk> UrlEncodedFormResource <jk>extends</jk> 
BasicRestServlet {
        
                <jd>/** POST request handler */</jd>
-               <ja>@RestOp</ja>(method=<jsf>POST</jsf>, path=<js>"/"</js>)
+               <ja>@RestPost</ja>(<js>"/"</js>)
                <jk>public</jk> Object doPost(<ja>@Body</ja> FormInputBean 
input) <jk>throws</jk> Exception {
                        <jc>// Just mirror back the request</jc>
                        <jk>return</jk> input;
@@ -46,8 +46,8 @@ Handling Form Posts
 </p>   
 <p class='bpcode w800'>
        <jd>/** POST request handler */</jd>
-       <ja>@RestOp</ja>(method=<jsf>POST</jsf>, path=<js>"/"</js>)
-       <jk>public</jk> Object doPost(<ja>@FormData</ja>(<js>"aString"</js>) 
String aString, <ja>@FormData</ja>(<js>"aNumber"</js>) <jk>int</jk> aNumber, 
<ja>@FormData</ja>(<js>"aDate"</js>) Calendar aDate) <jk>throws</jk> Exception {
+       <ja>@RestPost</ja>(<js>"/"</js>)
+       <jk>public</jk> Object doPost(<ja>@FormData</ja>(<js>"aString"</js>) 
String <jv>aString</jv>, <ja>@FormData</ja>(<js>"aNumber"</js>) <jk>int</jk> 
<jv>aNumber</jv>, <ja>@FormData</ja>(<js>"aDate"</js>) Calendar <jv>aDate</jv>) 
<jk>throws</jk> Exception {
                ...
        }
 </p>
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/12.RestHandlingMultiPartFormPosts.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/12.RestHandlingMultiPartFormPosts.html
index 089f400..912f74d 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/12.RestHandlingMultiPartFormPosts.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/12.RestHandlingMultiPartFormPosts.html
@@ -34,15 +34,15 @@ Handling Multi-Part Form Posts
                 * [POST /upload] - Upload a file as a multipart form post.
                 * Shows how to use the Apache Commons ServletFileUpload class 
for handling multi-part form posts.
                 */</jd>
-               <ja>@RestOp</ja>(method=<jsf>POST</jsf>, 
path=<js>"/upload"</js>, 
matchers=TempDirResource.MultipartFormDataMatcher.<jk>class</jk>)
-               <jk>public</jk> Redirect uploadFile(RestRequest req) 
<jk>throws</jk> Exception {
-                       ServletFileUpload upload = <jk>new</jk> 
ServletFileUpload();
-                       FileItemIterator iter = upload.getItemIterator(req);
-                       <jk>while</jk> (iter.hasNext()) {
-                               FileItemStream item = iter.next();
-                               <jk>if</jk> 
(item.getFieldName().equals(<js>"contents"</js>)) { 
-                                       File f = <jk>new</jk> 
File(getRootDir(), item.getName());
-                                       
IOPipe.<jsm>create</jsm>(item.openStream(), <jk>new</jk> 
FileOutputStream(f)).closeOut().run();
+               <ja>@RestPost</ja>(path=<js>"/upload"</js>, 
matchers=TempDirResource.MultipartFormDataMatcher.<jk>class</jk>)
+               <jk>public</jk> Redirect uploadFile(RestRequest <jv>req</jv>) 
<jk>throws</jk> Exception {
+                       ServletFileUpload <jv>upload</jv> = <jk>new</jk> 
ServletFileUpload();
+                       FileItemIterator <jv>iter</jv> = 
<jv>upload</jv>.getItemIterator(<jv>req</jv>);
+                       <jk>while</jk> (<jv>iter</jv>.hasNext()) {
+                               FileItemStream <jv>item</jv> = 
<jv>iter</jv>.next();
+                               <jk>if</jk> 
(<jv>item</jv>.getFieldName().equals(<js>"contents"</js>)) { 
+                                       File <jv>f</jv> = <jk>new</jk> 
File(getRootDir(), <jv>item</jv>.getName());
+                                       
IOPipe.<jsm>create</jsm>(<jv>item</jv>.openStream(), <jk>new</jk> 
FileOutputStream(<jv>f</jv>)).closeOut().run();
                                }
                        }
                        <jk>return new</jk> Redirect(); <jc>// Redirect to the 
servlet root.</jc>
@@ -52,9 +52,9 @@ Handling Multi-Part Form Posts
                <jk>public static class</jk> MultipartFormDataMatcher 
<jk>extends</jk> RestMatcher {
                
                        <ja>@Override</ja> <jc>/* RestMatcher */</jc>
-                       <jk>public boolean</jk> matches(RestRequest req) {
-                               String contentType = req.getContentType();
-                               <jk>return</jk> contentType != <jk>null</jk> 
&amp;&amp; contentType.startsWith(<js>"multipart/form-data"</js>); 
+                       <jk>public boolean</jk> matches(RestRequest 
<jv>req</jv>) {
+                               String <jv>contentType</jv> = 
<jv>req</jv>.getContentType();
+                               <jk>return</jk> <jv>contentType</jv> != 
<jk>null</jk> &amp;&amp; 
contentType.startsWith(<js>"multipart/form-data"</js>); 
                        }
                }
 </p>
@@ -63,27 +63,25 @@ Handling Multi-Part Form Posts
        This example is pulled from the PetStore application.
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(
-               ...
-       )
-       <jk>public</jk> SeeOtherRoot uploadFile(RestRequest req) 
<jk>throws</jk> Exception {
+       <ja>@RestPost</ja>
+       <jk>public</jk> SeeOtherRoot uploadFile(RestRequest <jv>req</jv>) 
<jk>throws</jk> Exception {
        
                <jc>// Required for Jetty.</jc>
-               MultipartConfigElement mce = <jk>new</jk> 
MultipartConfigElement((String)<jk>null</jk>);
-               req.setAttribute(<js>"org.eclipse.jetty.multipartConfig"</js>, 
mce);  
+               MultipartConfigElement <jv>mce</jv> = <jk>new</jk> 
MultipartConfigElement((String)<jk>null</jk>);
+               
<jv>req</jv>.setAttribute(<js>"org.eclipse.jetty.multipartConfig"</js>, 
<jv>mce</jv>);  
        
-               String id = UUID.<jsm>randomUUID</jsm>().toString();
-               BufferedImage img = <jk>null</jk>;
-               <jk>for</jk> (Part part : req.getParts()) {
-                       <jk>switch</jk> (part.getName()) {
+               String <jv>id</jv> = UUID.<jsm>randomUUID</jsm>().toString();
+               BufferedImage <jv>img</jv> = <jk>null</jk>;
+               <jk>for</jk> (Part <jv>part</jv> : <jv>req</jv>.getParts()) {
+                       <jk>switch</jk> (<jv>part</jv>.getName()) {
                                <jk>case</jk> <js>"id"</js>:
-                                       id = 
IOUtils.<jsm>read</jsm>(part.getInputStream());
+                                       <jv>id</jv> = 
IOUtils.<jsm>read</jsm>(<jv>part</jv>.getInputStream());
                                        <jk>break</jk>;
                                <jk>case</jk> <js>"file"</js>:
-                                       img = 
ImageIO.<jsm>read</jsm>(part.getInputStream());
+                                       <jv>img</jv> = 
ImageIO.<jsm>read</jsm>(<jv>part</jv>.getInputStream());
                        }
                }
-               addPhoto(id, img);
+               <jsm>addPhoto</jsm>(<jv>id</jv>, <jv>img</jv>);
                <jk>return new</jk> SeeOtherRoot(); <jc>// Redirect to the 
servlet root.</jc>
        }
 </p>
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/13.RestSerializers.html 
b/juneau-doc/docs/Topics/06.juneau-rest-server/13.RestSerializers.html
index 7efae43..8431e09 100644
--- a/juneau-doc/docs/Topics/06.juneau-rest-server/13.RestSerializers.html
+++ b/juneau-doc/docs/Topics/06.juneau-rest-server/13.RestSerializers.html
@@ -46,26 +46,26 @@ Serializers
        <jk>public class</jk> MyResource {
                
                <jc>// Option #2 - Defined via builder passed in through 
resource constructor.</jc>
-                       <jk>public</jk> MyResource(RestContextBuilder builder) 
<jk>throws</jk> Exception {
+                       <jk>public</jk> MyResource(RestContextBuilder 
<jv>builder</jv>) <jk>throws</jk> Exception {
                        
                        <jc>// Using method on builder.</jc>
-                       builder.serializers(JsonSerializer.<jk>class</jk>, 
XmlSerializer.<jk>class</jk>);
+                       
<jv>builder</jv>.serializers(JsonSerializer.<jk>class</jk>, 
XmlSerializer.<jk>class</jk>);
 
                        <jc>// Same, but use pre-instantiated parsers.</jc>
-                       builder.serializers(JsonSerializer.<jsf>DEFAULT</jsf>, 
XmlSerializer.<jsf>DEFAULT</jsf>);
+                       
<jv>builder</jv>.serializers(JsonSerializer.<jsf>DEFAULT</jsf>, 
XmlSerializer.<jsf>DEFAULT</jsf>);
 
                        <jc>// Same, but using property.</jc>
-                       builder.set(<jsf>REST_serializers</jsf>, 
JsonSerializer.<jk>class</jk>, XmlSerializer.<jk>class</jk>);
+                       <jv>builder</jv>.set(<jsf>REST_serializers</jsf>, 
JsonSerializer.<jk>class</jk>, XmlSerializer.<jk>class</jk>);
                }
 
                <jc>// Option #3 - Defined via builder passed in through init 
method.</jc>
                <ja>@RestHook</ja>(<jsf>INIT</jsf>)
-               <jk>public void</jk> init(RestContextBuilder builder) 
<jk>throws</jk> Exception {
-                       builder.serializers(JsonSerializer.<jk>class</jk>, 
XmlSerializer.<jk>class</jk>);
+               <jk>public void</jk> init(RestContextBuilder <jv>builder</jv>) 
<jk>throws</jk> Exception {
+                       
<jv>builder</jv>.serializers(JsonSerializer.<jk>class</jk>, 
XmlSerializer.<jk>class</jk>);
                }
 
                <jc>// Override at the method level.</jc>
-               <ja>@RestOp</ja>(serializers={HtmlSerializer.<jk>class</jk>})
+               <ja>@RestGet</ja>(serializers={HtmlSerializer.<jk>class</jk>})
                <jk>public</jk> MyPojo myMethod() {
                        <jc>// Return a POJO to be serialized.</jc>
                        <jk>return new</jk> MyPojo(); 
diff --git a/juneau-doc/docs/Topics/06.juneau-rest-server/14.RestParsers.html 
b/juneau-doc/docs/Topics/06.juneau-rest-server/14.RestParsers.html
index cf67a2c..a906434 100644
--- a/juneau-doc/docs/Topics/06.juneau-rest-server/14.RestParsers.html
+++ b/juneau-doc/docs/Topics/06.juneau-rest-server/14.RestParsers.html
@@ -46,27 +46,27 @@ Parsers
        <jk>public class</jk> MyResource {
                
                <jc>// Option #2 - Defined via builder passed in through 
resource constructor.</jc>
-               <jk>public</jk> MyResource(RestContextBuilder builder) 
<jk>throws</jk> Exception {
+               <jk>public</jk> MyResource(RestContextBuilder <jv>builder</jv>) 
<jk>throws</jk> Exception {
                        
                        <jc>// Using method on builder.</jc>
-                       builder.parsers(JsonParser.<jk>class</jk>, 
XmlParser.<jk>class</jk>);
+                       <jv>builder</jv>.parsers(JsonParser.<jk>class</jk>, 
XmlParser.<jk>class</jk>);
 
                        <jc>// Same, but use pre-instantiated parsers.</jc>
-                       builder.parsers(JsonParser.<jsf>DEFAULT</jsf>, 
XmlParser.<jsf>DEFAULT</jsf>);
+                       <jv>builder</jv>.parsers(JsonParser.<jsf>DEFAULT</jsf>, 
XmlParser.<jsf>DEFAULT</jsf>);
 
                        <jc>// Same, but using property.</jc>
-                       builder.set(<jsf>REST_parsers</jsf>, 
JsonParser.<jk>class</jk>, XmlParser.<jk>class</jk>);
+                       <jv>builder</jv>.set(<jsf>REST_parsers</jsf>, 
JsonParser.<jk>class</jk>, XmlParser.<jk>class</jk>);
                }
 
                <jc>// Option #3 - Defined via builder passed in through init 
method.</jc>
                <ja>@RestHook</ja>(<jsf>INIT</jsf>)
-               <jk>public void</jk> init(RestContextBuilder builder) 
<jk>throws</jk> Exception {
-                       builder.parsers(JsonParser.<jk>class</jk>, 
XmlParser.<jk>class</jk>);
+               <jk>public void</jk> init(RestContextBuilder <jv>builder</jv>) 
<jk>throws</jk> Exception {
+                       <jv>builder</jv>.parsers(JsonParser.<jk>class</jk>, 
XmlParser.<jk>class</jk>);
                }
 
                <jc>// Override at the method level.</jc>
-               <ja>@RestOp</ja>(parsers={HtmlParser.<jk>class</jk>})
-               <jk>public</jk> Object myMethod(<ja>@Body</ja> MyPojo myPojo) {
+               <ja>@RestPost</ja>(parsers={HtmlParser.<jk>class</jk>})
+               <jk>public</jk> Object myMethod(<ja>@Body</ja> MyPojo 
<jv>myPojo</jv>) {
                        <jc>// Do something with your parsed POJO.</jc>
                }
        }
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/15.RestConfigurableProperties.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/15.RestConfigurableProperties.html
index 77fd0df..25013f9 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/15.RestConfigurableProperties.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/15.RestConfigurableProperties.html
@@ -56,9 +56,9 @@ Configurable Properties
        <ja>@Rest</ja>(...)
        <jk>public</jk> MyRestServlet <jk>extends</jk> BasicRestServlet {
        
-               <jk>public</jk> MyRestServlet(RestContextBuilder builder) {
+               <jk>public</jk> MyRestServlet(RestContextBuilder 
<jv>builder</jv>) {
                        
-                       builder
+                       <jv>builder</jv>
                                .sortProperties();  <jc>// Note: 
RestContextBuilder extends from BeanContextBuilder</jc>
                                .set(<jsf>SERIALIZER_trimNulls</jsf>);
                                .set(<jsf>JSON_escapeSolidus</jsf>);
@@ -74,8 +74,8 @@ Configurable Properties
 </ul>
 <p class='bpcode w800'>
        <jc>// GET method with method-level properties</jc>
-       <ja>@RestOp</ja>(
-               method=<jsf>GET</jsf>, path=<js>"/*"</js>,
+       <ja>@RestGet</ja>(
+               path=<js>"/*"</js>,
                properties={
                        <jc>// Bean properties should be sorted 
alphabetically.</jc>
                        <ja>@Property</ja>(name=<jsf>BEAN_sortProperties</jsf>, 
value=<js>"true"</js>),
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/18.RestHandlingUris.html 
b/juneau-doc/docs/Topics/06.juneau-rest-server/18.RestHandlingUris.html
index 97d3596..36e9acc 100644
--- a/juneau-doc/docs/Topics/06.juneau-rest-server/18.RestHandlingUris.html
+++ b/juneau-doc/docs/Topics/06.juneau-rest-server/18.RestHandlingUris.html
@@ -28,7 +28,7 @@ URIs
        )
        <jk>public class</jk> MyResource {
        
-               <ja>@RestOp</ja>
+               <ja>@RestGet</ja>
                <jk>public</jk> URI[] getURIs() {
                        <jk>return new</jk> URI[] {
                                
URI.<jsm>create</jsm>(<js>"http://www.apache.org/f1a";</js>),
diff --git a/juneau-doc/docs/Topics/06.juneau-rest-server/19.RestGuards.html 
b/juneau-doc/docs/Topics/06.juneau-rest-server/19.RestGuards.html
index 104067e..59ca8d4 100644
--- a/juneau-doc/docs/Topics/06.juneau-rest-server/19.RestGuards.html
+++ b/juneau-doc/docs/Topics/06.juneau-rest-server/19.RestGuards.html
@@ -31,8 +31,8 @@ Guards
        <jk>public</jk> BillyGuard <jk>extends</jk> RestGuard {
 
                <ja>@Override</ja> <jc>/* RestGuard */</jc>
-               <jk>public boolean</jk> isRequestAllowed(RestRequest req) {
-                       <jk>return</jk> 
req.getUserPrincipal().getName().equals(<js>"Billy"</js>);
+               <jk>public boolean</jk> isRequestAllowed(RestRequest 
<jv>req</jv>) {
+                       <jk>return</jk> 
<jv>req</jv>.getUserPrincipal().getName().equals(<js>"Billy"</js>);
                }
        }
 
@@ -41,8 +41,8 @@ Guards
        <jk>public</jk> MyRestServlet <jk>extends</jk> BasicRestServlet {
 
                <jc>// Delete method that only Billy is allowed to call.</jc>
-               <ja>@RestOp</ja>(method=<js>"DELETE"</js>)
-               <jk>public</jk> doDelete(RestRequest req, RestResponse res) 
<jk>throws</jk> Exception {...}
+               <ja>@RestDelete</ja>
+               <jk>public</jk> doDelete(RestRequest <jv>req</jv>, RestResponse 
<jv>res</jv>) <jk>throws</jk> Exception {...}
        }
 </p>
 <p>
@@ -50,15 +50,15 @@ Guards
 </p>
 <p class='bpcode w800'>
        <jc>// DELETE method</jc>
-       <ja>@RestOp</ja>(method=<jsf>DELETE</jsf>, 
guards={AdminGuard.<jk>class</jk>})
-       <jk>public void</jk> doDelete(RestRequest req, RestResponse res) 
<jk>throws</jk> Exception {...}
+       <ja>@RestDDelete</ja>(guards={AdminGuard.<jk>class</jk>})
+       <jk>public void</jk> doDelete(RestRequest <jv>req</jv>, RestResponse 
<jv>res</jv>) <jk>throws</jk> Exception {...}
 </p>
 <p class='bpcode w800'>
        <jk>public class</jk> AdminGuard <jk>extends</jk> RestGuard {
 
                <ja>@Override</ja> <jc>/* RestGuard */</jc>
-               <jk>public boolean</jk> isRequestAllowed(RestRequest req) {
-                       <jk>return</jk> 
req.getUserPrincipal().isUserInRole(<js>"ADMIN"</js>);
+               <jk>public boolean</jk> isRequestAllowed(RestRequest 
<jv>req</jv>) {
+                       <jk>return</jk> 
<jv>req</jv>.getUserPrincipal().isUserInRole(<js>"ADMIN"</js>);
                }
        }
 </p>
@@ -72,7 +72,7 @@ Guards
        <jk>public class</jk> AdminGuard <jk>extends</jk> RestGuard {
 
                <ja>@Override</ja> <jc>/* RestGuard */</jc>
-               <jk>public boolean</jk> guard(RestRequest req, RestResponse 
res) <jk>throws</jk> RestException {
+               <jk>public boolean</jk> guard(RestRequest <jv>req</jv>, 
RestResponse <jv>res</jv>) <jk>throws</jk> RestException {
                        <jk>if</jk> (! isOkay(req))
                                <jk>throw new</jk> 
RestException(<jsf>SC_FORBIDDEN</jsf>, <js>"Access denied!!!"</js>);
                        <jk>return true</jk>;
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/21.RestConverters.html 
b/juneau-doc/docs/Topics/06.juneau-rest-server/21.RestConverters.html
index 57d7459..a3ad8a3 100644
--- a/juneau-doc/docs/Topics/06.juneau-rest-server/21.RestConverters.html
+++ b/juneau-doc/docs/Topics/06.juneau-rest-server/21.RestConverters.html
@@ -41,12 +41,12 @@ Converters
        <jc>// GET person request handler.</jc>
        <jc>// Traversable conversion enabled to allow nodes in returned POJO 
tree to be addressed.</jc>
        <jc>// Queryable conversion enabled to allow returned POJO to be 
searched/viewed/sorted.</jc>
-       <ja>@RestOp</ja>(
-               name=<jsf>GET</jsf>, path=<js>"/people/{id}/*"</js>,
+       <ja>@RestGet</ja>(
+               path=<js>"/people/{id}/*"</js>,
                converters={Traversable.<jk>class</jk>,Queryable.<jk>class</jk>}
        )
-       <jk>public</jk> Person getPerson(<ja>@Path</ja>(<js>"id"</js>) 
<jk>int</jk> id) {
-               <jk>return</jk> findPerson(id);
+       <jk>public</jk> Person getPerson(<ja>@Path</ja>(<js>"id"</js>) 
<jk>int</jk> <jv>id</jv>) {
+               <jk>return</jk> findPerson(<jv>id</jv>);
        }
 </p>   
 <p>
@@ -64,27 +64,27 @@ Converters
        <jk>public class</jk> Traversable <jk>implements</jk> RestConverter {
        
                <ja>@Override</ja> <jc>/* RestConverter */</jc>
-               <jk>public</jk> Object convert(RestRequest req, Object o) 
<jk>throws</jk> RestException {
-                       if (o == <jk>null</jk>)
+               <jk>public</jk> Object convert(RestRequest <jv>req</jv>, Object 
<jv>o</jv>) <jk>throws</jk> RestException {
+                       <jk>if</jk> (<jv>o</jv> == <jk>null</jk>)
                                <jk>return null</jk>;
        
-                       String pathRemainder = 
req.getPathMatch().getRemainder();
+                       String <jv>pathRemainder</jv> = 
<jv>req</jv>.getPathMatch().getRemainder();
        
-                       <jk>if</jk> (pathRemainder != <jk>null</jk>) {
+                       <jk>if</jk> (<jv>pathRemainder</jv> != <jk>null</jk>) {
                                <jk>try</jk> {
                                
                                        <jc>// Use the PojoRest class to 
traverse our POJO model.</jc> 
-                                       PojoRest p = <jk>new</jk> PojoRest(o);
-                                       o = p.get(pathRemainder);
+                                       PojoRest <jv>p</jv> = <jk>new</jk> 
PojoRest(<jv>o</jv>);
+                                       <jv>o</jv> = 
<jv>p</jv>.get(<jv>pathRemainder</jv>);
                                
-                               } <jk>catch</jk> (PojoRestException e) {
-                                       <jk>throw new</jk> 
RestException(e.getStatus(), e);
-                               } <jk>catch</jk> (Exception e) {
-                                       <jk>throw new</jk> 
RestException(HttpServletResponse.<jsf>SC_INTERNAL_SERVER_ERROR</jsf>, e);
+                               } <jk>catch</jk> (PojoRestException <jv>e</jv>) 
{
+                                       <jk>throw new</jk> 
RestException(<jv>e</jv>.getStatus(), <jv>e</jv>);
+                               } <jk>catch</jk> (Exception <jv>e</jv>) {
+                                       <jk>throw new</jk> 
RestException(HttpServletResponse.<jsf>SC_INTERNAL_SERVER_ERROR</jsf>, 
<jv>e</jv>);
                                }
                        }
                        
-                       <jk>return</jk> o;
+                       <jk>return</jk> <jv>o</jv>;
                }
        }
 </p>   
diff --git a/juneau-doc/docs/Topics/06.juneau-rest-server/22.RestMessages.html 
b/juneau-doc/docs/Topics/06.juneau-rest-server/22.RestMessages.html
index b0fb016..4f12e8b 100644
--- a/juneau-doc/docs/Topics/06.juneau-rest-server/22.RestMessages.html
+++ b/juneau-doc/docs/Topics/06.juneau-rest-server/22.RestMessages.html
@@ -70,7 +70,7 @@ Resource bundles are searched using the following base name 
patterns:
        <ja>@Rest</ja>(messages=<js>"nls/MyMessages"</js>)
        <jk>public class</jk> MyResource {...}
 
-               <ja>@RestOp</ja>(method=<js>"GET"</js>, 
path=<js>"/hello/{you}"</js>)
+               <ja>@RestGet</ja>(<js>"/hello/{you}"</js>)
                <jk>public</jk> Object helloYou(RestRequest <jv>req</jv>, 
Messages <jv>messages</jv>, <ja>@Path</ja>(<js>"name"</js>) String 
<jv>you</jv>) {
                        String <jv>s</jv>;
 
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/25.RestConfigurationFiles.html 
b/juneau-doc/docs/Topics/06.juneau-rest-server/25.RestConfigurationFiles.html
index c6e2a87..8e067fc 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/25.RestConfigurationFiles.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/25.RestConfigurationFiles.html
@@ -132,9 +132,9 @@ Configuration Files
                 * GET request handler.
                 * Specify the GET parameter "?person=X" for a specialized 
message! 
                 */</jd>
-               <ja>@RestOp</ja>(method=<jsf>GET</jsf>, path=<js>"/"</js>)
-               <jk>public</jk> String sayHello(RestRequest req) {
-                       <jk>return</jk> 
req.getConfig().getString(<js>"HelloWorldResource/message"</js>);
+               <ja>@RestGet</ja>(<js>"/"</js>)
+               <jk>public</jk> String sayHello(RestRequest <jv>req</jv>) {
+                       <jk>return</jk> 
<jv>req</jv>.getConfig().getString(<js>"HelloWorldResource/message"</js>);
                }
        }
 </p>
@@ -169,9 +169,9 @@ Configuration Files
                 * GET request handler.
                 * Specify the GET parameter "?person=X" for a specialized 
message! 
                 */</jd>
-               <ja>@RestOp</ja>(method=<jsf>GET</jsf>, path=<js>"/"</js>)
-               <jk>public</jk> String sayHello(RestRequest req) {
-                       <jk>return</jk> 
req.getConfig().getString(<js>"HelloWorldResource/message"</js>);
+               <ja>@RestGet</ja>(<js>"/"</js>)
+               <jk>public</jk> String sayHello(RestRequest <jv>req</jv>) {
+                       <jk>return</jk> 
<jv>req</jv>.getConfig().getString(<js>"HelloWorldResource/message"</js>);
                }
        }
 </p>
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/27.RestClientVersioning.html 
b/juneau-doc/docs/Topics/06.juneau-rest-server/27.RestClientVersioning.html
index 560c391..1e3e787 100644
--- a/juneau-doc/docs/Topics/06.juneau-rest-server/27.RestClientVersioning.html
+++ b/juneau-doc/docs/Topics/06.juneau-rest-server/27.RestClientVersioning.html
@@ -35,19 +35,19 @@ Client Versioning
 
                <jc>// Call this method if Client-Version is at least 2.0.
                // Note that this also matches 2.0.1.</jc>
-               <ja>@RestOp</ja>(method=<jsf>GET</jsf>, 
path=<js>"/foobar"</js>, clientVersion=<js>"2.0"</js>)
+               <ja>@RestGet</ja>(path=<js>"/foobar"</js>, 
clientVersion=<js>"2.0"</js>)
                <jk>public</jk> Object method1() {
                        ...
                }
        
                <jc>// Call this method if Client-Version is at least 1.1, but 
less than 2.0.</jc>
-               <ja>@RestOp</ja>(method=<jsf>GET</jsf>, 
path=<js>"/foobar"</js>, clientVersion=<js>"[1.1,2.0)"</js>)
+               <ja>@RestGet</ja>(path=<js>"/foobar"</js>, 
clientVersion=<js>"[1.1,2.0)"</js>)
                <jk>public</jk> Object method2() {
                        ...
                }
        
                <jc>// Call this method if Client-Version is less than 1.1.</jc>
-               <ja>@RestOp</ja>(method=<jsf>GET</jsf>, 
path=<js>"/foobar"</js>, clientVersion=<js>"[0,1.1)"</js>)
+               <ja>@RestGet</ja>(path=<js>"/foobar"</js>, 
clientVersion=<js>"[0,1.1)"</js>)
                <jk>public</jk> Object method3() {
                        ...
                }
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/29.RestSwagger/01.RestSwaggerBasicRestServlet.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/29.RestSwagger/01.RestSwaggerBasicRestServlet.html
index 05d983d..6302b8e 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/29.RestSwagger/01.RestSwaggerBasicRestServlet.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/29.RestSwagger/01.RestSwaggerBasicRestServlet.html
@@ -80,9 +80,9 @@ BasicRestServlet
                                SwaggerUI.<jk>class</jk>
                        }
                )
-               <jk>public</jk> Swagger getOptions(RestRequest req) {
+               <jk>public</jk> Swagger getOptions(RestRequest <jv>req</jv>) {
                        <jc>// Localized Swagger for this resource is available 
through the RestRequest object.</jc>
-                       <jk>return</jk> req.getSwagger();
+                       <jk>return</jk> <jv>req</jv>.getSwagger();
                }
        }
 </p>
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/29.RestSwagger/03.RestSwaggerTags.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/29.RestSwagger/03.RestSwaggerTags.html
index 6bc9d30..ccc1b72 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/29.RestSwagger/03.RestSwaggerTags.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/29.RestSwagger/03.RestSwaggerTags.html
@@ -87,8 +87,7 @@ Tags
 
 <h5 class='figure'>GET /user operation</h5>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(
-               method=<jsf>GET</jsf>,
+       <ja>@RestGet</ja>(
                path=<js>"/user"</js>,
                summary=<js>"Petstore users"</js>,
                swagger=<ja>@OpSwagger</ja>(
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/29.RestSwagger/04.RestSwaggerOperations.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/29.RestSwagger/04.RestSwaggerOperations.html
index 6b045aa..f75f25b 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/29.RestSwagger/04.RestSwaggerOperations.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/29.RestSwagger/04.RestSwaggerOperations.html
@@ -24,8 +24,7 @@ Operations
 </p>
 <h5 class='figure'>PetStoreResource.getPets()</h5>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(
-               method=<jsf>GET</jsf>,
+       <ja>@RestGet</ja>(
                path=<js>"/pet"</js>,
                summary=<js>"All pets in the store"</js>,
                swagger=<ja>@OpSwagger</ja>(
@@ -43,8 +42,7 @@ Operations
 </p>
 <h5 class='figure'>PetStoreResource.findPetsByTag()</h5>
 <p class='bpcode w800'>        
-       <ja>@RestOp</ja>(
-               method=<jsf>GET</jsf>,
+       <ja>@RestGet</ja>(
                path=<js>"/pet/findByTags"</js>,
                summary=<js>"Finds Pets by tags"</js>,
                ...
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/29.RestSwagger/05.RestSwaggerParameters.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/29.RestSwagger/05.RestSwaggerParameters.html
index 0c8219a..f8dd5cd 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/29.RestSwagger/05.RestSwaggerParameters.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/29.RestSwagger/05.RestSwaggerParameters.html
@@ -24,9 +24,7 @@ Parameters
        being passed to your <ja>@RestOp</ja>-annotated method, like so:
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(
-               ...
-       )
+       <ja>@RestGet</ja>
        <jk>public</jk> Collection&lt;Pet&gt; getPets(
                        <ja>@Query</ja>(
                                name=<js>"s"</js>,
@@ -41,7 +39,7 @@ Parameters
                                collectionFormat=<js>"csv"</js>,
                                example=<js>"Bill*,birthDate>2000"</js>
                        ) 
-                       String[] s,
+                       String[] <jv>s</jv>,
                        <ja>@Query</ja>(
                                name=<js>"v"</js>,
                                description={
@@ -52,7 +50,7 @@ Parameters
                                collectionFormat=<js>"csv"</js>,
                                example=<js>"name,birthDate"</js>
                        ) 
-                       String[] v,
+                       String[] <jv>v</jv>,
                        ...
                ) <jk>throws</jk> NotAcceptable {
                ...
@@ -70,8 +68,7 @@ Parameters
 </p>
 <h5 class='figure'>PetStoreResource.getPets()</h5>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(
-               method=<jsf>GET</jsf>,
+       <ja>@RestGet</ja>(
                path=<js>"/pet"</js>,
                summary=<js>"All pets in the store"</js>,
                swagger=<ja>@OpSwagger</ja>(
@@ -132,17 +129,17 @@ Parameters
        The definition of this method is shown here:
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(
+       <ja>@RestPost</ja>(
                summary=<js>"Add a new pet to the store"</js>,
                swagger=<ja>@OpSwagger</ja>(
                        tags=<js>"pet"</js>
                )
        )
        <jk>public</jk> Ok postPet(
-                       <ja>@Body</ja>(description=<js>"Pet object to add to 
the store"</js>) PetCreate pet
+                       <ja>@Body</ja>(description=<js>"Pet object to add to 
the store"</js>) PetCreate <jv>pet</jv>
                ) <jk>throws</jk> IdConflict, NotAcceptable, 
UnsupportedMediaType {
 
-               <jf>store</jf>.create(pet);
+               <jf>store</jf>.create(<jv>pet</jv>);
                <jk>return</jk> <jsf>OK</jsf>;
        }
 </p>
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/29.RestSwagger/06.RestSwaggerParameterExamples.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/29.RestSwagger/06.RestSwaggerParameterExamples.html
index dfa8380..fcf17ce 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/29.RestSwagger/06.RestSwaggerParameterExamples.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/29.RestSwagger/06.RestSwaggerParameterExamples.html
@@ -24,9 +24,7 @@ Parameter Examples
        The examples for query/form-data/path/header parameters can be defined 
using the <c>example</c> attribute on your annotated parameters as shown here:
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(
-               ...
-       )
+       <ja>@RestGet</ja>
        <jk>public</jk> Collection&lt;Pet&gt; getPets(
                        <ja>@Query</ja>(
                                name=<js>"s"</js>,
@@ -41,6 +39,7 @@ Parameter Examples
                                collectionFormat=<js>"csv"</js>,
                                example=<js>"Bill*,birthDate>2000"</js>
                        ) 
+                       String[] <jv>query</jv>,
                        ...
                ) <jk>throws</jk> NotAcceptable {
                ...
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/29.RestSwagger/07.RestSwaggerResponses.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/29.RestSwagger/07.RestSwaggerResponses.html
index 4ebc81d..6fedf2b 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/29.RestSwagger/07.RestSwaggerResponses.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/29.RestSwagger/07.RestSwaggerResponses.html
@@ -23,8 +23,7 @@ Responses
        The <c>200</c> response is determined by the return type on the method, 
in this case a collection of <c>Pet</c> objects:
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(
-               method=<jsf>GET</jsf>,
+       <ja>@RestGet</ja>(
                path=<js>"/pet"</js>,
                summary=<js>"All pets in the store"</js>,
                ...
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/29.RestSwagger/08.RestSwaggerResponseExamples.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/29.RestSwagger/08.RestSwaggerResponseExamples.html
index dd85654..b2f14f8 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/29.RestSwagger/08.RestSwaggerResponseExamples.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/29.RestSwagger/08.RestSwaggerResponseExamples.html
@@ -167,8 +167,7 @@ Response Examples
        The example above shows one of each:
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(
-               method=<jsf>GET</jsf>,
+       <ja>@RestGet</ja>(
                path=<js>"/user/login"</js>,
                summary=<js>"Logs user into the system"</js>,
                swagger=<ja>@OpSwagger</ja>(
@@ -182,14 +181,14 @@ Response Examples
                                required=<jk>true</jk>,
                                example=<js>"myuser"</js>
                        )
-                       String username,
+                       String <jv>username</jv>,
                        <ja>@Query</ja>(
                                name=<js>"password"</js>,
                                description=<js>"The password for login in 
clear text"</js>,
                                required=<jk>true</jk>,
                                example=<js>"abc123"</js>
                        )
-                       String password,
+                       String <jv>password</jv>,
                        <ja>@ResponseHeader</ja>(
                                name=<js>"X-Rate-Limit"</js>,
                                type=<js>"integer"</js>,
@@ -197,19 +196,19 @@ Response Examples
                                description=<js>"Calls per hour allowed by the 
user."</js>,
                                example=<js>"123"</js>
                        )
-                       Value&lt;Integer&gt; rateLimit,
-                       Value&lt;ExpiresAfter&gt; expiresAfter,
-                       RestRequest req,
-                       RestResponse res
+                       Value&lt;Integer&gt; <jv>rateLimit</jv>,
+                       Value&lt;ExpiresAfter&gt; <jv>expiresAfter</jv>,
+                       RestRequest <jv>req</jv>,
+                       RestResponse <jv>res</jv>
                ) <jk>throws</jk> InvalidLogin, NotAcceptable {
 
-               <jk>if</jk> (! <jf>store</jf>.isValid(username, password))
+               <jk>if</jk> (! <jf>store</jf>.isValid(<jv>username</jv>, 
<jv>password</jv>))
                        <jk>throw new</jk> InvalidLogin();
 
-               Date d = <jk>new</jk> 
Date(System.<jsm>currentTimeMillis</jsm>() + 30 * 60 * 1000);
-               req.getSession().setAttribute(<js>"login-expires"</js>, d);
-               rateLimit.set(1000);
-               expiresAfter.set(<jk>new</jk> ExpiresAfter(d));
+               Date <jv>d</jv> = <jk>new</jk> 
Date(System.<jsm>currentTimeMillis</jsm>() + 30 * 60 * 1000);
+               
<jv>req</jv>.getSession().setAttribute(<js>"login-expires"</js>, d);
+               <jv>rateLimit</jv>.set(1000);
+               <jv>expiresAfter</jv>.set(<jk>new</jk> 
ExpiresAfter(<jv>d</jv>));
                <jk>return</jk> <jsf>OK</jsf>;
        }
 </p>
@@ -223,9 +222,9 @@ Response Examples
        )
        <jk>public static class</jk> ExpiresAfter {
                <jk>private final</jk> Calendar <jf>c</jf>;
-               <jk>public</jk> ExpiresAfter(Date d) {
+               <jk>public</jk> ExpiresAfter(Date <jv>d</jv>) {
                        <jk>this</jk>.<jf>c</jf> = <jk>new</jk> 
GregorianCalendar();
-                       <jf>c</jf>.setTime(d);
+                       <jf>c</jf>.setTime(<jv>d</jv>);
                }
                <jk>public</jk> Calendar toCalendar() {
                        <jk>return</jk> <jf>c</jf>;
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/29.RestSwagger/09.RestSwaggerModels.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/29.RestSwagger/09.RestSwaggerModels.html
index 3e39353..a7ab1c3 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/29.RestSwagger/09.RestSwaggerModels.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/29.RestSwagger/09.RestSwaggerModels.html
@@ -32,7 +32,7 @@ Models
                                <jsf>JSONSCHEMA_useBeanDefs</jsf>
                        }
                )
-               <jk>public</jk> Swagger getOptions(RestRequest req) {...}
+               <jk>public</jk> Swagger getOptions(RestRequest <jv>req</jv>) 
{...}
 </p>
 <p>
        In the Swagger UI, this causes bean definitions to show up in the 
Models section at the bottom of the page:
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/31.RestHtmlDocAnnotation/02.RestHtmlWidgets.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/31.RestHtmlDocAnnotation/02.RestHtmlWidgets.html
index 06c48c1..d80d729 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/31.RestHtmlDocAnnotation/02.RestHtmlWidgets.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/31.RestHtmlDocAnnotation/02.RestHtmlWidgets.html
@@ -29,7 +29,7 @@ Widgets
 </ul>
 <h5 class='figure'>Example:</h5>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(...)
+       <ja>@RestGet</ja>(...)
        <ja>@HtmlDocConfig</ja>(
                widgets={
                        MyWidget.<jk>class</jk>
@@ -75,13 +75,13 @@ Widgets
        <jk>public class</jk> MyWidget <jk>extends</jk> Widget {
 
                <ja>@Override</ja> <jc>/* Widget */</jc>
-               <jk>public</jk> String getHtml(RestRequest req) <jk>throws</jk> 
Exception {
-                       UriResolver r = req.getUriResolver(); <jc>// API used 
for resolving URIs.</jc>
-                       <jk>return</jk> <js>"&lt;img class='myimage' 
onclick='myalert(this)' 
src='"</js>+r.resolve(<js>"servlet:/htdocs/myimage.png"</js>)+<js>"'&gt;"</js>;
+               <jk>public</jk> String getHtml(RestRequest <jv>req</jv>) 
<jk>throws</jk> Exception {
+                       UriResolver <jv>r</jv> = <jv>req</jv>.getUriResolver(); 
<jc>// API used for resolving URIs.</jc>
+                       <jk>return</jk> <js>"&lt;img class='myimage' 
onclick='myalert(this)' 
src='"</js>+<jv>r</jv>.resolve(<js>"servlet:/htdocs/myimage.png"</js>)+<js>"'&gt;"</js>;
                }
 
                <ja>@Override</ja> <jc>/* Widget */</jc>
-               <jk>public</jk> String getScript(RestRequest req) 
<jk>throws</jk> Exception {
+               <jk>public</jk> String getScript(RestRequest <jv>req</jv>) 
<jk>throws</jk> Exception {
                        <jk>return</jk> <js>""</js>
                                + <js>"\n function myalert(imageElement) {"</js>
                                + <js>"\n       alert('cool!');"</js>
@@ -89,7 +89,7 @@ Widgets
                }
 
                <ja>@Override</ja> <jc>/* Widget */</jc>
-               <jk>public</jk> String getStyle(RestRequest req) 
<jk>throws</jk> Exception {
+               <jk>public</jk> String getStyle(RestRequest <jv>req</jv>) 
<jk>throws</jk> Exception {
                        <jk>return</jk> <js>""</js>
                                + <js>"\n .myimage {"</js>
                                + <js>"\n       border: 10px solid red;"</js>
@@ -115,12 +115,12 @@ Widgets
                ...
 
                <ja>@Override</ja> <jc>/* Widget */</jc>
-               <jk>public</jk> String getScript(RestRequest req) 
<jk>throws</jk> Exception {
+               <jk>public</jk> String getScript(RestRequest <jv>req</jv>) 
<jk>throws</jk> Exception {
                        <jk>return</jk> 
getClasspathResourceAsString(<js>"MyWidget.js"</js>);
                }
 
                <ja>@Override</ja> <jc>/* Widget */</jc>
-               <jk>public</jk> String getStyle(RestRequest req) 
<jk>throws</jk> Exception {
+               <jk>public</jk> String getStyle(RestRequest <jv>req</jv>) 
<jk>throws</jk> Exception {
                        <jk>return</jk> 
getClasspathResourceAsString(<js>"MyWidget.css"</js>);
                }
        }
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/31.RestHtmlDocAnnotation/03.RestHtmlPredefinedWidgets.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/31.RestHtmlDocAnnotation/03.RestHtmlPredefinedWidgets.html
index 6cc619a..c3529c1 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/31.RestHtmlDocAnnotation/03.RestHtmlPredefinedWidgets.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/31.RestHtmlDocAnnotation/03.RestHtmlPredefinedWidgets.html
@@ -84,8 +84,7 @@ Predefined Widgets
        An example of this widget can be found in the <c>PetStoreResource</c> 
in the examples that provides a drop-down menu item for rendering all other 
supported content types in plain text:
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(
-               method=<jsf>GET</jsf>,
+       <ja>@RestGet</ja>(
                path=<js>"/"</js>,
                widgets={
                        ContentTypeMenuItem.<jk>class</jk>,
@@ -124,8 +123,7 @@ Predefined Widgets
        An example of this widget can be found in the <c>PetStoreResource</c> 
in the examples that provides
        search/view/sort capabilities against the collection of POJOs:
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(
-               method=<jsf>GET</jsf>,
+       <ja>@RestGet</ja>(
                path=<js>"/"</js>,
                widgets={
                        QueryMenuItem.<jk>class</jk>,
@@ -171,8 +169,7 @@ Predefined Widgets
        a drop-down menu item for rendering all other supported content types 
in plain text:
 </p>
 <p class='bpcode w800'>
-       <ja>@RestOp</ja>(
-               method=<jsf>GET</jsf>,
+       <ja>@RestGet</ja>(
                path=<js>"/"</js>,
                widgets={
                        ThemeMenuItem.<jk>class</jk>,
@@ -228,12 +225,12 @@ Predefined Widgets
        <jk>public class</jk> MyFormMenuItem <jk>extends</jk> MenuItemWidget {
        
                <ja>@Override</ja>
-               <jk>public</jk> String getLabel(RestRequest req) 
<jk>throws</jk> Exception {
+               <jk>public</jk> String getLabel(RestRequest <jv>req</jv>) 
<jk>throws</jk> Exception {
                        <jk>return</jk> <js>"myform"</js>;
                }
        
                <ja>@Override</ja>
-               <jk>public</jk> Object getContent(RestRequest req) 
<jk>throws</jk> Exception {
+               <jk>public</jk> Object getContent(RestRequest <jv>req</jv>) 
<jk>throws</jk> Exception {
                        <jk>return</jk> div(
                                
<jsm>form</jsm>().id(<js>"form"</js>).action(<js>"servlet:/form"</js>).method(<jsf>POST</jsf>).children(
                                        <jsm>table</jsm>(
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/33.RestLoggingAndDebugging.html 
b/juneau-doc/docs/Topics/06.juneau-rest-server/33.RestLoggingAndDebugging.html
index c9a9e18..0d02030 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/33.RestLoggingAndDebugging.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/33.RestLoggingAndDebugging.html
@@ -93,12 +93,12 @@ Logging / Debugging
        )
        <jk>public static class</jk> MyRestClass {
 
-               <ja>@RestOp</ja>(method=<js>"POST"</js>, path=<js>"foo"</js>)
-               <jk>public</jk> String myRestOp(RestRequest req, RestResponse 
res) <jk>throws</jk> Exception {
-                       res.setStatus(500);
-                       res.setHeader(<js>"Foo"</js>, <js>"bar"</js>);
-                       res.setException(<jk>new</jk> 
StringIndexOutOfBoundsException());  <jc>// Could also throw.</jc>
-                       <jk>return</jk> req.getBody().asString();
+               <ja>@RestPost</ja>(<js>"foo"</js>)
+               <jk>public</jk> String myRestOp(RestRequest <jv>req</jv>, 
RestResponse <jv>res</jv>) <jk>throws</jk> Exception {
+                       <jv>res</jv>.setStatus(500);
+                       <jv>res</jv>.setHeader(<js>"Foo"</js>, <js>"bar"</js>);
+                       <jv>res</jv>.setException(<jk>new</jk> 
StringIndexOutOfBoundsException());  <jc>// Could also throw.</jc>
+                       <jk>return</jk> <jv>req</jv>.getBody().asString();
                }
        }
 
@@ -303,15 +303,15 @@ Logging / Debugging
        )
        <jk>public static class</jk> MyRestClass {
 
-               <ja>@RestOp</ja>(method=<js>"POST"</js>, path=<js>"foo"</js>)
-               <jk>public</jk> String myRestOp(RestRequest req, RestResponse 
res) <jk>throws</jk> Exception {
-                       res.setHeader(<js>"Foo"</js>, <js>"bar"</js>);
+               <ja>@RestPost</ja>(<js>"foo"</js>)
+               <jk>public</jk> String myRestOp(RestRequest <jv>req</jv>, 
RestResponse <jv>res</jv>) <jk>throws</jk> Exception {
+                       <jv>res</jv>.setHeader(<js>"Foo"</js>, <js>"bar"</js>); 
                
-                       // Equivalent to throwing an exception. 
-                       res.setStatus(500);
-                       res.setException(<jk>new</jk> 
StringIndexOutOfBoundsException());
+                       <jc>// Equivalent to throwing an exception.</jc>
+                       <jv>res</jv>.setStatus(500);
+                       <jv>res</jv>.setException(<jk>new</jk> 
StringIndexOutOfBoundsException());
                        
-                       <jk>return</jk> req.getBody().asString();
+                       <jk>return</jk> <jv>req</jv>.getBody().asString();
                }
        }
 
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/35.RestOverloadingHttpMethods.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/35.RestOverloadingHttpMethods.html
index dd01263..6d6837a 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/35.RestOverloadingHttpMethods.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/35.RestOverloadingHttpMethods.html
@@ -24,7 +24,7 @@ Overloading HTTP Methods
 </p>
 <p class='bpcode w800'>
        <ja>@RestOp</ja>(method=<js>"BAR"</js>)
-       <jk>public void</jk> doBar(RestRequest req, RestResponse res) {
+       <jk>public void</jk> doBar(RestRequest <jv>req</jv>, RestResponse 
<jv>res</jv>) {
                <jc>// Handle BAR requests</jc>
        }
 </p>
diff --git 
a/juneau-doc/docs/Topics/06.juneau-rest-server/37.RestCustomSerializersAndParsers.html
 
b/juneau-doc/docs/Topics/06.juneau-rest-server/37.RestCustomSerializersAndParsers.html
index 3a07fe5..dbca04e 100644
--- 
a/juneau-doc/docs/Topics/06.juneau-rest-server/37.RestCustomSerializersAndParsers.html
+++ 
b/juneau-doc/docs/Topics/06.juneau-rest-server/37.RestCustomSerializersAndParsers.html
@@ -42,16 +42,16 @@ Custom Serializers and Parsers
        <jk>public class</jk> PhotosResource <jk>extends</jk> BasicRestServlet {
        
                <jc>// Our cache of photos</jc>
-               <jk>private</jk> Map&lt;Integer,Photo&gt; photos = <jk>new</jk> 
TreeMap&lt;Integer,Photo&gt;();
+               <jk>private</jk> Map&lt;Integer,Photo&gt; <jf>photos</jf> = 
<jk>new</jk> TreeMap&lt;Integer,Photo&gt;();
                
                <jd>/** Bean class for storing photos */</jd>
                <jk>public static class</jk> Photo {
                        <jk>private int</jk> <jf>id</jf>;
                        BufferedImage <jf>image</jf>;
                        
-                       Photo(int id, BufferedImage image) {
-                               <jk>this</jk>.<jf>id</jf> = id;
-                               <jk>this</jk>.<jf>image</jf> = image;
+                       Photo(<jk>int</jk> <jv>id</jv>, BufferedImage 
<jv>image</jv>) {
+                               <jk>this</jk>.<jf>id</jf> = <jv>id</jv>;
+                               <jk>this</jk>.<jf>image</jf> = <jv>image</jv>;
                        }
                        
                        <jk>public</jk> URI getURI() <jk>throws</jk> 
URISyntaxException {
@@ -64,62 +64,56 @@ Custom Serializers and Parsers
                }
                
                <jd>/** GET request handler for list of all photos */</jd>
-               <ja>@RestOp</ja>(method=<jsf>GET</jsf>, path=<js>"/"</js>)
-               <jk>public</jk> Collection&lt;Photo&gt; 
getAllPhotos(RestRequest req, RestResponse res) <jk>throws</jk> Exception {
-                       res.setPageTitle(<js>"Photo REST service"</js>);
-                       res.setPageText(<js>"Use a tool like Poster to upload 
and retrieve jpeg and png images."</js>);
-                       <jk>return</jk> photos.values();
+               <ja>@RestGet</ja>(<js>"/"</js>)
+               <jk>public</jk> Collection&lt;Photo&gt; 
getAllPhotos(RestRequest <jv>req</jv>, RestResponse <jv>res</jv>) 
<jk>throws</jk> Exception {
+                       <jv>res</jv>.setPageTitle(<js>"Photo REST 
service"</js>);
+                       <jv>res</jv>.setPageText(<js>"Use a tool like Poster to 
upload and retrieve jpeg and png images."</js>);
+                       <jk>return</jk> <jf>photos</jf>.values();
                }
                
                <jd>/** GET request handler for single photo */</jd>
-               <ja>@RestOp</ja>(method=<jsf>GET</jsf>, path=<js>"/{id}"</js>, 
serializers=ImageSerializer.<jk>class</jk>)
-               <jk>public</jk> BufferedImage getPhoto(RestRequest req, 
<ja>@Path</ja>(<js>"id"</js>) int id) <jk>throws</jk> Exception {
-                       Photo p = photos.get(id);
-                       if (p == <jk>null</jk>)
+               <ja>@RestGet</ja>(path=<js>"/{id}"</js>, 
serializers=ImageSerializer.<jk>class</jk>)
+               <jk>public</jk> BufferedImage getPhoto(RestRequest 
<jv>req</jv>, <ja>@Path</ja>(<js>"id"</js>) <jk>int</jk> <jv>id</jv>) 
<jk>throws</jk> Exception {
+                       Photo <jv>p</jv> = <jf>photos</jf>.get(<jv>id</jv>);
+                       <jk>if</jk> (<jv>p</jv> == <jk>null</jk>)
                                <jk>throw new</jk> 
RestException(<jsf>SC_NOT_FOUND</jsf>, <js>"Photo not found"</js>);
-                       <jk>return</jk> p.image;
+                       <jk>return</jk> <jv>p</jv>.<jf>image</jf>;
                }
                
                <jd>/** PUT request handler */</jd>
-               <ja>@RestOp</ja>(method=<jsf>PUT</jsf>, path=<js>"/{id}"</js>, 
parsers=ImageParser.<jk>class</jk>)
-               <jk>public</jk> String addPhoto(RestRequest req, 
<ja>@Path</ja>(<js>"id"</js>) <jk>int</jk> id, <ja>@Body</ja> BufferedImage 
image) <jk>throws</jk> Exception {
-                       photos.put(id, <jk>new</jk> Photo(id, image));
+               <ja>@RestPut</ja>(path=<js>"/{id}"</js>, 
parsers=ImageParser.<jk>class</jk>)
+               <jk>public</jk> String addPhoto(RestRequest <jv>req</jv>, 
<ja>@Path</ja>(<js>"id"</js>) <jk>int</jk> <jv>id</jv>, <ja>@Body</ja> 
BufferedImage <jv>image</jv>) <jk>throws</jk> Exception {
+                       <jf>photos</jf>.put(<jv>id</jv>, <jk>new</jk> 
Photo(<jv>id</jv>, <jv>image</jv>));
                        <jk>return</jk> <js>"OK"</js>;
                }
                
                <jd>/** POST request handler */</jd>
-               <ja>@RestOp</ja>(method=<jsf>POST</jsf>, path=<js>"/"</js>, 
parsers=ImageParser.<jk>class</jk>)
-               <jk>public</jk> Photo setPhoto(RestRequest req, <ja>@Body</ja> 
BufferedImage image) <jk>throws</jk> Exception {
-                       <jk>int</jk> id = photos.size();
-                       Photo p = <jk>new</jk> Photo(id, image);
-                       photos.put(id, p);
-                       <jk>return</jk> p;
+               <ja>@RestPost</ja>(path=<js>"/"</js>, 
parsers=ImageParser.<jk>class</jk>)
+               <jk>public</jk> Photo setPhoto(RestRequest <jv>req</jv>, 
<ja>@Body</ja> BufferedImage <jv>image</jv>) <jk>throws</jk> Exception {
+                       <jk>int</jk> <jv>id</jv> = <jf>photos</jf>.size();
+                       Photo <jv>p</jv> = <jk>new</jk> Photo(<jv>id</jv>, 
<jv>image</jv>);
+                       <jf>photos</jf>.put(<jv>id</jv>, <jv>p</jv>);
+                       <jk>return</jk> <jv>p</jv>;
                }
                
                <jd>/** DELETE request handler */</jd>
-               <ja>@RestOp</ja>(method=<jsf>DELETE</jsf>, 
path=<js>"/{id}"</js>)
-               <jk>public</jk> String deletePhoto(RestRequest req, 
<ja>@Path</ja>(<js>"id"</js>) <jk>int</jk> id) <jk>throws</jk> Exception {
-                       Photo p = photos.remove(id);
-                       if (p == <jk>null</jk>)
+               <ja>@RestDelete</ja>(<js>"/{id}"</js>)
+               <jk>public</jk> String deletePhoto(RestRequest <jv>req</jv>, 
<ja>@Path</ja>(<js>"id"</js>) <jk>int</jk> <jv>id</jv>) <jk>throws</jk> 
Exception {
+                       Photo <jv>p</jv> = <jf>photos</jf>.remove(<jv>id</jv>);
+                       <jk>if</jk> (<jv>p</jv> == <jk>null</jk>)
                                <jk>throw new</jk> 
RestException(<jsf>SC_NOT_FOUND</jsf>, <js>"Photo not found"</js>);
                        <jk>return</jk> <js>"OK"</js>;
                }
        
-               <jd>/** OPTIONS request handler */</jd>
-               <ja>@RestOp</ja>(method=<jsf>OPTIONS</jsf>, path=<js>"/*"</js>)
-               <jk>public</jk> Swagger getOptions(RestRequest req) {
-                       <jk>return</jk> req.getSwagger();
-               }
-
                <jd>/** Serializer for converting images to byte streams */</jd>
                <ja>@Produces</ja>(<js>"image/png,image/jpeg"</js>)
                <jk>public static class</jk> ImageSerializer <jk>extends</jk> 
OutputStreamSerializer {
                
                        <ja>@Override</ja> <jc>/* Serializer */</jc>
-                       <jk>public void</jk> serialize(Object o, OutputStream 
out, SerializerSession session) <jk>throws</jk> IOException, SerializeException 
{
-                               RenderedImage image = (RenderedImage)o;
-                               String mediaType = ctx.getMediaType();
-                               ImageIO.<jsm>write</jsm>(image, 
mediaType.substring(mediaType.indexOf(<js>'/'</js>)+1), out);
+                       <jk>public void</jk> serialize(Object <jv>o</jv>, 
OutputStream <jv>out</jv>, SerializerSession <jv>session</jv>) <jk>throws</jk> 
IOException, SerializeException {
+                               RenderedImage <jv>image</jv> = 
(RenderedImage)<jv>o</jv>;
+                               String <jv>mediaType</jv> = 
<jv>session</jv>.getMediaType();
+                               ImageIO.<jsm>write</jsm>(<jv>image</jv>, 
<jv>mediaType</jv>.substring(<jv>mediaType</jv>.indexOf(<js>'/'</js>)+1), 
<jv>out</jv>);
                        }       
                }
                
@@ -128,9 +122,9 @@ Custom Serializers and Parsers
                <jk>public static class</jk> ImageParser <jk>extends</jk> 
InputStreamParser {
                
                        <ja>@Override</ja> <jc>/* Parser */</jc>
-                       <jk>public</jk> &lt;T&gt; T parse(InputStream in, 
ClassMeta&lt;T&gt; type, ParserSession session) <jk>throws</jk> ParseException, 
IOException {
-                               BufferedImage image = 
ImageIO.<jsm>read</jsm>(in);
-                               <jk>return</jk> (T)image;
+                       <jk>public</jk> &lt;T&gt; T parse(InputStream 
<jv>in</jv>, ClassMeta&lt;T&gt; <jv>type</jv>, ParserSession <jv>session</jv>) 
<jk>throws</jk> ParseException, IOException {
+                               BufferedImage <jv>image</jv> = 
ImageIO.<jsm>read</jsm>(<jv>in</jv>);
+                               <jk>return</jk> (T)<jv>image</jv>;
                        }
                }
        }
diff --git 
a/juneau-doc/docs/Topics/09.juneau-rest-client/11.RestcProxies/01.RestcRemote.html
 
b/juneau-doc/docs/Topics/09.juneau-rest-client/11.RestcProxies/01.RestcRemote.html
index c15b48f..41f4efa 100644
--- 
a/juneau-doc/docs/Topics/09.juneau-rest-client/11.RestcProxies/01.RestcRemote.html
+++ 
b/juneau-doc/docs/Topics/09.juneau-rest-client/11.RestcProxies/01.RestcRemote.html
@@ -159,16 +159,16 @@ specific language governing permissions and limitations 
under the License.
 <p class='bpcode w800'>
        <jc>// Call this method if X-Client-Version is at least 2.0.
        // Note that this also matches 2.0.1.</jc>
-       <ja>@RestOp</ja>(clientVersion=<js>"2.0"</js>)
-       <jk>public</jk> Object getFoo()  {...}
+       <ja>@RestGet</ja>(clientVersion=<js>"2.0"</js>)
+       <jk>public</jk> Object foo()  {...}
 
        <jc>// Call this method if X-Client-Version is at least 1.1, but less 
than 2.0.</jc>
-       <ja>@RestOp</ja>(clientVersion=<js>"[1.1,2.0)"</js>)
-       <jk>public</jk> Object getFoo()  {...}
+       <ja>@RestGet</ja>(clientVersion=<js>"[1.1,2.0)"</js>)
+       <jk>public</jk> Object foo()  {...}
 
        <jc>// Call this method if X-Client-Version is less than 1.1.</jc>
-       <ja>@RestOp</ja>(clientVersion=<js>"[0,1.1)"</js>)
-       <jk>public</jk> Object getFoo()  {...}
+       <ja>@RestGet</ja>(clientVersion=<js>"[0,1.1)"</js>)
+       <jk>public</jk> Object foo()  {...}
 </p>
 
 <ul class='seealso'>
diff --git a/juneau-doc/docs/Topics/10.juneau-rest-mock/01.MockRestClient.html 
b/juneau-doc/docs/Topics/10.juneau-rest-mock/01.MockRestClient.html
index 4502f1c..73468c2 100644
--- a/juneau-doc/docs/Topics/10.juneau-rest-mock/01.MockRestClient.html
+++ b/juneau-doc/docs/Topics/10.juneau-rest-mock/01.MockRestClient.html
@@ -39,8 +39,8 @@ MockRestClient
                <ja>@Rest</ja>
                <jk>public static class</jk> EchoRest <jk>implements</jk> 
BasicJsonRest {
 
-                       <ja>@RestOp</ja>
-                       <jk>public</jk> MyBean putEcho(<ja>@Body</ja> MyBean 
<jv>bean</jv>) {
+                       <ja>@RestPut</ja>
+                       <jk>public</jk> MyBean echo(<ja>@Body</ja> MyBean 
<jv>bean</jv>) {
                                <jk>return</jk> <jv>bean</jv>;
                        }
                }
@@ -154,7 +154,7 @@ MockRestClient
 <p class='bpcode w800'>
        <ja>@Rest</ja>(roleGuard=<js>"ADMIN"</js>)
        <jk>public</jk> class A {
-               <ja>@RestOp</ja>
+               <ja>@RestGet</ja>
                <jk>public</jk> String get() {
                        <jk>return</jk> <js>"OK"</js>;
                }
@@ -200,7 +200,7 @@ MockRestClient
        <ja>@Rest</ja>
        <jk>public class</jk> MyRest {
        
-               <ja>@RestOp</ja>(method=<jsf>GET</jsf>, 
path=<js>"/echoQuery"</js>)
+               <ja>@RestGet</ja>
                <jk>public int</jk> echoQuery(<ja>@Query</ja>(<js>"id"</js>) 
String <jv>id</jv>) {
                        <jk>return</jk> <jv>id</jv>;
                }
diff --git 
a/juneau-doc/docs/Topics/12.juneau-microservice-jetty/03.MicroserviceJettyResourceClasses.html
 
b/juneau-doc/docs/Topics/12.juneau-microservice-jetty/03.MicroserviceJettyResourceClasses.html
index 8a880f9..dab9896 100644
--- 
a/juneau-doc/docs/Topics/12.juneau-microservice-jetty/03.MicroserviceJettyResourceClasses.html
+++ 
b/juneau-doc/docs/Topics/12.juneau-microservice-jetty/03.MicroserviceJettyResourceClasses.html
@@ -79,7 +79,7 @@ Resource Classes
        )
        <jk>public class</jk> HelloWorldResource <jk>extends</jk> 
BasicRestServlet {
        
-               <ja>@RestOp</ja>(method=<jsf>GET</jsf>, path=<js>"/*"</js>)
+               <ja>@RestGet</ja>(<js>"/*"</js>)
                <jk>public</jk> String sayHello() {
                        <jk>return</jk> <js>"Hello world!"</js>;
                }
diff --git 
a/juneau-doc/docs/Topics/12.juneau-microservice-jetty/05.MicroserviceJettyConfig.html
 
b/juneau-doc/docs/Topics/12.juneau-microservice-jetty/05.MicroserviceJettyConfig.html
index 690b78b..fbbb5ed 100644
--- 
a/juneau-doc/docs/Topics/12.juneau-microservice-jetty/05.MicroserviceJettyConfig.html
+++ 
b/juneau-doc/docs/Topics/12.juneau-microservice-jetty/05.MicroserviceJettyConfig.html
@@ -162,15 +162,15 @@ Config
        <jk>public class</jk> MyHelloResource <jk>extends</jk> BasicRestServlet 
{
 
                <jd>/** Standard hello message. */</jd>
-               <ja>@RestOp</ja>(method=<jsf>GET</jsf>, 
path=<js>"/{person}"</js>)
-               <jk>public</jk> String sayHello(RestRequest req) {
-                       <jk>return</jk> 
req.getConfig().getString(<js>"MyHelloResource/greeting"</js>);
+               <ja>@RestGet</ja>(<js>"/{person}"</js>)
+               <jk>public</jk> String sayHello(RestRequest <jv>req</jv>) {
+                       <jk>return</jk> 
<jv>req</jv>.getConfig().getString(<js>"MyHelloResource/greeting"</js>);
                }
 
                <jd>/** Hello message in users language. */</jd>
-               <ja>@RestOp</ja>(method=<jsf>GET</jsf>, 
path=<js>"/localized/{person}"</js>)
-               <jk>public</jk> String sayLocalizedHello(RestRequest req) {
-                       <jk>return</jk> 
req.getConfig().getString(<js>"MyHelloResource/localizedGreeting"</js>);
+               <ja>@RestGet</ja>(<js>"/localized/{person}"</js>)
+               <jk>public</jk> String sayLocalizedHello(RestRequest 
<jv>req</jv>) {
+                       <jk>return</jk> 
<jv>req</jv>.getConfig().getString(<js>"MyHelloResource/localizedGreeting"</js>);
                }
        }               
                </p>
diff --git 
a/juneau-doc/docs/Topics/16.juneau-examples-rest/02.RestExamplesHelloWorldResource.html
 
b/juneau-doc/docs/Topics/16.juneau-examples-rest/02.RestExamplesHelloWorldResource.html
index d2e31b2..62c70b2 100644
--- 
a/juneau-doc/docs/Topics/16.juneau-examples-rest/02.RestExamplesHelloWorldResource.html
+++ 
b/juneau-doc/docs/Topics/16.juneau-examples-rest/02.RestExamplesHelloWorldResource.html
@@ -41,7 +41,7 @@ HelloWorldResource
        <jk>public class</jk> HelloWorldResource <jk>implements</jk> 
BasicRestConfig { 
                
                <jd>/** GET request handler */</jd> 
-               <ja>@RestOp</ja>(method=<jsf>GET</jsf>, path=<js>"/*"</js>, 
summary=<js>"Responds with \"Hello world!\""</js>) 
+               <ja>@RestGet</ja>(path=<js>"/*"</js>, summary=<js>"Responds 
with \"Hello world!\""</js>) 
                <jk>public</jk> String sayHello() { 
                        <jk>return</jk> <js>"Hello world!"</js>; 
                } 
diff --git 
a/juneau-doc/docs/Topics/16.juneau-examples-rest/03.RestExamplesDtoExamples.html
 
b/juneau-doc/docs/Topics/16.juneau-examples-rest/03.RestExamplesDtoExamples.html
index 3aed92f..604a4dd 100644
--- 
a/juneau-doc/docs/Topics/16.juneau-examples-rest/03.RestExamplesDtoExamples.html
+++ 
b/juneau-doc/docs/Topics/16.juneau-examples-rest/03.RestExamplesDtoExamples.html
@@ -119,7 +119,7 @@ DtoExamples
                <jd>/** 
                * GET request handler 
                */</jd> 
-               <ja>@RestOp</ja>(method=<jsf>GET</jsf>, path=<js>"/"</js>) 
+               <ja>@RestGet</ja>(<js>"/"</js>) 
                <jk>public</jk> Feed getFeed() <jk>throws</jk> Exception { 
                        <jk>return</jk> <jf>feed</jf>; 
                } 
@@ -128,10 +128,10 @@ DtoExamples
                * PUT request handler. 
                * Replaces the feed with the specified content, and then 
mirrors it as the response. 
                */</jd> 
-               <ja>@RestOp</ja>(method=<jsf>PUT</jsf>, path=<js>"/"</js>) 
-               <jk>public</jk> Feed setFeed(<ja>@Body</ja> Feed feed) 
<jk>throws</jk> Exception { 
-                       <jk>this</jk>.<jf>feed</jf> = feed; 
-                       <jk>return</jk> feed; 
+               <ja>@RestPut</ja>(<js>"/"</js>) 
+               <jk>public</jk> Feed setFeed(<ja>@Body</ja> Feed <jv>feed</jv>) 
<jk>throws</jk> Exception { 
+                       <jk>this</jk>.<jf>feed</jf> = <jv>feed</jv>; 
+                       <jk>return</jk> <jv>feed</jv>; 
                } 
        }               
 </p>
@@ -215,7 +215,7 @@ DtoExamples
                } 
                
                <jd>/** GET request handler */</jd> 
-               <ja>@RestOp</ja>(method=<jsf>GET</jsf>, path=<js>"/"</js>) 
+               <ja>@RestGet</ja>(<js>"/"</js>) 
                <jk>public</jk> JsonSchema getSchema() <jk>throws</jk> 
Exception { 
                        <jk>return</jk> <jf>schema</jf>; 
                } 
@@ -224,7 +224,7 @@ DtoExamples
                * PUT request handler. 
                * Replaces the schema document with the specified content, and 
then mirrors it as the response. 
                */</jd> 
-               <ja>@RestOp</ja>(method=<jsf>PUT</jsf>, path=<js>"/"</js>) 
+               <ja>@RestPut</ja>(<js>"/"</js>) 
                <jk>public</jk> JsonSchema setSchema(<ja>@Body</ja> JsonSchema 
schema) <jk>throws</jk> Exception { 
                        <jk>this</jk>.<jf>schema</jf> = schema; 
                        <jk>return</jk> schema; 
diff --git 
a/juneau-doc/docs/Topics/16.juneau-examples-rest/04.RestExamplesConfigResource.html
 
b/juneau-doc/docs/Topics/16.juneau-examples-rest/04.RestExamplesConfigResource.html
index 7764110..34477a4 100644
--- 
a/juneau-doc/docs/Topics/16.juneau-examples-rest/04.RestExamplesConfigResource.html
+++ 
b/juneau-doc/docs/Topics/16.juneau-examples-rest/04.RestExamplesConfigResource.html
@@ -57,13 +57,13 @@ ConfigResource
        ) 
        <jk>public class</jk> ConfigResource <jk>extends</jk> BasicRestServlet 
{ 
                
-               <ja>@RestOp</ja>(method=<jsf>GET</jsf>, path=<js>"/"</js>, 
description=<js>"Show contents of config file."</js>) 
+               <ja>@RestGet</ja>(path=<js>"/"</js>, description=<js>"Show 
contents of config file."</js>) 
                <jk>public</jk> OMap getConfig() <jk>throws</jk> Exception {
                        <jk>return</jk> getServletConfig().getConfig().asMap();
                }
                
-               <ja>@RestOp</ja>(method=<jsf>GET</jsf>, path=<js>"/edit"</js>, 
description=<js>"Edit config file."</js>)
-               <jk>public</jk> Form getConfigEditForm(RestRequest req) 
<jk>throws</jk> Exception {
+               <ja>@RestGet</ja>(path=<js>"/edit"</js>, description=<js>"Edit 
config file."</js>)
+               <jk>public</jk> Form getConfigEditForm(RestRequest 
<jv>req</jv>) <jk>throws</jk> Exception {
                        <jk>return</jk> 
<jsm>form</jsm>().id(<js>"form"</js>).action(<js>"servlet:/"</js>).method(<js>"POST"</js>).enctype(<js>"application/x-www-form-urlencoded"</js>).children(
                                
<jsm>div</jsm>()._class(<js>"data"</js>).children(
                                        <jsm>table</jsm>(
@@ -78,7 +78,7 @@ ConfigResource
                        );
                }
                
-               <ja>@RestOp</ja>(method=<jsf>GET</jsf>, 
path=<js>"/{section}"</js>, 
+               <ja>@RestGet</ja>(<js>"/{section}"</js>, 
                        description=<js>"Show config file section."</js>, 
                        swagger={
                                <js>"parameters:["</js>,
@@ -86,11 +86,11 @@ ConfigResource
                                <js>"]"</js>
                        }
                ) 
-               <jk>public</jk> OMap 
getConfigSection(<ja>@Path</ja>(<js>"section"</js>) String section) 
<jk>throws</jk> Exception { 
-                       <jk>return</jk> getSection(section); 
+               <jk>public</jk> OMap 
getConfigSection(<ja>@Path</ja>(<js>"section"</js>) String <jv>section</jv>) 
<jk>throws</jk> Exception { 
+                       <jk>return</jk> getSection(<jv>section</jv>); 
                } 
                
-               <ja>@RestOp</ja>(method=<jsf>GET</jsf>, 
path=<js>"/{section}/{key}"</js>, 
+               <ja>@RestGet</ja>(<js>"/{section}/{key}"</js>, 
                        description=<js>"Show config file entry."</js>, 
                        swagger={
                                <js>"parameters:["</js>,
@@ -99,11 +99,11 @@ ConfigResource
                                <js>"]"</js>
                        }
                ) 
-               <jk>public</jk> String 
getConfigEntry(<ja>@Path</ja>(<js>"section"</js>) String section, 
<ja>@Path</ja>(<js>"key"</js>) String key) <jk>throws</jk> Exception { 
-                       <jk>return</jk> getSection(section).getString(key); 
+               <jk>public</jk> String 
getConfigEntry(<ja>@Path</ja>(<js>"section"</js>) String <jv>section</jv>, 
<ja>@Path</ja>(<js>"key"</js>) String <jv>key</jv>) <jk>throws</jk> Exception { 
+                       <jk>return</jk> 
getSection(<jv>section</jv>).getString(<jv>key</jv>); 
                } 
                
-               <ja>@RestOp</ja>(method=<jsf>POST</jsf>, path=<js>"/"</js>, 
+               <ja>@RestPost</ja>(<js>"/"</js>, 
                        description=<js>"Sets contents of config file from a 
FORM post."</js>, 
                        swagger={
                                <js>"parameters:["</js>,
@@ -111,11 +111,11 @@ ConfigResource
                                <js>"]"</js>
                        }
                ) 
-               <jk>public</jk> Config 
setConfigContentsFormPost(<ja>@FormData</ja>(<js>"contents"</js>) String 
contents) <jk>throws</jk> Exception { 
-                       <jk>return</jk> setConfigContents(<jk>new</jk> 
StringReader(contents)); 
+               <jk>public</jk> Config 
setConfigContentsFormPost(<ja>@FormData</ja>(<js>"contents"</js>) String 
<jv>contents</jv>) <jk>throws</jk> Exception { 
+                       <jk>return</jk> setConfigContents(<jk>new</jk> 
StringReader(<jv>contents</jv>)); 
                } 
                
-               <ja>@RestOp</ja>(method=<jsf>PUT</jsf>, path=<js>"/"</js>, 
+               <ja>@RestPut</ja>(path=<js>"/"</js>, 
                        description=<js>"Sets contents of config file."</js>, 
                        swagger={
                                <js>"parameters:["</js>,
@@ -123,11 +123,11 @@ ConfigResource
                                <js>"]"</js>
                        }
                ) 
-               <jk>public</jk> Config setConfigContents(<ja>@Body</ja> Reader 
contents) <jk>throws</jk> Exception { 
-                       <jk>return</jk> 
getServletConfig().getConfig().load(contents, <jk>true</jk>).asMap();
+               <jk>public</jk> Config setConfigContents(<ja>@Body</ja> Reader 
<jv>contents</jv>) <jk>throws</jk> Exception { 
+                       <jk>return</jk> 
getServletConfig().getConfig().load(<jv>contents</jv>, <jk>true</jk>).asMap();
                } 
                
-               <ja>@RestOp</ja>(method=<jsf>PUT</jsf>, 
path=<js>"/{section}"</js>, 
+               <ja>@RestPut</ja>(path=<js>"/{section}"</js>, 
                        description=<js>"Add or overwrite a config file 
section."</js>, 
                        swagger={
                                <js>"parameters:["</js>,
@@ -136,12 +136,12 @@ ConfigResource
                                <js>"]"</js>
                        }
                ) 
-               <jk>public</jk> OMap 
setConfigSection(<ja>@Path</ja>(<js>"section"</js>) String section, 
<ja>@Body</ja> Map&lt;String,String&gt; contents) <jk>throws</jk> Exception { 
-                       getServletConfig().getConfig().setSection(section, 
contents); 
+               <jk>public</jk> OMap 
setConfigSection(<ja>@Path</ja>(<js>"section"</js>) String <jv>section</jv>, 
<ja>@Body</ja> Map&lt;String,String&gt; <jv>contents</jv>) <jk>throws</jk> 
Exception { 
+                       
getServletConfig().getConfig().setSection(<jv>section</jv>, <jv>contents</jv>); 
                        <jk>return</jk> getSection(section); 
                } 
                
-               <ja>@RestOp</ja>(method=<jsf>PUT</jsf>, 
path=<js>"/{section}/{key}"</js>, 
+               <ja>@RestPut</ja>(path=<js>"/{section}/{key}"</js>, 
                        description=<js>"Add or overwrite a config file 
entry."</js>, 
                        swagger={
                                <js>"parameters:["</js>,
@@ -151,16 +151,16 @@ ConfigResource
                                <js>"]"</js>
                        }
                ) 
-               <jk>public</jk> String 
setConfigSection(<ja>@Path</ja>(<js>"section"</js>) String section, 
<ja>@Path</ja>(<js>"key"</js>) String key, <ja>@Body</ja> String value) 
<jk>throws</jk> Exception { 
-                       getServletConfig().getConfig().put(section, key, value, 
<jk>false</jk>); 
-                       <jk>return</jk> getSection(section).getString(key); 
+               <jk>public</jk> String 
setConfigSection(<ja>@Path</ja>(<js>"section"</js>) String <jv>section</jv>, 
<ja>@Path</ja>(<js>"key"</js>) String <jv>key</jv>, <ja>@Body</ja> String 
<jv>value</jv>) <jk>throws</jk> Exception { 
+                       getServletConfig().getConfig().put(<jv>section</jv>, 
<jv>key</jv>, <jv>value</jv>, <jk>false</jk>); 
+                       <jk>return</jk> 
getSection(<jv>section</jv>).getString(<jv>key</jv>); 
                } 
                
-               <jk>private</jk> OMap getSection(String name) { 
-                       OMap m = 
getServletConfig().getConfig().getSectionMap(name); 
-                       <jk>if</jk> (m == <jk>null</jk>) 
+               <jk>private</jk> OMap getSection(String <jv>name</jv>) { 
+                       OMap <jv>m</jv> = 
getServletConfig().getConfig().getSectionMap(<jv>name</jv>); 
+                       <jk>if</jk> (<jv>m</jv> == <jk>null</jk>) 
                                <jk>throw new</jk> 
RestException(<jsf>SC_NOT_FOUND</jsf>, <js>"Section not found."</js>); 
-                       <jk>return</jk> m; 
+                       <jk>return</jk> <jv>m</jv>; 
                } 
        }               
 </p>

Reply via email to