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 <[email protected]>
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);