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 b4cc561  Javadocs.
b4cc561 is described below

commit b4cc561a67ddd0aa100bed111034bae458dda7c4
Author: JamesBognar <[email protected]>
AuthorDate: Tue Aug 20 09:31:46 2019 -0400

    Javadocs.
---
 .../org/apache/juneau/http/annotation/Body.java    | 11 ++++++
 .../apache/juneau/http/annotation/FormData.java    | 11 ++++++
 .../10.HttpPartAnnotations/01.Body.html            | 14 +++++++-
 .../10.HttpPartAnnotations/02.FormData.html        | 14 +++++++-
 juneau-doc/src/main/javadoc/javadoc.css            | 13 -------
 juneau-doc/src/main/javadoc/overview.html          | 40 +++++++++++++++++-----
 .../src/main/javadoc/resources/fragments/toc.html  |  4 +--
 .../src/main/javadoc/resources/juneau-doc.css      | 31 ++++++++++++-----
 .../java/org/apache/juneau/rest/RestRequest.java   |  1 +
 9 files changed, 106 insertions(+), 33 deletions(-)

diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Body.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Body.java
index 092ce9e..47858fa 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Body.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Body.java
@@ -117,6 +117,17 @@ import org.apache.juneau.jsonschema.*;
  *     <li class='link'>{@doc juneau-rest-server.HttpPartAnnotations.Request}
  *     <li class='link'>{@doc juneau-rest-client.RestProxies.Request}
  * </ul>
+ *
+ * <div class='warn'>
+ *     If using this annotation on a Spring bean, note that you are likely to 
encounter issues when using on parameterized
+ *     types such as <code>List&lt;MyBean&gt;</code>.  This is due to the fact 
that Spring uses CGLIB to recompile classes
+ *     at runtime, and CGLIB was written before generics were introduced into 
Java and is a virtually-unsupported library.
+ *     Therefore, parameterized types will often be stripped from class 
definitions and replaced with unparameterized types
+ *     (e.g. <code>List</code>).  Under these circumstances, you are likely to 
get <code>ClassCastExceptions</code>
+ *     when trying to access generalized <code>ObjectMaps</code> as beans.  
The best solution to this issue is to either
+ *     specify the parameter as a bean array (e.g. <code>MyBean[]</code>) or 
declare the method as final so that CGLIB
+ *     will not try to recompile it.
+ * </div>
  */
 @Documented
 @Target({PARAMETER,FIELD,METHOD,TYPE})
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/FormData.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/FormData.java
index e4a4601..ccf3634 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/FormData.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/FormData.java
@@ -98,6 +98,17 @@ import org.apache.juneau.oapi.*;
  *     <li class='link'>{@doc juneau-rest-server.HttpPartAnnotations.Request}
  *     <li class='link'>{@doc juneau-rest-client.RestProxies.Request}
  * </ul>
+ *
+ * <div class='warn'>
+ *     If using this annotation on a Spring bean, note that you are likely to 
encounter issues when using on parameterized
+ *     types such as <code>List&lt;MyBean&gt;</code>.  This is due to the fact 
that Spring uses CGLIB to recompile classes
+ *     at runtime, and CGLIB was written before generics were introduced into 
Java and is a virtually-unsupported library.
+ *     Therefore, parameterized types will often be stripped from class 
definitions and replaced with unparameterized types
+ *     (e.g. <code>List</code>).  Under these circumstances, you are likely to 
get <code>ClassCastExceptions</code>
+ *     when trying to access generalized <code>ObjectMaps</code> as beans.  
The best solution to this issue is to either
+ *     specify the parameter as a bean array (e.g. <code>MyBean[]</code>) or 
declare the method as final so that CGLIB
+ *     will not try to recompile it.
+ * </div>
 */
 @Documented
 @Target({PARAMETER,FIELD,METHOD,TYPE})
diff --git 
a/juneau-doc/docs/Topics/07.juneau-rest-server/10.HttpPartAnnotations/01.Body.html
 
b/juneau-doc/docs/Topics/07.juneau-rest-server/10.HttpPartAnnotations/01.Body.html
index a74a95c..082e4e9 100644
--- 
a/juneau-doc/docs/Topics/07.juneau-rest-server/10.HttpPartAnnotations/01.Body.html
+++ 
b/juneau-doc/docs/Topics/07.juneau-rest-server/10.HttpPartAnnotations/01.Body.html
@@ -13,7 +13,7 @@
  
***************************************************************************************************************************/
  -->
 
-@Body
+{updated} @Body
 
 <p>
        The {@link oaj.http.annotation.Body @Body} annotation is used to 
identify POJOs to be used as the body of an HTTP request.
@@ -187,6 +187,18 @@
                <br>Values on methods override values on POJO classes.
 </ul>
 
+<div class='warn'>
+       If using this annotation on a Spring bean, note that you are likely to 
encounter issues when using on parameterized
+       types such as <code>List&lt;MyBean&gt;</code>.  This is due to the fact 
that Spring uses CGLIB to recompile classes
+       at runtime, and CGLIB was written before generics were introduced into 
Java and is a virtually-unsupported library.
+       Therefore, parameterized types will often be stripped from class 
definitions and replaced with unparameterized types
+       (e.g. <code>List</code>).  Under these circumstances, you are likely to 
get <code>ClassCastExceptions</code>
+       when trying to access generalized <code>ObjectMaps</code> as beans.  
The best solution to this issue is to either
+       specify the parameter as a bean array (e.g. <code>MyBean[]</code>) or 
declare the method as final so that CGLIB
+       will not try to recompile it.
+</div>
+
+
 <ul class='seealso'>
        <li class='jc'>{@link oajr.RequestBody}
        <li class='link'>{@doc juneau-rest-server.OpenApiSchemaPartParsing}
diff --git 
a/juneau-doc/docs/Topics/07.juneau-rest-server/10.HttpPartAnnotations/02.FormData.html
 
b/juneau-doc/docs/Topics/07.juneau-rest-server/10.HttpPartAnnotations/02.FormData.html
index e8ff562..ddd5a0f 100644
--- 
a/juneau-doc/docs/Topics/07.juneau-rest-server/10.HttpPartAnnotations/02.FormData.html
+++ 
b/juneau-doc/docs/Topics/07.juneau-rest-server/10.HttpPartAnnotations/02.FormData.html
@@ -13,7 +13,7 @@
  
***************************************************************************************************************************/
  -->
 
-@FormData
+{updated} @FormData
 
 <p>
        The {@link oaj.http.annotation.FormData @FormData} annotation is used 
to retrieve request form post entries.
@@ -176,6 +176,18 @@
        <br>The {@link oaj.http.annotation.Query @Query} annotation can be used 
to retrieve a URL parameter in the URL string without triggering the
        servlet to drain the body content.
 </div>
+
+<div class='warn'>
+       If using this annotation on a Spring bean, note that you are likely to 
encounter issues when using on parameterized
+       types such as <code>List&lt;MyBean&gt;</code>.  This is due to the fact 
that Spring uses CGLIB to recompile classes
+       at runtime, and CGLIB was written before generics were introduced into 
Java and is a virtually-unsupported library.
+       Therefore, parameterized types will often be stripped from class 
definitions and replaced with unparameterized types
+       (e.g. <code>List</code>).  Under these circumstances, you are likely to 
get <code>ClassCastExceptions</code>
+       when trying to access generalized <code>ObjectMaps</code> as beans.  
The best solution to this issue is to either
+       specify the parameter as a bean array (e.g. <code>MyBean[]</code>) or 
declare the method as final so that CGLIB
+       will not try to recompile it.
+</div>
+
 <ul class='seealso'>
        <li class='jc'>{@link oajr.RequestFormData}
        <li class='link'>{@doc juneau-rest-server.OpenApiSchemaPartParsing}
diff --git a/juneau-doc/src/main/javadoc/javadoc.css 
b/juneau-doc/src/main/javadoc/javadoc.css
index dde428d..5788027 100755
--- a/juneau-doc/src/main/javadoc/javadoc.css
+++ b/juneau-doc/src/main/javadoc/javadoc.css
@@ -703,16 +703,3 @@ h2.preview-section {
        border-radius:10px;
        font-size: 1.2em;
 }
-
-.new {
-       background-color:lightgreen;
-}
-
-.updated {
-       background-color:#CFC;
-}
-
-.todo {
-       background-color:#FD8;
-}
-
diff --git a/juneau-doc/src/main/javadoc/overview.html 
b/juneau-doc/src/main/javadoc/overview.html
index 1e4bdc3..4730b30 100644
--- a/juneau-doc/src/main/javadoc/overview.html
+++ b/juneau-doc/src/main/javadoc/overview.html
@@ -299,8 +299,8 @@
                <li><p class=''><a class='doclink' 
href='#juneau-rest-server.OpenApiSchemaPartSerializing'>OpenAPI Schema Part 
Serializing</a></p>
                <li><p class=''><a class='doclink' 
href='#juneau-rest-server.HttpPartAnnotations'>HTTP-Part Annotations</a></p>
                <ol>
-                       <li><p class=''><a class='doclink' 
href='#juneau-rest-server.HttpPartAnnotations.Body'>@Body</a></p>
-                       <li><p class=''><a class='doclink' 
href='#juneau-rest-server.HttpPartAnnotations.FormData'>@FormData</a></p>
+                       <li><p class='updated'><a class='doclink' 
href='#juneau-rest-server.HttpPartAnnotations.Body'>@Body</a></p>
+                       <li><p class='updated'><a class='doclink' 
href='#juneau-rest-server.HttpPartAnnotations.FormData'>@FormData</a></p>
                        <li><p class=''><a class='doclink' 
href='#juneau-rest-server.HttpPartAnnotations.HasFormData'>@HasFormData</a></p>
                        <li><p class=''><a class='doclink' 
href='#juneau-rest-server.HttpPartAnnotations.Query'>@Query</a></p>
                        <li><p class=''><a class='doclink' 
href='#juneau-rest-server.HttpPartAnnotations.HasQuery'>@HasQuery</a></p>
@@ -9590,15 +9590,15 @@
        )
 </p>
 <ul class='notes'>
-       <li class='note'>
+       <li>
                Array properties can also use CSV/SSV/PIPES for array notation.
                <br>Various notations can be mixed throughout.
-       <li class='note'>
+       <li>
                Schemas and POJOs can be defined arbitrarily deep.
-       <li class='note'>
+       <li>
                Schemas are optional.
                They can be skipped or partially defined.
-       <li class='note'>
+       <li>
                We make our best attempt to convert the input to the matching 
type.  
                However, you will get <c>SerializeExceptions</c> if you attempt 
an impossible conversion.
                (e.g. trying to serialize the string "foo" as a boolean). 
@@ -16202,7 +16202,7 @@
 
 <!-- 
====================================================================================================
 -->
 
-<h4 class='topic ' onclick='toggle(this)'><a 
href='#juneau-rest-server.HttpPartAnnotations.Body' 
id='juneau-rest-server.HttpPartAnnotations.Body'>7.10.1 - @Body</a></h4>
+<h4 class='topic updated' onclick='toggle(this)'><a 
href='#juneau-rest-server.HttpPartAnnotations.Body' 
id='juneau-rest-server.HttpPartAnnotations.Body'>7.10.1 - @Body</a></h4>
 <div class='topic'><!-- START: 7.10.1 - 
juneau-rest-server.HttpPartAnnotations.Body -->
 <p>
        The {@link org.apache.juneau.http.annotation.Body @Body} annotation is 
used to identify POJOs to be used as the body of an HTTP request.
@@ -16376,6 +16376,18 @@
                <br>Values on methods override values on POJO classes.
 </ul>
 
+<div class='warn'>
+       If using this annotation on a Spring bean, note that you are likely to 
encounter issues when using on parameterized
+       types such as <code>List&lt;MyBean&gt;</code>.  This is due to the fact 
that Spring uses CGLIB to recompile classes
+       at runtime, and CGLIB was written before generics were introduced into 
Java and is a virtually-unsupported library.
+       Therefore, parameterized types will often be stripped from class 
definitions and replaced with unparameterized types
+       (e.g. <code>List</code>).  Under these circumstances, you are likely to 
get <code>ClassCastExceptions</code>
+       when trying to access generalized <code>ObjectMaps</code> as beans.  
The best solution to this issue is to either
+       specify the parameter as a bean array (e.g. <code>MyBean[]</code>) or 
declare the method as final so that CGLIB
+       will not try to recompile it.
+</div>
+
+
 <ul class='seealso'>
        <li class='jc'>{@link org.apache.juneau.rest.RequestBody}
        <li class='link'>{@doc juneau-rest-server.OpenApiSchemaPartParsing}
@@ -16384,7 +16396,7 @@
 
 <!-- 
====================================================================================================
 -->
 
-<h4 class='topic ' onclick='toggle(this)'><a 
href='#juneau-rest-server.HttpPartAnnotations.FormData' 
id='juneau-rest-server.HttpPartAnnotations.FormData'>7.10.2 - @FormData</a></h4>
+<h4 class='topic updated' onclick='toggle(this)'><a 
href='#juneau-rest-server.HttpPartAnnotations.FormData' 
id='juneau-rest-server.HttpPartAnnotations.FormData'>7.10.2 - @FormData</a></h4>
 <div class='topic'><!-- START: 7.10.2 - 
juneau-rest-server.HttpPartAnnotations.FormData -->
 <p>
        The {@link org.apache.juneau.http.annotation.FormData @FormData} 
annotation is used to retrieve request form post entries.
@@ -16547,6 +16559,18 @@
        <br>The {@link org.apache.juneau.http.annotation.Query @Query} 
annotation can be used to retrieve a URL parameter in the URL string without 
triggering the
        servlet to drain the body content.
 </div>
+
+<div class='warn'>
+       If using this annotation on a Spring bean, note that you are likely to 
encounter issues when using on parameterized
+       types such as <code>List&lt;MyBean&gt;</code>.  This is due to the fact 
that Spring uses CGLIB to recompile classes
+       at runtime, and CGLIB was written before generics were introduced into 
Java and is a virtually-unsupported library.
+       Therefore, parameterized types will often be stripped from class 
definitions and replaced with unparameterized types
+       (e.g. <code>List</code>).  Under these circumstances, you are likely to 
get <code>ClassCastExceptions</code>
+       when trying to access generalized <code>ObjectMaps</code> as beans.  
The best solution to this issue is to either
+       specify the parameter as a bean array (e.g. <code>MyBean[]</code>) or 
declare the method as final so that CGLIB
+       will not try to recompile it.
+</div>
+
 <ul class='seealso'>
        <li class='jc'>{@link org.apache.juneau.rest.RequestFormData}
        <li class='link'>{@doc juneau-rest-server.OpenApiSchemaPartParsing}
diff --git a/juneau-doc/src/main/javadoc/resources/fragments/toc.html 
b/juneau-doc/src/main/javadoc/resources/fragments/toc.html
index 41c7c83..baee82d 100644
--- a/juneau-doc/src/main/javadoc/resources/fragments/toc.html
+++ b/juneau-doc/src/main/javadoc/resources/fragments/toc.html
@@ -242,8 +242,8 @@
                <li><p class=''><a class='doclink' 
href='{OVERVIEW_URL}#juneau-rest-server.OpenApiSchemaPartSerializing'>OpenAPI 
Schema Part Serializing</a></p>
                <li><p class=''><a class='doclink' 
href='{OVERVIEW_URL}#juneau-rest-server.HttpPartAnnotations'>HTTP-Part 
Annotations</a></p>
                <ol>
-                       <li><p class=''><a class='doclink' 
href='{OVERVIEW_URL}#juneau-rest-server.HttpPartAnnotations.Body'>@Body</a></p>
-                       <li><p class=''><a class='doclink' 
href='{OVERVIEW_URL}#juneau-rest-server.HttpPartAnnotations.FormData'>@FormData</a></p>
+                       <li><p class='updated'><a class='doclink' 
href='{OVERVIEW_URL}#juneau-rest-server.HttpPartAnnotations.Body'>@Body</a></p>
+                       <li><p class='updated'><a class='doclink' 
href='{OVERVIEW_URL}#juneau-rest-server.HttpPartAnnotations.FormData'>@FormData</a></p>
                        <li><p class=''><a class='doclink' 
href='{OVERVIEW_URL}#juneau-rest-server.HttpPartAnnotations.HasFormData'>@HasFormData</a></p>
                        <li><p class=''><a class='doclink' 
href='{OVERVIEW_URL}#juneau-rest-server.HttpPartAnnotations.Query'>@Query</a></p>
                        <li><p class=''><a class='doclink' 
href='{OVERVIEW_URL}#juneau-rest-server.HttpPartAnnotations.HasQuery'>@HasQuery</a></p>
diff --git a/juneau-doc/src/main/javadoc/resources/juneau-doc.css 
b/juneau-doc/src/main/javadoc/resources/juneau-doc.css
index 6ee48e0..6236e11 100755
--- a/juneau-doc/src/main/javadoc/resources/juneau-doc.css
+++ b/juneau-doc/src/main/javadoc/resources/juneau-doc.css
@@ -110,9 +110,20 @@ h4.topic {
        cursor: zoom-out;
        max-width: 1000px;
 }
+h5.topic {
+       margin-bottom: 20px;
+       margin-top: 40px;
+       padding-top: 3px;
+       padding-left: 10px;
+       color: #2c4557;
+       border-top: 1px groove #9eadc0;
+       max-width: 1000px;
+}
+
 h2.topic { font-size: 14pt; }
 h3.topic { font-size: 13pt; }
 h4.topic { font-size: 12pt; }
+h5.topic { font-size: 11pt; }
 
 .topic p {
        max-width: 800px;
@@ -213,7 +224,6 @@ p.toc2 {
 
 /* Light-colored background headers */
 h5.toc, 
-h5.topic, 
 h2.title,
 div.docSummary > div.block,
 div.contentContainer > div.block > p:first-child {
@@ -245,13 +255,6 @@ h5.toc {
        box-shadow: 1px 1px 1px 0px rgba(0, 0, 0, 0.5);
 }
 
-h5.topic {
-       color: #2C4557;
-       padding: 5px 20px;
-       margin: 30px 10px 10px 0px;
-       text-decoration: none;
-}
-
 /* Light-colored title on package summary pages */
 div.docSummary > div.block,
 div.contentContainer > div.block > p:first-child {
@@ -487,3 +490,15 @@ div.severe {
        background-color: #faced3;
        border-left: 3px solid #b32400;
 }
+
+.new {
+       background-color:lightgreen;
+}
+
+.updated {
+       background-color:#CFC;
+}
+
+.todo {
+       background-color:#FD8;
+}
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 0877c02..78d9919 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
@@ -50,6 +50,7 @@ import org.apache.juneau.httppart.*;
 import org.apache.juneau.httppart.bean.*;
 import org.apache.juneau.internal.*;
 import org.apache.juneau.jsonschema.*;
+import org.apache.juneau.marshall.*;
 import org.apache.juneau.oapi.*;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.remote.*;

Reply via email to