You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2021/02/14 01:03:06 UTC

[juneau] branch master updated: Update docs.

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 <ja...@salesforce.com>
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>