You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2021/11/07 23:10:43 UTC
[juneau] branch master updated: Javadocs and RequestBody API
improvements.
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 d085bd9 Javadocs and RequestBody API improvements.
d085bd9 is described below
commit d085bd9a8bd44bd291a7a63bfc219992aec7a391
Author: JamesBognar <ja...@salesforce.com>
AuthorDate: Sun Nov 7 18:10:18 2021 -0500
Javadocs and RequestBody API improvements.
---
.../04.RestLifecycleHooks.html | 33 ++---
.../03.RestOpAnnotatedMethods.html | 6 +
.../01.RestmRequestBody.html | 53 --------
...estHeaders.html => 01.RestmRequestHeaders.html} | 0
...ributes.html => 02.RestmRequestAttributes.html} | 0
...RequestQuery.html => 03.RestmRequestQuery.html} | 0
...tFormData.html => 04.RestmRequestFormData.html} | 0
...athMatch.html => 05.RestmRequestPathMatch.html} | 0
...erResource.html => 06.RestmReaderResource.html} | 0
...amResource.html => 07.RestmStreamResource.html} | 0
...09.RestmMatchers.html => 08.RestmMatchers.html} | 0
...onses.html => 09.RestmPredefinedResponses.html} | 0
...ans.html => 10.RestmPredefinedHelperBeans.html} | 0
juneau-doc/src/main/javadoc/overview.html | 142 ++++++++-------------
juneau-doc/src/main/javadoc/resources/docs.txt | 1 -
.../src/main/javadoc/resources/fragments/toc.html | 3 -
.../java/org/apache/juneau/rest/RequestBody.java | 103 ++++++++-------
.../java/org/apache/juneau/rest/RestRequest.java | 4 +-
.../java/org/apache/juneau/rest/RestResponse.java | 2 +-
.../org/apache/juneau/rest/RrpcRestOpSession.java | 2 +-
.../java/org/apache/juneau/rest/args/BodyArg.java | 4 +-
.../juneau/rest/args/InputStreamParserArg.java | 5 +-
.../org/apache/juneau/rest/args/ParserArg.java | 5 +-
.../apache/juneau/rest/args/ReaderParserArg.java | 5 +-
.../apache/juneau/rest/converters/Traversable.java | 4 +-
25 files changed, 152 insertions(+), 220 deletions(-)
diff --git a/juneau-doc/docs/Topics/06.juneau-rest-server/02.RestAnnotatedClasses/04.RestLifecycleHooks.html b/juneau-doc/docs/Topics/06.juneau-rest-server/02.RestAnnotatedClasses/04.RestLifecycleHooks.html
index 7e82100..29c3b3a 100644
--- a/juneau-doc/docs/Topics/06.juneau-rest-server/02.RestAnnotatedClasses/04.RestLifecycleHooks.html
+++ b/juneau-doc/docs/Topics/06.juneau-rest-server/02.RestAnnotatedClasses/04.RestLifecycleHooks.html
@@ -51,21 +51,24 @@
<p>
The hook events can be broken down into two categories:
</p>
-<ul class='spaced-list'>
- <li>Resource lifecycle events:
- <ul class='javatree'>
- <li class='jf'>{@link oajr.annotation.HookEvent#INIT INIT} - Right before initialization.
- <li class='jf'>{@link oajr.annotation.HookEvent#POST_INIT POST_INIT} - Right after initialization.
- <li class='jf'>{@link oajr.annotation.HookEvent#POST_INIT_CHILD_FIRST POST_INIT_CHILD_FIRST} - Right after initialization, but run child methods first.
- <li class='jf'>{@link oajr.annotation.HookEvent#DESTROY DESTROY} - Right before servlet destroy.
- </ul>
- <li>REST call lifecycle events:
- <ul class='javatree'>
- <li class='jf'>{@link oajr.annotation.HookEvent#START_CALL START_CALL} - At the beginning of a REST call.
- <li class='jf'>{@link oajr.annotation.HookEvent#PRE_CALL PRE_CALL} - Right before the <ja>@RestOp</ja> method is invoked.
- <li class='jf'>{@link oajr.annotation.HookEvent#POST_CALL POST_CALL} - Right after the <ja>@RestOp</ja> method is invoked.
- <li class='jf'>{@link oajr.annotation.HookEvent#END_CALL END_CALL} - At the end of the REST call after the response has been flushed.
- </ul>
+<ul class='javatree'>
+ <li class='je'>{@link oajr.annotation.HookEvent}
+ <ul class='spaced-list'>
+ <li>Resource lifecycle events:
+ <ul class='javatree'>
+ <li class='jf'>{@link oajr.annotation.HookEvent#INIT INIT} - Right before initialization.
+ <li class='jf'>{@link oajr.annotation.HookEvent#POST_INIT POST_INIT} - Right after initialization.
+ <li class='jf'>{@link oajr.annotation.HookEvent#POST_INIT_CHILD_FIRST POST_INIT_CHILD_FIRST} - Right after initialization, but run child methods first.
+ <li class='jf'>{@link oajr.annotation.HookEvent#DESTROY DESTROY} - Right before servlet destroy.
+ </ul>
+ <li>REST call lifecycle events:
+ <ul class='javatree'>
+ <li class='jf'>{@link oajr.annotation.HookEvent#START_CALL START_CALL} - At the beginning of a REST call.
+ <li class='jf'>{@link oajr.annotation.HookEvent#PRE_CALL PRE_CALL} - Right before the <ja>@RestOp</ja> method is invoked.
+ <li class='jf'>{@link oajr.annotation.HookEvent#POST_CALL POST_CALL} - Right after the <ja>@RestOp</ja> method is invoked.
+ <li class='jf'>{@link oajr.annotation.HookEvent#END_CALL END_CALL} - At the end of the REST call after the response has been flushed.
+ </ul>
+ </ul>
</ul>
<ul class='seealso'>
diff --git a/juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods.html b/juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods.html
index f91af3c..af505c1 100644
--- a/juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods.html
+++ b/juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods.html
@@ -610,4 +610,10 @@
<ul class='seealso'>
<li class='jc'>{@link oajr.RestRequest}
<li class='jc'>{@link oajr.RestResponse}
+ <li class='jc'>{@link oajr.RequestBody}
+ <li class='jc'>{@link oajr.RequestHeaders}
+ <li class='jc'>{@link oajr.RequestQueryParams}
+ <li class='jc'>{@link oajr.RequestFormParams}
+ <li class='jc'>{@link oajr.RequestPathParams}
+ <li class='jc'>{@link oajr.RequestAttributes}
</ul>
diff --git a/juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/01.RestmRequestBody.html b/juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/01.RestmRequestBody.html
deleted file mode 100644
index deb1a54..0000000
--- a/juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/01.RestmRequestBody.html
+++ /dev/null
@@ -1,53 +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.
- ***************************************************************************************************************************/
- -->
-
-{title:'RequestBody', flags:'todo'}
-
-<p>
- The {@link oajr.RequestBody} object is the API for accessing the body of an HTTP request.
- It can be accessed by passing it as a parameter on your REST Java method:
-</p>
-<p class='bpcode w800'>
- <ja>@RestPost</ja>(...)
- <jk>public</jk> Object myMethod(RequestBody <jv>body</jv>) {...}
-</p>
-<h5 class='figure'>Example:</h5>
-<p class='bpcode w800'>
- <ja>@RestPost</ja>(...)
- <jk>public void</jk> doPost(RequestBody <jv>body</jv>) {
- <jc>// Convert body to a linked list of Person objects.</jc>
- List<Person> <jv>list</jv> = <jv>body</jv>.asType(LinkedList.<jk>class</jk>, Person.<jk>class</jk>);
- ...
- }
-</p>
-<p>
- Some important methods on this class are:
-</p>
-<ul class='javatree'>
- <li class='jc'>{@link oajr.RequestBody}
- <ul>
- <li class='jm'>{@link oajr.RequestBody#getReader() getReader()} - Get body as a Reader.
- <li class='jm'>{@link oajr.RequestBody#getInputStream() getInputStream()} - Get body as an InputStream.
- <li class='jm'>{@link oajr.RequestBody#asType(Class) asType(Class)} - Get body converted to a POJO.
- <li class='jm'>{@link oajr.RequestBody#asType(Type,Type...) asType(Type,Type...)} - Get body converted to a map or collection of POJOs.
- <li class='jm'>{@link oajr.RequestBody#asString() asString()} - Get body as a simple string.
- <li class='jm'>{@link oajr.RequestBody#asHex() asHex()} - Get body as a hex-encoded string.
- <li class='jm'>{@link oajr.RequestBody#asSpacedHex() asSpacedHex()} - Get body as spaced-hex-encoded string.
- </ul>
-</ul>
-
-<ul class='seealso'>
- <li class='ja'>{@link oaj.http.annotation.Body}
-</ul>
diff --git a/juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/02.RestmRequestHeaders.html b/juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/01.RestmRequestHeaders.html
similarity index 100%
rename from juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/02.RestmRequestHeaders.html
rename to juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/01.RestmRequestHeaders.html
diff --git a/juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/03.RestmRequestAttributes.html b/juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/02.RestmRequestAttributes.html
similarity index 100%
rename from juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/03.RestmRequestAttributes.html
rename to juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/02.RestmRequestAttributes.html
diff --git a/juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/04.RestmRequestQuery.html b/juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/03.RestmRequestQuery.html
similarity index 100%
rename from juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/04.RestmRequestQuery.html
rename to juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/03.RestmRequestQuery.html
diff --git a/juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/05.RestmRequestFormData.html b/juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/04.RestmRequestFormData.html
similarity index 100%
rename from juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/05.RestmRequestFormData.html
rename to juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/04.RestmRequestFormData.html
diff --git a/juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/06.RestmRequestPathMatch.html b/juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/05.RestmRequestPathMatch.html
similarity index 100%
rename from juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/06.RestmRequestPathMatch.html
rename to juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/05.RestmRequestPathMatch.html
diff --git a/juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/07.RestmReaderResource.html b/juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/06.RestmReaderResource.html
similarity index 100%
rename from juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/07.RestmReaderResource.html
rename to juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/06.RestmReaderResource.html
diff --git a/juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/08.RestmStreamResource.html b/juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/07.RestmStreamResource.html
similarity index 100%
rename from juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/08.RestmStreamResource.html
rename to juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/07.RestmStreamResource.html
diff --git a/juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/09.RestmMatchers.html b/juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/08.RestmMatchers.html
similarity index 100%
rename from juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/09.RestmMatchers.html
rename to juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/08.RestmMatchers.html
diff --git a/juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/10.RestmPredefinedResponses.html b/juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/09.RestmPredefinedResponses.html
similarity index 100%
rename from juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/10.RestmPredefinedResponses.html
rename to juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/09.RestmPredefinedResponses.html
diff --git a/juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/11.RestmPredefinedHelperBeans.html b/juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/10.RestmPredefinedHelperBeans.html
similarity index 100%
rename from juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/11.RestmPredefinedHelperBeans.html
rename to juneau-doc/docs/Topics/06.juneau-rest-server/03.RestOpAnnotatedMethods/10.RestmPredefinedHelperBeans.html
diff --git a/juneau-doc/src/main/javadoc/overview.html b/juneau-doc/src/main/javadoc/overview.html
index 1237842..4b44c82 100644
--- a/juneau-doc/src/main/javadoc/overview.html
+++ b/juneau-doc/src/main/javadoc/overview.html
@@ -349,7 +349,6 @@
</ol>
<li><p><a class='doclink' href='#juneau-rest-server.RestOpAnnotatedMethods'>@RestOp-Annotated Methods</a><span class='update'>updated: <b>9.0.0</b></span></p>
<ol>
- <li><p><a class='doclink' href='#juneau-rest-server.RestOpAnnotatedMethods.RestmRequestBody'>RequestBody</a><span class='update'><b><red>todo</red></b></span></p>
<li><p><a class='doclink' href='#juneau-rest-server.RestOpAnnotatedMethods.RestmRequestHeaders'>RequestHeaders</a><span class='update'><b><red>todo</red></b></span></p>
<li><p><a class='doclink' href='#juneau-rest-server.RestOpAnnotatedMethods.RestmRequestAttributes'>RequestAttributes</a><span class='update'>created: 8.1.0, <b><red>todo</red></b></span></p>
<li><p><a class='doclink' href='#juneau-rest-server.RestOpAnnotatedMethods.RestmRequestQuery'>RequestQuery</a><span class='update'><b><red>todo</red></b></span></p>
@@ -14857,21 +14856,24 @@
<p>
The hook events can be broken down into two categories:
</p>
-<ul class='spaced-list'>
- <li>Resource lifecycle events:
- <ul class='javatree'>
- <li class='jf'>{@link org.apache.juneau.rest.annotation.HookEvent#INIT INIT} - Right before initialization.
- <li class='jf'>{@link org.apache.juneau.rest.annotation.HookEvent#POST_INIT POST_INIT} - Right after initialization.
- <li class='jf'>{@link org.apache.juneau.rest.annotation.HookEvent#POST_INIT_CHILD_FIRST POST_INIT_CHILD_FIRST} - Right after initialization, but run child methods first.
- <li class='jf'>{@link org.apache.juneau.rest.annotation.HookEvent#DESTROY DESTROY} - Right before servlet destroy.
- </ul>
- <li>REST call lifecycle events:
- <ul class='javatree'>
- <li class='jf'>{@link org.apache.juneau.rest.annotation.HookEvent#START_CALL START_CALL} - At the beginning of a REST call.
- <li class='jf'>{@link org.apache.juneau.rest.annotation.HookEvent#PRE_CALL PRE_CALL} - Right before the <ja>@RestOp</ja> method is invoked.
- <li class='jf'>{@link org.apache.juneau.rest.annotation.HookEvent#POST_CALL POST_CALL} - Right after the <ja>@RestOp</ja> method is invoked.
- <li class='jf'>{@link org.apache.juneau.rest.annotation.HookEvent#END_CALL END_CALL} - At the end of the REST call after the response has been flushed.
- </ul>
+<ul class='javatree'>
+ <li class='je'>{@link org.apache.juneau.rest.annotation.HookEvent}
+ <ul class='spaced-list'>
+ <li>Resource lifecycle events:
+ <ul class='javatree'>
+ <li class='jf'>{@link org.apache.juneau.rest.annotation.HookEvent#INIT INIT} - Right before initialization.
+ <li class='jf'>{@link org.apache.juneau.rest.annotation.HookEvent#POST_INIT POST_INIT} - Right after initialization.
+ <li class='jf'>{@link org.apache.juneau.rest.annotation.HookEvent#POST_INIT_CHILD_FIRST POST_INIT_CHILD_FIRST} - Right after initialization, but run child methods first.
+ <li class='jf'>{@link org.apache.juneau.rest.annotation.HookEvent#DESTROY DESTROY} - Right before servlet destroy.
+ </ul>
+ <li>REST call lifecycle events:
+ <ul class='javatree'>
+ <li class='jf'>{@link org.apache.juneau.rest.annotation.HookEvent#START_CALL START_CALL} - At the beginning of a REST call.
+ <li class='jf'>{@link org.apache.juneau.rest.annotation.HookEvent#PRE_CALL PRE_CALL} - Right before the <ja>@RestOp</ja> method is invoked.
+ <li class='jf'>{@link org.apache.juneau.rest.annotation.HookEvent#POST_CALL POST_CALL} - Right after the <ja>@RestOp</ja> method is invoked.
+ <li class='jf'>{@link org.apache.juneau.rest.annotation.HookEvent#END_CALL END_CALL} - At the end of the REST call after the response has been flushed.
+ </ul>
+ </ul>
</ul>
<ul class='seealso'>
@@ -15479,54 +15481,18 @@
<ul class='seealso'>
<li class='jc'>{@link org.apache.juneau.rest.RestRequest}
<li class='jc'>{@link org.apache.juneau.rest.RestResponse}
+ <li class='jc'>{@link org.apache.juneau.rest.RequestBody}
+ <li class='jc'>{@link org.apache.juneau.rest.RequestHeaders}
+ <li class='jc'>{@link org.apache.juneau.rest.RequestQueryParams}
+ <li class='jc'>{@link org.apache.juneau.rest.RequestFormDataParams}
+ <li class='jc'>{@link org.apache.juneau.rest.RequestPathParams}
+ <li class='jc'>{@link org.apache.juneau.rest.RequestAttributes}
</ul>
<!-- ==================================================================================================== -->
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-rest-server.RestOpAnnotatedMethods.RestmRequestBody' id='juneau-rest-server.RestOpAnnotatedMethods.RestmRequestBody'>6.3.1 - RequestBody</a><span class='update'><b><red>todo</red></b></span></h4>
-<div class='topic'><!-- START: 6.3.1 - juneau-rest-server.RestOpAnnotatedMethods.RestmRequestBody -->
-<p>
- The {@link org.apache.juneau.rest.RequestBody} object is the API for accessing the body of an HTTP request.
- It can be accessed by passing it as a parameter on your REST Java method:
-</p>
-<p class='bpcode w800'>
- <ja>@RestPost</ja>(...)
- <jk>public</jk> Object myMethod(RequestBody <jv>body</jv>) {...}
-</p>
-<h5 class='figure'>Example:</h5>
-<p class='bpcode w800'>
- <ja>@RestPost</ja>(...)
- <jk>public void</jk> doPost(RequestBody <jv>body</jv>) {
- <jc>// Convert body to a linked list of Person objects.</jc>
- List<Person> <jv>list</jv> = <jv>body</jv>.asType(LinkedList.<jk>class</jk>, Person.<jk>class</jk>);
- ...
- }
-</p>
-<p>
- Some important methods on this class are:
-</p>
-<ul class='javatree'>
- <li class='jc'>{@link org.apache.juneau.rest.RequestBody}
- <ul>
- <li class='jm'>{@link org.apache.juneau.rest.RequestBody#getReader() getReader()} - Get body as a Reader.
- <li class='jm'>{@link org.apache.juneau.rest.RequestBody#getInputStream() getInputStream()} - Get body as an InputStream.
- <li class='jm'>{@link org.apache.juneau.rest.RequestBody#asType(Class) asType(Class)} - Get body converted to a POJO.
- <li class='jm'>{@link org.apache.juneau.rest.RequestBody#asType(Type,Type...) asType(Type,Type...)} - Get body converted to a map or collection of POJOs.
- <li class='jm'>{@link org.apache.juneau.rest.RequestBody#asString() asString()} - Get body as a simple string.
- <li class='jm'>{@link org.apache.juneau.rest.RequestBody#asHex() asHex()} - Get body as a hex-encoded string.
- <li class='jm'>{@link org.apache.juneau.rest.RequestBody#asSpacedHex() asSpacedHex()} - Get body as spaced-hex-encoded string.
- </ul>
-</ul>
-
-<ul class='seealso'>
- <li class='ja'>{@link org.apache.juneau.http.annotation.Body}
-</ul>
-</div><!-- END: 6.3.1 - juneau-rest-server.RestOpAnnotatedMethods.RestmRequestBody -->
-
-<!-- ==================================================================================================== -->
-
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-rest-server.RestOpAnnotatedMethods.RestmRequestHeaders' id='juneau-rest-server.RestOpAnnotatedMethods.RestmRequestHeaders'>6.3.2 - RequestHeaders</a><span class='update'><b><red>todo</red></b></span></h4>
-<div class='topic'><!-- START: 6.3.2 - juneau-rest-server.RestOpAnnotatedMethods.RestmRequestHeaders -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-rest-server.RestOpAnnotatedMethods.RestmRequestHeaders' id='juneau-rest-server.RestOpAnnotatedMethods.RestmRequestHeaders'>6.3.1 - RequestHeaders</a><span class='update'><b><red>todo</red></b></span></h4>
+<div class='topic'><!-- START: 6.3.1 - juneau-rest-server.RestOpAnnotatedMethods.RestmRequestHeaders -->
<p>
The {@link org.apache.juneau.rest.RequestHeaders} object is the API for accessing the headers of an HTTP request.
It can be accessed by passing it as a parameter on your REST Java method:
@@ -15568,12 +15534,12 @@
<ul class='seealso'>
<li class='ja'>{@link org.apache.juneau.http.annotation.Header}
</ul>
-</div><!-- END: 6.3.2 - juneau-rest-server.RestOpAnnotatedMethods.RestmRequestHeaders -->
+</div><!-- END: 6.3.1 - juneau-rest-server.RestOpAnnotatedMethods.RestmRequestHeaders -->
<!-- ==================================================================================================== -->
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-rest-server.RestOpAnnotatedMethods.RestmRequestAttributes' id='juneau-rest-server.RestOpAnnotatedMethods.RestmRequestAttributes'>6.3.3 - RequestAttributes</a><span class='update'>created: 8.1.0, <b><red>todo</red></b></span></h4>
-<div class='topic'><!-- START: 6.3.3 - juneau-rest-server.RestOpAnnotatedMethods.RestmRequestAttributes -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-rest-server.RestOpAnnotatedMethods.RestmRequestAttributes' id='juneau-rest-server.RestOpAnnotatedMethods.RestmRequestAttributes'>6.3.2 - RequestAttributes</a><span class='update'>created: 8.1.0, <b><red>todo</red></b></span></h4>
+<div class='topic'><!-- START: 6.3.2 - juneau-rest-server.RestOpAnnotatedMethods.RestmRequestAttributes -->
<p>
The {@link org.apache.juneau.rest.RequestAttributes} object is the API for accessing the standard servlet attributes on an HTTP request
(i.e. {@link javax.servlet.ServletRequest#getAttribute(String)}.
@@ -15603,12 +15569,12 @@
Modifications made to request attributes through the <c>RequestAttributes</c> bean are automatically reflected in
the underlying servlet request attributes making it possible to mix the usage of both APIs.
</p>
-</div><!-- END: 6.3.3 - juneau-rest-server.RestOpAnnotatedMethods.RestmRequestAttributes -->
+</div><!-- END: 6.3.2 - juneau-rest-server.RestOpAnnotatedMethods.RestmRequestAttributes -->
<!-- ==================================================================================================== -->
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-rest-server.RestOpAnnotatedMethods.RestmRequestQuery' id='juneau-rest-server.RestOpAnnotatedMethods.RestmRequestQuery'>6.3.4 - RequestQuery</a><span class='update'><b><red>todo</red></b></span></h4>
-<div class='topic'><!-- START: 6.3.4 - juneau-rest-server.RestOpAnnotatedMethods.RestmRequestQuery -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-rest-server.RestOpAnnotatedMethods.RestmRequestQuery' id='juneau-rest-server.RestOpAnnotatedMethods.RestmRequestQuery'>6.3.3 - RequestQuery</a><span class='update'><b><red>todo</red></b></span></h4>
+<div class='topic'><!-- START: 6.3.3 - juneau-rest-server.RestOpAnnotatedMethods.RestmRequestQuery -->
<p>
The {@link org.apache.juneau.rest.RequestQuery} object is the API for accessing the GET query parameters of an HTTP request.
It can be accessed by passing it as a parameter on your REST Java method:
@@ -15655,12 +15621,12 @@
<li class='ja'>{@link org.apache.juneau.http.annotation.Query}
<li class='ja'>{@link org.apache.juneau.http.annotation.HasQuery}
</ul>
-</div><!-- END: 6.3.4 - juneau-rest-server.RestOpAnnotatedMethods.RestmRequestQuery -->
+</div><!-- END: 6.3.3 - juneau-rest-server.RestOpAnnotatedMethods.RestmRequestQuery -->
<!-- ==================================================================================================== -->
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-rest-server.RestOpAnnotatedMethods.RestmRequestFormData' id='juneau-rest-server.RestOpAnnotatedMethods.RestmRequestFormData'>6.3.5 - RequestFormData</a><span class='update'><b><red>todo</red></b></span></h4>
-<div class='topic'><!-- START: 6.3.5 - juneau-rest-server.RestOpAnnotatedMethods.RestmRequestFormData -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-rest-server.RestOpAnnotatedMethods.RestmRequestFormData' id='juneau-rest-server.RestOpAnnotatedMethods.RestmRequestFormData'>6.3.4 - RequestFormData</a><span class='update'><b><red>todo</red></b></span></h4>
+<div class='topic'><!-- START: 6.3.4 - juneau-rest-server.RestOpAnnotatedMethods.RestmRequestFormData -->
<p>
The {@link org.apache.juneau.rest.RequestFormData} object is the API for accessing the HTTP request body as form data.
It can be accessed by passing it as a parameter on your REST Java method:
@@ -15702,12 +15668,12 @@
<li class='ja'>{@link org.apache.juneau.http.annotation.FormData}
<li class='ja'>{@link org.apache.juneau.http.annotation.HasFormData}
</ul>
-</div><!-- END: 6.3.5 - juneau-rest-server.RestOpAnnotatedMethods.RestmRequestFormData -->
+</div><!-- END: 6.3.4 - juneau-rest-server.RestOpAnnotatedMethods.RestmRequestFormData -->
<!-- ==================================================================================================== -->
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-rest-server.RestOpAnnotatedMethods.RestmRequestPathMatch' id='juneau-rest-server.RestOpAnnotatedMethods.RestmRequestPathMatch'>6.3.6 - RequestPathMatch</a><span class='update'><b><red>todo</red></b></span></h4>
-<div class='topic'><!-- START: 6.3.6 - juneau-rest-server.RestOpAnnotatedMethods.RestmRequestPathMatch -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-rest-server.RestOpAnnotatedMethods.RestmRequestPathMatch' id='juneau-rest-server.RestOpAnnotatedMethods.RestmRequestPathMatch'>6.3.5 - RequestPathMatch</a><span class='update'><b><red>todo</red></b></span></h4>
+<div class='topic'><!-- START: 6.3.5 - juneau-rest-server.RestOpAnnotatedMethods.RestmRequestPathMatch -->
<p>
The {@link org.apache.juneau.rest.RequestPath} object is the API for accessing the matched variables
and remainder on the URL path.
@@ -15746,12 +15712,12 @@
<ul class='seealso'>
<li class='ja'>{@link org.apache.juneau.http.annotation.Path}
</ul>
-</div><!-- END: 6.3.6 - juneau-rest-server.RestOpAnnotatedMethods.RestmRequestPathMatch -->
+</div><!-- END: 6.3.5 - juneau-rest-server.RestOpAnnotatedMethods.RestmRequestPathMatch -->
<!-- ==================================================================================================== -->
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-rest-server.RestOpAnnotatedMethods.RestmReaderResource' id='juneau-rest-server.RestOpAnnotatedMethods.RestmReaderResource'>6.3.7 - ReaderResource</a><span class='update'><b><red>todo</red></b></span></h4>
-<div class='topic'><!-- START: 6.3.7 - juneau-rest-server.RestOpAnnotatedMethods.RestmReaderResource -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-rest-server.RestOpAnnotatedMethods.RestmReaderResource' id='juneau-rest-server.RestOpAnnotatedMethods.RestmReaderResource'>6.3.6 - ReaderResource</a><span class='update'><b><red>todo</red></b></span></h4>
+<div class='topic'><!-- START: 6.3.6 - juneau-rest-server.RestOpAnnotatedMethods.RestmReaderResource -->
<p>
The {@del ReaderResource} class is a convenience object for defining thread-safe
reusable character-based responses.
@@ -15777,12 +15743,12 @@
.build();
}
</p>
-</div><!-- END: 6.3.7 - juneau-rest-server.RestOpAnnotatedMethods.RestmReaderResource -->
+</div><!-- END: 6.3.6 - juneau-rest-server.RestOpAnnotatedMethods.RestmReaderResource -->
<!-- ==================================================================================================== -->
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-rest-server.RestOpAnnotatedMethods.RestmStreamResource' id='juneau-rest-server.RestOpAnnotatedMethods.RestmStreamResource'>6.3.8 - StreamResource</a><span class='update'><b><red>todo</red></b></span></h4>
-<div class='topic'><!-- START: 6.3.8 - juneau-rest-server.RestOpAnnotatedMethods.RestmStreamResource -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-rest-server.RestOpAnnotatedMethods.RestmStreamResource' id='juneau-rest-server.RestOpAnnotatedMethods.RestmStreamResource'>6.3.7 - StreamResource</a><span class='update'><b><red>todo</red></b></span></h4>
+<div class='topic'><!-- START: 6.3.7 - juneau-rest-server.RestOpAnnotatedMethods.RestmStreamResource -->
<p>
The {@del org.apache.juneau.http.StreamResource} class is the binary equivalent to the {@del ReaderResource} object.
In essence, it's a container for binary data with optional response headers.
@@ -15804,12 +15770,12 @@
.build();
}
</p>
-</div><!-- END: 6.3.8 - juneau-rest-server.RestOpAnnotatedMethods.RestmStreamResource -->
+</div><!-- END: 6.3.7 - juneau-rest-server.RestOpAnnotatedMethods.RestmStreamResource -->
<!-- ==================================================================================================== -->
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-rest-server.RestOpAnnotatedMethods.RestmMatchers' id='juneau-rest-server.RestOpAnnotatedMethods.RestmMatchers'>6.3.9 - @RestOp(matchers)</a><span class='update'><b><red>todo</red></b></span></h4>
-<div class='topic'><!-- START: 6.3.9 - juneau-rest-server.RestOpAnnotatedMethods.RestmMatchers -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-rest-server.RestOpAnnotatedMethods.RestmMatchers' id='juneau-rest-server.RestOpAnnotatedMethods.RestmMatchers'>6.3.8 - @RestOp(matchers)</a><span class='update'><b><red>todo</red></b></span></h4>
+<div class='topic'><!-- START: 6.3.8 - juneau-rest-server.RestOpAnnotatedMethods.RestmMatchers -->
<p>
{@link org.apache.juneau.rest.RestMatcher RestMatchers} are used to allow multiple Java methods to be
tied to the same HTTP method and path, but differentiated by some request attribute such as a specific
@@ -15863,12 +15829,12 @@
<li class='jc'>{@link org.apache.juneau.rest.matchers.MultipartFormDataMatcher}
<li class='jc'>{@link org.apache.juneau.rest.matchers.UrlEncodedFormMatcher}
</ul>
-</div><!-- END: 6.3.9 - juneau-rest-server.RestOpAnnotatedMethods.RestmMatchers -->
+</div><!-- END: 6.3.8 - juneau-rest-server.RestOpAnnotatedMethods.RestmMatchers -->
<!-- ==================================================================================================== -->
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-rest-server.RestOpAnnotatedMethods.RestmPredefinedResponses' id='juneau-rest-server.RestOpAnnotatedMethods.RestmPredefinedResponses'>6.3.10 - Predefined Responses</a><span class='update'><b><red>todo</red></b></span></h4>
-<div class='topic'><!-- START: 6.3.10 - juneau-rest-server.RestOpAnnotatedMethods.RestmPredefinedResponses -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-rest-server.RestOpAnnotatedMethods.RestmPredefinedResponses' id='juneau-rest-server.RestOpAnnotatedMethods.RestmPredefinedResponses'>6.3.9 - Predefined Responses</a><span class='update'><b><red>todo</red></b></span></h4>
+<div class='topic'><!-- START: 6.3.9 - juneau-rest-server.RestOpAnnotatedMethods.RestmPredefinedResponses -->
<p>
Predefined response beans are provided for all standard HTTP responses.
These can be used as-is or extended to provide customized HTTP responses.
@@ -15978,12 +15944,12 @@
<jk>return new</jk> SeeOther(<js>"servlet:/pets"</js>);
}
</p>
-</div><!-- END: 6.3.10 - juneau-rest-server.RestOpAnnotatedMethods.RestmPredefinedResponses -->
+</div><!-- END: 6.3.9 - juneau-rest-server.RestOpAnnotatedMethods.RestmPredefinedResponses -->
<!-- ==================================================================================================== -->
-<h4 class='topic' onclick='toggle(this)'><a href='#juneau-rest-server.RestOpAnnotatedMethods.RestmPredefinedHelperBeans' id='juneau-rest-server.RestOpAnnotatedMethods.RestmPredefinedHelperBeans'>6.3.11 - Predefined Helper Beans</a><span class='update'><b><red>todo</red></b></span></h4>
-<div class='topic'><!-- START: 6.3.11 - juneau-rest-server.RestOpAnnotatedMethods.RestmPredefinedHelperBeans -->
+<h4 class='topic' onclick='toggle(this)'><a href='#juneau-rest-server.RestOpAnnotatedMethods.RestmPredefinedHelperBeans' id='juneau-rest-server.RestOpAnnotatedMethods.RestmPredefinedHelperBeans'>6.3.10 - Predefined Helper Beans</a><span class='update'><b><red>todo</red></b></span></h4>
+<div class='topic'><!-- START: 6.3.10 - juneau-rest-server.RestOpAnnotatedMethods.RestmPredefinedHelperBeans -->
<p>
The {@link org.apache.juneau.rest.helper} package contains several predefined beans to help when constructing
REST interfaces.
@@ -16193,7 +16159,7 @@
<p>
One distinction is that the former defines the description <js>"Redirect to servlet root"</js> in the generated Swagger documentation.
</p>
-</div><!-- END: 6.3.11 - juneau-rest-server.RestOpAnnotatedMethods.RestmPredefinedHelperBeans -->
+</div><!-- END: 6.3.10 - juneau-rest-server.RestOpAnnotatedMethods.RestmPredefinedHelperBeans -->
</div><!-- END: 6.3 - juneau-rest-server.RestOpAnnotatedMethods -->
<!-- ==================================================================================================== -->
diff --git a/juneau-doc/src/main/javadoc/resources/docs.txt b/juneau-doc/src/main/javadoc/resources/docs.txt
index 74d3f1e..ddfe78a 100644
--- a/juneau-doc/src/main/javadoc/resources/docs.txt
+++ b/juneau-doc/src/main/javadoc/resources/docs.txt
@@ -290,7 +290,6 @@ RestmPredefinedHelperBeans = #juneau-rest-server.RestOpAnnotatedMethods.RestmPre
RestmPredefinedResponses = #juneau-rest-server.RestOpAnnotatedMethods.RestmPredefinedResponses, Overview > juneau-rest-server > @RestOp-Annotated Methods > Predefined Responses
RestmReaderResource = #juneau-rest-server.RestOpAnnotatedMethods.RestmReaderResource, Overview > juneau-rest-server > @RestOp-Annotated Methods > ReaderResource
RestmRequestAttributes = #juneau-rest-server.RestOpAnnotatedMethods.RestmRequestAttributes, Overview > juneau-rest-server > @RestOp-Annotated Methods > RequestAttributes
-RestmRequestBody = #juneau-rest-server.RestOpAnnotatedMethods.RestmRequestBody, Overview > juneau-rest-server > @RestOp-Annotated Methods > RequestBody
RestmRequestFormData = #juneau-rest-server.RestOpAnnotatedMethods.RestmRequestFormData, Overview > juneau-rest-server > @RestOp-Annotated Methods > RequestFormData
RestmRequestHeaders = #juneau-rest-server.RestOpAnnotatedMethods.RestmRequestHeaders, Overview > juneau-rest-server > @RestOp-Annotated Methods > RequestHeaders
RestmRequestPathMatch = #juneau-rest-server.RestOpAnnotatedMethods.RestmRequestPathMatch, Overview > juneau-rest-server > @RestOp-Annotated Methods > RequestPathMatch
diff --git a/juneau-doc/src/main/javadoc/resources/fragments/toc.html b/juneau-doc/src/main/javadoc/resources/fragments/toc.html
index 6303aab..067a8bd 100644
--- a/juneau-doc/src/main/javadoc/resources/fragments/toc.html
+++ b/juneau-doc/src/main/javadoc/resources/fragments/toc.html
@@ -203,9 +203,6 @@
</ol>
<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-server.RestOpAnnotatedMethods'>@RestOp-Annotated Methods</a><span class='update'>updated: <b>9.0.0</b></span></p>
<ol>
- <li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-server.RestOpAnnotatedMethods.RestmRestRequest'>RestRequest</a><span class='update'><b><red>todo</red></b></span></p>
- <li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-server.RestOpAnnotatedMethods.RestmRestResponse'>RestResponse</a><span class='update'><b><red>todo</red></b></span></p>
- <li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-server.RestOpAnnotatedMethods.RestmRequestBody'>RequestBody</a><span class='update'><b><red>todo</red></b></span></p>
<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-server.RestOpAnnotatedMethods.RestmRequestHeaders'>RequestHeaders</a><span class='update'><b><red>todo</red></b></span></p>
<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-server.RestOpAnnotatedMethods.RestmRequestAttributes'>RequestAttributes</a><span class='update'>created: 8.1.0, <b><red>todo</red></b></span></p>
<li><p><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-server.RestOpAnnotatedMethods.RestmRequestQuery'>RequestQuery</a><span class='update'><b><red>todo</red></b></span></p>
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestBody.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestBody.java
index a9dffd2..0c6b384 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestBody.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestBody.java
@@ -27,6 +27,7 @@ import org.apache.juneau.encoders.*;
import org.apache.juneau.httppart.*;
import org.apache.juneau.internal.*;
import org.apache.juneau.parser.*;
+import org.apache.juneau.http.annotation.*;
import org.apache.juneau.http.header.*;
import org.apache.juneau.http.response.*;
import org.apache.juneau.rest.util.*;
@@ -34,8 +35,56 @@ import org.apache.juneau.rest.util.*;
/**
* Contains the body of the HTTP request.
*
+ * <p>
+ * The {@link RequestBody} object is the API for accessing the body of an HTTP request.
+ * It can be accessed by passing it as a parameter on your REST Java method:
+ * </p>
+ * <p class='bpcode w800'>
+ * <ja>@RestPost</ja>(...)
+ * <jk>public</jk> Object myMethod(RequestBody <jv>body</jv>) {...}
+ * </p>
+ *
+ * <h5 class='figure'>Example:</h5>
+ * <p class='bcode w800'>
+ * <ja>@RestPost</ja>(...)
+ * <jk>public void</jk> doPost(RequestBody <jv>body</jv>) {
+ * <jc>// Convert body to a linked list of Person objects.</jc>
+ * List<Person> <jv>list</jv> = <jv>body</jv>.asType(LinkedList.<jk>class</jk>, Person.<jk>class</jk>);
+ * ...
+ * }
+ * </p>
+ *
+ * <p>
+ * Some important methods on this class are:
+ * </p>
+ * <ul class='javatree'>
+ * <li class='jc'>{@link RequestBody}
+ * <ul class='spaced-list'>
+ * <li>Methods for accessing the raw contents of the request body:
+ * <ul class='javatreec'>
+ * <li class='jm'>{@link RequestBody#asBytes() asBytes()}
+ * <li class='jm'>{@link RequestBody#asHex() asHex()}
+ * <li class='jm'>{@link RequestBody#asSpacedHex() asSpacedHex()}
+ * <li class='jm'>{@link RequestBody#asString() asString()}
+ * <li class='jm'>{@link RequestBody#getInputStream() getInputStream()}
+ * <li class='jm'>{@link RequestBody#getReader() getReader()}
+ * </ul>
+ * <li>Methods for parsing the contents of the request body:
+ * <ul class='javatreec'>
+ * <li class='jm'>{@link RequestBody#asType(Class) asType(Class)}
+ * <li class='jm'>{@link RequestBody#asType(Type, Type...) asType(Type, Type...)}
+ * <li class='jm'>{@link RequestBody#setSchema(HttpPartSchema) setSchema(HttpPartSchema)}
+ * </ul>
+ * <li>Other methods:
+ * <ul class='javatreec'>
+ * <li class='jm'>{@link RequestBody#cache() cache()}
+ * <li class='jm'>{@link RequestBody#getParserMatch() getParserMatch()}
+ * </ul>
+ * </ul>
+ * </ul>
+ *
* <ul class='seealso'>
- * <li class='link'>{@doc RestmRequestBody}
+ * <li class='ja'>{@link Body}
* </ul>
*/
@SuppressWarnings("unchecked")
@@ -72,7 +121,7 @@ public class RequestBody {
* @param schema The new schema for this body.
* @return This object.
*/
- public RequestBody schema(HttpPartSchema schema) {
+ public RequestBody setSchema(HttpPartSchema schema) {
this.schema = schema;
return this;
}
@@ -349,15 +398,15 @@ public class RequestBody {
* Returns the parser and media type matching the request <c>Content-Type</c> header.
*
* @return
- * The parser matching the request <c>Content-Type</c> header, or <jk>null</jk> if no matching parser was
+ * The parser matching the request <c>Content-Type</c> header, or {@link Optional#empty()} if no matching parser was
* found.
* Includes the matching media type.
*/
- public ParserMatch getParserMatch() {
+ public Optional<ParserMatch> getParserMatch() {
if (mediaType != null && parser != null)
- return new ParserMatch(mediaType, parser);
+ return Optional.of(new ParserMatch(mediaType, parser));
MediaType mt = getMediaType();
- return mt == null ? null : parsers.getParserMatch(mt);
+ return Optional.ofNullable(mt == null ? null : parsers.getParserMatch(mt));
}
private MediaType getMediaType() {
@@ -369,46 +418,6 @@ public class RequestBody {
return ct.isPresent() ? ct.get().asMediaType().orElse(null) : null;
}
- /**
- * Returns the parser matching the request <c>Content-Type</c> header.
- *
- * @return
- * The parser matching the request <c>Content-Type</c> header, or <jk>null</jk> if no matching parser was
- * found.
- */
- public Parser getParser() {
- ParserMatch pm = getParserMatch();
- return (pm == null ? null : pm.getParser());
- }
-
- /**
- * Returns the reader parser matching the request <c>Content-Type</c> header.
- *
- * @return
- * The reader parser matching the request <c>Content-Type</c> header, or <jk>null</jk> if no matching
- * reader parser was found, or the matching parser was an input stream parser.
- */
- public ReaderParser getReaderParser() {
- Parser p = getParser();
- if (p != null && p.isReaderParser())
- return (ReaderParser)p;
- return null;
- }
-
- /**
- * Returns the input stream parser matching the request <c>Content-Type</c> header.
- *
- * @return
- * The input stream parser matching the request <c>Content-Type</c> header, or <jk>null</jk> if no matching
- * reader parser was found, or the matching parser was a reader parser.
- */
- public InputStreamParser getInputStreamParser() {
- Parser p = getParser();
- if (p != null && ! p.isReaderParser())
- return (InputStreamParser)p;
- return null;
- }
-
private <T> T getInner(ClassMeta<T> cm) throws BadRequest, UnsupportedMediaType, InternalServerError {
try {
return parse(cm);
@@ -436,7 +445,7 @@ public class RequestBody {
Optional<TimeZone> timeZone = req.getTimeZone();
Locale locale = req.getLocale();
- ParserMatch pm = getParserMatch();
+ ParserMatch pm = getParserMatch().orElse(null);
if (schema == null)
schema = HttpPartSchema.DEFAULT;
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 9f5bd54..259b2f1 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
@@ -98,7 +98,7 @@ import org.apache.juneau.utils.*;
* </p>
*
* <p>
- * The primary methods on this class are shown below:
+ * The primary methods on this class are:
* </p>
* <ul class='javatree'>
* <li class='jc'>{@link RestRequest}
@@ -1605,7 +1605,7 @@ public final class RestRequest {
ClassMeta<?> type = bs.getClassMeta(method.getGenericReturnType());
HttpPartType pt = pm.getPartType();
if (pt == HttpPartType.BODY)
- return getBody().schema(schema).asType(type);
+ return getBody().setSchema(schema).asType(type);
if (pt == QUERY)
return getQueryParam(name).parser(pp).schema(schema).asType(type).orElse(null);
if (pt == FORMDATA)
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestResponse.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestResponse.java
index 6496634..401a969 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestResponse.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestResponse.java
@@ -52,7 +52,7 @@ import org.apache.juneau.serializer.*;
* </p>
*
* <p>
- * The primary methods on this class are shown below:
+ * The primary methods on this class are:
* </p>
* <ul class='javatree'>
* <li class='jc'>{@link RestResponse}
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RrpcRestOpSession.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RrpcRestOpSession.java
index 6b55656..68537fd 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RrpcRestOpSession.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RrpcRestOpSession.java
@@ -113,7 +113,7 @@ public class RrpcRestOpSession extends RestOpSession {
Method m = rmm.getJavaMethod();
try {
// Parse the args and invoke the method.
- Parser p = req.getBody().getParser();
+ Parser p = req.getBody().getParserMatch().get().getParser();
Object[] args = null;
if (m.getGenericParameterTypes().length == 0)
args = new Object[0];
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/args/BodyArg.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/args/BodyArg.java
index 02620bd..ba58f37 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/args/BodyArg.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/args/BodyArg.java
@@ -29,7 +29,7 @@ import org.apache.juneau.rest.annotation.*;
* <jv>opSession</jv>
* .{@link RestOpSession#getRequest() getRequest}()
* .{@link RestRequest#getBody() getBody}()
- * .{@link RequestBody#schema(HttpPartSchema) schema}(<jv>schema</jv>)
+ * .{@link RequestBody#setSchema(HttpPartSchema) setSchema}(<jv>schema</jv>)
* .{@link RequestBody#asType(Type,Type...) asType}(<jv>type</jv>);
* </p>
*
@@ -65,6 +65,6 @@ public class BodyArg implements RestOpArg {
@Override /* RestOpArg */
public Object resolve(RestOpSession opSession) throws Exception {
- return opSession.getRequest().getBody().schema(schema).asType(type);
+ return opSession.getRequest().getBody().setSchema(schema).asType(type);
}
}
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/args/InputStreamParserArg.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/args/InputStreamParserArg.java
index 37ab873..823f0cb 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/args/InputStreamParserArg.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/args/InputStreamParserArg.java
@@ -26,7 +26,8 @@ import org.apache.juneau.rest.annotation.*;
* <jv>opSession</jv>
* .{@link RestOpSession#getRequest() getRequest}()
* .{@link RestRequest#getBody() getBody}()
- * .{@link RequestBody#getInputStreamParser() getInputStreamParser}();
+ * .{@link RequestBody#getParserMatch() getParserMatch}()
+ * .{@link ParserMatch#getParser() getParser}();
* </p>
*/
public class InputStreamParserArg extends SimpleRestOperationArg {
@@ -47,6 +48,6 @@ public class InputStreamParserArg extends SimpleRestOperationArg {
* Constructor.
*/
protected InputStreamParserArg() {
- super((opSession)->opSession.getRequest().getBody().getInputStreamParser());
+ super((opSession)->opSession.getRequest().getBody().getParserMatch().map(ParserMatch::getParser).filter(InputStreamParser.class::isInstance).orElse(null));
}
}
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/args/ParserArg.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/args/ParserArg.java
index acb5acc..4199e91 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/args/ParserArg.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/args/ParserArg.java
@@ -26,7 +26,8 @@ import org.apache.juneau.rest.annotation.*;
* <jv>opSession</jv>
* .{@link RestOpSession#getRequest() getRequest}()
* .{@link RestRequest#getBody() getBody}()
- * .{@link RequestBody#getParser() getParser}();
+ * .{@link RequestBody#getParserMatch() getParserMatch}()
+ * .{@link ParserMatch#getParser() getParser}();
* </p>
*/
public class ParserArg extends SimpleRestOperationArg {
@@ -47,6 +48,6 @@ public class ParserArg extends SimpleRestOperationArg {
* Constructor.
*/
protected ParserArg() {
- super((opSession)->opSession.getRequest().getBody().getParser());
+ super((opSession)->opSession.getRequest().getBody().getParserMatch().map(ParserMatch::getParser).orElse(null));
}
}
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/args/ReaderParserArg.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/args/ReaderParserArg.java
index aca2445..8b144c5 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/args/ReaderParserArg.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/args/ReaderParserArg.java
@@ -26,7 +26,8 @@ import org.apache.juneau.rest.annotation.*;
* <jv>opSession</jv>
* .{@link RestOpSession#getRequest() getRequest}()
* .{@link RestRequest#getBody() getBody}()
- * .{@link RequestBody#getReaderParser() getReaderParser}();
+ * .{@link RequestBody#getParserMatch() getParserMatch}()
+ * .{@link ParserMatch#getParser() getParser}();
* </p>
*/
public class ReaderParserArg extends SimpleRestOperationArg {
@@ -47,6 +48,6 @@ public class ReaderParserArg extends SimpleRestOperationArg {
* Constructor.
*/
protected ReaderParserArg() {
- super((opSession)->opSession.getRequest().getBody().getReaderParser());
+ super((opSession)->opSession.getRequest().getBody().getParserMatch().map(ParserMatch::getParser).filter(ReaderParser.class::isInstance).orElse(null));
}
}
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/converters/Traversable.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/converters/Traversable.java
index 551bfb1..e09a9ca 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/converters/Traversable.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/converters/Traversable.java
@@ -18,6 +18,7 @@ import org.apache.juneau.*;
import org.apache.juneau.rest.*;
import org.apache.juneau.swap.*;
import org.apache.juneau.http.response.*;
+import org.apache.juneau.parser.*;
import org.apache.juneau.utils.*;
/**
@@ -57,7 +58,8 @@ public final class Traversable implements RestConverter {
ObjectSwap swap = bs.getClassMetaForObject(o).getSwap(bs);
if (swap != null)
o = swap.swap(bs, o);
- PojoRest p = new PojoRest(o, req.getBody().getReaderParser());
+ ReaderParser rp = req.getBody().getParserMatch().map(ParserMatch::getParser).filter(ReaderParser.class::isInstance).map(ReaderParser.class::cast).orElse(null);
+ PojoRest p = new PojoRest(o, rp);
o = p.get(pathRemainder);
} catch (PojoRestException e) {
throw new BasicHttpException(e.getStatus(), e);