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 d235ca7  Rename @RequestBean to @Request
d235ca7 is described below

commit d235ca7431f104074390dd6e76b070851fa77991
Author: JamesBognar <jamesbog...@apache.org>
AuthorDate: Sat Aug 11 09:20:27 2018 -0400

    Rename @RequestBean to @Request
---
 .../apache/juneau/annotation/BeanIgnoreTest.java}  |  69 +++---
 juneau-core/juneau-marshall/TODO.txt               |   4 +-
 .../org/apache/juneau/http/annotation/Body.java    |   6 +-
 .../apache/juneau/http/annotation/FormData.java    |  16 +-
 .../org/apache/juneau/http/annotation/Header.java  |  16 +-
 .../org/apache/juneau/http/annotation/Path.java    |  16 +-
 .../org/apache/juneau/http/annotation/Query.java   |  16 +-
 .../annotation/{RequestBean.java => Request.java}  |  24 +-
 .../juneau/http/annotation/ResponseBody.java       |  43 +++-
 .../juneau/http/annotation/ResponseStatus.java     |   1 -
 .../apache/juneau/httppart/HttpPartSerializer.java |   3 +-
 .../juneau/httppart/bean/RequestBeanMeta.java      |  30 +--
 .../httppart/bean/RequestBeanPropertyMeta.java     |   2 +-
 .../juneau/remoteable/RemoteMethodBeanArg.java     |   2 +-
 .../juneau/remoteable/RemoteableMethodMeta.java    |  14 +-
 juneau-doc/src/main/javadoc/overview.html          | 246 ++++++++++-----------
 .../src/main/resources/ReleaseNotes/7.2.0.html     |  10 +-
 .../06.RestMethod/01.MethodParameters.html         |   5 +-
 .../{08.RequestBean.html => 08.Request.html}       |  34 ++-
 .../09.HttpPartAnnotations/09.Response.html        | 111 +++++++---
 .../09.HttpPartAnnotations/11.ResponseBody.html    |  94 --------
 ....ResponseStatus.html => 11.ResponseStatus.html} |   0
 .../rest/test/client/ThirdPartyProxyResource.java  |   2 +-
 .../rest/test/client/RequestBeanProxyTest.java     |  72 +++---
 .../rest/test/client/ThirdPartyProxyTest.java      |  73 +++---
 .../org/apache/juneau/rest/client/RestClient.java  |   4 +-
 .../java/org/apache/juneau/rest/RestContext.java   |   4 +-
 .../org/apache/juneau/rest/RestParamDefaults.java  |   6 +-
 .../java/org/apache/juneau/rest/RestRequest.java   |  28 +--
 29 files changed, 474 insertions(+), 477 deletions(-)

diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ResponseBody.java
 
b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/annotation/BeanIgnoreTest.java
similarity index 74%
copy from 
juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ResponseBody.java
copy to 
juneau-core/juneau-core-test/src/test/java/org/apache/juneau/annotation/BeanIgnoreTest.java
index cce8cf0..7b2385b 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ResponseBody.java
+++ 
b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/annotation/BeanIgnoreTest.java
@@ -1,27 +1,42 @@
-// 
***************************************************************************************************************************
-// * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements.  See the NOTICE file *
-// * distributed with this work for additional information regarding copyright 
ownership.  The ASF licenses this file        *
-// * to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance            *
-// * with the License.  You may obtain a copy of the License at                
                                              *
-// *                                                                           
                                              *
-// *  http://www.apache.org/licenses/LICENSE-2.0                               
                                              *
-// *                                                                           
                                              *
-// * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on an  *
-// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 
express or implied.  See the License for the        *
-// * specific language governing permissions and limitations under the 
License.                                              *
-// 
***************************************************************************************************************************
-package org.apache.juneau.http.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-/**
- * TODO
- */
-@Documented
-@Target(METHOD)
-@Retention(RUNTIME)
-@Inherited
-public @interface ResponseBody {}
+// 
***************************************************************************************************************************
+// * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements.  See the NOTICE file *
+// * distributed with this work for additional information regarding copyright 
ownership.  The ASF licenses this file        *
+// * to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance            *
+// * with the License.  You may obtain a copy of the License at                
                                              *
+// *                                                                           
                                              *
+// *  http://www.apache.org/licenses/LICENSE-2.0                               
                                              *
+// *                                                                           
                                              *
+// * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on an  *
+// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 
express or implied.  See the License for the        *
+// * specific language governing permissions and limitations under the 
License.                                              *
+// 
***************************************************************************************************************************
+package org.apache.juneau.annotation;
+
+import static org.junit.Assert.*;
+
+import org.apache.juneau.json.*;
+import org.junit.*;
+
+public class BeanIgnoreTest {
+
+       public static class A {
+               public String getA() {
+                       return "a";
+               }
+
+               @BeanIgnore
+               public String getB() {
+                       return "b";
+               }
+
+               public String c = "c";
+
+               @BeanIgnore public String d = "d";
+       }
+
+       @Test
+       public void test() throws Exception {
+               assertEquals("{c:'c',a:'a'}", 
SimpleJsonSerializer.DEFAULT.toString(new A()));
+       }
+}
+
diff --git a/juneau-core/juneau-marshall/TODO.txt 
b/juneau-core/juneau-marshall/TODO.txt
index c753822..6c25381 100644
--- a/juneau-core/juneau-marshall/TODO.txt
+++ b/juneau-core/juneau-marshall/TODO.txt
@@ -13,6 +13,6 @@
 
 Test @Header("*") using maps/beans and related annotations.
 Simplify @Body annotation by merging @Schema into it.
-Test RestRequest.getRequestBean() and @RequestBean as an annotation.
-Document RestRequest.getRequestBean().
+Test RestRequest.getRequest() and @Request as an annotation.
+Document RestRequest.getRequest().
 Find references to JsonSerializer.Simple
\ No newline at end of file
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Body.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Body.java
index b7e6049..6f64083 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Body.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Body.java
@@ -135,7 +135,7 @@ import org.apache.juneau.serializer.*;
  *
  * <p>
  * The annotation can also be applied to a bean property field or getter when 
the argument is annotated with
- * {@link RequestBean @RequestBean}:
+ * {@link Request @Request}:
  *
  * <h5 class='section'>Example:</h5>
  * <p class='bcode w800'>
@@ -143,10 +143,10 @@ import org.apache.juneau.serializer.*;
  *     <jk>public interface</jk> MyProxy {
  *
  *             <ja>@RemoteMethod</ja>(path=<js>"/mymethod"</js>)
- *             String myProxyMethod(<ja>@RequestBean</ja> MyRequestBean bean);
+ *             String myProxyMethod(<ja>@Request</ja> MyRequest bean);
  *     }
  *
- *     <jk>public interface</jk> MyRequestBean {
+ *     <jk>public interface</jk> MyRequest {
  *             <ja>@Body</ja>
  *             MyPojo getMyPojo();
  *     }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/FormData.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/FormData.java
index 6f81411..c441fa2 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/FormData.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/FormData.java
@@ -149,7 +149,7 @@ import org.apache.juneau.jsonschema.*;
  *
  * <p>
  * The annotation can also be applied to a bean property field or getter when 
the argument or argument class is annotated with
- * {@link RequestBean @RequestBean}:
+ * {@link Request @Request}:
  *
  * <h5 class='section'>Example:</h5>
  * <p class='bcode w800'>
@@ -157,10 +157,10 @@ import org.apache.juneau.jsonschema.*;
  *     <jk>public interface</jk> MyProxy {
  *
  *             <ja>@RemoteMethod</ja>(path=<js>"/mymethod"</js>)
- *             String myProxyMethod(<ja>@RequestBean</ja> MyRequestBean bean);
+ *             String myProxyMethod(<ja>@Request</ja> MyRequest bean);
  *     }
  *
- *     <jk>public interface</jk> MyRequestBean {
+ *     <jk>public interface</jk> MyRequest {
  *
  *             <jc>// Name explicitly specified.</jc>
  *             <ja>@FormData</ja>(<js>"foo"</js>)
@@ -171,12 +171,6 @@ import org.apache.juneau.jsonschema.*;
  *             <ja>@FormData</ja>
  *             String getBar();
  *
- *             <jc>// Name inherited from bean property.</jc>
- *             <jc>// Same as @FormData("baz")</jc>
- *             <ja>@FormData</ja>
- *             <ja>@BeanProperty</ja>(<js>"baz"</js>)
- *             String getY();
- *
  *             <jc>// Multiple values pulled from NameValuePairs object.</jc>
  *             <jc>// Same as @FormData("*")</jc>
  *             <ja>@FormData</ja>
@@ -278,7 +272,7 @@ public @interface FormData {
         *              </p>
         *              <p class='bcode w800'>
         *      <jc>// When used on a request bean method</jc>
-        *      <jk>public interface</jk> MyRequestBean {
+        *      <jk>public interface</jk> MyRequest {
         *
         *              <jc>// Equivalent to @FormData("*")</jc>
         *              <ja>@FormData</ja>
@@ -291,7 +285,7 @@ public @interface FormData {
         *
         *              <h5 class='figure'>Example:</h5>
         *              <p class='bcode w800'>
-        *      <jk>public interface</jk> MyRequestBean {
+        *      <jk>public interface</jk> MyRequest {
         *
         *              <jc>// Equivalent to @FormData("foo")</jc>
         *              <ja>@FormData</ja>
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Header.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Header.java
index 2eced85..46564c0 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Header.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Header.java
@@ -120,7 +120,7 @@ import org.apache.juneau.jsonschema.*;
  *
  * <p>
  * The annotation can also be applied to a bean property field or getter when 
the argument or argument class is annotated with
- * {@link RequestBean @RequestBean}:
+ * {@link Request @Request}:
  *
  * <h5 class='section'>Example:</h5>
  * <p class='bcode w800'>
@@ -128,10 +128,10 @@ import org.apache.juneau.jsonschema.*;
  *     <jk>public interface</jk> MyProxy {
  *
  *             <ja>@RemoteMethod</ja>(path=<js>"/mymethod"</js>)
- *             String myProxyMethod(<ja>@RequestBean</ja> MyRequestBean bean);
+ *             String myProxyMethod(<ja>@Request</ja> MyRequest bean);
  *     }
  *
- *     <jk>public interface</jk> MyRequestBean {
+ *     <jk>public interface</jk> MyRequest {
  *
  *             <jc>// Name explicitly specified.</jc>
  *             <ja>@Header</ja>(<js>"Foo"</js>)
@@ -142,12 +142,6 @@ import org.apache.juneau.jsonschema.*;
  *             <ja>@Header</ja>
  *             String getBar();
  *
- *             <jc>// Name inherited from bean property.</jc>
- *             <jc>// Same as @Header("Baz")</jc>
- *             <ja>@Header</ja>
- *             <ja>@BeanProperty</ja>(<js>"Baz"</js>)
- *             String getY();
- *
  *             <jc>// Multiple values pulled from NameValuePairs object.</jc>
  *             <jc>// Same as @Header("*")</jc>
  *             <ja>@Header</ja>
@@ -243,7 +237,7 @@ public @interface Header {
         *              </p>
         *              <p class='bcode w800'>
         *      <jc>// When used on a request bean method</jc>
-        *      <jk>public interface</jk> MyRequestBean {
+        *      <jk>public interface</jk> MyRequest {
         *
         *              <jc>// Equivalent to @Header("*")</jc>
         *              <ja>@Header</ja>
@@ -256,7 +250,7 @@ public @interface Header {
         *
         *              <h5 class='figure'>Example:</h5>
         *              <p class='bcode w800'>
-        *      <jk>public interface</jk> MyRequestBean {
+        *      <jk>public interface</jk> MyRequest {
         *
         *              <jc>// Equivalent to @Header("Foo")</jc>
         *              <ja>@Header</ja>
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Path.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Path.java
index ff7289f..90ab856 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Path.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Path.java
@@ -115,7 +115,7 @@ import org.apache.juneau.jsonschema.*;
  *
  * <p>
  * The annotation can also be applied to a bean property field or getter when 
the argument or argument class is annotated with
- * {@link RequestBean @RequestBean}:
+ * {@link Request @Request}:
  *
  * <h5 class='section'>Example:</h5>
  * <p class='bcode w800'>
@@ -123,10 +123,10 @@ import org.apache.juneau.jsonschema.*;
  *     <jk>public interface</jk> MyProxy {
  *
  *             
<ja>@RemoteMethod</ja>(path=<js>"/mymethod/{foo}/{bar}/{baz}"</js>)
- *             String myProxyMethod(<ja>@RequestBean</ja> MyRequestBean bean);
+ *             String myProxyMethod(<ja>@Request</ja> MyRequest bean);
  *     }
  *
- *     <jk>public interface</jk> MyRequestBean {
+ *     <jk>public interface</jk> MyRequest {
  *
  *             <jc>// Name explicitly specified.</jc>
  *             <ja>@Path</ja>(<js>"foo"</js>)
@@ -137,12 +137,6 @@ import org.apache.juneau.jsonschema.*;
  *             <ja>@Path</ja>
  *             String getBar();
  *
- *             <jc>// Name inherited from bean property.</jc>
- *             <jc>// Same as @Path("baz")</jc>
- *             <ja>@Path</ja>
- *             <ja>@BeanProperty</ja>(<js>"baz"</js>)
- *             String getY();
- *
  *             <jc>// Multiple values pulled from NameValuePairs object.</jc>
  *             <jc>// Same as @Path("*")</jc>
  *             <ja>@Path</ja>
@@ -226,7 +220,7 @@ public @interface Path {
         *              </p>
         *              <p class='bcode w800'>
         *      <jc>// When used on a request bean method</jc>
-        *      <jk>public interface</jk> MyRequestBean {
+        *      <jk>public interface</jk> MyRequest {
         *
         *              <jc>// Equivalent to @Path("*")</jc>
         *              <ja>@Path</ja>
@@ -239,7 +233,7 @@ public @interface Path {
         *
         *              <h5 class='figure'>Example:</h5>
         *              <p class='bcode w800'>
-        *      <jk>public interface</jk> MyRequestBean {
+        *      <jk>public interface</jk> MyRequest {
         *
         *              <jc>// Equivalent to @Path("foo")</jc>
         *              <ja>@Path</ja>
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Query.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Query.java
index c39f99a..befffb0 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Query.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Query.java
@@ -147,7 +147,7 @@ import org.apache.juneau.jsonschema.*;
  *
  * <p>
  * The annotation can also be applied to a bean property field or getter when 
the argument or argument class is annotated with
- * {@link RequestBean @RequestBean}:
+ * {@link Request @Request}:
  *
  * <h5 class='section'>Example:</h5>
  * <p class='bcode w800'>
@@ -155,10 +155,10 @@ import org.apache.juneau.jsonschema.*;
  *     <jk>public interface</jk> MyProxy {
  *
  *             <ja>@RemoteMethod</ja>(path=<js>"/mymethod"</js>)
- *             String myProxyMethod(<ja>@RequestBean</ja> MyRequestBean bean);
+ *             String myProxyMethod(<ja>@Request</ja> MyRequest bean);
  *     }
  *
- *     <jk>public interface</jk> MyRequestBean {
+ *     <jk>public interface</jk> MyRequest {
  *
  *             <jc>// Name explicitly specified.</jc>
  *             <ja>@Query</ja>(<js>"foo"</js>)
@@ -169,12 +169,6 @@ import org.apache.juneau.jsonschema.*;
  *             <ja>@Query</ja>
  *             String getBar();
  *
- *             <jc>// Name inherited from bean property.</jc>
- *             <jc>// Same as @Query("baz")</jc>
- *             <ja>@Query</ja>
- *             <ja>@BeanProperty</ja>(<js>"baz"</js>)
- *             String getY();
- *
  *             <jc>// Multiple values pulled from NameValuePairs object.</jc>
  *             <jc>// Same as @Query("*")</jc>
  *             <ja>@Query</ja>
@@ -275,7 +269,7 @@ public @interface Query {
         *              </p>
         *              <p class='bcode w800'>
         *      <jc>// When used on a request bean method</jc>
-        *      <jk>public interface</jk> MyRequestBean {
+        *      <jk>public interface</jk> MyRequest {
         *
         *              <jc>// Equivalent to @Query("*")</jc>
         *              <ja>@Query</ja>
@@ -288,7 +282,7 @@ public @interface Query {
         *
         *              <h5 class='figure'>Example:</h5>
         *              <p class='bcode w800'>
-        *      <jk>public interface</jk> MyRequestBean {
+        *      <jk>public interface</jk> MyRequest {
         *
         *              <jc>// Equivalent to @Query("foo")</jc>
         *              <ja>@Query</ja>
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/RequestBean.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Request.java
similarity index 86%
rename from 
juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/RequestBean.java
rename to 
juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Request.java
index b20f863..53205fc 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/RequestBean.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Request.java
@@ -39,9 +39,9 @@ import org.apache.juneau.httppart.*;
  * <h5 class='section'>Example:</h5>
  * <p class='bcode w800'>
  *     <ja>@RestMethod</ja>(path=<js>"/mypath/{p1}/{p2}/*"</js>)
- *     <jk>public void</jk> myMethod(<ja>@RequestBean</ja> MyRequestBean rb) 
{...}
+ *     <jk>public void</jk> myMethod(<ja>@Request</ja> MyRequest rb) {...}
  *
- *     <jk>public interface</jk> MyRequestBean {
+ *     <jk>public interface</jk> MyRequest {
  *
  *             <ja>@Path</ja> <jc>// Path variable name inferred from 
getter.</jc>
  *             String getP1();
@@ -73,21 +73,21 @@ import org.apache.juneau.httppart.*;
  * <p class='bcode w800'>
  *     <jc>// Same as above but annotation defined on interface.</jc>
  *     <ja>@RestMethod</ja>(path=<js>"/mypath/{p1}/{p2}/*"</js>)
- *     <jk>public void</jk> myMethod(MyRequestBean rb) {...}
+ *     <jk>public void</jk> myMethod(MyRequest rb) {...}
  *
- *     <ja>@RequestBean</ja>
- *     <jk>public interface</jk> MyRequestBean {...}
+ *     <ja>@Request</ja>
+ *     <jk>public interface</jk> MyRequest {...}
  *
  * <p>
  * The return types of the getters must be the supported parameter types for 
the HTTP-part annotation used.
  * <br>Schema-based serialization and parsing is allowed just as if used as 
individual parameter types.
  *
  * <p>
- * TODO - Swagger-info in <ja>@RequestBean</ja>s is not currently reflected in 
generated Swagger documentation.
+ * TODO - Swagger-info in <ja>@Request</ja>s is not currently reflected in 
generated Swagger documentation.
  *
  * <h5 class='section'>See Also:</h5>
  * <ul>
- *     <li class='link'><a class="doclink" 
href="../../../../../overview-summary.html#juneau-rest-server.HttpPartAnnotations.RequestBean">Overview
 &gt; juneau-rest-server &gt; @RequestBean</a>
+ *     <li class='link'><a class="doclink" 
href="../../../../../overview-summary.html#juneau-rest-server.HttpPartAnnotations.Request">Overview
 &gt; juneau-rest-server &gt; @Request</a>
  * </ul>
  *
  * <h5 class='topic'>Client-side REST</h5>
@@ -100,10 +100,10 @@ import org.apache.juneau.httppart.*;
  *     <jk>public interface</jk> MyProxy {
  *
  *             <ja>@RemoteMethod</ja>(path=<js>"/mymethod/{p1}/{p2}"</js>)
- *             String myProxyMethod(<ja>@RequestBean</ja> MyRequestBean bean);
+ *             String myProxyMethod(<ja>@Request</ja> MyRequest bean);
  *     }
  *
- *     <jk>public class</jk> MyRequestBean {
+ *     <jk>public class</jk> MyRequest {
  *
  *             <ja>@Path</ja> <jc>// Path variable name inferred from 
getter.</jc>
  *             <jk>public</jk> String getP1() {...}
@@ -143,7 +143,7 @@ import org.apache.juneau.httppart.*;
 @Target(PARAMETER)
 @Retention(RUNTIME)
 @Inherited
-public @interface RequestBean {
+public @interface Request {
 
        /**
         * Specifies the {@link HttpPartSerializer} class used for serializing 
values to strings.
@@ -151,7 +151,7 @@ public @interface RequestBean {
         * <p>
         * Overrides for this part the part serializer defined on the REST 
client which by default is {@link OpenApiPartSerializer}.
         */
-       Class<? extends HttpPartSerializer> serializer() default 
HttpPartSerializer.Null.class;
+       Class<? extends HttpPartSerializer> partSerializer() default 
HttpPartSerializer.Null.class;
 
        /**
         * Specifies the {@link HttpPartParser} class used for parsing strings 
to values.
@@ -159,5 +159,5 @@ public @interface RequestBean {
         * <p>
         * Overrides for this part the part parser defined on the REST resource 
which by default is {@link OpenApiPartParser}.
         */
-       Class<? extends HttpPartParser> parser() default 
HttpPartParser.Null.class;
+       Class<? extends HttpPartParser> partParser() default 
HttpPartParser.Null.class;
 }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ResponseBody.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ResponseBody.java
index cce8cf0..ed5536f 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ResponseBody.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ResponseBody.java
@@ -18,7 +18,48 @@ import static java.lang.annotation.RetentionPolicy.*;
 import java.lang.annotation.*;
 
 /**
- * TODO
+ * REST response body annotation.
+ *
+ * <p>
+ * Annotation used to denote an HTTP response body.
+ *
+ * <p>
+ * Can be used in the following locations:
+ * <ul>
+ *     <li>Public methods of <ja>@Response</ja>-annotated methods.
+ * </ul>
+ *
+ *
+ * <h5 class='topic'>Public methods of <ja>@Response</ja>-annotated 
methods</h5>
+ * <p>
+ * On {@link Response @Response}-annotated classes, this method can be used to 
denote a POJO to use as the response.
+ *
+ * <h5 class='section'>Example:</h5>
+ * <p class='bcode w800'>
+ *     <ja>@RestMethod</ja>
+ *     <jk>public</jk> AddPetSuccess addPet() {
+ *             <jsm>addPet</jsm>(pet);
+ *             <jk>return new</jk> AddPetSuccess(...);
+ *     }
+ * </p>
+ *
+ * <h5 class='figure'>Example:</h5>
+ * <p class='bcode w800'>
+ *     <ja>@Response</ja>
+ *     <jk>public class</jk> AddPetSuccess {
+ *
+ *             <ja>@ResponseBody</ja>
+ *             <jk>public</jk> Pet getPet() {...}
+ *     }
+ * </p>
+ *
+ * <p>
+ * The method being annotated must be public.
+ *
+ * <h5 class='section'>See Also:</h5>
+ * <ul>
+ *     <li class='link'><a class="doclink" 
href="../../../../../overview-summary.html#juneau-rest-server.HttpPartAnnotations.Response">Overview
 &gt; juneau-rest-server &gt; @Response</a>
+ * </ul>
  */
 @Documented
 @Target(METHOD)
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ResponseStatus.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ResponseStatus.java
index beff492..2299acd 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ResponseStatus.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ResponseStatus.java
@@ -22,7 +22,6 @@ import org.apache.juneau.*;
 /**
  * REST response status annotation.
  *
- *
  * <p>
  * Annotation used to denote an HTTP response status code.
  *
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSerializer.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSerializer.java
index f24ca4d..16583e6 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSerializer.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSerializer.java
@@ -37,7 +37,8 @@ import org.apache.juneau.serializer.*;
  *     <li class='ja'>{@link Query#serializer()}
  *     <li class='ja'>{@link Header#serializer()}
  *     <li class='ja'>{@link Path#serializer()}
- *     <li class='ja'>{@link RequestBean#serializer()}
+ *     <li class='ja'>{@link Request#partSerializer()}
+ *     <li class='ja'>{@link Response#partSerializer()}
  *     <li class='jc'><code>RestClientBuilder.partSerializer(Class)</code>
  * </ul>
  *
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/RequestBeanMeta.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/RequestBeanMeta.java
index bc6ba5c..efa22df 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/RequestBeanMeta.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/RequestBeanMeta.java
@@ -24,22 +24,22 @@ import org.apache.juneau.httppart.*;
 import org.apache.juneau.internal.*;
 
 /**
- * Represents the metadata gathered from a parameter or class annotated with 
{@link RequestBean}.
+ * Represents the metadata gathered from a parameter or class annotated with 
{@link Request}.
  */
 public class RequestBeanMeta {
 
        /**
         * Create metadata from specified parameter.
         *
-        * @param m The method containing the parameter or parameter type 
annotated with {@link RequestBean}.
+        * @param m The method containing the parameter or parameter type 
annotated with {@link Request}.
         * @param i The parameter index.
         * @param ps
         *      Configuration information used to instantiate part serializers 
and part parsers.
         *      <br>Can be <jk>null</jk>.
-        * @return Metadata about the parameter, or <jk>null</jk> if parameter 
or parameter type not annotated with {@link RequestBean}.
+        * @return Metadata about the parameter, or <jk>null</jk> if parameter 
or parameter type not annotated with {@link Request}.
         */
        public static RequestBeanMeta create(Method m, int i, PropertyStore ps) 
{
-               if (! hasAnnotation(RequestBean.class, m, i))
+               if (! hasAnnotation(Request.class, m, i))
                        return null;
                return new RequestBeanMeta.Builder(ps).apply(m, i).build();
        }
@@ -47,14 +47,14 @@ public class RequestBeanMeta {
        /**
         * Create metadata from specified class.
         *
-        * @param c The class annotated with {@link RequestBean}.
+        * @param c The class annotated with {@link Request}.
         * @param ps
         *      Configuration information used to instantiate part serializers 
and part parsers.
         *      <br>Can be <jk>null</jk>.
-        * @return Metadata about the class, or <jk>null</jk> if class not 
annotated with {@link RequestBean}.
+        * @return Metadata about the class, or <jk>null</jk> if class not 
annotated with {@link Request}.
         */
        public static RequestBeanMeta create(Class<?> c, PropertyStore ps) {
-               if (! hasAnnotation(RequestBean.class, c))
+               if (! hasAnnotation(Request.class, c))
                        return null;
                return new RequestBeanMeta.Builder(ps).apply(c).build();
        }
@@ -95,11 +95,11 @@ public class RequestBeanMeta {
                }
 
                Builder apply(Method m, int i) {
-                       return 
apply(m.getParameterTypes()[i]).apply(getAnnotation(RequestBean.class, m, i));
+                       return 
apply(m.getParameterTypes()[i]).apply(getAnnotation(Request.class, m, i));
                }
 
                Builder apply(Class<?> c) {
-                       apply(getAnnotation(RequestBean.class, c));
+                       apply(getAnnotation(Request.class, c));
                        this.cm = BeanContext.DEFAULT.getClassMeta(c);
                        BeanMeta<?> bm = BeanContext.DEFAULT.getBeanMeta(c);
                        for (BeanPropertyMeta bp : bm.getPropertyMetas()) {
@@ -134,12 +134,12 @@ public class RequestBeanMeta {
                        return this;
                }
 
-               Builder apply(RequestBean rb) {
-                       if (rb != null) {
-                               if (rb.serializer() != 
HttpPartSerializer.Null.class)
-                                       serializer = rb.serializer();
-                               if (rb.parser() != HttpPartParser.Null.class)
-                                       parser = rb.parser();
+               Builder apply(Request a) {
+                       if (a != null) {
+                               if (a.partSerializer() != 
HttpPartSerializer.Null.class)
+                                       serializer = a.partSerializer();
+                               if (a.partParser() != HttpPartParser.Null.class)
+                                       parser = a.partParser();
                        }
                        return this;
                }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/RequestBeanPropertyMeta.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/RequestBeanPropertyMeta.java
index 6527bd1..ebdbc86 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/RequestBeanPropertyMeta.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/RequestBeanPropertyMeta.java
@@ -18,7 +18,7 @@ import org.apache.juneau.httppart.*;
 import org.apache.juneau.internal.*;
 
 /**
- * Represents the metadata gathered from a getter method of a class annotated 
with {@link RequestBean}.
+ * Represents the metadata gathered from a getter method of a class annotated 
with {@link Request}.
  */
 public class RequestBeanPropertyMeta {
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/remoteable/RemoteMethodBeanArg.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/remoteable/RemoteMethodBeanArg.java
index a2c3c76..fcea234 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/remoteable/RemoteMethodBeanArg.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/remoteable/RemoteMethodBeanArg.java
@@ -19,7 +19,7 @@ import org.apache.juneau.httppart.*;
 import org.apache.juneau.httppart.bean.*;
 
 /**
- * Represents the metadata about an {@link RequestBean}-annotated argument of 
a method on a remote proxy interface.
+ * Represents the metadata about an {@link Request}-annotated argument of a 
method on a remote proxy interface.
  *
  * <h5 class='section'>See Also:</h5>
  * <ul class='doctree'>
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/remoteable/RemoteableMethodMeta.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/remoteable/RemoteableMethodMeta.java
index 23e3a0f..e3ed3df 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/remoteable/RemoteableMethodMeta.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/remoteable/RemoteableMethodMeta.java
@@ -40,7 +40,7 @@ public class RemoteableMethodMeta {
        private final String httpMethod;
        private final String url;
        private final RemoteMethodArg[] pathArgs, queryArgs, headerArgs, 
formDataArgs, otherArgs;
-       private final RemoteMethodBeanArg[] requestBeanArgs;
+       private final RemoteMethodBeanArg[] requestArgs;
        private final RemoteMethodArg bodyArg;
        private final RemoteMethodReturn methodReturn;
 
@@ -58,7 +58,7 @@ public class RemoteableMethodMeta {
                this.queryArgs = b.queryArgs.toArray(new 
RemoteMethodArg[b.queryArgs.size()]);
                this.formDataArgs = b.formDataArgs.toArray(new 
RemoteMethodArg[b.formDataArgs.size()]);
                this.headerArgs = b.headerArgs.toArray(new 
RemoteMethodArg[b.headerArgs.size()]);
-               this.requestBeanArgs = b.requestBeanArgs.toArray(new 
RemoteMethodBeanArg[b.requestBeanArgs.size()]);
+               this.requestArgs = b.requestArgs.toArray(new 
RemoteMethodBeanArg[b.requestArgs.size()]);
                this.otherArgs = b.otherArgs.toArray(new 
RemoteMethodArg[b.otherArgs.size()]);
                this.bodyArg = b.bodyArg;
                this.methodReturn = b.methodReturn;
@@ -73,7 +73,7 @@ public class RemoteableMethodMeta {
                        formDataArgs = new LinkedList<>(),
                        otherArgs = new LinkedList<>();
                List<RemoteMethodBeanArg>
-                       requestBeanArgs = new LinkedList<>();
+                       requestArgs = new LinkedList<>();
                RemoteMethodArg bodyArg;
                RemoteMethodReturn methodReturn;
 
@@ -124,7 +124,7 @@ public class RemoteableMethodMeta {
                                RequestBeanMeta rmba = 
RequestBeanMeta.create(m, i, PropertyStore.DEFAULT);
                                if (rmba != null) {
                                        annotated = true;
-                                       requestBeanArgs.add(new 
RemoteMethodBeanArg(i, null, rmba));
+                                       requestArgs.add(new 
RemoteMethodBeanArg(i, null, rmba));
                                }
                                if (! annotated) {
                                        otherArgs.add(new RemoteMethodArg(i, 
BODY, null));
@@ -188,12 +188,12 @@ public class RemoteableMethodMeta {
        }
 
        /**
-        * Returns the {@link RequestBean @RequestBean} annotated arguments on 
this Java method.
+        * Returns the {@link Request @Request} annotated arguments on this 
Java method.
         *
         * @return A list of zero-indexed argument indices.
         */
-       public RemoteMethodBeanArg[] getRequestBeanArgs() {
-               return requestBeanArgs;
+       public RemoteMethodBeanArg[] getRequestArgs() {
+               return requestArgs;
        }
 
        /**
diff --git a/juneau-doc/src/main/javadoc/overview.html 
b/juneau-doc/src/main/javadoc/overview.html
index ab9a5a1..47cf591 100644
--- a/juneau-doc/src/main/javadoc/overview.html
+++ b/juneau-doc/src/main/javadoc/overview.html
@@ -312,10 +312,9 @@
                        <li><p class='new'><a class='doclink' 
href='#juneau-rest-server.HttpPartAnnotations.HasQuery'>@HasQuery</a></p>
                        <li><p class='new'><a class='doclink' 
href='#juneau-rest-server.HttpPartAnnotations.Header'>@Header</a></p>
                        <li><p class='new'><a class='doclink' 
href='#juneau-rest-server.HttpPartAnnotations.Path'>@Path</a></p>
-                       <li><p class='new'><a class='doclink' 
href='#juneau-rest-server.HttpPartAnnotations.RequestBean'>@RequestBean</a></p>
+                       <li><p class='new'><a class='doclink' 
href='#juneau-rest-server.HttpPartAnnotations.Request'>@Request</a></p>
                        <li><p class='todo'><a class='doclink' 
href='#juneau-rest-server.HttpPartAnnotations.Response'>@Response</a></p>
                        <li><p class='todo'><a class='doclink' 
href='#juneau-rest-server.HttpPartAnnotations.ResponseHeader'>@ResponseHeader</a></p>
-                       <li><p class='todo'><a class='doclink' 
href='#juneau-rest-server.HttpPartAnnotations.ResponseBody'>@ResponseBody</a></p>
                        <li><p class='todo'><a class='doclink' 
href='#juneau-rest-server.HttpPartAnnotations.ResponseStatus'>@ResponseStatus</a></p>
                </ol>
                <li><p class=''><a class='doclink' 
href='#juneau-rest-server.HandlingFormPosts'>Handling Form Posts</a></p>
@@ -13294,7 +13293,10 @@ TODO(7.2.0)
                        <li class='ja'>{@link 
org.apache.juneau.http.annotation.Header} - A header value.
                        <li class='ja'>{@link 
org.apache.juneau.http.annotation.Body} - The HTTP content parsed as a POJO.
                        <li class='ja'>{@link 
org.apache.juneau.rest.annotation.Method} - The HTTP method name. 
-                       <li class='ja'>{@link 
org.apache.juneau.http.annotation.RequestBean} - HTTP parts available through a 
proxy bean interface.
+                       <li class='ja'>{@link 
org.apache.juneau.http.annotation.Request} - HTTP request parts available 
through a proxy bean interface.
+                       <li class='ja'>{@link 
org.apache.juneau.http.annotation.Response} - HTTP response parts available 
through a POJO.
+                       <li class='ja'>{@link 
org.apache.juneau.http.annotation.ResponseHeader} - HTTP response header.
+                       <li class='ja'>{@link 
org.apache.juneau.http.annotation.ResponseStatus} - HTTP response status code.
                </ul>
 </ul>
 <h5 class='figure'>Example:</h5>
@@ -15632,10 +15634,10 @@ TODO(7.2.0)
 
 <!-- 
====================================================================================================
 -->
 
-<h4 class='topic new' onclick='toggle(this)'><a 
href='#juneau-rest-server.HttpPartAnnotations.RequestBean' 
id='juneau-rest-server.HttpPartAnnotations.RequestBean'>7.9.8 - 
@RequestBean</a></h4>
-<div class='topic'><!-- START: 7.9.8 - 
juneau-rest-server.HttpPartAnnotations.RequestBean -->
+<h4 class='topic new' onclick='toggle(this)'><a 
href='#juneau-rest-server.HttpPartAnnotations.Request' 
id='juneau-rest-server.HttpPartAnnotations.Request'>7.9.8 - @Request</a></h4>
+<div class='topic'><!-- START: 7.9.8 - 
juneau-rest-server.HttpPartAnnotations.Request -->
 <p>
-       The {@link org.apache.juneau.http.annotation.RequestBean @RequestBean} 
annotation can be applied to a parameter interface type of a 
<ja>@RestMethod</ja>-annotated method 
+       The {@link org.apache.juneau.http.annotation.Request @Request} 
annotation can be applied to a parameter interface type of a 
<ja>@RestMethod</ja>-annotated method 
        to identify it as an interface for retrieving HTTP parts through a bean 
interface.
 </p>
 
@@ -15644,7 +15646,7 @@ TODO(7.2.0)
        <ja>@RestMethod</ja>(path=<js>"/pets/{petId}"</js>)
        <jk>public void</jk> putPet(UpdatePet updatePet) {...}
 
-       <ja>@RequestBean</ja>
+       <ja>@Request</ja>
        <jk>public interface</jk> UpdatePet {
 
                <ja>@Path</ja> 
@@ -15658,6 +15660,7 @@ TODO(7.2.0)
 
                <ja>@Body</ja>
                Pet getPet();
+       }
 </p>
 <p>
        The return types of the getters must be the supported parameter types 
for the HTTP-part annotation used.
@@ -15669,8 +15672,8 @@ TODO(7.2.0)
 </p>
 <h5 class='figure'>Example:</h5>
 <p class='bpcode w800'>
-       <ja>@RequestBean</ja>
-       <jk>public interface</jk> RequestBean {
+       <ja>@Request</ja>
+       <jk>public interface</jk> Request {
 
                <jc>// Schema-based query parameter:  Pipe-delimited lists of 
comma-delimited lists of integers.</jc>
                <ja>@Query</ja>(
@@ -15688,7 +15691,20 @@ TODO(7.2.0)
                <jk>int</jk>[][] getPipeCdlInts();
        }
 </p>
-</div><!-- END: 7.9.8 - juneau-rest-server.HttpPartAnnotations.RequestBean -->
+<p>
+       The <ja>@Request</ja> annotation can be defined on the parameter, 
class, or both.
+</p>
+<h5 class='section'>Example:</h5>
+<p class='bpcode w800'>
+       <jc>// @Request defined on both for clarity.</jc>
+
+       <ja>@RestMethod</ja>(path=<js>"/pets/{petId}"</js>)
+       <jk>public void</jk> putPet(<ja>@Request</ja> UpdatePet updatePet) {...}
+
+       <ja>@Request</ja>
+       <jk>public interface</jk> UpdatePet {...}
+</p>
+</div><!-- END: 7.9.8 - juneau-rest-server.HttpPartAnnotations.Request -->
 
 <!-- 
====================================================================================================
 -->
 
@@ -15727,8 +15743,8 @@ TODO(7.2.0)
        public non-static methods of the class to identify parts of a response:
 </p>
 <ul class='doctree'>
-       <li class='ja'>{@link org.apache.juneau.http.annotation.ResponseHeader} 
        <li class='ja'>{@link org.apache.juneau.http.annotation.ResponseStatus} 
+       <li class='ja'>{@link org.apache.juneau.http.annotation.ResponseHeader} 
        <li class='ja'>{@link org.apache.juneau.http.annotation.ResponseBody} 
 </ul>
        
@@ -15763,7 +15779,7 @@ TODO(7.2.0)
        }
 </p>
 <p>
-       Custom exception can also extend from one of the predefined HTTP 
exceptions such as the {@link org.apache.juneau.rest.exception.Unauthorized} 
exception:
+       Custom exceptions can also extend from one of the predefined HTTP 
exceptions such as the {@link org.apache.juneau.rest.exception.Unauthorized} 
exception:
 </p>
 <p class='bpcode w800'>
        <jc>// Our annotated exception.</jc>
@@ -15854,32 +15870,6 @@ TODO(7.2.0)
        }
 </p>
 
-
-<h5 class='topic'>Automatic HTTP status</h5>
-<p>
-       When the {@link org.apache.juneau.http.annotation.Response#code() 
@Response(code)} value is specified, 
-       the HTTP status is automatically set to that value on the response 
regardless of how it's used.
-</p>
-<p>
-       The following two examples are equivalent:
-</p>
-<p class='bpcode w800'>
-       <ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/ok"</js>)
-       <jk>public void</jk> sendContinue(
-               <ja>@Response</ja>(code=100) Value&lt;String&gt; body
-       ) 
-       {
-               body.set(<js>"OK"</js>);
-       }
-</p>
-<p class='bpcode w800'>
-       <ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/ok"</js>)
-       <jk>public void</jk> sendContinue(RestResponse res) {
-               res.setStatus(100);
-               res.setOutput(<js>"OK"</js>);
-       }
-</p>
-
 <h5 class='topic'>OpenAPI part serialization</h5>
 <p>
        By default, POJOs representing the body of the request are serialized 
using the Juneau serializer
@@ -15955,15 +15945,67 @@ TODO(7.2.0)
        statuses other than <code>200</code> (the default).     
 </p>
 
+<h5 class='figure'>Example:</h5>
+<p class='bpcode w800'>
+       <ja>@Response</ja>
+       <jk>public class</jk> AddPetSuccess {
+ 
+               <ja>@ResponseStatus</ja>
+               <jk>public int</jk> getStatus() {
+                       <jk>return</jk> 201;
+               }
+
+               <ja>@Override</ja>
+               <jk>public</jk> String toString() {
+                       <jk>return</jk> <js>"Pet was successfully added"</js>;
+               }
+       }
+</p>
+
 
 <h5 class='topic'>@ResponseHeader</h5>
+<p>
+       The {@link org.apache.juneau.http.annotation.ResponseHeader 
@ResponseHeader} annotation can be used on
+       the method of a {@link 
org.apache.juneau.http.annotation.Response}-annotated class to identify a header
+       to add to the response.
+</p>
+
+<h5 class='figure'>Example:</h5>
+<p class='bcode w800'>
+       <ja>@Response</ja>
+       <jk>public class</jk> AddPetSuccess {
+ 
+               <ja>@ResponseHeader</ja>(
+                       name=<js>"X-PetId"</js>,
+                       type=<js>"integer"</js>,
+                       format=<js>"int32"</js>,
+                       description=<js>"ID of added pet."</js>,
+                       example=<js>"123"</js>
+               )
+               <jk>public int</jk> getPetId() {...}
+       }
+</p>
+
 <h5 class='topic'>@ResponseBody</h5>
 <p>
-       When using part serialization, any of the types defined in <a 
class='doclink' href='#juneau-marshall.OpenApiDetails.Serializers'>OpenAPI 
Serializers</a> can 
-       be used as the POJO type.
+       The {@link org.apache.juneau.http.annotation.ResponseBody 
@ResponseBody} annotation can be used on
+       the method of a {@link 
org.apache.juneau.http.annotation.Response}-annotated class to identify a POJO
+       as the body of the HTTP response.
 </p>
+
+<h5 class='figure'>Example:</h5>
+<p class='bcode w800'>
+       <ja>@Response</ja>
+       <jk>public class</jk> AddPetSuccess {
+ 
+               <ja>@ResponseBody</ja>
+               <jk>public</jk> Pet getPet() {...}
+       }
+</p>
+
 <p>
-       Part serialization can also be used on exception classes as well.
+       If a <ja>@Response</ja> class does not have a 
<ja>@ResponseBody</ja>-annotated method, then the response
+       object itself is serialized in the response (typically using 
<code>toString()</code>).
 </p>
 
 <h5 class='topic'>Swagger documentation</h5>
@@ -15983,6 +16025,31 @@ TODO(7.2.0)
        }
 </p>
 
+<h5 class='topic'>Automatic HTTP status</h5>
+<p>
+       When the {@link org.apache.juneau.http.annotation.Response#code() 
@Response(code)} value is specified, 
+       the HTTP status is automatically set to that value on the response 
regardless of how it's used.
+</p>
+<p>
+       The following two examples are equivalent:
+</p>
+<p class='bpcode w800'>
+       <ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/ok"</js>)
+       <jk>public void</jk> sendContinue(
+               <ja>@Response</ja>(code=100) Value&lt;String&gt; body
+       ) 
+       {
+               body.set(<js>"OK"</js>);
+       }
+</p>
+<p class='bpcode w800'>
+       <ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/ok"</js>)
+       <jk>public void</jk> sendContinue(RestResponse res) {
+               res.setStatus(100);
+               res.setOutput(<js>"OK"</js>);
+       }
+</p>
+
 <h5 class='section'>See Also:</h5>
 <ul>
        <li class='link'><a class='doclink' 
href='#juneau-rest-server.OpenApiSchemaPartSerializing'>OpenAPI Schema Part 
Serializing</a>
@@ -16108,89 +16175,8 @@ TODO(7.2.0)
 
 <!-- 
====================================================================================================
 -->
 
-<h4 class='topic todo' onclick='toggle(this)'><a 
href='#juneau-rest-server.HttpPartAnnotations.ResponseBody' 
id='juneau-rest-server.HttpPartAnnotations.ResponseBody'>7.9.11 - 
@ResponseBody</a></h4>
-<div class='topic'><!-- START: 7.9.11 - 
juneau-rest-server.HttpPartAnnotations.ResponseBody -->
-<p>
-       The {@link org.apache.juneau.http.annotation.ResponseBody 
@ResponseBody} annotation is used to identify a placeholder parameter
-       for an HTTP response.
-</p>
-<ul class='doctree'>
-       <li class='ja'>{@link org.apache.juneau.http.annotation.ResponseBody 
ResponseBody}
-       <ul>
-               <li class='jf'>{@link 
org.apache.juneau.http.annotation.ResponseBody#api() api()} - Free-form Swagger 
JSON.
-               <li class='jf'>{@link 
org.apache.juneau.http.annotation.ResponseBody#example() example()} - 
Serialized example.
-               <li class='jf'>{@link 
org.apache.juneau.http.annotation.ResponseBody#examples() examples()} - 
Serialized examples per media type.
-               <li class='jf'>{@link 
org.apache.juneau.http.annotation.ResponseBody#partSerializer() 
partSerializer()} - Override the part serializer.
-               <li class='jf'>{@link 
org.apache.juneau.http.annotation.ResponseBody#schema() schema()} - Swagger 
schema.
-               <li class='jf'>{@link 
org.apache.juneau.http.annotation.ResponseBody#usePartSerializer() 
usePartSerializer()} - Use the HTTP-Part serializer for serializing the body.
-       </ul>
-</ul>
-<p>
-       It can be used in the following locations:
-</p>
-<ul>
-       <li>Parameters on <ja>@RestMethod</ja>-annotated methods.
-       <li>Classes of parameters on <ja>@RestMethod</ja>-annotated methods.
-       <li><ja>@RestMethod</ja>-annotated methods.
-</ul>
-
-<h5 class='topic'>Parameters on @RestMethod-annotated methods</h5>
-<p>
-       When used on a method parameter, this annotation is used to identify a 
placeholder {@link org.apache.juneau.Value}
-       object that can be used to return the body of the response.
-</p>
-<p class='bpcode w800'>
-       <ja>@RestMethod</ja>(path=<js>"/pet/{petId}"</js>)
-       <jk>public void</jk> getPet(<ja>@Path</ja>(<js>"petId"</js>) 
<jk>int</jk> id, <ja>@ResponseBody</ja> Value&lt;Pet&gt; body) {
-               body.set(<jsm>getPet</jsm>(id));
-       }
-</p>
-<p>
-       The behavior is identical to the following:
-</p>
-<p class='bpcode w800'>
-       <ja>@RestMethod</ja>(path="/pet/{petId}")
-       <jk>public</jk> Pet getPet(<ja>@Path</ja>(<js>"petId"</js>) 
<jk>int</jk> id) {
-               <jk>return</jk> <jsm>getPet</jsm>(id);
-       }
-</p>
-<p>
-       You may ask why you would use ever use this.
-       The answer is that it's possible to have your method returns something 
else such as an HTTP response status
-       or header value.
-       This annotation allows you to set a response body when your method is 
returning one of these.
-       <br>Also, the annotation allows you to define swagger validation and 
documentation for your body.
-</p>
-
-<h5 class='topic'>Classes of parameters on @RestMethod-annotated methods</h5>
-<p>
-       The <ja>@ResponseBody</ja> annotation can also be applied to types.
-</p>
-<p class='bpcode w800'>
-       <ja>@RestMethod</ja>(path=<js>"/pet/{petId}"</js>)
-       <jk>public void</jk> getPet(<ja>@Path</ja>(<js>"petId"</js>) 
<jk>int</jk> id, Value&lt;Pet&gt; body) {
-               body.set(<jsm>getPet</jsm>(id));
-       }
-</p>
-<p class='bpcode w800'>
-       <ja>@ResponseBody</ja>(
-               schema=<ja>@Schema</ja>(
-                       description=<js>"Pet bean"</js>
-               )
-       )
-       <jk>public class</jk> Pet {...}
-</p>
-<p>
-       Note that this can often be cleaner-looking than usage on the Java 
method parameter.
-</p>
-
-<h5 class='topic'>@RestMethod-annotated methods</h5>
-</div><!-- END: 7.9.11 - juneau-rest-server.HttpPartAnnotations.ResponseBody 
-->
-
-<!-- 
====================================================================================================
 -->
-
-<h4 class='topic todo' onclick='toggle(this)'><a 
href='#juneau-rest-server.HttpPartAnnotations.ResponseStatus' 
id='juneau-rest-server.HttpPartAnnotations.ResponseStatus'>7.9.12 - 
@ResponseStatus</a></h4>
-<div class='topic'><!-- START: 7.9.12 - 
juneau-rest-server.HttpPartAnnotations.ResponseStatus -->
+<h4 class='topic todo' onclick='toggle(this)'><a 
href='#juneau-rest-server.HttpPartAnnotations.ResponseStatus' 
id='juneau-rest-server.HttpPartAnnotations.ResponseStatus'>7.9.11 - 
@ResponseStatus</a></h4>
+<div class='topic'><!-- START: 7.9.11 - 
juneau-rest-server.HttpPartAnnotations.ResponseStatus -->
 <p>
        The {@link org.apache.juneau.http.annotation.ResponseStatus 
@ResponseStatus} annotation is applied to parameters and parameter 
        types to denote them as an HTTP response status on server-side REST 
method parameters.
@@ -16224,7 +16210,7 @@ TODO(7.2.0)
                        status.set(401);
        }
 </p>
-</div><!-- END: 7.9.12 - juneau-rest-server.HttpPartAnnotations.ResponseStatus 
-->
+</div><!-- END: 7.9.11 - juneau-rest-server.HttpPartAnnotations.ResponseStatus 
-->
 </div><!-- END: 7.9 - juneau-rest-server.HttpPartAnnotations -->
 
 <!-- 
====================================================================================================
 -->
@@ -30483,7 +30469,7 @@ TODO(7.2.0)
                        <li class='ja'>{@link 
org.apache.juneau.http.annotation.Query}
                        <li class='ja'>{@link 
org.apache.juneau.http.annotation.HasFormData}
                        <li class='ja'>{@link 
org.apache.juneau.http.annotation.HasQuery}
-                       <li class='ja'>{@link 
org.apache.juneau.http.annotation.RequestBean}
+                       <li class='ja'>{@link 
org.apache.juneau.http.annotation.Request}
                </ul>
                <br>These are used with new Swagger schema/documentation 
annotations to produce schema-based serialization/parsing/validation 
                        and auto-generated Swagger documentation:
@@ -30500,7 +30486,7 @@ TODO(7.2.0)
                Support for multi-valued parameters as maps or beans on 
server-side annotations (it was previously supported on client-side):
                <code><ja>@Query</ja>(<js>"*"</js>)</code>, 
<code><ja>@FormData</ja>(<js>"*"</js>)</code>, 
<code><ja>@Header</ja>(<js>"*"</js>)</code>, 
<code><ja>@Path</ja>(<js>"*"</js>)</code>
        <li>
-               Support for server-side use of <ja>@ResourceBean</ja> 
annotation on <ja>@RestMethod</ja> annotations and new {@link 
org.apache.juneau.rest.RestRequest#getRequestBean(RequestBeanMeta)} method.
+               Support for server-side use of <ja>@Request</ja> annotation on 
<ja>@RestMethod</ja> annotations and new {@link 
org.apache.juneau.rest.RestRequest#getRequest(RequestBeanMeta)} method.
        <li>
                Fixed bug where <code><ja>@Bean</ja>(typeName)</code> was not 
being detected on non-bean POJO classes.
        <li>
@@ -30856,11 +30842,11 @@ TODO(7.2.0)
        <li>
                <code>RequestPathMatch</code> class has been renamed to {@link 
org.apache.juneau.rest.RequestPath}.
        <li>
-               {@link org.apache.juneau.http.annotation.RequestBean 
@RequestBean} objects can now be used as parameters in <ja>@RestMethod</ja> 
methods.
+               {@link org.apache.juneau.http.annotation.Request @Request} 
objects can now be used as parameters in <ja>@RestMethod</ja> methods.
                <br>Includes new methods on {@link 
org.apache.juneau.rest.RestRequest}:
                <ul class='doctree'>
-                       <li class='jm'>{@link 
org.apache.juneau.rest.RestRequest#getRequestBean(Class) getRequestBean(Class)}
-                       <li class='jm'>{@link 
org.apache.juneau.rest.RestRequest#getRequestBean(RequestBeanMeta) 
getRequestBean(RequestBeanMeta)}
+                       <li class='jm'>{@link 
org.apache.juneau.rest.RestRequest#getRequest(Class) getRequest(Class)}
+                       <li class='jm'>{@link 
org.apache.juneau.rest.RestRequest#getRequest(RequestMeta) 
getRequest(RequestMeta)}
                </ul>
        <li>
                New methods added to {@link 
org.apache.juneau.rest.widget.MenuItemWidget} to allow population of menu item 
content using Javascript and Ajax calls:
diff --git a/juneau-doc/src/main/resources/ReleaseNotes/7.2.0.html 
b/juneau-doc/src/main/resources/ReleaseNotes/7.2.0.html
index 5a30032..7ab58ab 100644
--- a/juneau-doc/src/main/resources/ReleaseNotes/7.2.0.html
+++ b/juneau-doc/src/main/resources/ReleaseNotes/7.2.0.html
@@ -35,7 +35,7 @@
                        <li class='ja'>{@link 
org.apache.juneau.http.annotation.Query}
                        <li class='ja'>{@link 
org.apache.juneau.http.annotation.HasFormData}
                        <li class='ja'>{@link 
org.apache.juneau.http.annotation.HasQuery}
-                       <li class='ja'>{@link 
org.apache.juneau.http.annotation.RequestBean}
+                       <li class='ja'>{@link 
org.apache.juneau.http.annotation.Request}
                </ul>
                <br>These are used with new Swagger schema/documentation 
annotations to produce schema-based serialization/parsing/validation 
                        and auto-generated Swagger documentation:
@@ -52,7 +52,7 @@
                Support for multi-valued parameters as maps or beans on 
server-side annotations (it was previously supported on client-side):
                <code><ja>@Query</ja>(<js>"*"</js>)</code>, 
<code><ja>@FormData</ja>(<js>"*"</js>)</code>, 
<code><ja>@Header</ja>(<js>"*"</js>)</code>, 
<code><ja>@Path</ja>(<js>"*"</js>)</code>
        <li>
-               Support for server-side use of <ja>@ResourceBean</ja> 
annotation on <ja>@RestMethod</ja> annotations and new {@link 
org.apache.juneau.rest.RestRequest#getRequestBean(RequestBeanMeta)} method.
+               Support for server-side use of <ja>@Request</ja> annotation on 
<ja>@RestMethod</ja> annotations and new {@link 
org.apache.juneau.rest.RestRequest#getRequest(RequestBeanMeta)} method.
        <li>
                Fixed bug where <code><ja>@Bean</ja>(typeName)</code> was not 
being detected on non-bean POJO classes.
        <li>
@@ -408,11 +408,11 @@
        <li>
                <code>RequestPathMatch</code> class has been renamed to {@link 
org.apache.juneau.rest.RequestPath}.
        <li>
-               {@link org.apache.juneau.http.annotation.RequestBean 
@RequestBean} objects can now be used as parameters in <ja>@RestMethod</ja> 
methods.
+               {@link org.apache.juneau.http.annotation.Request @Request} 
objects can now be used as parameters in <ja>@RestMethod</ja> methods.
                <br>Includes new methods on {@link 
org.apache.juneau.rest.RestRequest}:
                <ul class='doctree'>
-                       <li class='jm'>{@link 
org.apache.juneau.rest.RestRequest#getRequestBean(Class) getRequestBean(Class)}
-                       <li class='jm'>{@link 
org.apache.juneau.rest.RestRequest#getRequestBean(RequestBeanMeta) 
getRequestBean(RequestBeanMeta)}
+                       <li class='jm'>{@link 
org.apache.juneau.rest.RestRequest#getRequest(Class) getRequest(Class)}
+                       <li class='jm'>{@link 
org.apache.juneau.rest.RestRequest#getRequest(RequestMeta) 
getRequest(RequestMeta)}
                </ul>
        <li>
                New methods added to {@link 
org.apache.juneau.rest.widget.MenuItemWidget} to allow population of menu item 
content using Javascript and Ajax calls:
diff --git 
a/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/06.RestMethod/01.MethodParameters.html
 
b/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/06.RestMethod/01.MethodParameters.html
index 6a7e9be..72bd501 100644
--- 
a/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/06.RestMethod/01.MethodParameters.html
+++ 
b/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/06.RestMethod/01.MethodParameters.html
@@ -107,7 +107,10 @@ Java Method Parameters
                        <li class='ja'>{@link 
org.apache.juneau.http.annotation.Header} - A header value.
                        <li class='ja'>{@link 
org.apache.juneau.http.annotation.Body} - The HTTP content parsed as a POJO.
                        <li class='ja'>{@link 
org.apache.juneau.rest.annotation.Method} - The HTTP method name. 
-                       <li class='ja'>{@link 
org.apache.juneau.http.annotation.RequestBean} - HTTP parts available through a 
proxy bean interface.
+                       <li class='ja'>{@link 
org.apache.juneau.http.annotation.Request} - HTTP request parts available 
through a proxy bean interface.
+                       <li class='ja'>{@link 
org.apache.juneau.http.annotation.Response} - HTTP response parts available 
through a POJO.
+                       <li class='ja'>{@link 
org.apache.juneau.http.annotation.ResponseHeader} - HTTP response header.
+                       <li class='ja'>{@link 
org.apache.juneau.http.annotation.ResponseStatus} - HTTP response status code.
                </ul>
 </ul>
 <h5 class='figure'>Example:</h5>
diff --git 
a/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/09.HttpPartAnnotations/08.RequestBean.html
 
b/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/09.HttpPartAnnotations/08.Request.html
similarity index 70%
rename from 
juneau-doc/src/main/resources/Topics/07.juneau-rest-server/09.HttpPartAnnotations/08.RequestBean.html
rename to 
juneau-doc/src/main/resources/Topics/07.juneau-rest-server/09.HttpPartAnnotations/08.Request.html
index 6cdc35c..25d3caa 100644
--- 
a/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/09.HttpPartAnnotations/08.RequestBean.html
+++ 
b/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/09.HttpPartAnnotations/08.Request.html
@@ -13,11 +13,11 @@
  
***************************************************************************************************************************/
  -->
 
-{new} @RequestBean
+{new} @Request
 
 <p>
-       The {@link org.apache.juneau.http.annotation.RequestBean @RequestBean} 
annotation can be applied to a parameter interface type of a 
<ja>@RestMethod</ja>-annotated method 
-       to identify it as an interface for retrieving HTTP parts through a bean 
interface.
+       The {@link org.apache.juneau.http.annotation.Request @Request} 
annotation can be applied to a parameter interface type of a 
<ja>@RestMethod</ja>-annotated method 
+       to identify it as an interface for retrieving HTTP parts through a 
bean-like interface.
 </p>
 
 <h5 class='section'>Example:</h5>
@@ -25,7 +25,7 @@
        <ja>@RestMethod</ja>(path=<js>"/pets/{petId}"</js>)
        <jk>public void</jk> putPet(UpdatePet updatePet) {...}
 
-       <ja>@RequestBean</ja>
+       <ja>@Request</ja>
        <jk>public interface</jk> UpdatePet {
 
                <ja>@Path</ja> 
@@ -41,6 +41,15 @@
                Pet getPet();
        }
 </p>
+<p class='bpcode w800'>
+       <ja>@RestMethod</ja>(path=<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
+       ) {...}
+</p>
 <p>
        The return types of the getters must be the supported parameter types 
for the HTTP-part annotation used.
        <br>Schema-based serialization and parsing is used just as if used as 
individual parameter types.
@@ -51,8 +60,8 @@
 </p>
 <h5 class='figure'>Example:</h5>
 <p class='bpcode w800'>
-       <ja>@RequestBean</ja>
-       <jk>public interface</jk> RequestBean {
+       <ja>@Request</ja>
+       <jk>public interface</jk> Request {
 
                <jc>// Schema-based query parameter:  Pipe-delimited lists of 
comma-delimited lists of integers.</jc>
                <ja>@Query</ja>(
@@ -70,3 +79,16 @@
                <jk>int</jk>[][] getPipeCdlInts();
        }
 </p>
+<p>
+       The <ja>@Request</ja> annotation can be defined on the parameter, 
class, or both.
+</p>
+<h5 class='section'>Example:</h5>
+<p class='bpcode w800'>
+       <jc>// @Request defined on both for clarity.</jc>
+
+       <ja>@RestMethod</ja>(path=<js>"/pets/{petId}"</js>)
+       <jk>public void</jk> putPet(<ja>@Request</ja> UpdatePet updatePet) {...}
+
+       <ja>@Request</ja>
+       <jk>public interface</jk> UpdatePet {...}
+</p>
diff --git 
a/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/09.HttpPartAnnotations/09.Response.html
 
b/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/09.HttpPartAnnotations/09.Response.html
index a795ede..ca8d98c 100644
--- 
a/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/09.HttpPartAnnotations/09.Response.html
+++ 
b/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/09.HttpPartAnnotations/09.Response.html
@@ -84,7 +84,7 @@
        }
 </p>
 <p>
-       Custom exception can also extend from one of the predefined HTTP 
exceptions such as the {@link org.apache.juneau.rest.exception.Unauthorized} 
exception:
+       Custom exceptions can also extend from one of the predefined HTTP 
exceptions such as the {@link org.apache.juneau.rest.exception.Unauthorized} 
exception:
 </p>
 <p class='bpcode w800'>
        <jc>// Our annotated exception.</jc>
@@ -175,32 +175,6 @@
        }
 </p>
 
-
-<h5 class='topic'>Automatic HTTP status</h5>
-<p>
-       When the {@link org.apache.juneau.http.annotation.Response#code() 
@Response(code)} value is specified, 
-       the HTTP status is automatically set to that value on the response 
regardless of how it's used.
-</p>
-<p>
-       The following two examples are equivalent:
-</p>
-<p class='bpcode w800'>
-       <ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/ok"</js>)
-       <jk>public void</jk> sendContinue(
-               <ja>@Response</ja>(code=100) Value&lt;String&gt; body
-       ) 
-       {
-               body.set(<js>"OK"</js>);
-       }
-</p>
-<p class='bpcode w800'>
-       <ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/ok"</js>)
-       <jk>public void</jk> sendContinue(RestResponse res) {
-               res.setStatus(100);
-               res.setOutput(<js>"OK"</js>);
-       }
-</p>
-
 <h5 class='topic'>OpenAPI part serialization</h5>
 <p>
        By default, POJOs representing the body of the request are serialized 
using the Juneau serializer
@@ -276,15 +250,67 @@
        statuses other than <code>200</code> (the default).     
 </p>
 
+<h5 class='figure'>Example:</h5>
+<p class='bpcode w800'>
+       <ja>@Response</ja>
+       <jk>public class</jk> AddPetSuccess {
+ 
+               <ja>@ResponseStatus</ja>
+               <jk>public int</jk> getStatus() {
+                       <jk>return</jk> 201;
+               }
+
+               <ja>@Override</ja>
+               <jk>public</jk> String toString() {
+                       <jk>return</jk> <js>"Pet was successfully added"</js>;
+               }
+       }
+</p>
+
 
 <h5 class='topic'>@ResponseHeader</h5>
+<p>
+       The {@link org.apache.juneau.http.annotation.ResponseHeader 
@ResponseHeader} annotation can be used on
+       the method of a {@link 
org.apache.juneau.http.annotation.Response}-annotated class to identify a header
+       to add to the response.
+</p>
+
+<h5 class='figure'>Example:</h5>
+<p class='bcode w800'>
+       <ja>@Response</ja>
+       <jk>public class</jk> AddPetSuccess {
+ 
+               <ja>@ResponseHeader</ja>(
+                       name=<js>"X-PetId"</js>,
+                       type=<js>"integer"</js>,
+                       format=<js>"int32"</js>,
+                       description=<js>"ID of added pet."</js>,
+                       example=<js>"123"</js>
+               )
+               <jk>public int</jk> getPetId() {...}
+       }
+</p>
+
 <h5 class='topic'>@ResponseBody</h5>
 <p>
-       When using part serialization, any of the types defined in <a 
class='doclink' href='#juneau-marshall.OpenApiDetails.Serializers'>OpenAPI 
Serializers</a> can 
-       be used as the POJO type.
+       The {@link org.apache.juneau.http.annotation.ResponseBody 
@ResponseBody} annotation can be used on
+       the method of a {@link 
org.apache.juneau.http.annotation.Response}-annotated class to identify a POJO
+       as the body of the HTTP response.
 </p>
+
+<h5 class='figure'>Example:</h5>
+<p class='bcode w800'>
+       <ja>@Response</ja>
+       <jk>public class</jk> AddPetSuccess {
+ 
+               <ja>@ResponseBody</ja>
+               <jk>public</jk> Pet getPet() {...}
+       }
+</p>
+
 <p>
-       Part serialization can also be used on exception classes as well.
+       If a <ja>@Response</ja> class does not have a 
<ja>@ResponseBody</ja>-annotated method, then the response
+       object itself is serialized in the response (typically using 
<code>toString()</code>).
 </p>
 
 <h5 class='topic'>Swagger documentation</h5>
@@ -304,6 +330,31 @@
        }
 </p>
 
+<h5 class='topic'>Automatic HTTP status</h5>
+<p>
+       When the {@link org.apache.juneau.http.annotation.Response#code() 
@Response(code)} value is specified, 
+       the HTTP status is automatically set to that value on the response 
regardless of how it's used.
+</p>
+<p>
+       The following two examples are equivalent:
+</p>
+<p class='bpcode w800'>
+       <ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/ok"</js>)
+       <jk>public void</jk> sendContinue(
+               <ja>@Response</ja>(code=100) Value&lt;String&gt; body
+       ) 
+       {
+               body.set(<js>"OK"</js>);
+       }
+</p>
+<p class='bpcode w800'>
+       <ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/ok"</js>)
+       <jk>public void</jk> sendContinue(RestResponse res) {
+               res.setStatus(100);
+               res.setOutput(<js>"OK"</js>);
+       }
+</p>
+
 <h5 class='section'>See Also:</h5>
 <ul>
        <li class='link'><a class='doclink' 
href='#juneau-rest-server.OpenApiSchemaPartSerializing'>OpenAPI Schema Part 
Serializing</a>
diff --git 
a/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/09.HttpPartAnnotations/11.ResponseBody.html
 
b/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/09.HttpPartAnnotations/11.ResponseBody.html
deleted file mode 100644
index c54fb9f..0000000
--- 
a/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/09.HttpPartAnnotations/11.ResponseBody.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<!--
-/***************************************************************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information regarding copyright 
ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *  
- *  http://www.apache.org/licenses/LICENSE-2.0
- *  
- * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 
or implied.  See the License for the
- * specific language governing permissions and limitations under the License.
- 
***************************************************************************************************************************/
- -->
-
-{todo} @ResponseBody
-
-<p>
-       The {@link org.apache.juneau.http.annotation.ResponseBody 
@ResponseBody} annotation is used to identify a placeholder parameter
-       for an HTTP response.
-</p>
-<ul class='doctree'>
-       <li class='ja'>{@link org.apache.juneau.http.annotation.ResponseBody 
ResponseBody}
-       <ul>
-               <li class='jf'>{@link 
org.apache.juneau.http.annotation.ResponseBody#api() api()} - Free-form Swagger 
JSON.
-               <li class='jf'>{@link 
org.apache.juneau.http.annotation.ResponseBody#example() example()} - 
Serialized example.
-               <li class='jf'>{@link 
org.apache.juneau.http.annotation.ResponseBody#examples() examples()} - 
Serialized examples per media type.
-               <li class='jf'>{@link 
org.apache.juneau.http.annotation.ResponseBody#partSerializer() 
partSerializer()} - Override the part serializer.
-               <li class='jf'>{@link 
org.apache.juneau.http.annotation.ResponseBody#schema() schema()} - Swagger 
schema.
-               <li class='jf'>{@link 
org.apache.juneau.http.annotation.ResponseBody#usePartSerializer() 
usePartSerializer()} - Use the HTTP-Part serializer for serializing the body.
-       </ul>
-</ul>
-<p>
-       It can be used in the following locations:
-</p>
-<ul>
-       <li>Parameters on <ja>@RestMethod</ja>-annotated methods.
-       <li>Classes of parameters on <ja>@RestMethod</ja>-annotated methods.
-       <li><ja>@RestMethod</ja>-annotated methods.
-</ul>
-
-<h5 class='topic'>Parameters on @RestMethod-annotated methods</h5>
-<p>
-       When used on a method parameter, this annotation is used to identify a 
placeholder {@link org.apache.juneau.Value}
-       object that can be used to return the body of the response.
-</p>
-<p class='bpcode w800'>
-       <ja>@RestMethod</ja>(path=<js>"/pet/{petId}"</js>)
-       <jk>public void</jk> getPet(<ja>@Path</ja>(<js>"petId"</js>) 
<jk>int</jk> id, <ja>@ResponseBody</ja> Value&lt;Pet&gt; body) {
-               body.set(<jsm>getPet</jsm>(id));
-       }
-</p>
-<p>
-       The behavior is identical to the following:
-</p>
-<p class='bpcode w800'>
-       <ja>@RestMethod</ja>(path="/pet/{petId}")
-       <jk>public</jk> Pet getPet(<ja>@Path</ja>(<js>"petId"</js>) 
<jk>int</jk> id) {
-               <jk>return</jk> <jsm>getPet</jsm>(id);
-       }
-</p>
-<p>
-       You may ask why you would use ever use this.
-       The answer is that it's possible to have your method returns something 
else such as an HTTP response status
-       or header value.
-       This annotation allows you to set a response body when your method is 
returning one of these.
-       <br>Also, the annotation allows you to define swagger validation and 
documentation for your body.
-</p>
-
-<h5 class='topic'>Classes of parameters on @RestMethod-annotated methods</h5>
-<p>
-       The <ja>@ResponseBody</ja> annotation can also be applied to types.
-</p>
-<p class='bpcode w800'>
-       <ja>@RestMethod</ja>(path=<js>"/pet/{petId}"</js>)
-       <jk>public void</jk> getPet(<ja>@Path</ja>(<js>"petId"</js>) 
<jk>int</jk> id, Value&lt;Pet&gt; body) {
-               body.set(<jsm>getPet</jsm>(id));
-       }
-</p>
-<p class='bpcode w800'>
-       <ja>@ResponseBody</ja>(
-               schema=<ja>@Schema</ja>(
-                       description=<js>"Pet bean"</js>
-               )
-       )
-       <jk>public class</jk> Pet {...}
-</p>
-<p>
-       Note that this can often be cleaner-looking than usage on the Java 
method parameter.
-</p>
-
-<h5 class='topic'>@RestMethod-annotated methods</h5>
-
-
diff --git 
a/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/09.HttpPartAnnotations/12.ResponseStatus.html
 
b/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/09.HttpPartAnnotations/11.ResponseStatus.html
similarity index 100%
rename from 
juneau-doc/src/main/resources/Topics/07.juneau-rest-server/09.HttpPartAnnotations/12.ResponseStatus.html
rename to 
juneau-doc/src/main/resources/Topics/07.juneau-rest-server/09.HttpPartAnnotations/11.ResponseStatus.html
diff --git 
a/juneau-microservice/juneau-microservice-test/src/main/java/org/apache/juneau/rest/test/client/ThirdPartyProxyResource.java
 
b/juneau-microservice/juneau-microservice-test/src/main/java/org/apache/juneau/rest/test/client/ThirdPartyProxyResource.java
index cffcea8..94cf876 100644
--- 
a/juneau-microservice/juneau-microservice-test/src/main/java/org/apache/juneau/rest/test/client/ThirdPartyProxyResource.java
+++ 
b/juneau-microservice/juneau-microservice-test/src/main/java/org/apache/juneau/rest/test/client/ThirdPartyProxyResource.java
@@ -1092,7 +1092,7 @@ public class ThirdPartyProxyResource extends 
BasicRestServletJena {
        }
 
        
//--------------------------------------------------------------------------------
-       // RequestBean tests
+       // @Request tests
        
//--------------------------------------------------------------------------------
 
        @RestMethod(name=POST, path="/reqBeanPath/{a}/{b}")
diff --git 
a/juneau-microservice/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/client/RequestBeanProxyTest.java
 
b/juneau-microservice/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/client/RequestBeanProxyTest.java
index effcb16..e558714 100644
--- 
a/juneau-microservice/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/client/RequestBeanProxyTest.java
+++ 
b/juneau-microservice/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/client/RequestBeanProxyTest.java
@@ -58,10 +58,10 @@ public class RequestBeanProxyTest {
        public static interface A01_Remoteable {
 
                @RemoteMethod(httpMethod="GET", path="/echoQuery")
-               String normal(@RequestBean A01_BeanImpl rb);
+               String normal(@Request A01_BeanImpl rb);
 
                @RemoteMethod(httpMethod="GET", path="/echoQuery")
-               String serialized(@RequestBean(serializer=XSerializer.class) 
A01_BeanImpl rb);
+               String serialized(@Request(partSerializer=XSerializer.class) 
A01_BeanImpl rb);
        }
 
        public static interface A01_BeanInterface {
@@ -110,10 +110,10 @@ public class RequestBeanProxyTest {
        public static interface A02_Remoteable {
 
                @RemoteMethod(httpMethod="GET", path="/echoQuery")
-               String normal(@RequestBean A02_Bean rb);
+               String normal(@Request A02_Bean rb);
 
                @RemoteMethod(httpMethod="GET", path="/echoQuery")
-               String serialized(@RequestBean(serializer=XSerializer.class) 
A02_Bean rb);
+               String serialized(@Request(partSerializer=XSerializer.class) 
A02_Bean rb);
        }
 
        public static class A02_Bean {
@@ -162,10 +162,10 @@ public class RequestBeanProxyTest {
        public static interface A03_Remoteable {
 
                @RemoteMethod(httpMethod="GET", path="/echoQuery")
-               String normal(@RequestBean A03_Bean rb);
+               String normal(@Request A03_Bean rb);
 
                @RemoteMethod(httpMethod="GET", path="/echoQuery")
-               String serialized(@RequestBean(serializer=XSerializer.class) 
A03_Bean rb);
+               String serialized(@Request(partSerializer=XSerializer.class) 
A03_Bean rb);
        }
 
        public static class A03_Bean {
@@ -213,7 +213,7 @@ public class RequestBeanProxyTest {
        @Remoteable(path="/")
        public static interface A04_Remoteable {
                @RemoteMethod(httpMethod="GET", path="/echoQuery")
-               String normal(@RequestBean A04_Bean rb);
+               String normal(@Request A04_Bean rb);
        }
 
        public static class A04_Bean {
@@ -238,7 +238,7 @@ public class RequestBeanProxyTest {
        @Remoteable(path="/")
        public static interface A05_Remoteable {
                @RemoteMethod(httpMethod="GET", path="/echoQuery")
-               String normal(@RequestBean A05_Bean rb);
+               String normal(@Request A05_Bean rb);
        }
 
        public static class A05_Bean {
@@ -264,10 +264,10 @@ public class RequestBeanProxyTest {
        public static interface A06_Remoteable {
 
                @RemoteMethod(httpMethod="GET", path="/echoQuery")
-               String normal(@RequestBean A06_Bean rb);
+               String normal(@Request A06_Bean rb);
 
                @RemoteMethod(httpMethod="GET", path="/echoQuery")
-               String serialized(@RequestBean(serializer=XSerializer.class) 
A06_Bean rb);
+               String serialized(@Request(partSerializer=XSerializer.class) 
A06_Bean rb);
        }
 
        public static class A06_Bean {
@@ -349,10 +349,10 @@ public class RequestBeanProxyTest {
        public static interface C01_Remoteable {
 
                @RemoteMethod(httpMethod="POST", path="/echoFormData")
-               String normal(@RequestBean C01_Bean rb);
+               String normal(@Request C01_Bean rb);
 
                @RemoteMethod(httpMethod="POST", path="/echoFormData")
-               String serialized(@RequestBean(serializer=XSerializer.class) 
C01_Bean rb);
+               String serialized(@Request(partSerializer=XSerializer.class) 
C01_Bean rb);
        }
 
        public static class C01_Bean {
@@ -418,10 +418,10 @@ public class RequestBeanProxyTest {
        public static interface C02_Remoteable {
 
                @RemoteMethod(httpMethod="POST", path="/echoFormData")
-               String normal(@RequestBean C02_Bean rb);
+               String normal(@Request C02_Bean rb);
 
                @RemoteMethod(httpMethod="POST", path="/echoFormData")
-               String serialized(@RequestBean(serializer=XSerializer.class) 
C02_Bean rb);
+               String serialized(@Request(partSerializer=XSerializer.class) 
C02_Bean rb);
        }
 
        public static class C02_Bean {
@@ -470,10 +470,10 @@ public class RequestBeanProxyTest {
        public static interface C03_Remoteable {
 
                @RemoteMethod(httpMethod="POST", path="/echoFormData")
-               String normal(@RequestBean C03_Bean rb);
+               String normal(@Request C03_Bean rb);
 
                @RemoteMethod(httpMethod="POST", path="/echoFormData")
-               String serialized(@RequestBean(serializer=XSerializer.class) 
C03_Bean rb);
+               String serialized(@Request(partSerializer=XSerializer.class) 
C03_Bean rb);
        }
 
        public static class C03_Bean {
@@ -521,7 +521,7 @@ public class RequestBeanProxyTest {
        @Remoteable(path="/")
        public static interface C04_Remoteable {
                @RemoteMethod(httpMethod="POST", path="/echoFormData")
-               String normal(@RequestBean C04_Bean rb);
+               String normal(@Request C04_Bean rb);
        }
 
        public static class C04_Bean {
@@ -546,7 +546,7 @@ public class RequestBeanProxyTest {
        @Remoteable(path="/")
        public static interface C05_Remoteable {
                @RemoteMethod(httpMethod="POST", path="/echoFormData")
-               String normal(@RequestBean C05_Bean rb);
+               String normal(@Request C05_Bean rb);
        }
 
        public static class C05_Bean {
@@ -572,10 +572,10 @@ public class RequestBeanProxyTest {
        public static interface C06_Remoteable {
 
                @RemoteMethod(httpMethod="POST", path="/echoFormData")
-               String normal(@RequestBean C06_Bean rb);
+               String normal(@Request C06_Bean rb);
 
                @RemoteMethod(httpMethod="POST", path="/echoFormData")
-               String serialized(@RequestBean(serializer=XSerializer.class) 
C06_Bean rb);
+               String serialized(@Request(partSerializer=XSerializer.class) 
C06_Bean rb);
        }
 
        public static class C06_Bean {
@@ -658,10 +658,10 @@ public class RequestBeanProxyTest {
        public static interface E01_Remoteable {
 
                @RemoteMethod(httpMethod="GET", path="/echoHeaders")
-               String normal(@RequestBean E01_Bean rb);
+               String normal(@Request E01_Bean rb);
 
                @RemoteMethod(httpMethod="GET", path="/echoHeaders")
-               String serialized(@RequestBean(serializer=XSerializer.class) 
E01_Bean rb);
+               String serialized(@Request(partSerializer=XSerializer.class) 
E01_Bean rb);
        }
 
        public static class E01_Bean {
@@ -727,10 +727,10 @@ public class RequestBeanProxyTest {
        public static interface E02_Remoteable {
 
                @RemoteMethod(httpMethod="GET", path="/echoHeaders")
-               String normal(@RequestBean E02_Bean rb);
+               String normal(@Request E02_Bean rb);
 
                @RemoteMethod(httpMethod="GET", path="/echoHeaders")
-               String serialized(@RequestBean(serializer=XSerializer.class) 
E02_Bean rb);
+               String serialized(@Request(partSerializer=XSerializer.class) 
E02_Bean rb);
        }
 
        public static class E02_Bean {
@@ -779,10 +779,10 @@ public class RequestBeanProxyTest {
        public static interface E03_Remoteable {
 
                @RemoteMethod(httpMethod="GET", path="/echoHeaders")
-               String normal(@RequestBean E03_Bean rb);
+               String normal(@Request E03_Bean rb);
 
                @RemoteMethod(httpMethod="GET", path="/echoHeaders")
-               String serialized(@RequestBean(serializer=XSerializer.class) 
E03_Bean rb);
+               String serialized(@Request(partSerializer=XSerializer.class) 
E03_Bean rb);
        }
 
        public static class E03_Bean {
@@ -831,10 +831,10 @@ public class RequestBeanProxyTest {
        public static interface E04_Remoteable {
 
                @RemoteMethod(httpMethod="GET", path="/echoHeaders")
-               String normal(@RequestBean E04_Bean rb);
+               String normal(@Request E04_Bean rb);
 
                @RemoteMethod(httpMethod="GET", path="/echoHeaders")
-               String serialized(@RequestBean(serializer=XSerializer.class) 
E04_Bean rb);
+               String serialized(@Request(partSerializer=XSerializer.class) 
E04_Bean rb);
        }
 
        public static class E04_Bean {
@@ -916,10 +916,10 @@ public class RequestBeanProxyTest {
        public static interface G01_Remoteable {
 
                @RemoteMethod(httpMethod="GET", 
path="/echoPath/{a}/{b}/{c}/{d}/{e}/{f}/{g}/{h}")
-               String normal(@RequestBean G01_Bean rb);
+               String normal(@Request G01_Bean rb);
 
                @RemoteMethod(httpMethod="GET", 
path="/echoPath/{a}/{b}/{c}/{d}/{e}/{f}/{g}/{h}")
-               String serialized(@RequestBean(serializer=XSerializer.class) 
G01_Bean rb);
+               String serialized(@Request(partSerializer=XSerializer.class) 
G01_Bean rb);
        }
 
        public static class G01_Bean {
@@ -985,10 +985,10 @@ public class RequestBeanProxyTest {
        public static interface G02_Remoteable {
 
                @RemoteMethod(httpMethod="GET", 
path="/echoPath/{a1}/{a2}/{a3}/{a4}/{b1}/{b2}/{b3}/{c1}/{c2}/{c3}/{c4}")
-               String normal(@RequestBean G02_Bean rb);
+               String normal(@Request G02_Bean rb);
 
                @RemoteMethod(httpMethod="GET", 
path="/echoPath/{a1}/{a2}/{a3}/{a4}/{b1}/{b2}/{b3}/{c1}/{c2}/{c3}/{c4}")
-               String serialized(@RequestBean(serializer=XSerializer.class) 
G02_Bean rb);
+               String serialized(@Request(partSerializer=XSerializer.class) 
G02_Bean rb);
        }
 
        public static class G02_Bean {
@@ -1037,10 +1037,10 @@ public class RequestBeanProxyTest {
        public static interface G03_Remoteable {
 
                @RemoteMethod(httpMethod="GET", 
path="/echoPath/{a1}/{a2}/{a3}/{a4}/{b1}/{b2}/{b3}/{c1}/{c2}/{c3}/{c4}")
-               String normal(@RequestBean G03_Bean rb);
+               String normal(@Request G03_Bean rb);
 
                @RemoteMethod(httpMethod="GET", 
path="/echoPath/{a1}/{a2}/{a3}/{a4}/{b1}/{b2}/{b3}/{c1}/{c2}/{c3}/{c4}")
-               String serialized(@RequestBean(serializer=XSerializer.class) 
G03_Bean rb);
+               String serialized(@Request(partSerializer=XSerializer.class) 
G03_Bean rb);
        }
 
        public static class G03_Bean {
@@ -1089,10 +1089,10 @@ public class RequestBeanProxyTest {
        public static interface G04_Remoteable {
 
                @RemoteMethod(httpMethod="GET", 
path="/echoPath/{a}/{b}/{c}/{d}/{e}/{f}/{g}/{h}/{i}")
-               String normal(@RequestBean G04_Bean rb);
+               String normal(@Request G04_Bean rb);
 
                @RemoteMethod(httpMethod="GET", 
path="/echoPath/{a}/{b}/{c}/{d}/{e}/{f}/{g}/{h}/{i}")
-               String serialized(@RequestBean(serializer=XSerializer.class) 
G04_Bean rb);
+               String serialized(@Request(partSerializer=XSerializer.class) 
G04_Bean rb);
        }
 
        public static class G04_Bean {
diff --git 
a/juneau-microservice/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/client/ThirdPartyProxyTest.java
 
b/juneau-microservice/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/client/ThirdPartyProxyTest.java
index f2c52c6..d059748 100644
--- 
a/juneau-microservice/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/client/ThirdPartyProxyTest.java
+++ 
b/juneau-microservice/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/client/ThirdPartyProxyTest.java
@@ -23,6 +23,7 @@ import java.util.concurrent.atomic.*;
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.html.*;
 import org.apache.juneau.http.annotation.*;
+import org.apache.juneau.http.annotation.Request;
 import org.apache.juneau.httppart.*;
 import org.apache.juneau.jena.*;
 import org.apache.juneau.json.*;
@@ -1207,7 +1208,7 @@ public class ThirdPartyProxyTest extends RestTestcase {
        }
 
        
//--------------------------------------------------------------------------------
-       // RequestBean tests - Path
+       // @Request tests - Path
        
//--------------------------------------------------------------------------------
 
        @Test
@@ -1322,7 +1323,7 @@ public class ThirdPartyProxyTest extends RestTestcase {
        }
 
        
//--------------------------------------------------------------------------------
-       // RequestBean tests - Query
+       // @Request tests - Query
        
//--------------------------------------------------------------------------------
 
        @Test
@@ -1437,7 +1438,7 @@ public class ThirdPartyProxyTest extends RestTestcase {
        }
 
        
//--------------------------------------------------------------------------------
-       // RequestBean tests - FormData
+       // @Request tests - FormData
        
//--------------------------------------------------------------------------------
 
        @Test
@@ -1552,7 +1553,7 @@ public class ThirdPartyProxyTest extends RestTestcase {
        }
 
        
//--------------------------------------------------------------------------------
-       // RequestBean tests - Header
+       // @Request tests - Header
        
//--------------------------------------------------------------------------------
 
        @Test
@@ -2057,12 +2058,12 @@ public class ThirdPartyProxyTest extends RestTestcase {
                );
 
                
//--------------------------------------------------------------------------------
-               // RequestBean tests - Path
+               // @Request tests - Path
                
//--------------------------------------------------------------------------------
 
                @RemoteMethod(httpMethod="POST", path="/reqBeanPath/{a}/{b}")
                String reqBeanPath1(
-                       @RequestBean ReqBeanPath1 rb
+                       @Request ReqBeanPath1 rb
                );
 
                public static interface ReqBeanPath1 {
@@ -2087,7 +2088,7 @@ public class ThirdPartyProxyTest extends RestTestcase {
 
                @RemoteMethod(httpMethod="POST", path="/reqBeanPath/{a}/{b}")
                String reqBeanPath2(
-                       @RequestBean ReqBeanPath2 rb
+                       @Request ReqBeanPath2 rb
                );
 
                public static class ReqBeanPath2 {
@@ -2104,7 +2105,7 @@ public class ThirdPartyProxyTest extends RestTestcase {
 
                @RemoteMethod(httpMethod="POST", path="/reqBeanPath/{a}/{b}")
                String reqBeanPath3(
-                       @RequestBean ReqBeanPath3 rb
+                       @Request ReqBeanPath3 rb
                );
 
                public static interface ReqBeanPath3 {
@@ -2117,7 +2118,7 @@ public class ThirdPartyProxyTest extends RestTestcase {
 
                @RemoteMethod(httpMethod="POST", path="/reqBeanPath/{a}/{b}")
                String reqBeanPath4(
-                       @RequestBean ReqBeanPath4 rb
+                       @Request ReqBeanPath4 rb
                );
 
                public static interface ReqBeanPath4 {
@@ -2132,7 +2133,7 @@ public class ThirdPartyProxyTest extends RestTestcase {
 
                @RemoteMethod(httpMethod="POST", path="/reqBeanPath/{a}/{b}")
                String reqBeanPath5(
-                       @RequestBean ReqBeanPath5 rb
+                       @Request ReqBeanPath5 rb
                );
 
                public static interface ReqBeanPath5 {
@@ -2147,7 +2148,7 @@ public class ThirdPartyProxyTest extends RestTestcase {
 
                @RemoteMethod(httpMethod="POST", path="/reqBeanPath/{a}/{b}")
                String reqBeanPath6(
-                       @RequestBean ReqBeanPath6 rb
+                       @Request ReqBeanPath6 rb
                );
 
                public static interface ReqBeanPath6 {
@@ -2157,7 +2158,7 @@ public class ThirdPartyProxyTest extends RestTestcase {
 
                @RemoteMethod(httpMethod="POST", path="/reqBeanPath/{a}/{b}")
                String reqBeanPath7(
-                       @RequestBean ReqBeanPath7 rb
+                       @Request ReqBeanPath7 rb
                );
 
                public static interface ReqBeanPath7 {
@@ -2166,12 +2167,12 @@ public class ThirdPartyProxyTest extends RestTestcase {
                }
 
                
//--------------------------------------------------------------------------------
-               // RequestBean tests - Query
+               // @Request tests - Query
                
//--------------------------------------------------------------------------------
 
                @RemoteMethod(httpMethod="POST", path="/reqBeanQuery")
                String reqBeanQuery1(
-                       @RequestBean ReqBeanQuery1 rb
+                       @Request ReqBeanQuery1 rb
                );
 
                public static interface ReqBeanQuery1 {
@@ -2196,7 +2197,7 @@ public class ThirdPartyProxyTest extends RestTestcase {
 
                @RemoteMethod(httpMethod="POST", path="/reqBeanQuery")
                String reqBeanQuery2(
-                       @RequestBean ReqBeanQuery2 rb
+                       @Request ReqBeanQuery2 rb
                );
 
                public static class ReqBeanQuery2 {
@@ -2213,7 +2214,7 @@ public class ThirdPartyProxyTest extends RestTestcase {
 
                @RemoteMethod(httpMethod="POST", path="/reqBeanQuery")
                String reqBeanQuery3(
-                       @RequestBean ReqBeanQuery3 rb
+                       @Request ReqBeanQuery3 rb
                );
 
                public static interface ReqBeanQuery3 {
@@ -2226,7 +2227,7 @@ public class ThirdPartyProxyTest extends RestTestcase {
 
                @RemoteMethod(httpMethod="POST", path="/reqBeanQuery")
                String reqBeanQuery4(
-                       @RequestBean ReqBeanQuery4 rb
+                       @Request ReqBeanQuery4 rb
                );
 
                public static interface ReqBeanQuery4 {
@@ -2241,7 +2242,7 @@ public class ThirdPartyProxyTest extends RestTestcase {
 
                @RemoteMethod(httpMethod="POST", path="/reqBeanQuery")
                String reqBeanQuery5(
-                       @RequestBean ReqBeanQuery5 rb
+                       @Request ReqBeanQuery5 rb
                );
 
                public static interface ReqBeanQuery5 {
@@ -2256,7 +2257,7 @@ public class ThirdPartyProxyTest extends RestTestcase {
 
                @RemoteMethod(httpMethod="POST", path="/reqBeanQuery")
                String reqBeanQuery6(
-                       @RequestBean ReqBeanQuery6 rb
+                       @Request ReqBeanQuery6 rb
                );
 
                public static interface ReqBeanQuery6 {
@@ -2266,7 +2267,7 @@ public class ThirdPartyProxyTest extends RestTestcase {
 
                @RemoteMethod(httpMethod="POST", path="/reqBeanQuery")
                String reqBeanQuery7(
-                       @RequestBean ReqBeanQuery7 rb
+                       @Request ReqBeanQuery7 rb
                );
 
                public static interface ReqBeanQuery7 {
@@ -2275,12 +2276,12 @@ public class ThirdPartyProxyTest extends RestTestcase {
                }
 
                
//--------------------------------------------------------------------------------
-               // RequestBean tests - FormData
+               // @Request tests - FormData
                
//--------------------------------------------------------------------------------
 
                @RemoteMethod(httpMethod="POST", path="/reqBeanFormData")
                String reqBeanFormData1(
-                       @RequestBean ReqBeanFormData1 rb
+                       @Request ReqBeanFormData1 rb
                );
 
                public static interface ReqBeanFormData1 {
@@ -2305,7 +2306,7 @@ public class ThirdPartyProxyTest extends RestTestcase {
 
                @RemoteMethod(httpMethod="POST", path="/reqBeanFormData")
                String reqBeanFormData2(
-                       @RequestBean ReqBeanFormData2 rb
+                       @Request ReqBeanFormData2 rb
                );
 
                public static class ReqBeanFormData2 {
@@ -2322,7 +2323,7 @@ public class ThirdPartyProxyTest extends RestTestcase {
 
                @RemoteMethod(httpMethod="POST", path="/reqBeanFormData")
                String reqBeanFormData3(
-                       @RequestBean ReqBeanFormData3 rb
+                       @Request ReqBeanFormData3 rb
                );
 
                public static interface ReqBeanFormData3 {
@@ -2335,7 +2336,7 @@ public class ThirdPartyProxyTest extends RestTestcase {
 
                @RemoteMethod(httpMethod="POST", path="/reqBeanFormData")
                String reqBeanFormData4(
-                       @RequestBean ReqBeanFormData4 rb
+                       @Request ReqBeanFormData4 rb
                );
 
                public static interface ReqBeanFormData4 {
@@ -2350,7 +2351,7 @@ public class ThirdPartyProxyTest extends RestTestcase {
 
                @RemoteMethod(httpMethod="POST", path="/reqBeanFormData")
                String reqBeanFormData5(
-                       @RequestBean ReqBeanFormData5 rb
+                       @Request ReqBeanFormData5 rb
                );
 
                public static interface ReqBeanFormData5 {
@@ -2365,7 +2366,7 @@ public class ThirdPartyProxyTest extends RestTestcase {
 
                @RemoteMethod(httpMethod="POST", path="/reqBeanFormData")
                String reqBeanFormData6(
-                       @RequestBean ReqBeanFormData6 rb
+                       @Request ReqBeanFormData6 rb
                );
 
                public static interface ReqBeanFormData6 {
@@ -2375,7 +2376,7 @@ public class ThirdPartyProxyTest extends RestTestcase {
 
                @RemoteMethod(httpMethod="POST", path="/reqBeanFormData")
                String reqBeanFormData7(
-                       @RequestBean ReqBeanFormData7 rb
+                       @Request ReqBeanFormData7 rb
                );
 
                public static interface ReqBeanFormData7 {
@@ -2384,12 +2385,12 @@ public class ThirdPartyProxyTest extends RestTestcase {
                }
 
                
//--------------------------------------------------------------------------------
-               // RequestBean tests - Header
+               // @Request tests - Header
                
//--------------------------------------------------------------------------------
 
                @RemoteMethod(httpMethod="POST", path="/reqBeanHeader")
                String reqBeanHeader1(
-                       @RequestBean ReqBeanHeader1 rb
+                       @Request ReqBeanHeader1 rb
                );
 
                public static interface ReqBeanHeader1 {
@@ -2414,7 +2415,7 @@ public class ThirdPartyProxyTest extends RestTestcase {
 
                @RemoteMethod(httpMethod="POST", path="/reqBeanHeader")
                String reqBeanHeader2(
-                       @RequestBean ReqBeanHeader2 rb
+                       @Request ReqBeanHeader2 rb
                );
 
                public static class ReqBeanHeader2 {
@@ -2431,7 +2432,7 @@ public class ThirdPartyProxyTest extends RestTestcase {
 
                @RemoteMethod(httpMethod="POST", path="/reqBeanHeader")
                String reqBeanHeader3(
-                       @RequestBean ReqBeanHeader3 rb
+                       @Request ReqBeanHeader3 rb
                );
 
                public static interface ReqBeanHeader3 {
@@ -2444,7 +2445,7 @@ public class ThirdPartyProxyTest extends RestTestcase {
 
                @RemoteMethod(httpMethod="POST", path="/reqBeanHeader")
                String reqBeanHeader4(
-                       @RequestBean ReqBeanHeader4 rb
+                       @Request ReqBeanHeader4 rb
                );
 
                public static interface ReqBeanHeader4 {
@@ -2459,7 +2460,7 @@ public class ThirdPartyProxyTest extends RestTestcase {
 
                @RemoteMethod(httpMethod="POST", path="/reqBeanHeader")
                String reqBeanHeader5(
-                       @RequestBean ReqBeanHeader5 rb
+                       @Request ReqBeanHeader5 rb
                );
 
                public static interface ReqBeanHeader5 {
@@ -2474,7 +2475,7 @@ public class ThirdPartyProxyTest extends RestTestcase {
 
                @RemoteMethod(httpMethod="POST", path="/reqBeanHeader")
                String reqBeanHeader6(
-                       @RequestBean ReqBeanHeader6 rb
+                       @Request ReqBeanHeader6 rb
                );
 
                public static interface ReqBeanHeader6 {
@@ -2484,7 +2485,7 @@ public class ThirdPartyProxyTest extends RestTestcase {
 
                @RemoteMethod(httpMethod="POST", path="/reqBeanHeader")
                String reqBeanHeader7(
-                       @RequestBean ReqBeanHeader7 rb
+                       @Request ReqBeanHeader7 rb
                );
 
                public static interface ReqBeanHeader7 {
diff --git 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
index 35a494c..2fc0c7a 100644
--- 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
+++ 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
@@ -1072,9 +1072,9 @@ public class RestClient extends BeanContext implements 
Closeable {
                                                        if (ba != null)
                                                                
rc.body(args[ba.getIndex()], ba.getSerializer(null), ba.getSchema());
 
-                                                       if 
(rmm.getRequestBeanArgs().length > 0) {
+                                                       if 
(rmm.getRequestArgs().length > 0) {
                                                                BeanSession bs 
= createBeanSession();
-                                                               for 
(RemoteMethodBeanArg rmba : rmm.getRequestBeanArgs()) {
+                                                               for 
(RemoteMethodBeanArg rmba : rmm.getRequestArgs()) {
                                                                        
BeanMap<?> bm = bs.toBeanMap(args[rmba.getIndex()]);
 
                                                                        for 
(BeanPropertyValue bpv : bm.getValues(false)) {
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
index 225e509..303dc5a 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
@@ -4320,8 +4320,8 @@ public final class RestContext extends BeanContext {
                                rp[i] = new 
RestParamDefaults.PathObject(method, i, ps);
                        } else if (hasAnnotation(Body.class, method, i)) {
                                rp[i] = new 
RestParamDefaults.BodyObject(method, i, ps);
-                       } else if (hasAnnotation(RequestBean.class, method, i)) 
{
-                               rp[i] = new 
RestParamDefaults.RequestBeanObject(method, i, ps);
+                       } else if (hasAnnotation(Request.class, method, i)) {
+                               rp[i] = new 
RestParamDefaults.RequestObject(method, i, ps);
                        } else if (hasAnnotation(Response.class, method, i)) {
                                rp[i] = new 
RestParamDefaults.ResponseObject(method, i, ps);
                        } else if (hasAnnotation(ResponseHeader.class, method, 
i)) {
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestParamDefaults.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestParamDefaults.java
index 3805c7d..4a503db 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestParamDefaults.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestParamDefaults.java
@@ -251,17 +251,17 @@ class RestParamDefaults {
                }
        }
 
-       static final class RequestBeanObject extends RestMethodParam {
+       static final class RequestObject extends RestMethodParam {
                private final RequestBeanMeta meta;
 
-               protected RequestBeanObject(Method m, int i, PropertyStore ps) {
+               protected RequestObject(Method m, int i, PropertyStore ps) {
                        super(RESPONSE_BODY, m, i);
                        this.meta = RequestBeanMeta.create(method, i, ps);
                }
 
                @Override /* RestMethodParam */
                public Object resolve(RestRequest req, RestResponse res) throws 
Exception {
-                       return req.getRequestBean(meta);
+                       return req.getRequest(meta);
                }
        }
 
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
index 8e97171..4c21966 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
@@ -1415,9 +1415,9 @@ public final class RestRequest extends 
HttpServletRequestWrapper {
         * <h5 class='section'>Examples:</h5>
         * <p class='bcode w800'>
         *      <ja>@RestMethod</ja>(path=<js>"/mypath/{p1}/{p2}/*"</js>)
-        *      <jk>public void</jk> myMethod(@RequestBean MyRequestBean rb) 
{...}
+        *      <jk>public void</jk> myMethod(@Request MyRequest rb) {...}
         *
-        *      <jk>public interface</jk> MyRequestBean {
+        *      <jk>public interface</jk> MyRequest {
         *
         *              <ja>@Path</ja> <jc>// Path variable name inferred from 
getter.</jc>
         *              String getP1();
@@ -1431,10 +1431,6 @@ public final class RestRequest extends 
HttpServletRequestWrapper {
         *              <ja>@Query</ja>
         *              String getQ1();
         *
-        *              <ja>@Query</ja>
-        *              <ja>@BeanProperty</ja>(name=<js>"q2"</js>)
-        *              String getQuery2();
-        *
         *              <jc>// Schema-based query parameter:  Pipe-delimited 
lists of comma-delimited lists of integers.</jc>
         *              <ja>@Query</ja>(
         *                      collectionFormat=<js>"pipes"</js>
@@ -1454,19 +1450,19 @@ public final class RestRequest extends 
HttpServletRequestWrapper {
         * @param c The request bean interface to instantiate.
         * @return A new request bean proxy for this REST request.
         */
-       public <T> T getRequestBean(Class<T> c) {
-               return getRequestBean(RequestBeanMeta.create(c, 
getContext().getPropertyStore()));
+       public <T> T getRequest(Class<T> c) {
+               return getRequest(RequestBeanMeta.create(c, 
getContext().getPropertyStore()));
        }
 
        /**
-        * Same as {@link #getRequestBean(Class)} but used on pre-instantiated 
{@link RequestBeanMeta} objects.
+        * Same as {@link #getRequest(Class)} but used on pre-instantiated 
{@link RequestBeanMeta} objects.
         *
-        * @param requestBeanMeta The metadata about the request bean interface 
to create.
+        * @param rbm The metadata about the request bean interface to create.
         * @return A new request bean proxy for this REST request.
         */
-       public <T> T getRequestBean(final RequestBeanMeta requestBeanMeta) {
+       public <T> T getRequest(final RequestBeanMeta rbm) {
                try {
-                       Class<T> c = 
(Class<T>)requestBeanMeta.getClassMeta().getInnerClass();
+                       Class<T> c = 
(Class<T>)rbm.getClassMeta().getInnerClass();
                        final BeanMeta<T> bm = getBeanSession().getBeanMeta(c);
                        return (T)Proxy.newProxyInstance(
                                c.getClassLoader(),
@@ -1474,7 +1470,7 @@ public final class RestRequest extends 
HttpServletRequestWrapper {
                                new InvocationHandler() {
                                        @Override /* InvocationHandler */
                                        public Object invoke(Object proxy, 
Method method, Object[] args) throws Throwable {
-                                               RequestBeanPropertyMeta pm = 
requestBeanMeta.getPropertyByGetter(method.getName());
+                                               RequestBeanPropertyMeta pm = 
rbm.getPropertyByGetter(method.getName());
                                                if (pm != null) {
                                                        HttpPartParser pp = 
pm.getParser(getPartParser());
                                                        HttpPartSchema schema = 
pm.getSchema();
@@ -1603,7 +1599,7 @@ public final class RestRequest extends 
HttpServletRequestWrapper {
         * Returns metadata about the specified response object if it's 
annotated with {@link Response @Response}.
         *
         * @param o The response POJO.
-        * @return Metadata about the specified response object, or 
<jk>null</jk> if it's not annotated with {@link Response @Response}. 
+        * @return Metadata about the specified response object, or 
<jk>null</jk> if it's not annotated with {@link Response @Response}.
         */
        public ResponseBeanMeta getResponseBeanMeta(Object o) {
                return restJavaMethod.getResponseBeanMeta(o);
@@ -1613,7 +1609,7 @@ public final class RestRequest extends 
HttpServletRequestWrapper {
         * Returns metadata about the specified response object if it's 
annotated with {@link ResponseHeader @ResponseHeader}.
         *
         * @param o The response POJO.
-        * @return Metadata about the specified response object, or 
<jk>null</jk> if it's not annotated with {@link ResponseHeader 
@ResponseHeader}. 
+        * @return Metadata about the specified response object, or 
<jk>null</jk> if it's not annotated with {@link ResponseHeader @ResponseHeader}.
         */
        public ResponsePartMeta getResponseHeaderMeta(Object o) {
                return restJavaMethod.getResponseHeaderMeta(o);
@@ -1623,7 +1619,7 @@ public final class RestRequest extends 
HttpServletRequestWrapper {
         * Returns metadata about the specified response object if it's 
annotated with {@link ResponseBody @ResponseBody}.
         *
         * @param o The response POJO.
-        * @return Metadata about the specified response object, or 
<jk>null</jk> if it's not annotated with {@link ResponseBody @ResponseBody}. 
+        * @return Metadata about the specified response object, or 
<jk>null</jk> if it's not annotated with {@link ResponseBody @ResponseBody}.
         */
        public ResponsePartMeta getResponseBodyMeta(Object o) {
                return restJavaMethod.getResponseBodyMeta(o);

Reply via email to