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 2019/07/29 16:23:10 UTC
[juneau] branch master updated: Modernize javadoc look-and-feel.
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 c922dce Modernize javadoc look-and-feel.
c922dce is described below
commit c922dcea4f2f969fcc70c99cfa7f83a15b2c34d2
Author: JamesBognar <ja...@apache.org>
AuthorDate: Mon Jul 29 12:22:53 2019 -0400
Modernize javadoc look-and-feel.
---
.../org/apache/juneau/annotation/BeanProperty.java | 14 +-
.../docs/Topics/02.juneau-marshall/02.Parsers.html | 17 +-
.../Topics/02.juneau-marshall/08.ObjectMap.html | 9 +-
.../{11.Transforms.html => 12.Transforms.html} | 0
.../01.PojoSwaps.html | 9 +-
.../02.PerMediaTypePojoSwaps.html | 0
.../03.OneWayPojoSwaps.html | 0
.../04.SwapAnnotation.html | 0
.../05.TemplatedSwaps.html | 0
.../06.SwapMethods.html | 0
.../07.SurrogateClasses.html | 0
.../08.BeanAnnotation.html | 0
.../09.BeanPropertyAnnotation.html | 11 +-
.../10.BeanConstructorAnnotation.html | 0
.../11.BeanIgnoreAnnotation.html | 0
.../12.NamePropertyAnnotation.html | 0
.../13.ParentPropertyAnnotation.html | 0
.../14.PojoBuilders.html | 0
.../15.BeanFilters.html | 0
.../16.InterfaceFilters.html | 0
.../17.StopClasses.html | 0
.../18.BypassSerialization.html | 13 +-
...nDictionaries.html => 13.BeanDictionaries.html} | 27 +-
.../01.BeanSubTypes.html | 0
.../{13.VirtualBeans.html => 14.VirtualBeans.html} | 0
.../{14.Recursion.html => 15.Recursion.html} | 0
...odels.html => 16.ParsingIntoGenericModels.html} | 0
...reams.html => 17.ReadingContinuousStreams.html} | 0
.../{17.URIs.html => 18.URIs.html} | 0
...onComparison.html => 19.JacksonComparison.html} | 0
....PojoCategories.html => 20.PojoCategories.html} | 17 +-
.../{20.JsonDetails.html => 21.JsonDetails.html} | 0
.../01.Methodology.html | 0
.../02.Serializers.html | 0
.../03.SimplifiedJson.html | 0
.../04.Parsers.html | 0
.../05.JsonAnnotation.html | 0
.../06.JsonSchema.html | 0
.../{21.XmlDetails.html => 22.XmlDetails.html} | 0
.../01.Methodology.html | 0
.../02.Serializers.html | 0
.../03.Parsers.html | 0
.../04.BeanTypeNameAnnotation.html | 9 +-
.../05.XmlChildNameAnnotation.html | 0
.../06.XmlFormatAnnotation.html | 0
.../07.Namespaces.html | 0
.../08.XmlSchema.html | 0
.../{22.HtmlDetails.html => 23.HtmlDetails.html} | 0
.../01.Methodology.html | 0
.../02.Serializers.html | 0
.../03.Parsers.html | 0
.../04.HtmlAnnotation.html | 0
.../05.HtmlRenderAnnotation.html | 0
.../06.HtmlDocSerializer.html | 0
.../07.BasicHtmlDocTemplate.html | 0
.../08.CustomTemplates.html | 0
.../09.HtmlSchema.html | 0
.../{23.UonDetails.html => 24.UonDetails.html} | 0
.../01.Methodology.html | 0
.../02.Serializers.html | 0
.../03.Parsers.html | 0
...dingDetails.html => 25.UrlEncodingDetails.html} | 0
.../01.Methodology.html | 0
.../02.Serializers.html | 0
.../03.Parsers.html | 0
.../04.UrlEncodingAnnotation.html | 0
....MsgPackDetails.html => 26.MsgPackDetails.html} | 0
.../01.Serializers.html | 0
.../02.Parsers.html | 0
....OpenApiDetails.html => 27.OpenApiDetails.html} | 0
.../01.Methodology.html | 0
.../02.Serializers.html | 0
.../03.Parsers.html | 0
...27.BestPractices.html => 28.BestPractices.html} | 0
.../10.HttpPartAnnotations/02.FormData.html | 15 +-
.../11.HandlingFormPosts.html | 17 +-
juneau-doc/src/main/javadoc/javadoc.css | 18 +-
juneau-doc/src/main/javadoc/overview.html | 615 +++++++++++----------
juneau-doc/src/main/javadoc/resources/docs.txt | 1 +
.../src/main/javadoc/resources/fragments/toc.html | 5 +-
.../src/main/javadoc/resources/juneau-code.css | 2 +-
.../src/main/javadoc/resources/juneau-doc.css | 49 +-
.../org/apache/juneau/rest/HtmlDocBuilder.java | 81 ++-
83 files changed, 486 insertions(+), 443 deletions(-)
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanProperty.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanProperty.java
index 2a29c26..17f6226 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanProperty.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanProperty.java
@@ -138,14 +138,14 @@ public @interface BeanProperty {
* }
* </p>
*
- * <ul class='doctree'>
- * <li class='info'>
- * Note that if you're not interested in these additional properties, you can also use the
- * {@link BeanContext#BEAN_ignoreUnknownBeanProperties} setting to ignore values that don't fit into existing
- * properties.
- * <li class='info'>
+ * <div class='info'>
+ * Note that if you're not interested in these additional properties, you can also use the
+ * {@link BeanContext#BEAN_ignoreUnknownBeanProperties} setting to ignore values that don't fit into existing
+ * properties.
+ * </div>
+ * <div class='info'>
* Note that the {@link Name @Name} annotation can also be used for identifying a property name.
- * </ul>
+ * </div>
*/
String name() default "";
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/02.Parsers.html b/juneau-doc/docs/Topics/02.juneau-marshall/02.Parsers.html
index 31289e7..f8de96a 100644
--- a/juneau-doc/docs/Topics/02.juneau-marshall/02.Parsers.html
+++ b/juneau-doc/docs/Topics/02.juneau-marshall/02.Parsers.html
@@ -80,15 +80,14 @@ Parsers
parser.parseIntoMap(json, m3, String.<jk>class</jk>, Person.<jk>class</jk>);
</p>
<br>
-<ul class='doctree'>
- <li class='info'>
- In the example above, we're parsing "lax" JSON (single quotes, unquoted attributes).
- The JSON parser can handle any valid JSON syntax (such as quoted or unquoted attributes, single or double
- quotes).
- It can also handle JSON fragments and embedded Javascript comments.
- Many of the JSON examples provided will use lax syntax which is easier to read since we don't have to deal
- with escapes.
-</ul>
+<div class='info'>
+ In the example above, we're parsing "lax" JSON (single quotes, unquoted attributes).
+ The JSON parser can handle any valid JSON syntax (such as quoted or unquoted attributes, single or double
+ quotes).
+ It can also handle JSON fragments and embedded Javascript comments.
+ Many of the JSON examples provided will use lax syntax which is easier to read since we don't have to deal
+ with escapes.
+</div>
<p>
The class hierarchy for the parsers (excluding specialized subclasses) are:
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/08.ObjectMap.html b/juneau-doc/docs/Topics/02.juneau-marshall/08.ObjectMap.html
index a7102d5..136e7c3 100644
--- a/juneau-doc/docs/Topics/02.juneau-marshall/08.ObjectMap.html
+++ b/juneau-doc/docs/Topics/02.juneau-marshall/08.ObjectMap.html
@@ -117,8 +117,7 @@ ObjectMap and ObjectList
objectMap.setInner(objectMapInner);
</p>
-<ul class='doctree'>
- <li class='info'>
- As a general rule, if you do not specify a target type during parsing, or if the target type cannot be
- determined through reflection, the parsers automatically generate <l>ObjectMaps</l> and <l>ObjectLists</l>.
-</ul>
+<div class='info'>
+ As a general rule, if you do not specify a target type during parsing, or if the target type cannot be
+ determined through reflection, the parsers automatically generate <l>ObjectMaps</l> and <l>ObjectLists</l>.
+</div>
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/01.PojoSwaps.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/01.PojoSwaps.html
similarity index 97%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/01.PojoSwaps.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/01.PojoSwaps.html
index 0ff5776..d716acf 100644
--- a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/01.PojoSwaps.html
+++ b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/01.PojoSwaps.html
@@ -176,8 +176,7 @@
<c>Time-Zone</c> headers on the request.
</p>
-<ul class='doctree'>
- <li class='info'>
- The 'swapped' class type must be a serializable type.
- <br>See the definition for Category 4 objects in {@doc PojoCategories}.
-</ul>
+<div class='info'>
+ The 'swapped' class type must be a serializable type.
+ <br>See the definition for Category 4 objects in {@doc PojoCategories}.
+</div>
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/02.PerMediaTypePojoSwaps.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/02.PerMediaTypePojoSwaps.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/02.PerMediaTypePojoSwaps.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/02.PerMediaTypePojoSwaps.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/03.OneWayPojoSwaps.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/03.OneWayPojoSwaps.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/03.OneWayPojoSwaps.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/03.OneWayPojoSwaps.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/04.SwapAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/04.SwapAnnotation.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/04.SwapAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/04.SwapAnnotation.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/05.TemplatedSwaps.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/05.TemplatedSwaps.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/05.TemplatedSwaps.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/05.TemplatedSwaps.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/06.SwapMethods.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/06.SwapMethods.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/06.SwapMethods.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/06.SwapMethods.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/07.SurrogateClasses.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/07.SurrogateClasses.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/07.SurrogateClasses.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/07.SurrogateClasses.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/08.BeanAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/08.BeanAnnotation.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/08.BeanAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/08.BeanAnnotation.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/09.BeanPropertyAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/09.BeanPropertyAnnotation.html
similarity index 96%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/09.BeanPropertyAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/09.BeanPropertyAnnotation.html
index 2218eb7..d4ef16c 100644
--- a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/09.BeanPropertyAnnotation.html
+++ b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/09.BeanPropertyAnnotation.html
@@ -119,12 +119,11 @@
}
}
</p>
-<ul class='doctree'>
- <li class='info'>
- Note that if you're not interested in these additional properties, you can also use the
- {@link oaj.BeanContext#BEAN_ignoreUnknownBeanProperties} setting to ignore values
- that don't fit into existing properties.
-</ul>
+<div class='info'>
+ Note that if you're not interested in these additional properties, you can also use the
+ {@link oaj.BeanContext#BEAN_ignoreUnknownBeanProperties} setting to ignore values
+ that don't fit into existing properties.
+</div>
<p>
The {@link oaj.annotation.BeanProperty#value() @BeanProperty(value)} annotation
is a synonym for {@link oaj.annotation.BeanProperty#name() @BeanProperty(name)}.
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/10.BeanConstructorAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/10.BeanConstructorAnnotation.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/10.BeanConstructorAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/10.BeanConstructorAnnotation.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/11.BeanIgnoreAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/11.BeanIgnoreAnnotation.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/11.BeanIgnoreAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/11.BeanIgnoreAnnotation.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/12.NamePropertyAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/12.NamePropertyAnnotation.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/12.NamePropertyAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/12.NamePropertyAnnotation.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/13.ParentPropertyAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/13.ParentPropertyAnnotation.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/13.ParentPropertyAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/13.ParentPropertyAnnotation.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/14.PojoBuilders.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/14.PojoBuilders.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/14.PojoBuilders.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/14.PojoBuilders.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/15.BeanFilters.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/15.BeanFilters.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/15.BeanFilters.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/15.BeanFilters.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/16.InterfaceFilters.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/16.InterfaceFilters.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/16.InterfaceFilters.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/16.InterfaceFilters.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/17.StopClasses.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/17.StopClasses.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/17.StopClasses.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/17.StopClasses.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/18.BypassSerialization.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/18.BypassSerialization.html
similarity index 90%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/18.BypassSerialization.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/18.BypassSerialization.html
index 39f8b36..5fb3f32 100644
--- a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/18.BypassSerialization.html
+++ b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/18.BypassSerialization.html
@@ -55,10 +55,9 @@ Bypass Serialization using Readers and InputStreams
}
}
</p>
-<ul class='doctree'>
- <li class='info'>
- Due to the nature of the RDF serializers, Readers and InputStreams are serialized as literals,
- not as RDF text.
- This is due to the fact that the RDF serializers use a DOM for serialization, so we don't have
- access to the underlying stream.
-</ul>
+<div class='info'>
+ Due to the nature of the RDF serializers, Readers and InputStreams are serialized as literals,
+ not as RDF text.
+ This is due to the fact that the RDF serializers use a DOM for serialization, so we don't have
+ access to the underlying stream.
+</div>
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/12.BeanDictionaries.html b/juneau-doc/docs/Topics/02.juneau-marshall/13.BeanDictionaries.html
similarity index 92%
rename from juneau-doc/docs/Topics/02.juneau-marshall/12.BeanDictionaries.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/13.BeanDictionaries.html
index 2fc71e5..00ddbd2 100644
--- a/juneau-doc/docs/Topics/02.juneau-marshall/12.BeanDictionaries.html
+++ b/juneau-doc/docs/Topics/02.juneau-marshall/13.BeanDictionaries.html
@@ -154,16 +154,17 @@ Bean Names and Dictionaries
<jc>// Produces "[{mytype:'C1',...},{mytype:'C2',...}]"</jc>
String json = SimpleJsonSerializer.<jsf>DEFAULT</jsf>.serialize(x);
</p>
-<ul class='doctree'>
- <li class='info'>
- Type names do not need to be universally unique.
- However, they must be unique within a dictionary.
- <li class='info'>
- The following reserved words cannot be used as type names:
- <c>object, array, number, boolean, null</c>.
- <li class='info'>
- Serialized type names are DISABLED by default.
- They must be enabled on the serializer using the
- {@link oaj.serializer.Serializer#SERIALIZER_addBeanTypes}
- configuration property.
-</ul>
+<div class='info'>
+ Type names do not need to be universally unique.
+ However, they must be unique within a dictionary.
+</div>
+<div class='info'>
+ The following reserved words cannot be used as type names:
+ <c>object, array, number, boolean, null</c>.
+</div>
+<div class='info'>
+ Serialized type names are DISABLED by default.
+ They must be enabled on the serializer using the
+ {@link oaj.serializer.Serializer#SERIALIZER_addBeanTypes}
+ configuration property.
+</div>
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/12.BeanDictionaries/01.BeanSubTypes.html b/juneau-doc/docs/Topics/02.juneau-marshall/13.BeanDictionaries/01.BeanSubTypes.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/12.BeanDictionaries/01.BeanSubTypes.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/13.BeanDictionaries/01.BeanSubTypes.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/13.VirtualBeans.html b/juneau-doc/docs/Topics/02.juneau-marshall/14.VirtualBeans.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/13.VirtualBeans.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/14.VirtualBeans.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/14.Recursion.html b/juneau-doc/docs/Topics/02.juneau-marshall/15.Recursion.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/14.Recursion.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/15.Recursion.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/15.ParsingIntoGenericModels.html b/juneau-doc/docs/Topics/02.juneau-marshall/16.ParsingIntoGenericModels.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/15.ParsingIntoGenericModels.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/16.ParsingIntoGenericModels.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/16.ReadingContinuousStreams.html b/juneau-doc/docs/Topics/02.juneau-marshall/17.ReadingContinuousStreams.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/16.ReadingContinuousStreams.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/17.ReadingContinuousStreams.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/17.URIs.html b/juneau-doc/docs/Topics/02.juneau-marshall/18.URIs.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/17.URIs.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/18.URIs.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/18.JacksonComparison.html b/juneau-doc/docs/Topics/02.juneau-marshall/19.JacksonComparison.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/18.JacksonComparison.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/19.JacksonComparison.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/19.PojoCategories.html b/juneau-doc/docs/Topics/02.juneau-marshall/20.PojoCategories.html
similarity index 96%
rename from juneau-doc/docs/Topics/02.juneau-marshall/19.PojoCategories.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/20.PojoCategories.html
index 81af2e6..e346ed4 100644
--- a/juneau-doc/docs/Topics/02.juneau-marshall/19.PojoCategories.html
+++ b/juneau-doc/docs/Topics/02.juneau-marshall/20.PojoCategories.html
@@ -267,15 +267,14 @@ POJO Categories
<td style='background-color:salmon;text-align:center'><b>no</b></td>
</tr>
</table>
-<ul class='doctree'>
- <li class='info'>
- Serializers are designed to work on tree-shaped POJO models.
- These are models where there are no referential loops (e.g. leaves with references to nodes, or nodes
- in one branch referencing nodes in another branch).
- There is a serializer setting {@code detectRecursions} to look for and handle these kinds of loops
- (by setting these references to <jk>null</jk>), but it is not enabled by default since it introduces
- a moderate performance penalty.
-</ul>
+<div class='info'>
+ Serializers are designed to work on tree-shaped POJO models.
+ These are models where there are no referential loops (e.g. leaves with references to nodes, or nodes
+ in one branch referencing nodes in another branch).
+ There is a serializer setting {@code detectRecursions} to look for and handle these kinds of loops
+ (by setting these references to <jk>null</jk>), but it is not enabled by default since it introduces
+ a moderate performance penalty.
+</div>
<h5 class='topic' id='PojosConveribleToStrings'>POJOs convertible to/from Strings</h5>
<p>
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/20.JsonDetails.html b/juneau-doc/docs/Topics/02.juneau-marshall/21.JsonDetails.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/20.JsonDetails.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/21.JsonDetails.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/20.JsonDetails/01.Methodology.html b/juneau-doc/docs/Topics/02.juneau-marshall/21.JsonDetails/01.Methodology.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/20.JsonDetails/01.Methodology.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/21.JsonDetails/01.Methodology.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/20.JsonDetails/02.Serializers.html b/juneau-doc/docs/Topics/02.juneau-marshall/21.JsonDetails/02.Serializers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/20.JsonDetails/02.Serializers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/21.JsonDetails/02.Serializers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/20.JsonDetails/03.SimplifiedJson.html b/juneau-doc/docs/Topics/02.juneau-marshall/21.JsonDetails/03.SimplifiedJson.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/20.JsonDetails/03.SimplifiedJson.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/21.JsonDetails/03.SimplifiedJson.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/20.JsonDetails/04.Parsers.html b/juneau-doc/docs/Topics/02.juneau-marshall/21.JsonDetails/04.Parsers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/20.JsonDetails/04.Parsers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/21.JsonDetails/04.Parsers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/20.JsonDetails/05.JsonAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/21.JsonDetails/05.JsonAnnotation.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/20.JsonDetails/05.JsonAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/21.JsonDetails/05.JsonAnnotation.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/20.JsonDetails/06.JsonSchema.html b/juneau-doc/docs/Topics/02.juneau-marshall/21.JsonDetails/06.JsonSchema.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/20.JsonDetails/06.JsonSchema.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/21.JsonDetails/06.JsonSchema.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails.html b/juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/01.Methodology.html b/juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails/01.Methodology.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/01.Methodology.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails/01.Methodology.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/02.Serializers.html b/juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails/02.Serializers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/02.Serializers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails/02.Serializers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/03.Parsers.html b/juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails/03.Parsers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/03.Parsers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails/03.Parsers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/04.BeanTypeNameAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails/04.BeanTypeNameAnnotation.html
similarity index 98%
rename from juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/04.BeanTypeNameAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails/04.BeanTypeNameAnnotation.html
index d0552f5..b91c337 100644
--- a/juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/04.BeanTypeNameAnnotation.html
+++ b/juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails/04.BeanTypeNameAnnotation.html
@@ -113,11 +113,10 @@
</xt></td>
</tr>
</table>
-<ul class='doctree'>
- <li class='info'>
- <c>string</c>, <c>number</c>, <c>boolean</c>, <c>object</c>,
- <c>array</c>, and <c>null</c> are reserved keywords that cannot be used as type names.
-</ul>
+<div class='info'>
+ <c>string</c>, <c>number</c>, <c>boolean</c>, <c>object</c>,
+ <c>array</c>, and <c>null</c> are reserved keywords that cannot be used as type names.
+</div>
<p>
Beans with type names are often used in conjunction with the
{@link oaj.annotation.Bean#beanDictionary() @Bean(beanDictionary)} and
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/05.XmlChildNameAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails/05.XmlChildNameAnnotation.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/05.XmlChildNameAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails/05.XmlChildNameAnnotation.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/06.XmlFormatAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails/06.XmlFormatAnnotation.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/06.XmlFormatAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails/06.XmlFormatAnnotation.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/07.Namespaces.html b/juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails/07.Namespaces.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/07.Namespaces.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails/07.Namespaces.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/08.XmlSchema.html b/juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails/08.XmlSchema.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/08.XmlSchema.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails/08.XmlSchema.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails.html b/juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/01.Methodology.html b/juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/01.Methodology.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/01.Methodology.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/01.Methodology.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/02.Serializers.html b/juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/02.Serializers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/02.Serializers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/02.Serializers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/03.Parsers.html b/juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/03.Parsers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/03.Parsers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/03.Parsers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/04.HtmlAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/04.HtmlAnnotation.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/04.HtmlAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/04.HtmlAnnotation.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/05.HtmlRenderAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/05.HtmlRenderAnnotation.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/05.HtmlRenderAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/05.HtmlRenderAnnotation.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/06.HtmlDocSerializer.html b/juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/06.HtmlDocSerializer.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/06.HtmlDocSerializer.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/06.HtmlDocSerializer.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/07.BasicHtmlDocTemplate.html b/juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/07.BasicHtmlDocTemplate.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/07.BasicHtmlDocTemplate.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/07.BasicHtmlDocTemplate.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/08.CustomTemplates.html b/juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/08.CustomTemplates.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/08.CustomTemplates.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/08.CustomTemplates.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/09.HtmlSchema.html b/juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/09.HtmlSchema.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/09.HtmlSchema.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/09.HtmlSchema.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/23.UonDetails.html b/juneau-doc/docs/Topics/02.juneau-marshall/24.UonDetails.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/23.UonDetails.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/24.UonDetails.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/23.UonDetails/01.Methodology.html b/juneau-doc/docs/Topics/02.juneau-marshall/24.UonDetails/01.Methodology.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/23.UonDetails/01.Methodology.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/24.UonDetails/01.Methodology.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/23.UonDetails/02.Serializers.html b/juneau-doc/docs/Topics/02.juneau-marshall/24.UonDetails/02.Serializers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/23.UonDetails/02.Serializers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/24.UonDetails/02.Serializers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/23.UonDetails/03.Parsers.html b/juneau-doc/docs/Topics/02.juneau-marshall/24.UonDetails/03.Parsers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/23.UonDetails/03.Parsers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/24.UonDetails/03.Parsers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/24.UrlEncodingDetails.html b/juneau-doc/docs/Topics/02.juneau-marshall/25.UrlEncodingDetails.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/24.UrlEncodingDetails.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/25.UrlEncodingDetails.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/24.UrlEncodingDetails/01.Methodology.html b/juneau-doc/docs/Topics/02.juneau-marshall/25.UrlEncodingDetails/01.Methodology.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/24.UrlEncodingDetails/01.Methodology.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/25.UrlEncodingDetails/01.Methodology.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/24.UrlEncodingDetails/02.Serializers.html b/juneau-doc/docs/Topics/02.juneau-marshall/25.UrlEncodingDetails/02.Serializers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/24.UrlEncodingDetails/02.Serializers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/25.UrlEncodingDetails/02.Serializers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/24.UrlEncodingDetails/03.Parsers.html b/juneau-doc/docs/Topics/02.juneau-marshall/25.UrlEncodingDetails/03.Parsers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/24.UrlEncodingDetails/03.Parsers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/25.UrlEncodingDetails/03.Parsers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/24.UrlEncodingDetails/04.UrlEncodingAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/25.UrlEncodingDetails/04.UrlEncodingAnnotation.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/24.UrlEncodingDetails/04.UrlEncodingAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/25.UrlEncodingDetails/04.UrlEncodingAnnotation.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/25.MsgPackDetails.html b/juneau-doc/docs/Topics/02.juneau-marshall/26.MsgPackDetails.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/25.MsgPackDetails.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/26.MsgPackDetails.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/25.MsgPackDetails/01.Serializers.html b/juneau-doc/docs/Topics/02.juneau-marshall/26.MsgPackDetails/01.Serializers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/25.MsgPackDetails/01.Serializers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/26.MsgPackDetails/01.Serializers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/25.MsgPackDetails/02.Parsers.html b/juneau-doc/docs/Topics/02.juneau-marshall/26.MsgPackDetails/02.Parsers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/25.MsgPackDetails/02.Parsers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/26.MsgPackDetails/02.Parsers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/26.OpenApiDetails.html b/juneau-doc/docs/Topics/02.juneau-marshall/27.OpenApiDetails.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/26.OpenApiDetails.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/27.OpenApiDetails.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/26.OpenApiDetails/01.Methodology.html b/juneau-doc/docs/Topics/02.juneau-marshall/27.OpenApiDetails/01.Methodology.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/26.OpenApiDetails/01.Methodology.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/27.OpenApiDetails/01.Methodology.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/26.OpenApiDetails/02.Serializers.html b/juneau-doc/docs/Topics/02.juneau-marshall/27.OpenApiDetails/02.Serializers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/26.OpenApiDetails/02.Serializers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/27.OpenApiDetails/02.Serializers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/26.OpenApiDetails/03.Parsers.html b/juneau-doc/docs/Topics/02.juneau-marshall/27.OpenApiDetails/03.Parsers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/26.OpenApiDetails/03.Parsers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/27.OpenApiDetails/03.Parsers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/27.BestPractices.html b/juneau-doc/docs/Topics/02.juneau-marshall/28.BestPractices.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/27.BestPractices.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/28.BestPractices.html
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 76e2141..87c9be1 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
@@ -170,14 +170,13 @@
</p>
<h5 class='section'>Notes:</h5>
-<ul class='doctree'>
- <li class='warn'>
- This annotation should not be combined with the {@link oaj.http.annotation.Body @Body} annotation or {@link oajr.RestRequest#getBody()} method
- for <c>application/x-www-form-urlencoded POST</c> posts, since it will trigger the underlying servlet
- API to parse the body content as key-value pairs resulting in empty content.
- <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.
-</ul>
+<div class='warn'>
+ This annotation should not be combined with the {@link oaj.http.annotation.Body @Body} annotation or {@link oajr.RestRequest#getBody()} method
+ for <c>application/x-www-form-urlencoded POST</c> posts, since it will trigger the underlying servlet
+ API to parse the body content as key-value pairs resulting in empty content.
+ <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>
<h5 class='section'>See Also:</h5>
<ul>
<li class='jc'>{@link oajr.RequestFormData}
diff --git a/juneau-doc/docs/Topics/07.juneau-rest-server/11.HandlingFormPosts.html b/juneau-doc/docs/Topics/07.juneau-rest-server/11.HandlingFormPosts.html
index 475d00c..3c32ea3 100644
--- a/juneau-doc/docs/Topics/07.juneau-rest-server/11.HandlingFormPosts.html
+++ b/juneau-doc/docs/Topics/07.juneau-rest-server/11.HandlingFormPosts.html
@@ -56,12 +56,11 @@ Handling Form Posts
in addition to URL-Encoding.
The latter approach only supports URL-Encoding.
</p>
-<ul class='doctree'>
- <li class='warn'>
- If you're using form input beans, DO NOT use the <l>@FormData</l> attribute or
- {@link oajr.RestRequest#getParameter(String)} method since this will cause the
- underlying JEE servlet to parse the HTTP body as a form post.
- <br>Your input bean will end up being null since there won't be any content left after the servlet
- has parsed the body of the request.
- <br>This applies to WHENEVER you use <l>@Body</l> or {@link oajr.RestRequest#getBody()}
-</ul>
+<div class='warn'>
+ If you're using form input beans, DO NOT use the <l>@FormData</l> attribute or
+ {@link oajr.RestRequest#getParameter(String)} method since this will cause the
+ underlying JEE servlet to parse the HTTP body as a form post.
+ <br>Your input bean will end up being null since there won't be any content left after the servlet
+ has parsed the body of the request.
+ <br>This applies to WHENEVER you use <l>@Body</l> or {@link oajr.RestRequest#getBody()}
+</div>
diff --git a/juneau-doc/src/main/javadoc/javadoc.css b/juneau-doc/src/main/javadoc/javadoc.css
index d09733b..9b3dbf7 100755
--- a/juneau-doc/src/main/javadoc/javadoc.css
+++ b/juneau-doc/src/main/javadoc/javadoc.css
@@ -20,9 +20,19 @@ Overall document style
*/
body {
color: #353833;
- font-family: Arial, Helvetica, sans-serif;
- font-size: 76%;
+ font-family: varela round,sans-serif;
+ font-weight: 400;
+ font-size: 90%;
+ color: #34302d;
margin: 0;
+ -webkit-font-smoothing: antialiased;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ font-family: Montserrat,sans-serif;
+ font-weight: 400;
+ font-style: normal;
+ text-rendering: optimizeLegibility;
}
a:link,a:visited {
@@ -89,11 +99,11 @@ code,
tt,
pre,
dt code {
- font-size: 9pt;
+ font-size: 10pt;
}
table tr td dt code {
- font-size: 9pt;
+ font-size: 10pt;
vertical-align: top;
}
diff --git a/juneau-doc/src/main/javadoc/overview.html b/juneau-doc/src/main/javadoc/overview.html
index f8b1566..1efa5a0 100644
--- a/juneau-doc/src/main/javadoc/overview.html
+++ b/juneau-doc/src/main/javadoc/overview.html
@@ -92,9 +92,10 @@
<li><p class=''><a class='doclink' href='#juneau-marshall.ObjectMap'>ObjectMap and ObjectList</a></p>
<li><p class=''><a class='doclink' href='#juneau-marshall.Groups'>SerializerGroups and ParserGroups</a></p>
<li><p class=''><a class='doclink' href='#juneau-marshall.ContextsBuildersSessionsPropertyStores'>Contexts, Builders, Sessions, and PropertyStores</a></p>
+ <li><p class='todo'><a class='doclink' href='#juneau-marshall.DefaultTransforms'>Default Transforms</a></p>
<li><p class=''><a class='doclink' href='#juneau-marshall.Transforms'>Transforms</a></p>
<ol>
- <li><p class=''><a class='doclink' href='#juneau-marshall.Transforms.PojoSwaps'>PojoSwaps</a></p>
+ <li><p class='todo'><a class='doclink' href='#juneau-marshall.Transforms.PojoSwaps'>PojoSwaps</a></p>
<li><p class=''><a class='doclink' href='#juneau-marshall.Transforms.PerMediaTypePojoSwaps'>Per-media-type PojoSwaps</a></p>
<li><p class=''><a class='doclink' href='#juneau-marshall.Transforms.OneWayPojoSwaps'>One-way PojoSwaps</a></p>
<li><p class=''><a class='doclink' href='#juneau-marshall.Transforms.SwapAnnotation'>@Swap Annotation</a></p>
@@ -316,7 +317,7 @@
<li><p class=''><a class='doclink' href='#juneau-rest-server.Parsers'>Parsers</a></p>
<li><p class='todo'><a class='doclink' href='#juneau-rest-server.Properties'>Properties</a></p>
<li><p class='new'><a class='doclink' href='#juneau-rest-server.ConfigAnnotations'>Config annotations</a></p>
- <li><p class=''><a class='doclink' href='#juneau-rest-server.Transforms'>Transforms</a></p>
+ <li><p class='todo'><a class='doclink' href='#juneau-rest-server.Transforms'>Transforms</a></p>
<li><p class=''><a class='doclink' href='#juneau-rest-server.URIs'>URIs</a></p>
<li><p class=''><a class='doclink' href='#juneau-rest-server.Guards'>Guards</a></p>
<li><p class=''><a class='doclink' href='#juneau-rest-server.Converters'>Converters</a></p>
@@ -1054,15 +1055,14 @@
parser.parseIntoMap(json, m3, String.<jk>class</jk>, Person.<jk>class</jk>);
</p>
<br>
-<ul class='doctree'>
- <li class='info'>
- In the example above, we're parsing "lax" JSON (single quotes, unquoted attributes).
- The JSON parser can handle any valid JSON syntax (such as quoted or unquoted attributes, single or double
- quotes).
- It can also handle JSON fragments and embedded Javascript comments.
- Many of the JSON examples provided will use lax syntax which is easier to read since we don't have to deal
- with escapes.
-</ul>
+<div class='info'>
+ In the example above, we're parsing "lax" JSON (single quotes, unquoted attributes).
+ The JSON parser can handle any valid JSON syntax (such as quoted or unquoted attributes, single or double
+ quotes).
+ It can also handle JSON fragments and embedded Javascript comments.
+ Many of the JSON examples provided will use lax syntax which is easier to read since we don't have to deal
+ with escapes.
+</div>
<p>
The class hierarchy for the parsers (excluding specialized subclasses) are:
@@ -1570,11 +1570,10 @@
objectMap.setInner(objectMapInner);
</p>
-<ul class='doctree'>
- <li class='info'>
- As a general rule, if you do not specify a target type during parsing, or if the target type cannot be
- determined through reflection, the parsers automatically generate <l>ObjectMaps</l> and <l>ObjectLists</l>.
-</ul>
+<div class='info'>
+ As a general rule, if you do not specify a target type during parsing, or if the target type cannot be
+ determined through reflection, the parsers automatically generate <l>ObjectMaps</l> and <l>ObjectLists</l>.
+</div>
</div><!-- END: 2.8 - juneau-marshall.ObjectMap -->
<!-- ==================================================================================================== -->
@@ -1756,8 +1755,17 @@
<!-- ==================================================================================================== -->
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms' id='juneau-marshall.Transforms'>2.11 - Transforms</a></h3>
-<div class='topic'><!-- START: 2.11 - juneau-marshall.Transforms -->
+<h3 class='topic todo' onclick='toggle(this)'><a href='#juneau-marshall.DefaultTransforms' id='juneau-marshall.DefaultTransforms'>2.11 - Default Transforms</a></h3>
+<div class='topic'><!-- START: 2.11 - juneau-marshall.DefaultTransforms -->
+<p>
+ TODO
+</p>
+</div><!-- END: 2.11 - juneau-marshall.DefaultTransforms -->
+
+<!-- ==================================================================================================== -->
+
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms' id='juneau-marshall.Transforms'>2.12 - Transforms</a></h3>
+<div class='topic'><!-- START: 2.12 - juneau-marshall.Transforms -->
<p>
By default, the Juneau framework can serialize and parse a wide variety of POJOs out-of-the-box.
However, two special classes are provided tailor how certain Java objects are handled by the framework.
@@ -1817,8 +1825,8 @@
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.PojoSwaps' id='juneau-marshall.Transforms.PojoSwaps'>2.11.1 - PojoSwaps</a></h4>
-<div class='topic'><!-- START: 2.11.1 - juneau-marshall.Transforms.PojoSwaps -->
+<h4 class='topic todo' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.PojoSwaps' id='juneau-marshall.Transforms.PojoSwaps'>2.12.1 - PojoSwaps</a></h4>
+<div class='topic'><!-- START: 2.12.1 - juneau-marshall.Transforms.PojoSwaps -->
<p>
{@link org.apache.juneau.transform.PojoSwap PojoSwaps} are a critical component of Juneau.
They allow the serializers and parsers to handle Java objects that wouldn't normally be serializable.
@@ -1980,17 +1988,16 @@
<c>Time-Zone</c> headers on the request.
</p>
-<ul class='doctree'>
- <li class='info'>
- The 'swapped' class type must be a serializable type.
- <br>See the definition for Category 4 objects in {@doc PojoCategories}.
-</ul>
-</div><!-- END: 2.11.1 - juneau-marshall.Transforms.PojoSwaps -->
+<div class='info'>
+ The 'swapped' class type must be a serializable type.
+ <br>See the definition for Category 4 objects in {@doc PojoCategories}.
+</div>
+</div><!-- END: 2.12.1 - juneau-marshall.Transforms.PojoSwaps -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.PerMediaTypePojoSwaps' id='juneau-marshall.Transforms.PerMediaTypePojoSwaps'>2.11.2 - Per-media-type PojoSwaps</a></h4>
-<div class='topic'><!-- START: 2.11.2 - juneau-marshall.Transforms.PerMediaTypePojoSwaps -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.PerMediaTypePojoSwaps' id='juneau-marshall.Transforms.PerMediaTypePojoSwaps'>2.12.2 - Per-media-type PojoSwaps</a></h4>
+<div class='topic'><!-- START: 2.12.2 - juneau-marshall.Transforms.PerMediaTypePojoSwaps -->
<p>
Swaps can also be defined per-media-type.
</p>
@@ -2085,12 +2092,12 @@
<ja>@Swap</ja>(mediaTypes=<js>"*/*"</js>)
<jk>public static class</jk> MyOtherSwap <jk>extends</jk> PojoSwap<MyPojo,String> {...}
</p>
-</div><!-- END: 2.11.2 - juneau-marshall.Transforms.PerMediaTypePojoSwaps -->
+</div><!-- END: 2.12.2 - juneau-marshall.Transforms.PerMediaTypePojoSwaps -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.OneWayPojoSwaps' id='juneau-marshall.Transforms.OneWayPojoSwaps'>2.11.3 - One-way PojoSwaps</a></h4>
-<div class='topic'><!-- START: 2.11.3 - juneau-marshall.Transforms.OneWayPojoSwaps -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.OneWayPojoSwaps' id='juneau-marshall.Transforms.OneWayPojoSwaps'>2.12.3 - One-way PojoSwaps</a></h4>
+<div class='topic'><!-- START: 2.12.3 - juneau-marshall.Transforms.OneWayPojoSwaps -->
<p>
In the previous sections, we defined two-way swaps, meaning swaps where the original objects could be
reconstructing during parsing.
@@ -2137,12 +2144,12 @@
ReaderParser p = JsonParser.<jsm>create</jsm>().pojoSwaps(IteratorSwap.<jk>class</jk>).build();
i = p.parse(s, Iterator.<jk>class</jk>); <jc>// Throws ParseException!!!</jc>
</p>
-</div><!-- END: 2.11.3 - juneau-marshall.Transforms.OneWayPojoSwaps -->
+</div><!-- END: 2.12.3 - juneau-marshall.Transforms.OneWayPojoSwaps -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.SwapAnnotation' id='juneau-marshall.Transforms.SwapAnnotation'>2.11.4 - @Swap Annotation</a></h4>
-<div class='topic'><!-- START: 2.11.4 - juneau-marshall.Transforms.SwapAnnotation -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.SwapAnnotation' id='juneau-marshall.Transforms.SwapAnnotation'>2.12.4 - @Swap Annotation</a></h4>
+<div class='topic'><!-- START: 2.12.4 - juneau-marshall.Transforms.SwapAnnotation -->
<p>
{@link org.apache.juneau.annotation.Swap @Swap} can be used to associate a swap class using an
annotation.
@@ -2230,12 +2237,12 @@
}
}
</p>
-</div><!-- END: 2.11.4 - juneau-marshall.Transforms.SwapAnnotation -->
+</div><!-- END: 2.12.4 - juneau-marshall.Transforms.SwapAnnotation -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.TemplatedSwaps' id='juneau-marshall.Transforms.TemplatedSwaps'>2.11.5 - Templated Swaps</a></h4>
-<div class='topic'><!-- START: 2.11.5 - juneau-marshall.Transforms.TemplatedSwaps -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.TemplatedSwaps' id='juneau-marshall.Transforms.TemplatedSwaps'>2.12.5 - Templated Swaps</a></h4>
+<div class='topic'><!-- START: 2.12.5 - juneau-marshall.Transforms.TemplatedSwaps -->
<p>
The {@link org.apache.juneau.annotation.Swap#template() @Swap(template)} annotation allows you to associate
arbitrary contextual strings with swaps.
@@ -2269,12 +2276,12 @@
}
}
</p>
-</div><!-- END: 2.11.5 - juneau-marshall.Transforms.TemplatedSwaps -->
+</div><!-- END: 2.12.5 - juneau-marshall.Transforms.TemplatedSwaps -->
<!-- ==================================================================================================== -->
-<h4 class='topic updated' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.SwapMethods' id='juneau-marshall.Transforms.SwapMethods'>2.11.6 - Swap Methods</a></h4>
-<div class='topic'><!-- START: 2.11.6 - juneau-marshall.Transforms.SwapMethods -->
+<h4 class='topic updated' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.SwapMethods' id='juneau-marshall.Transforms.SwapMethods'>2.12.6 - Swap Methods</a></h4>
+<div class='topic'><!-- START: 2.12.6 - juneau-marshall.Transforms.SwapMethods -->
<p>
Various methods can be defined on a class directly to affect how it gets serialized.
This can often be simpler than using <c>PojoSwaps</c>.
@@ -2428,12 +2435,12 @@
}
}
</p>
-</div><!-- END: 2.11.6 - juneau-marshall.Transforms.SwapMethods -->
+</div><!-- END: 2.12.6 - juneau-marshall.Transforms.SwapMethods -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.SurrogateClasses' id='juneau-marshall.Transforms.SurrogateClasses'>2.11.7 - Surrogate Classes</a></h4>
-<div class='topic'><!-- START: 2.11.7 - juneau-marshall.Transforms.SurrogateClasses -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.SurrogateClasses' id='juneau-marshall.Transforms.SurrogateClasses'>2.12.7 - Surrogate Classes</a></h4>
+<div class='topic'><!-- START: 2.12.7 - juneau-marshall.Transforms.SurrogateClasses -->
<p>
<p>
Surrogate classes are very similar in concept to <c>PojoSwaps</c> except they're simpler to define.
@@ -2498,12 +2505,12 @@
<ul>
<li class='jic'>{@link org.apache.juneau.transform.Surrogate}
</ul>
-</div><!-- END: 2.11.7 - juneau-marshall.Transforms.SurrogateClasses -->
+</div><!-- END: 2.12.7 - juneau-marshall.Transforms.SurrogateClasses -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.BeanAnnotation' id='juneau-marshall.Transforms.BeanAnnotation'>2.11.8 - @Bean Annotation</a></h4>
-<div class='topic'><!-- START: 2.11.8 - juneau-marshall.Transforms.BeanAnnotation -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.BeanAnnotation' id='juneau-marshall.Transforms.BeanAnnotation'>2.12.8 - @Bean Annotation</a></h4>
+<div class='topic'><!-- START: 2.12.8 - juneau-marshall.Transforms.BeanAnnotation -->
<p>
The {@link org.apache.juneau.annotation.Bean @Bean} annotation is used to tailor how beans are
interpreted by the framework.
@@ -2636,12 +2643,12 @@
}
}
</p>
-</div><!-- END: 2.11.8 - juneau-marshall.Transforms.BeanAnnotation -->
+</div><!-- END: 2.12.8 - juneau-marshall.Transforms.BeanAnnotation -->
<!-- ==================================================================================================== -->
-<h4 class='topic updated' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.BeanPropertyAnnotation' id='juneau-marshall.Transforms.BeanPropertyAnnotation'>2.11.9 - @BeanProperty Annotation</a></h4>
-<div class='topic'><!-- START: 2.11.9 - juneau-marshall.Transforms.BeanPropertyAnnotation -->
+<h4 class='topic updated' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.BeanPropertyAnnotation' id='juneau-marshall.Transforms.BeanPropertyAnnotation'>2.12.9 - @BeanProperty Annotation</a></h4>
+<div class='topic'><!-- START: 2.12.9 - juneau-marshall.Transforms.BeanPropertyAnnotation -->
<p>
The {@link org.apache.juneau.annotation.BeanProperty @BeanProperty} annotation is used to tailor how
individual bean properties are interpreted by the framework.
@@ -2746,12 +2753,11 @@
}
}
</p>
-<ul class='doctree'>
- <li class='info'>
- Note that if you're not interested in these additional properties, you can also use the
- {@link org.apache.juneau.BeanContext#BEAN_ignoreUnknownBeanProperties} setting to ignore values
- that don't fit into existing properties.
-</ul>
+<div class='info'>
+ Note that if you're not interested in these additional properties, you can also use the
+ {@link org.apache.juneau.BeanContext#BEAN_ignoreUnknownBeanProperties} setting to ignore values
+ that don't fit into existing properties.
+</div>
<p>
The {@link org.apache.juneau.annotation.BeanProperty#value() @BeanProperty(value)} annotation
is a synonym for {@link org.apache.juneau.annotation.BeanProperty#name() @BeanProperty(name)}.
@@ -2834,12 +2840,12 @@
<ja>@BeanProperty</ja>(format=<js>"$%.2f"</js>)
<jk>public float</jk> <jf>price</jf>;
</p>
-</div><!-- END: 2.11.9 - juneau-marshall.Transforms.BeanPropertyAnnotation -->
+</div><!-- END: 2.12.9 - juneau-marshall.Transforms.BeanPropertyAnnotation -->
<!-- ==================================================================================================== -->
-<h4 class='topic updated' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.BeanConstructorAnnotation' id='juneau-marshall.Transforms.BeanConstructorAnnotation'>2.11.10 - @BeanConstructor Annotation</a></h4>
-<div class='topic'><!-- START: 2.11.10 - juneau-marshall.Transforms.BeanConstructorAnnotation -->
+<h4 class='topic updated' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.BeanConstructorAnnotation' id='juneau-marshall.Transforms.BeanConstructorAnnotation'>2.12.10 - @BeanConstructor Annotation</a></h4>
+<div class='topic'><!-- START: 2.12.10 - juneau-marshall.Transforms.BeanConstructorAnnotation -->
<p>
The {@link org.apache.juneau.annotation.BeanConstructor @BeanConstructor} annotation is used to
map constructor arguments to property names on bean with read-only properties.
@@ -2897,12 +2903,12 @@
If neither <c><ja>@BeanConstructor</ja>(properties)</c> or <ja>@Name</ja> is used to identify the bean property names,
we will try to use the parameter names if they are available in the bytecode.
</p>
-</div><!-- END: 2.11.10 - juneau-marshall.Transforms.BeanConstructorAnnotation -->
+</div><!-- END: 2.12.10 - juneau-marshall.Transforms.BeanConstructorAnnotation -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.BeanIgnoreAnnotation' id='juneau-marshall.Transforms.BeanIgnoreAnnotation'>2.11.11 - @BeanIgnore Annotation</a></h4>
-<div class='topic'><!-- START: 2.11.11 - juneau-marshall.Transforms.BeanIgnoreAnnotation -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.BeanIgnoreAnnotation' id='juneau-marshall.Transforms.BeanIgnoreAnnotation'>2.12.11 - @BeanIgnore Annotation</a></h4>
+<div class='topic'><!-- START: 2.12.11 - juneau-marshall.Transforms.BeanIgnoreAnnotation -->
<p>
The {@link org.apache.juneau.annotation.BeanIgnore @BeanIgnore} annotation is used to
ignore classes, fields, and methods from being interpreted as beans or bean components.
@@ -2930,12 +2936,12 @@
<jk>public</jk> String getBar() {...}
}
</p>
-</div><!-- END: 2.11.11 - juneau-marshall.Transforms.BeanIgnoreAnnotation -->
+</div><!-- END: 2.12.11 - juneau-marshall.Transforms.BeanIgnoreAnnotation -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.NamePropertyAnnotation' id='juneau-marshall.Transforms.NamePropertyAnnotation'>2.11.12 - @NameProperty Annotation</a></h4>
-<div class='topic'><!-- START: 2.11.12 - juneau-marshall.Transforms.NamePropertyAnnotation -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.NamePropertyAnnotation' id='juneau-marshall.Transforms.NamePropertyAnnotation'>2.12.12 - @NameProperty Annotation</a></h4>
+<div class='topic'><!-- START: 2.12.12 - juneau-marshall.Transforms.NamePropertyAnnotation -->
<p>
The {@link org.apache.juneau.annotation.NameProperty @NameProperty} annotation is used to
identify a setter as a method for setting the name of a POJO as it's known by its parent object.
@@ -2962,12 +2968,12 @@
<jk>public char</jk> <jf>sex</jf>;
}
</p>
-</div><!-- END: 2.11.12 - juneau-marshall.Transforms.NamePropertyAnnotation -->
+</div><!-- END: 2.12.12 - juneau-marshall.Transforms.NamePropertyAnnotation -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.ParentPropertyAnnotation' id='juneau-marshall.Transforms.ParentPropertyAnnotation'>2.11.13 - @ParentProperty Annotation</a></h4>
-<div class='topic'><!-- START: 2.11.13 - juneau-marshall.Transforms.ParentPropertyAnnotation -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.ParentPropertyAnnotation' id='juneau-marshall.Transforms.ParentPropertyAnnotation'>2.12.13 - @ParentProperty Annotation</a></h4>
+<div class='topic'><!-- START: 2.12.13 - juneau-marshall.Transforms.ParentPropertyAnnotation -->
<p>
The {@link org.apache.juneau.annotation.ParentProperty @ParentProperty} annotation is used to
identify a setter as a method for adding a parent reference to a child object.
@@ -2993,12 +2999,12 @@
<p>
Parsers will automatically set this field for you in the child beans.
</p>
-</div><!-- END: 2.11.13 - juneau-marshall.Transforms.ParentPropertyAnnotation -->
+</div><!-- END: 2.12.13 - juneau-marshall.Transforms.ParentPropertyAnnotation -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.PojoBuilders' id='juneau-marshall.Transforms.PojoBuilders'>2.11.14 - POJO Builders</a></h4>
-<div class='topic'><!-- START: 2.11.14 - juneau-marshall.Transforms.PojoBuilders -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.PojoBuilders' id='juneau-marshall.Transforms.PojoBuilders'>2.12.14 - POJO Builders</a></h4>
+<div class='topic'><!-- START: 2.12.14 - juneau-marshall.Transforms.PojoBuilders -->
<p>
Juneau parsers can use builders to instantiate POJOs.
This is useful in cases where you want to create beans with read-only properties.
@@ -3108,12 +3114,12 @@
<li class='ja'>{@link org.apache.juneau.annotation.Builder}
<li class='jic'>{@link org.apache.juneau.transform.Builder}
</ul>
-</div><!-- END: 2.11.14 - juneau-marshall.Transforms.PojoBuilders -->
+</div><!-- END: 2.12.14 - juneau-marshall.Transforms.PojoBuilders -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.BeanFilters' id='juneau-marshall.Transforms.BeanFilters'>2.11.15 - BeanFilter Class</a></h4>
-<div class='topic'><!-- START: 2.11.15 - juneau-marshall.Transforms.BeanFilters -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.BeanFilters' id='juneau-marshall.Transforms.BeanFilters'>2.12.15 - BeanFilter Class</a></h4>
+<div class='topic'><!-- START: 2.12.15 - juneau-marshall.Transforms.BeanFilters -->
<p>
The {@link org.apache.juneau.transform.BeanFilter} class is the programmatic equivalent to the
{@link org.apache.juneau.annotation.Bean @Bean} annotation.
@@ -3197,12 +3203,12 @@
.beanFilters(AddressInterface.<jk>class</jk>)
.build();
</p>
-</div><!-- END: 2.11.15 - juneau-marshall.Transforms.BeanFilters -->
+</div><!-- END: 2.12.15 - juneau-marshall.Transforms.BeanFilters -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.InterfaceFilters' id='juneau-marshall.Transforms.InterfaceFilters'>2.11.16 - Interface Filters</a></h4>
-<div class='topic'><!-- START: 2.11.16 - juneau-marshall.Transforms.InterfaceFilters -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.InterfaceFilters' id='juneau-marshall.Transforms.InterfaceFilters'>2.12.16 - Interface Filters</a></h4>
+<div class='topic'><!-- START: 2.12.16 - juneau-marshall.Transforms.InterfaceFilters -->
<p>
Occasionally, you may want to limit bean properties to only those defined on a parent class or interface.
This is accomplished through interface filters.
@@ -3301,12 +3307,12 @@
<jk>public</jk> String getFoo() {...};
}
</p>
-</div><!-- END: 2.11.16 - juneau-marshall.Transforms.InterfaceFilters -->
+</div><!-- END: 2.12.16 - juneau-marshall.Transforms.InterfaceFilters -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.StopClasses' id='juneau-marshall.Transforms.StopClasses'>2.11.17 - Stop Classes</a></h4>
-<div class='topic'><!-- START: 2.11.17 - juneau-marshall.Transforms.StopClasses -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.StopClasses' id='juneau-marshall.Transforms.StopClasses'>2.12.17 - Stop Classes</a></h4>
+<div class='topic'><!-- START: 2.12.17 - juneau-marshall.Transforms.StopClasses -->
<p>
Whereas interface filters limit properties defined on child classes, stop filters
do the opposite and limit properties defined on parent classes.
@@ -3343,12 +3349,12 @@
<jc>// Serializes property 'p3', but NOT 'p1' or 'p2'.</jc>
String json = JsonSerializer.<jsf>DEFAULT</jsf>.serialize(<jk>new</jk> C3());
</p>
-</div><!-- END: 2.11.17 - juneau-marshall.Transforms.StopClasses -->
+</div><!-- END: 2.12.17 - juneau-marshall.Transforms.StopClasses -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.BypassSerialization' id='juneau-marshall.Transforms.BypassSerialization'>2.11.18 - Bypass Serialization using Readers and InputStreams</a></h4>
-<div class='topic'><!-- START: 2.11.18 - juneau-marshall.Transforms.BypassSerialization -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.BypassSerialization' id='juneau-marshall.Transforms.BypassSerialization'>2.12.18 - Bypass Serialization using Readers and InputStreams</a></h4>
+<div class='topic'><!-- START: 2.12.18 - juneau-marshall.Transforms.BypassSerialization -->
<p>
Juneau serializers treat instances of <c>Readers</c> and <c>InputStreams</c> special by
simply serializing their contents directly to the output stream or writer.
@@ -3389,20 +3395,19 @@
}
}
</p>
-<ul class='doctree'>
- <li class='info'>
- Due to the nature of the RDF serializers, Readers and InputStreams are serialized as literals,
- not as RDF text.
- This is due to the fact that the RDF serializers use a DOM for serialization, so we don't have
- access to the underlying stream.
-</ul>
-</div><!-- END: 2.11.18 - juneau-marshall.Transforms.BypassSerialization -->
-</div><!-- END: 2.11 - juneau-marshall.Transforms -->
+<div class='info'>
+ Due to the nature of the RDF serializers, Readers and InputStreams are serialized as literals,
+ not as RDF text.
+ This is due to the fact that the RDF serializers use a DOM for serialization, so we don't have
+ access to the underlying stream.
+</div>
+</div><!-- END: 2.12.18 - juneau-marshall.Transforms.BypassSerialization -->
+</div><!-- END: 2.12 - juneau-marshall.Transforms -->
<!-- ==================================================================================================== -->
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.BeanDictionaries' id='juneau-marshall.BeanDictionaries'>2.12 - Bean Names and Dictionaries</a></h3>
-<div class='topic'><!-- START: 2.12 - juneau-marshall.BeanDictionaries -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.BeanDictionaries' id='juneau-marshall.BeanDictionaries'>2.13 - Bean Names and Dictionaries</a></h3>
+<div class='topic'><!-- START: 2.13 - juneau-marshall.BeanDictionaries -->
<p>
While parsing into beans, Juneau attempts to determine the class types of bean properties through
reflection on the bean property getter or setter.
@@ -3542,24 +3547,25 @@
<jc>// Produces "[{mytype:'C1',...},{mytype:'C2',...}]"</jc>
String json = SimpleJsonSerializer.<jsf>DEFAULT</jsf>.serialize(x);
</p>
-<ul class='doctree'>
- <li class='info'>
- Type names do not need to be universally unique.
- However, they must be unique within a dictionary.
- <li class='info'>
- The following reserved words cannot be used as type names:
- <c>object, array, number, boolean, null</c>.
- <li class='info'>
- Serialized type names are DISABLED by default.
- They must be enabled on the serializer using the
- {@link org.apache.juneau.serializer.Serializer#SERIALIZER_addBeanTypes}
- configuration property.
-</ul>
+<div class='info'>
+ Type names do not need to be universally unique.
+ However, they must be unique within a dictionary.
+</div>
+<div class='info'>
+ The following reserved words cannot be used as type names:
+ <c>object, array, number, boolean, null</c>.
+</div>
+<div class='info'>
+ Serialized type names are DISABLED by default.
+ They must be enabled on the serializer using the
+ {@link org.apache.juneau.serializer.Serializer#SERIALIZER_addBeanTypes}
+ configuration property.
+</div>
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.BeanDictionaries.BeanSubTypes' id='juneau-marshall.BeanDictionaries.BeanSubTypes'>2.12.1 - Bean Subtypes</a></h4>
-<div class='topic'><!-- START: 2.12.1 - juneau-marshall.BeanDictionaries.BeanSubTypes -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.BeanDictionaries.BeanSubTypes' id='juneau-marshall.BeanDictionaries.BeanSubTypes'>2.13.1 - Bean Subtypes</a></h4>
+<div class='topic'><!-- START: 2.13.1 - juneau-marshall.BeanDictionaries.BeanSubTypes -->
<p>
In addition to the bean type name support described above, simplified support is provided
for bean subtypes.
@@ -3614,13 +3620,13 @@
A a = p.parse(r, A.<jk>class</jk>);
<jsm>assertTrue</jsm>(a <jk>instanceof</jk> A1);
</p>
-</div><!-- END: 2.12.1 - juneau-marshall.BeanDictionaries.BeanSubTypes -->
-</div><!-- END: 2.12 - juneau-marshall.BeanDictionaries -->
+</div><!-- END: 2.13.1 - juneau-marshall.BeanDictionaries.BeanSubTypes -->
+</div><!-- END: 2.13 - juneau-marshall.BeanDictionaries -->
<!-- ==================================================================================================== -->
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.VirtualBeans' id='juneau-marshall.VirtualBeans'>2.13 - Virtual Beans</a></h3>
-<div class='topic'><!-- START: 2.13 - juneau-marshall.VirtualBeans -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.VirtualBeans' id='juneau-marshall.VirtualBeans'>2.14 - Virtual Beans</a></h3>
+<div class='topic'><!-- START: 2.14 - juneau-marshall.VirtualBeans -->
<p>
The {@link org.apache.juneau.BeanContext#BEAN_useInterfaceProxies} setting (enabled by default) allows
the Juneau parsers to parse content into virtual beans (bean interfaces without implementation classes).
@@ -3668,12 +3674,12 @@
<p class='bpcode w800'>
Address address = BeanContext.<jsf>DEFAULT</jsf>.createSession().newBean(Address.<jk>class</jk>);
</p>
-</div><!-- END: 2.13 - juneau-marshall.VirtualBeans -->
+</div><!-- END: 2.14 - juneau-marshall.VirtualBeans -->
<!-- ==================================================================================================== -->
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Recursion' id='juneau-marshall.Recursion'>2.14 - Non-Tree Models and Recursion Detection</a></h3>
-<div class='topic'><!-- START: 2.14 - juneau-marshall.Recursion -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Recursion' id='juneau-marshall.Recursion'>2.15 - Non-Tree Models and Recursion Detection</a></h3>
+<div class='topic'><!-- START: 2.15 - juneau-marshall.Recursion -->
<p>
The Juneau Serializer API is designed to be used against POJO tree structures.
It expects that there not be loops in the POJO model (e.g. children with references to parents, etc...).
@@ -3737,12 +3743,12 @@
Recursion detection introduces a performance penalty of around 20%.
For this reason the setting is disabled by default.
</p>
-</div><!-- END: 2.14 - juneau-marshall.Recursion -->
+</div><!-- END: 2.15 - juneau-marshall.Recursion -->
<!-- ==================================================================================================== -->
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.ParsingIntoGenericModels' id='juneau-marshall.ParsingIntoGenericModels'>2.15 - Parsing into Generic Models</a></h3>
-<div class='topic'><!-- START: 2.15 - juneau-marshall.ParsingIntoGenericModels -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.ParsingIntoGenericModels' id='juneau-marshall.ParsingIntoGenericModels'>2.16 - Parsing into Generic Models</a></h3>
+<div class='topic'><!-- START: 2.16 - juneau-marshall.ParsingIntoGenericModels -->
<p>
The Juneau parsers are not limited to parsing back into the original bean classes.
If the bean classes are not available on the parsing side, the parser can also be used to
@@ -3852,12 +3858,12 @@
As a general rule, parsing into beans is often more efficient than parsing into generic models.
And working with beans is often less error prone than working with generic models.
</p>
-</div><!-- END: 2.15 - juneau-marshall.ParsingIntoGenericModels -->
+</div><!-- END: 2.16 - juneau-marshall.ParsingIntoGenericModels -->
<!-- ==================================================================================================== -->
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.ReadingContinuousStreams' id='juneau-marshall.ReadingContinuousStreams'>2.16 - Reading Continuous Streams</a></h3>
-<div class='topic'><!-- START: 2.16 - juneau-marshall.ReadingContinuousStreams -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.ReadingContinuousStreams' id='juneau-marshall.ReadingContinuousStreams'>2.17 - Reading Continuous Streams</a></h3>
+<div class='topic'><!-- START: 2.17 - juneau-marshall.ReadingContinuousStreams -->
<p>
The following parsers can be configured to read continuous streams of objects from the same input stream:
</p>
@@ -3904,12 +3910,12 @@
The {@link org.apache.juneau.msgpack.MsgPackParser} class doesn't use any internal buffering to begin with, so it can be used with
continuous streams without any special properties.
</p>
-</div><!-- END: 2.16 - juneau-marshall.ReadingContinuousStreams -->
+</div><!-- END: 2.17 - juneau-marshall.ReadingContinuousStreams -->
<!-- ==================================================================================================== -->
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.URIs' id='juneau-marshall.URIs'>2.17 - URIs</a></h3>
-<div class='topic'><!-- START: 2.17 - juneau-marshall.URIs -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.URIs' id='juneau-marshall.URIs'>2.18 - URIs</a></h3>
+<div class='topic'><!-- START: 2.18 - juneau-marshall.URIs -->
<p>
Juneau serializers have sophisticated support for transforming relative URIs to absolute form.
</p>
@@ -4047,12 +4053,12 @@
}
}
</p>
-</div><!-- END: 2.17 - juneau-marshall.URIs -->
+</div><!-- END: 2.18 - juneau-marshall.URIs -->
<!-- ==================================================================================================== -->
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.JacksonComparison' id='juneau-marshall.JacksonComparison'>2.18 - Comparison with Jackson</a></h3>
-<div class='topic'><!-- START: 2.18 - juneau-marshall.JacksonComparison -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.JacksonComparison' id='juneau-marshall.JacksonComparison'>2.19 - Comparison with Jackson</a></h3>
+<div class='topic'><!-- START: 2.19 - juneau-marshall.JacksonComparison -->
<p>
Juneau was developed independently from Jackson, but shares many of the same features and capabilities.
Whereas Jackson was created to work primarily with JSON, Juneau was created to work for multiple languages.
@@ -4160,12 +4166,12 @@
</td>
</tr>
</table>
-</div><!-- END: 2.18 - juneau-marshall.JacksonComparison -->
+</div><!-- END: 2.19 - juneau-marshall.JacksonComparison -->
<!-- ==================================================================================================== -->
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.PojoCategories' id='juneau-marshall.PojoCategories'>2.19 - POJO Categories</a></h3>
-<div class='topic'><!-- START: 2.19 - juneau-marshall.PojoCategories -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.PojoCategories' id='juneau-marshall.PojoCategories'>2.20 - POJO Categories</a></h3>
+<div class='topic'><!-- START: 2.20 - juneau-marshall.PojoCategories -->
<p>
The following chart shows POJOs categorized into groups and whether they can be serialized or parsed:
</p>
@@ -4418,15 +4424,14 @@
<td style='background-color:salmon;text-align:center'><b>no</b></td>
</tr>
</table>
-<ul class='doctree'>
- <li class='info'>
- Serializers are designed to work on tree-shaped POJO models.
- These are models where there are no referential loops (e.g. leaves with references to nodes, or nodes
- in one branch referencing nodes in another branch).
- There is a serializer setting {@code detectRecursions} to look for and handle these kinds of loops
- (by setting these references to <jk>null</jk>), but it is not enabled by default since it introduces
- a moderate performance penalty.
-</ul>
+<div class='info'>
+ Serializers are designed to work on tree-shaped POJO models.
+ These are models where there are no referential loops (e.g. leaves with references to nodes, or nodes
+ in one branch referencing nodes in another branch).
+ There is a serializer setting {@code detectRecursions} to look for and handle these kinds of loops
+ (by setting these references to <jk>null</jk>), but it is not enabled by default since it introduces
+ a moderate performance penalty.
+</div>
<h5 class='topic' id='PojosConveribleToStrings'>POJOs convertible to/from Strings</h5>
<p>
@@ -4494,12 +4499,12 @@
<p>
POJOs are considered convertible from X if any of the reverse of above are true.
</p>
-</div><!-- END: 2.19 - juneau-marshall.PojoCategories -->
+</div><!-- END: 2.20 - juneau-marshall.PojoCategories -->
<!-- ==================================================================================================== -->
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails' id='juneau-marshall.JsonDetails'>2.20 - JSON Details</a></h3>
-<div class='topic'><!-- START: 2.20 - juneau-marshall.JsonDetails -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails' id='juneau-marshall.JsonDetails'>2.21 - JSON Details</a></h3>
+<div class='topic'><!-- START: 2.21 - juneau-marshall.JsonDetails -->
<p>
Juneau supports converting arbitrary POJOs to and from JSON using ultra-efficient serializers and parsers.
The JSON serializer converts POJOs directly to JSON without the need for intermediate DOM objects using a
@@ -4581,8 +4586,8 @@
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.Methodology' id='juneau-marshall.JsonDetails.Methodology'>2.20.1 - JSON Methodology</a></h4>
-<div class='topic'><!-- START: 2.20.1 - juneau-marshall.JsonDetails.Methodology -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.Methodology' id='juneau-marshall.JsonDetails.Methodology'>2.21.1 - JSON Methodology</a></h4>
+<div class='topic'><!-- START: 2.21.1 - juneau-marshall.JsonDetails.Methodology -->
<p>
The JSON data type produced depends on the Java object type being serialized.
</p>
@@ -4653,12 +4658,12 @@
<c>Calendar</c> object to ISO8601 strings, or <c><jk>byte</jk>[]</c> arrays to Base-64
encoded strings.
</p>
-</div><!-- END: 2.20.1 - juneau-marshall.JsonDetails.Methodology -->
+</div><!-- END: 2.21.1 - juneau-marshall.JsonDetails.Methodology -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.Serializers' id='juneau-marshall.JsonDetails.Serializers'>2.20.2 - JSON Serializers</a></h4>
-<div class='topic'><!-- START: 2.20.2 - juneau-marshall.JsonDetails.Serializers -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.Serializers' id='juneau-marshall.JsonDetails.Serializers'>2.21.2 - JSON Serializers</a></h4>
+<div class='topic'><!-- START: 2.21.2 - juneau-marshall.JsonDetails.Serializers -->
<p>
The {@link org.apache.juneau.json.JsonSerializer} class is used to serialize POJOs into JSON.
</p>
@@ -4690,12 +4695,12 @@
<li class='jf'>{@link org.apache.juneau.json.SimpleJsonSerializer#DEFAULT_READABLE DEFAULT_READABLE}
</ul>
</ul>
-</div><!-- END: 2.20.2 - juneau-marshall.JsonDetails.Serializers -->
+</div><!-- END: 2.21.2 - juneau-marshall.JsonDetails.Serializers -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.SimplifiedJson' id='juneau-marshall.JsonDetails.SimplifiedJson'>2.20.3 - Simplified JSON</a></h4>
-<div class='topic'><!-- START: 2.20.3 - juneau-marshall.JsonDetails.SimplifiedJson -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.SimplifiedJson' id='juneau-marshall.JsonDetails.SimplifiedJson'>2.21.3 - Simplified JSON</a></h4>
+<div class='topic'><!-- START: 2.21.3 - juneau-marshall.JsonDetails.SimplifiedJson -->
<p>
The {@link org.apache.juneau.json.SimpleJsonSerializer} class can be used to serialized POJOs into Simplified JSON notation.
</p>
@@ -4752,12 +4757,12 @@
<ul>
<li class='jf'>{@link org.apache.juneau.json.JsonSerializer#JSON_simpleMode}
</ul>
-</div><!-- END: 2.20.3 - juneau-marshall.JsonDetails.SimplifiedJson -->
+</div><!-- END: 2.21.3 - juneau-marshall.JsonDetails.SimplifiedJson -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.Parsers' id='juneau-marshall.JsonDetails.Parsers'>2.20.4 - JSON Parsers</a></h4>
-<div class='topic'><!-- START: 2.20.4 - juneau-marshall.JsonDetails.Parsers -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.Parsers' id='juneau-marshall.JsonDetails.Parsers'>2.21.4 - JSON Parsers</a></h4>
+<div class='topic'><!-- START: 2.21.4 - juneau-marshall.JsonDetails.Parsers -->
<p>
The {@link org.apache.juneau.json.JsonParser} class is used to parse JSON into POJOs.
</p>
@@ -4797,12 +4802,12 @@
<li>
Concatenated strings.
</ul>
-</div><!-- END: 2.20.4 - juneau-marshall.JsonDetails.Parsers -->
+</div><!-- END: 2.21.4 - juneau-marshall.JsonDetails.Parsers -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.JsonAnnotation' id='juneau-marshall.JsonDetails.JsonAnnotation'>2.20.5 - @Json Annotation</a></h4>
-<div class='topic'><!-- START: 2.20.5 - juneau-marshall.JsonDetails.JsonAnnotation -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.JsonAnnotation' id='juneau-marshall.JsonDetails.JsonAnnotation'>2.21.5 - @Json Annotation</a></h4>
+<div class='topic'><!-- START: 2.21.5 - juneau-marshall.JsonDetails.JsonAnnotation -->
<p>
The {@link org.apache.juneau.json.annotation.Json @Json} annotation
is used to override the behavior of {@link org.apache.juneau.json.JsonSerializer} on individual bean classes or properties.
@@ -4850,12 +4855,12 @@
</td>
</tr>
</table>
-</div><!-- END: 2.20.5 - juneau-marshall.JsonDetails.JsonAnnotation -->
+</div><!-- END: 2.21.5 - juneau-marshall.JsonDetails.JsonAnnotation -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.JsonSchema' id='juneau-marshall.JsonDetails.JsonSchema'>2.20.6 - JSON-Schema Support</a></h4>
-<div class='topic'><!-- START: 2.20.6 - juneau-marshall.JsonDetails.JsonSchema -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.JsonSchema' id='juneau-marshall.JsonDetails.JsonSchema'>2.21.6 - JSON-Schema Support</a></h4>
+<div class='topic'><!-- START: 2.21.6 - juneau-marshall.JsonDetails.JsonSchema -->
<p>
Juneau provides the {@link org.apache.juneau.json.JsonSchemaSerializer} class for generating JSON-Schema
documents that describe the output generated by the {@link org.apache.juneau.json.JsonSerializer} class.
@@ -4947,13 +4952,13 @@
}
}
</p>
-</div><!-- END: 2.20.6 - juneau-marshall.JsonDetails.JsonSchema -->
-</div><!-- END: 2.20 - juneau-marshall.JsonDetails -->
+</div><!-- END: 2.21.6 - juneau-marshall.JsonDetails.JsonSchema -->
+</div><!-- END: 2.21 - juneau-marshall.JsonDetails -->
<!-- ==================================================================================================== -->
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails' id='juneau-marshall.XmlDetails'>2.21 - XML Details</a></h3>
-<div class='topic'><!-- START: 2.21 - juneau-marshall.XmlDetails -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails' id='juneau-marshall.XmlDetails'>2.22 - XML Details</a></h3>
+<div class='topic'><!-- START: 2.22 - juneau-marshall.XmlDetails -->
<p>
Juneau supports converting arbitrary POJOs to and from XML using ultra-efficient serializers and parsers.
The XML serializer converts POJOs directly to XML without the need for intermediate DOM objects.
@@ -5030,8 +5035,8 @@
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.Methodology' id='juneau-marshall.XmlDetails.Methodology'>2.21.1 - XML Methodology</a></h4>
-<div class='topic'><!-- START: 2.21.1 - juneau-marshall.XmlDetails.Methodology -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.Methodology' id='juneau-marshall.XmlDetails.Methodology'>2.22.1 - XML Methodology</a></h4>
+<div class='topic'><!-- START: 2.22.1 - juneau-marshall.XmlDetails.Methodology -->
<p>
The following examples show how different data types are represented in XML.
They mirror how the data structures are represented in JSON.
@@ -5433,12 +5438,12 @@
</xt></td>
</tr>
</table>
-</div><!-- END: 2.21.1 - juneau-marshall.XmlDetails.Methodology -->
+</div><!-- END: 2.22.1 - juneau-marshall.XmlDetails.Methodology -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.Serializers' id='juneau-marshall.XmlDetails.Serializers'>2.21.2 - XML Serializers</a></h4>
-<div class='topic'><!-- START: 2.21.2 - juneau-marshall.XmlDetails.Serializers -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.Serializers' id='juneau-marshall.XmlDetails.Serializers'>2.22.2 - XML Serializers</a></h4>
+<div class='topic'><!-- START: 2.22.2 - juneau-marshall.XmlDetails.Serializers -->
<p>
The {@link org.apache.juneau.xml.XmlSerializer} class is used to serialize POJOs into XML.
</p>
@@ -5479,12 +5484,12 @@
<li class='jf'>{@link org.apache.juneau.xml.XmlSerializer#DEFAULT_XS_NAMESPACE DEFAULT_XS_NAMESPACE}
</ul>
</ul>
-</div><!-- END: 2.21.2 - juneau-marshall.XmlDetails.Serializers -->
+</div><!-- END: 2.22.2 - juneau-marshall.XmlDetails.Serializers -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.Parsers' id='juneau-marshall.XmlDetails.Parsers'>2.21.3 - XML Parsers</a></h4>
-<div class='topic'><!-- START: 2.21.3 - juneau-marshall.XmlDetails.Parsers -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.Parsers' id='juneau-marshall.XmlDetails.Parsers'>2.22.3 - XML Parsers</a></h4>
+<div class='topic'><!-- START: 2.22.3 - juneau-marshall.XmlDetails.Parsers -->
<p>
The {@link org.apache.juneau.xml.XmlParser} class is used to parse XML into POJOs.
</p>
@@ -5512,12 +5517,12 @@
<li class='jf'>{@link org.apache.juneau.xml.XmlParser#DEFAULT DEFAULT}
</ul>
</ul>
-</div><!-- END: 2.21.3 - juneau-marshall.XmlDetails.Parsers -->
+</div><!-- END: 2.22.3 - juneau-marshall.XmlDetails.Parsers -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.BeanTypeNameAnnotation' id='juneau-marshall.XmlDetails.BeanTypeNameAnnotation'>2.21.4 - @Bean(typeName) Annotation</a></h4>
-<div class='topic'><!-- START: 2.21.4 - juneau-marshall.XmlDetails.BeanTypeNameAnnotation -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.BeanTypeNameAnnotation' id='juneau-marshall.XmlDetails.BeanTypeNameAnnotation'>2.22.4 - @Bean(typeName) Annotation</a></h4>
+<div class='topic'><!-- START: 2.22.4 - juneau-marshall.XmlDetails.BeanTypeNameAnnotation -->
<p>
The {@link org.apache.juneau.annotation.Bean#typeName() @Bean(typeName)} annotation can be used to
override the Juneau default name on bean elements.
@@ -5616,11 +5621,10 @@
</xt></td>
</tr>
</table>
-<ul class='doctree'>
- <li class='info'>
- <c>string</c>, <c>number</c>, <c>boolean</c>, <c>object</c>,
- <c>array</c>, and <c>null</c> are reserved keywords that cannot be used as type names.
-</ul>
+<div class='info'>
+ <c>string</c>, <c>number</c>, <c>boolean</c>, <c>object</c>,
+ <c>array</c>, and <c>null</c> are reserved keywords that cannot be used as type names.
+</div>
<p>
Beans with type names are often used in conjunction with the
{@link org.apache.juneau.annotation.Bean#beanDictionary() @Bean(beanDictionary)} and
@@ -5997,12 +6001,12 @@
{@link javax.xml.stream.XMLInputFactory#IS_REPLACING_ENTITY_REFERENCES} setting in Java
forced us to make some hard design decisions that may not be the most elegant.
</p>
-</div><!-- END: 2.21.4 - juneau-marshall.XmlDetails.BeanTypeNameAnnotation -->
+</div><!-- END: 2.22.4 - juneau-marshall.XmlDetails.BeanTypeNameAnnotation -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.XmlChildNameAnnotation' id='juneau-marshall.XmlDetails.XmlChildNameAnnotation'>2.21.5 - @Xml(childName) Annotation</a></h4>
-<div class='topic'><!-- START: 2.21.5 - juneau-marshall.XmlDetails.XmlChildNameAnnotation -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.XmlChildNameAnnotation' id='juneau-marshall.XmlDetails.XmlChildNameAnnotation'>2.22.5 - @Xml(childName) Annotation</a></h4>
+<div class='topic'><!-- START: 2.22.5 - juneau-marshall.XmlDetails.XmlChildNameAnnotation -->
<p>
The {@link org.apache.juneau.xml.annotation.Xml#childName() @Xml(childName)} annotation can be used to
specify the name of XML child elements for bean properties of type collection or array.
@@ -6086,12 +6090,12 @@
</xt></td>
</tr>
</table>
-</div><!-- END: 2.21.5 - juneau-marshall.XmlDetails.XmlChildNameAnnotation -->
+</div><!-- END: 2.22.5 - juneau-marshall.XmlDetails.XmlChildNameAnnotation -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.XmlFormatAnnotation' id='juneau-marshall.XmlDetails.XmlFormatAnnotation'>2.21.6 - @Xml(format) Annotation</a></h4>
-<div class='topic'><!-- START: 2.21.6 - juneau-marshall.XmlDetails.XmlFormatAnnotation -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.XmlFormatAnnotation' id='juneau-marshall.XmlDetails.XmlFormatAnnotation'>2.22.6 - @Xml(format) Annotation</a></h4>
+<div class='topic'><!-- START: 2.22.6 - juneau-marshall.XmlDetails.XmlFormatAnnotation -->
<p>
The {@link org.apache.juneau.xml.annotation.Xml#format() @Xml(format)} annotation can be used to tweak
the XML format of a POJO.
@@ -6799,12 +6803,12 @@
</xt></td>
</tr>
</table>
-</div><!-- END: 2.21.6 - juneau-marshall.XmlDetails.XmlFormatAnnotation -->
+</div><!-- END: 2.22.6 - juneau-marshall.XmlDetails.XmlFormatAnnotation -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.Namespaces' id='juneau-marshall.XmlDetails.Namespaces'>2.21.7 - Namespaces</a></h4>
-<div class='topic'><!-- START: 2.21.7 - juneau-marshall.XmlDetails.Namespaces -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.Namespaces' id='juneau-marshall.XmlDetails.Namespaces'>2.22.7 - Namespaces</a></h4>
+<div class='topic'><!-- START: 2.22.7 - juneau-marshall.XmlDetails.Namespaces -->
<p>
Let's go back to the example of our original <c>Person</c> bean class, but add some namespace annotations:
</p>
@@ -6970,12 +6974,12 @@
.namespaces(<js>"{per:'http://www.apache.org/person/'}"</js>)
.build();
</p>
-</div><!-- END: 2.21.7 - juneau-marshall.XmlDetails.Namespaces -->
+</div><!-- END: 2.22.7 - juneau-marshall.XmlDetails.Namespaces -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.XmlSchema' id='juneau-marshall.XmlDetails.XmlSchema'>2.21.8 - XML-Schema Support</a></h4>
-<div class='topic'><!-- START: 2.21.8 - juneau-marshall.XmlDetails.XmlSchema -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.XmlSchema' id='juneau-marshall.XmlDetails.XmlSchema'>2.22.8 - XML-Schema Support</a></h4>
+<div class='topic'><!-- START: 2.22.8 - juneau-marshall.XmlDetails.XmlSchema -->
<p>
Juneau provides the {@link org.apache.juneau.xmlschema.XmlSchemaSerializer} class for generating XML-Schema
documents that describe the output generated by the {@link org.apache.juneau.xml.XmlSerializer} class.
@@ -7228,13 +7232,13 @@
#getValidator(SerializerSession,Object)} method is provided to create a
{@link javax.xml.validation.Validator} using the input from the serialize method.
</p>
-</div><!-- END: 2.21.8 - juneau-marshall.XmlDetails.XmlSchema -->
-</div><!-- END: 2.21 - juneau-marshall.XmlDetails -->
+</div><!-- END: 2.22.8 - juneau-marshall.XmlDetails.XmlSchema -->
+</div><!-- END: 2.22 - juneau-marshall.XmlDetails -->
<!-- ==================================================================================================== -->
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails' id='juneau-marshall.HtmlDetails'>2.22 - HTML Details</a></h3>
-<div class='topic'><!-- START: 2.22 - juneau-marshall.HtmlDetails -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails' id='juneau-marshall.HtmlDetails'>2.23 - HTML Details</a></h3>
+<div class='topic'><!-- START: 2.23 - juneau-marshall.HtmlDetails -->
<p>
Juneau supports converting arbitrary POJOs to and from HTML.
Built on top of the existing XML parser, it also uses a STaX parser and creates POJOs directly without intermediate DOM objects.
@@ -7245,8 +7249,8 @@
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.Methodology' id='juneau-marshall.HtmlDetails.Methodology'>2.22.1 - HTML Methodology</a></h4>
-<div class='topic'><!-- START: 2.22.1 - juneau-marshall.HtmlDetails.Methodology -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.Methodology' id='juneau-marshall.HtmlDetails.Methodology'>2.23.1 - HTML Methodology</a></h4>
+<div class='topic'><!-- START: 2.23.1 - juneau-marshall.HtmlDetails.Methodology -->
<p>
The following examples show how different data types are represented in HTML.
They mirror how the data structures are represented in JSON.
@@ -7754,12 +7758,12 @@
</xt></td>
</tr>
</table>
-</div><!-- END: 2.22.1 - juneau-marshall.HtmlDetails.Methodology -->
+</div><!-- END: 2.23.1 - juneau-marshall.HtmlDetails.Methodology -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.Serializers' id='juneau-marshall.HtmlDetails.Serializers'>2.22.2 - HTML Serializers</a></h4>
-<div class='topic'><!-- START: 2.22.2 - juneau-marshall.HtmlDetails.Serializers -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.Serializers' id='juneau-marshall.HtmlDetails.Serializers'>2.23.2 - HTML Serializers</a></h4>
+<div class='topic'><!-- START: 2.23.2 - juneau-marshall.HtmlDetails.Serializers -->
<p>
The {@link org.apache.juneau.html.HtmlSerializer} class is used to serialize POJOs into HTML.
</p>
@@ -7813,12 +7817,12 @@
<li class='jf'>{@link org.apache.juneau.html.HtmlDocSerializer#DEFAULT }
</ul>
</ul>
-</div><!-- END: 2.22.2 - juneau-marshall.HtmlDetails.Serializers -->
+</div><!-- END: 2.23.2 - juneau-marshall.HtmlDetails.Serializers -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.Parsers' id='juneau-marshall.HtmlDetails.Parsers'>2.22.3 - HTML Parsers</a></h4>
-<div class='topic'><!-- START: 2.22.3 - juneau-marshall.HtmlDetails.Parsers -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.Parsers' id='juneau-marshall.HtmlDetails.Parsers'>2.23.3 - HTML Parsers</a></h4>
+<div class='topic'><!-- START: 2.23.3 - juneau-marshall.HtmlDetails.Parsers -->
<p>
The {@link org.apache.juneau.html.HtmlParser} class is used to parse HTML into POJOs.
They can also parse the contents produced by {@link org.apache.juneau.html.HtmlDocSerializer}.
@@ -7839,12 +7843,12 @@
<li class='jf'>{@link org.apache.juneau.html.HtmlParser#DEFAULT DEFAULT}
</ul>
</ul>
-</div><!-- END: 2.22.3 - juneau-marshall.HtmlDetails.Parsers -->
+</div><!-- END: 2.23.3 - juneau-marshall.HtmlDetails.Parsers -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.HtmlAnnotation' id='juneau-marshall.HtmlDetails.HtmlAnnotation'>2.22.4 - @Html Annotation</a></h4>
-<div class='topic'><!-- START: 2.22.4 - juneau-marshall.HtmlDetails.HtmlAnnotation -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.HtmlAnnotation' id='juneau-marshall.HtmlDetails.HtmlAnnotation'>2.23.4 - @Html Annotation</a></h4>
+<div class='topic'><!-- START: 2.23.4 - juneau-marshall.HtmlDetails.HtmlAnnotation -->
<p>
The {@link org.apache.juneau.html.annotation.Html @Html} annotation can be used to customize how POJOs are serialized to HTML on a per-class/field/method basis.
</p>
@@ -7900,12 +7904,12 @@
<p>
The {@link org.apache.juneau.html.annotation.Html#noTables @Html(noTables)} annotation is used to force beans to be serialized as trees instead of tables
</p>
-</div><!-- END: 2.22.4 - juneau-marshall.HtmlDetails.HtmlAnnotation -->
+</div><!-- END: 2.23.4 - juneau-marshall.HtmlDetails.HtmlAnnotation -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.HtmlRenderAnnotation' id='juneau-marshall.HtmlDetails.HtmlRenderAnnotation'>2.22.5 - @Html(render) Annotation</a></h4>
-<div class='topic'><!-- START: 2.22.5 - juneau-marshall.HtmlDetails.HtmlRenderAnnotation -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.HtmlRenderAnnotation' id='juneau-marshall.HtmlDetails.HtmlRenderAnnotation'>2.23.5 - @Html(render) Annotation</a></h4>
+<div class='topic'><!-- START: 2.23.5 - juneau-marshall.HtmlDetails.HtmlRenderAnnotation -->
<p>
The {@link org.apache.juneau.html.annotation.Html#render @Html(render)} annotation allows for custom rendering of bean property values when serialized as HTML.
Using this class, you can alter the CSS style and HTML content of the bean property.
@@ -8007,12 +8011,12 @@
}
}
</p>
-</div><!-- END: 2.22.5 - juneau-marshall.HtmlDetails.HtmlRenderAnnotation -->
+</div><!-- END: 2.23.5 - juneau-marshall.HtmlDetails.HtmlRenderAnnotation -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.HtmlDocSerializer' id='juneau-marshall.HtmlDetails.HtmlDocSerializer'>2.22.6 - HtmlDocSerializer</a></h4>
-<div class='topic'><!-- START: 2.22.6 - juneau-marshall.HtmlDetails.HtmlDocSerializer -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.HtmlDocSerializer' id='juneau-marshall.HtmlDetails.HtmlDocSerializer'>2.23.6 - HtmlDocSerializer</a></h4>
+<div class='topic'><!-- START: 2.23.6 - juneau-marshall.HtmlDetails.HtmlDocSerializer -->
<p>
{@link org.apache.juneau.html.HtmlDocSerializer} is an extension of {@link org.apache.juneau.html.HtmlSerializer}
that wraps serialized POJOs in a complete HTML document.
@@ -8064,12 +8068,12 @@
a template for the HTML page being generated.
The default template is described next.
</p>
-</div><!-- END: 2.22.6 - juneau-marshall.HtmlDetails.HtmlDocSerializer -->
+</div><!-- END: 2.23.6 - juneau-marshall.HtmlDetails.HtmlDocSerializer -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.BasicHtmlDocTemplate' id='juneau-marshall.HtmlDetails.BasicHtmlDocTemplate'>2.22.7 - BasicHtmlDocTemplate</a></h4>
-<div class='topic'><!-- START: 2.22.7 - juneau-marshall.HtmlDetails.BasicHtmlDocTemplate -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.BasicHtmlDocTemplate' id='juneau-marshall.HtmlDetails.BasicHtmlDocTemplate'>2.23.7 - BasicHtmlDocTemplate</a></h4>
+<div class='topic'><!-- START: 2.23.7 - juneau-marshall.HtmlDetails.BasicHtmlDocTemplate -->
<p>
The {@link org.apache.juneau.html.BasicHtmlDocTemplate} class defines a default template for HTML documents
created by {@link org.apache.juneau.html.HtmlDocSerializer}.
@@ -8103,12 +8107,12 @@
</body>
</html></xt>
</p>
-</div><!-- END: 2.22.7 - juneau-marshall.HtmlDetails.BasicHtmlDocTemplate -->
+</div><!-- END: 2.23.7 - juneau-marshall.HtmlDetails.BasicHtmlDocTemplate -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.CustomTemplates' id='juneau-marshall.HtmlDetails.CustomTemplates'>2.22.8 - Custom Templates</a></h4>
-<div class='topic'><!-- START: 2.22.8 - juneau-marshall.HtmlDetails.CustomTemplates -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.CustomTemplates' id='juneau-marshall.HtmlDetails.CustomTemplates'>2.23.8 - Custom Templates</a></h4>
+<div class='topic'><!-- START: 2.23.8 - juneau-marshall.HtmlDetails.CustomTemplates -->
<p>
Custom page templates can be created by implementing the {@link org.apache.juneau.html.HtmlDocTemplate}
interface and associating it with your {@link org.apache.juneau.html.HtmlDocSerializer} using the {@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_template HTMLDOC_template}
@@ -8123,12 +8127,12 @@
<p>
The interface implementation is open-ended allowing you to define the contents of the page any way you wish.
</p>
-</div><!-- END: 2.22.8 - juneau-marshall.HtmlDetails.CustomTemplates -->
+</div><!-- END: 2.23.8 - juneau-marshall.HtmlDetails.CustomTemplates -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.HtmlSchema' id='juneau-marshall.HtmlDetails.HtmlSchema'>2.22.9 - HTML-Schema Support</a></h4>
-<div class='topic'><!-- START: 2.22.9 - juneau-marshall.HtmlDetails.HtmlSchema -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.HtmlSchema' id='juneau-marshall.HtmlDetails.HtmlSchema'>2.23.9 - HTML-Schema Support</a></h4>
+<div class='topic'><!-- START: 2.23.9 - juneau-marshall.HtmlDetails.HtmlSchema -->
<p>
The {@link org.apache.juneau.html.HtmlSchemaSerializer} class is the HTML-equivalent to the
{@link org.apache.juneau.json.JsonSchemaSerializer} class.
@@ -8307,13 +8311,13 @@
</td>
</tr>
</table>
-</div><!-- END: 2.22.9 - juneau-marshall.HtmlDetails.HtmlSchema -->
-</div><!-- END: 2.22 - juneau-marshall.HtmlDetails -->
+</div><!-- END: 2.23.9 - juneau-marshall.HtmlDetails.HtmlSchema -->
+</div><!-- END: 2.23 - juneau-marshall.HtmlDetails -->
<!-- ==================================================================================================== -->
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UonDetails' id='juneau-marshall.UonDetails'>2.23 - UON Details</a></h3>
-<div class='topic'><!-- START: 2.23 - juneau-marshall.UonDetails -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UonDetails' id='juneau-marshall.UonDetails'>2.24 - UON Details</a></h3>
+<div class='topic'><!-- START: 2.24 - juneau-marshall.UonDetails -->
<p>
Juneau supports converting arbitrary POJOs to and from UON strings using ultra-efficient serializers
and parsers.
@@ -8385,8 +8389,8 @@
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UonDetails.Methodology' id='juneau-marshall.UonDetails.Methodology'>2.23.1 - UON Methodology</a></h4>
-<div class='topic'><!-- START: 2.23.1 - juneau-marshall.UonDetails.Methodology -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UonDetails.Methodology' id='juneau-marshall.UonDetails.Methodology'>2.24.1 - UON Methodology</a></h4>
+<div class='topic'><!-- START: 2.24.1 - juneau-marshall.UonDetails.Methodology -->
<h5 class='figure'>General methodology:</h5>
<table class='styled w800' style='border-collapse:collapse'>
<tr><th>Java type</th><th>JSON equivalent</th><th>UON</th></tr>
@@ -8444,12 +8448,12 @@
<p>
Refer to the <a href='doc-files/rfc_uon.txt'>UON specification</a> for a complete set of syntax rules.
</p>
-</div><!-- END: 2.23.1 - juneau-marshall.UonDetails.Methodology -->
+</div><!-- END: 2.24.1 - juneau-marshall.UonDetails.Methodology -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UonDetails.Serializers' id='juneau-marshall.UonDetails.Serializers'>2.23.2 - UON Serializers</a></h4>
-<div class='topic'><!-- START: 2.23.2 - juneau-marshall.UonDetails.Serializers -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UonDetails.Serializers' id='juneau-marshall.UonDetails.Serializers'>2.24.2 - UON Serializers</a></h4>
+<div class='topic'><!-- START: 2.24.2 - juneau-marshall.UonDetails.Serializers -->
<p>
The {@link org.apache.juneau.uon.UonSerializer} class is used to serialize POJOs into UON.
</p>
@@ -8477,12 +8481,12 @@
<li class='jf'>{@link org.apache.juneau.uon.UonSerializer#DEFAULT_READABLE DEFAULT_READABLE}
</ul>
</ul>
-</div><!-- END: 2.23.2 - juneau-marshall.UonDetails.Serializers -->
+</div><!-- END: 2.24.2 - juneau-marshall.UonDetails.Serializers -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UonDetails.Parsers' id='juneau-marshall.UonDetails.Parsers'>2.23.3 - UON Parsers</a></h4>
-<div class='topic'><!-- START: 2.23.3 - juneau-marshall.UonDetails.Parsers -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UonDetails.Parsers' id='juneau-marshall.UonDetails.Parsers'>2.24.3 - UON Parsers</a></h4>
+<div class='topic'><!-- START: 2.24.3 - juneau-marshall.UonDetails.Parsers -->
<p>
The {@link org.apache.juneau.uon.UonParser} class is used to parse UON into POJOs.
</p>
@@ -8508,13 +8512,13 @@
<li class='jf'>{@link org.apache.juneau.uon.UonParser#DEFAULT_DECODING DEFAULT_DECODING}
</ul>
</ul>
-</div><!-- END: 2.23.3 - juneau-marshall.UonDetails.Parsers -->
-</div><!-- END: 2.23 - juneau-marshall.UonDetails -->
+</div><!-- END: 2.24.3 - juneau-marshall.UonDetails.Parsers -->
+</div><!-- END: 2.24 - juneau-marshall.UonDetails -->
<!-- ==================================================================================================== -->
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UrlEncodingDetails' id='juneau-marshall.UrlEncodingDetails'>2.24 - URL-Encoding Details</a></h3>
-<div class='topic'><!-- START: 2.24 - juneau-marshall.UrlEncodingDetails -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UrlEncodingDetails' id='juneau-marshall.UrlEncodingDetails'>2.25 - URL-Encoding Details</a></h3>
+<div class='topic'><!-- START: 2.25 - juneau-marshall.UrlEncodingDetails -->
<p>
Juneau supports converting arbitrary POJOs to and from URL-encoded strings using ultra-efficient serializers
and parsers.
@@ -8584,8 +8588,8 @@
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UrlEncodingDetails.Methodology' id='juneau-marshall.UrlEncodingDetails.Methodology'>2.24.1 - URL-Encoding Methodology</a></h4>
-<div class='topic'><!-- START: 2.24.1 - juneau-marshall.UrlEncodingDetails.Methodology -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UrlEncodingDetails.Methodology' id='juneau-marshall.UrlEncodingDetails.Methodology'>2.25.1 - URL-Encoding Methodology</a></h4>
+<div class='topic'><!-- START: 2.25.1 - juneau-marshall.UrlEncodingDetails.Methodology -->
<h5 class='figure'>General methodology:</h5>
<table class='styled w800' style='border-collapse:collapse'>
<tr><th>Java type</th><th>JSON equivalent</th><th>UON</th></tr>
@@ -8643,12 +8647,12 @@
<p>
Refer to the <a href='doc-files/rfc_uon.txt'>UON specification</a> for a complete set of syntax rules.
</p>
-</div><!-- END: 2.24.1 - juneau-marshall.UrlEncodingDetails.Methodology -->
+</div><!-- END: 2.25.1 - juneau-marshall.UrlEncodingDetails.Methodology -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UrlEncodingDetails.Serializers' id='juneau-marshall.UrlEncodingDetails.Serializers'>2.24.2 - URL-Encoding Serializers</a></h4>
-<div class='topic'><!-- START: 2.24.2 - juneau-marshall.UrlEncodingDetails.Serializers -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UrlEncodingDetails.Serializers' id='juneau-marshall.UrlEncodingDetails.Serializers'>2.25.2 - URL-Encoding Serializers</a></h4>
+<div class='topic'><!-- START: 2.25.2 - juneau-marshall.UrlEncodingDetails.Serializers -->
<p>
The {@link org.apache.juneau.urlencoding.UrlEncodingSerializer} class is used to serialize POJOs into URL-Encoding.
</p>
@@ -8676,12 +8680,12 @@
</ul>
</ul>
-</div><!-- END: 2.24.2 - juneau-marshall.UrlEncodingDetails.Serializers -->
+</div><!-- END: 2.25.2 - juneau-marshall.UrlEncodingDetails.Serializers -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UrlEncodingDetails.Parsers' id='juneau-marshall.UrlEncodingDetails.Parsers'>2.24.3 - URL-Encoding Parsers</a></h4>
-<div class='topic'><!-- START: 2.24.3 - juneau-marshall.UrlEncodingDetails.Parsers -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UrlEncodingDetails.Parsers' id='juneau-marshall.UrlEncodingDetails.Parsers'>2.25.3 - URL-Encoding Parsers</a></h4>
+<div class='topic'><!-- START: 2.25.3 - juneau-marshall.UrlEncodingDetails.Parsers -->
<p>
The {@link org.apache.juneau.urlencoding.UrlEncodingParser} class is used to parse URL-Encoding into POJOs.
</p>
@@ -8705,12 +8709,12 @@
<li class='jf'>{@link org.apache.juneau.urlencoding.UrlEncodingParser#DEFAULT DEFAULT}
</ul>
</ul>
-</div><!-- END: 2.24.3 - juneau-marshall.UrlEncodingDetails.Parsers -->
+</div><!-- END: 2.25.3 - juneau-marshall.UrlEncodingDetails.Parsers -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UrlEncodingDetails.UrlEncodingAnnotation' id='juneau-marshall.UrlEncodingDetails.UrlEncodingAnnotation'>2.24.4 - @UrlEncoding Annotation</a></h4>
-<div class='topic'><!-- START: 2.24.4 - juneau-marshall.UrlEncodingDetails.UrlEncodingAnnotation -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UrlEncodingDetails.UrlEncodingAnnotation' id='juneau-marshall.UrlEncodingDetails.UrlEncodingAnnotation'>2.25.4 - @UrlEncoding Annotation</a></h4>
+<div class='topic'><!-- START: 2.25.4 - juneau-marshall.UrlEncodingDetails.UrlEncodingAnnotation -->
<p>
The {@link org.apache.juneau.urlencoding.annotation.UrlEncoding @UrlEncoding} annotation
is used to override the behavior of {@link org.apache.juneau.urlencoding.UrlEncodingSerializer} on individual bean classes or properties.
@@ -8727,13 +8731,13 @@
It's identical in behavior to using the {@link org.apache.juneau.urlencoding.UrlEncodingSerializer#URLENC_expandedParams}
and {@link org.apache.juneau.urlencoding.UrlEncodingParser#URLENC_expandedParams} properties, but applies to only individual bean properties.
</p>
-</div><!-- END: 2.24.4 - juneau-marshall.UrlEncodingDetails.UrlEncodingAnnotation -->
-</div><!-- END: 2.24 - juneau-marshall.UrlEncodingDetails -->
+</div><!-- END: 2.25.4 - juneau-marshall.UrlEncodingDetails.UrlEncodingAnnotation -->
+</div><!-- END: 2.25 - juneau-marshall.UrlEncodingDetails -->
<!-- ==================================================================================================== -->
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.MsgPackDetails' id='juneau-marshall.MsgPackDetails'>2.25 - MessagePack Details</a></h3>
-<div class='topic'><!-- START: 2.25 - juneau-marshall.MsgPackDetails -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.MsgPackDetails' id='juneau-marshall.MsgPackDetails'>2.26 - MessagePack Details</a></h3>
+<div class='topic'><!-- START: 2.26 - juneau-marshall.MsgPackDetails -->
<p>
Juneau supports converting arbitrary POJOs to and from MessagePack using ultra-efficient serializers
and parsers.
@@ -8745,8 +8749,8 @@
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.MsgPackDetails.Serializers' id='juneau-marshall.MsgPackDetails.Serializers'>2.25.1 - MessagePack Serializers</a></h4>
-<div class='topic'><!-- START: 2.25.1 - juneau-marshall.MsgPackDetails.Serializers -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.MsgPackDetails.Serializers' id='juneau-marshall.MsgPackDetails.Serializers'>2.26.1 - MessagePack Serializers</a></h4>
+<div class='topic'><!-- START: 2.26.1 - juneau-marshall.MsgPackDetails.Serializers -->
<p>
The {@link org.apache.juneau.msgpack.MsgPackSerializer} class is used to serialize POJOs into MessagePack.
</p>
@@ -8771,12 +8775,12 @@
</ul>
</ul>
-</div><!-- END: 2.25.1 - juneau-marshall.MsgPackDetails.Serializers -->
+</div><!-- END: 2.26.1 - juneau-marshall.MsgPackDetails.Serializers -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.MsgPackDetails.Parsers' id='juneau-marshall.MsgPackDetails.Parsers'>2.25.2 - MessagePack Parsers</a></h4>
-<div class='topic'><!-- START: 2.25.2 - juneau-marshall.MsgPackDetails.Parsers -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.MsgPackDetails.Parsers' id='juneau-marshall.MsgPackDetails.Parsers'>2.26.2 - MessagePack Parsers</a></h4>
+<div class='topic'><!-- START: 2.26.2 - juneau-marshall.MsgPackDetails.Parsers -->
<p>
The {@link org.apache.juneau.msgpack.MsgPackParser} class is used to parse MessagePack into POJOs.
</p>
@@ -8796,13 +8800,13 @@
<li class='jf'>{@link org.apache.juneau.msgpack.MsgPackParser#DEFAULT DEFAULT}
</ul>
</ul>
-</div><!-- END: 2.25.2 - juneau-marshall.MsgPackDetails.Parsers -->
-</div><!-- END: 2.25 - juneau-marshall.MsgPackDetails -->
+</div><!-- END: 2.26.2 - juneau-marshall.MsgPackDetails.Parsers -->
+</div><!-- END: 2.26 - juneau-marshall.MsgPackDetails -->
<!-- ==================================================================================================== -->
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.OpenApiDetails' id='juneau-marshall.OpenApiDetails'>2.26 - OpenAPI Details</a></h3>
-<div class='topic'><!-- START: 2.26 - juneau-marshall.OpenApiDetails -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.OpenApiDetails' id='juneau-marshall.OpenApiDetails'>2.27 - OpenAPI Details</a></h3>
+<div class='topic'><!-- START: 2.27 - juneau-marshall.OpenApiDetails -->
<p>
Juneau supports converting arbitrary POJOs to and from strings using OpenAPI-based schema rules.
</p>
@@ -8836,8 +8840,8 @@
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.OpenApiDetails.Methodology' id='juneau-marshall.OpenApiDetails.Methodology'>2.26.1 - OpenAPI Methodology</a></h4>
-<div class='topic'><!-- START: 2.26.1 - juneau-marshall.OpenApiDetails.Methodology -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.OpenApiDetails.Methodology' id='juneau-marshall.OpenApiDetails.Methodology'>2.27.1 - OpenAPI Methodology</a></h4>
+<div class='topic'><!-- START: 2.27.1 - juneau-marshall.OpenApiDetails.Methodology -->
<p>
Unlike the other Juneau serializers and parsers that convert input and output directly to-and-from POJOs,
the OpenAPI serializers and parsers use intermediate objects based on the <c>type</c> and <c>format</c>
@@ -8978,12 +8982,12 @@
<p>
The next sections go more into depth on serializing and parsing various POJO types.
</p>
-</div><!-- END: 2.26.1 - juneau-marshall.OpenApiDetails.Methodology -->
+</div><!-- END: 2.27.1 - juneau-marshall.OpenApiDetails.Methodology -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.OpenApiDetails.Serializers' id='juneau-marshall.OpenApiDetails.Serializers'>2.26.2 - OpenAPI Serializers</a></h4>
-<div class='topic'><!-- START: 2.26.2 - juneau-marshall.OpenApiDetails.Serializers -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.OpenApiDetails.Serializers' id='juneau-marshall.OpenApiDetails.Serializers'>2.27.2 - OpenAPI Serializers</a></h4>
+<div class='topic'><!-- START: 2.27.2 - juneau-marshall.OpenApiDetails.Serializers -->
<p>
The {@link org.apache.juneau.oapi.OpenApiSerializer} class is used to convert POJOs to HTTP parts.
</p>
@@ -9417,12 +9421,12 @@
However, you will get <c>SerializeExceptions</c> if you attempt an impossible conversion.
(e.g. trying to serialize the string "foo" as a boolean).
</ul>
-</div><!-- END: 2.26.2 - juneau-marshall.OpenApiDetails.Serializers -->
+</div><!-- END: 2.27.2 - juneau-marshall.OpenApiDetails.Serializers -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.OpenApiDetails.Parsers' id='juneau-marshall.OpenApiDetails.Parsers'>2.26.3 - OpenAPI Parsers</a></h4>
-<div class='topic'><!-- START: 2.26.3 - juneau-marshall.OpenApiDetails.Parsers -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.OpenApiDetails.Parsers' id='juneau-marshall.OpenApiDetails.Parsers'>2.27.3 - OpenAPI Parsers</a></h4>
+<div class='topic'><!-- START: 2.27.3 - juneau-marshall.OpenApiDetails.Parsers -->
<p>
The {@link org.apache.juneau.oapi.OpenApiParser} class is used to convert HTTP parts back into POJOs.
</p>
@@ -9751,13 +9755,13 @@
However, you will get <c>ParseExceptions</c> if you attempt an impossible conversion.
(e.g. trying to parse the string "foo" into a boolean).
</ul>
-</div><!-- END: 2.26.3 - juneau-marshall.OpenApiDetails.Parsers -->
-</div><!-- END: 2.26 - juneau-marshall.OpenApiDetails -->
+</div><!-- END: 2.27.3 - juneau-marshall.OpenApiDetails.Parsers -->
+</div><!-- END: 2.27 - juneau-marshall.OpenApiDetails -->
<!-- ==================================================================================================== -->
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.BestPractices' id='juneau-marshall.BestPractices'>2.27 - Best Practices</a></h3>
-<div class='topic'><!-- START: 2.27 - juneau-marshall.BestPractices -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.BestPractices' id='juneau-marshall.BestPractices'>2.28 - Best Practices</a></h3>
+<div class='topic'><!-- START: 2.28 - juneau-marshall.BestPractices -->
<ol class='spaced-list'>
<li>
Reuse instances of serializers and parsers whenever possible.
@@ -9781,7 +9785,7 @@
take in {@link java.lang.Class} or {@link java.lang.Object} parameters, since the latter methods involve
hash lookups to resolve to {@link org.apache.juneau.ClassMeta} parameters.
</ol>
-</div><!-- END: 2.27 - juneau-marshall.BestPractices -->
+</div><!-- END: 2.28 - juneau-marshall.BestPractices -->
</div><!-- END: 2 - juneau-marshall -->
<!-- ==================================================================================================== -->
@@ -16225,14 +16229,13 @@
</p>
<h5 class='section'>Notes:</h5>
-<ul class='doctree'>
- <li class='warn'>
- This annotation should not be combined with the {@link org.apache.juneau.http.annotation.Body @Body} annotation or {@link org.apache.juneau.rest.RestRequest#getBody()} method
- for <c>application/x-www-form-urlencoded POST</c> posts, since it will trigger the underlying servlet
- API to parse the body content as key-value pairs resulting in empty content.
- <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.
-</ul>
+<div class='warn'>
+ This annotation should not be combined with the {@link org.apache.juneau.http.annotation.Body @Body} annotation or {@link org.apache.juneau.rest.RestRequest#getBody()} method
+ for <c>application/x-www-form-urlencoded POST</c> posts, since it will trigger the underlying servlet
+ API to parse the body content as key-value pairs resulting in empty content.
+ <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>
<h5 class='section'>See Also:</h5>
<ul>
<li class='jc'>{@link org.apache.juneau.rest.RequestFormData}
@@ -17552,15 +17555,14 @@
in addition to URL-Encoding.
The latter approach only supports URL-Encoding.
</p>
-<ul class='doctree'>
- <li class='warn'>
- If you're using form input beans, DO NOT use the <l>@FormData</l> attribute or
- {@link org.apache.juneau.rest.RestRequest#getParameter(String)} method since this will cause the
- underlying JEE servlet to parse the HTTP body as a form post.
- <br>Your input bean will end up being null since there won't be any content left after the servlet
- has parsed the body of the request.
- <br>This applies to WHENEVER you use <l>@Body</l> or {@link org.apache.juneau.rest.RestRequest#getBody()}
-</ul>
+<div class='warn'>
+ If you're using form input beans, DO NOT use the <l>@FormData</l> attribute or
+ {@link org.apache.juneau.rest.RestRequest#getParameter(String)} method since this will cause the
+ underlying JEE servlet to parse the HTTP body as a form post.
+ <br>Your input bean will end up being null since there won't be any content left after the servlet
+ has parsed the body of the request.
+ <br>This applies to WHENEVER you use <l>@Body</l> or {@link org.apache.juneau.rest.RestRequest#getBody()}
+</div>
</div><!-- END: 7.11 - juneau-rest-server.HandlingFormPosts -->
<!-- ==================================================================================================== -->
@@ -17956,7 +17958,7 @@
<!-- ==================================================================================================== -->
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-rest-server.Transforms' id='juneau-rest-server.Transforms'>7.17 - Transforms</a></h3>
+<h3 class='topic todo' onclick='toggle(this)'><a href='#juneau-rest-server.Transforms' id='juneau-rest-server.Transforms'>7.17 - Transforms</a></h3>
<div class='topic'><!-- START: 7.17 - juneau-rest-server.Transforms -->
<p>
The Juneau serializers and parsers can be configured on how to handle POJOs through the use of Transforms.
@@ -35897,6 +35899,35 @@
<li>
Serializer and parser APIs now throw <c>IOExceptions</c> in addition to <c>SerializeException</c> and <c>ParseException</c> to make it
easier to determine if problems are stream based or syntax based.
+ <li>
+ New Java 8 date-time transforms:
+ <ul class='doctree'>
+ <li class='jc'>{@link org.apache.juneau.transforms.TemporalSwap} - For all Java 8 temporal types (e.g. {@link java.time.ZonedDateTime})
+ <li class='jc'>{@link org.apache.juneau.transforms.TemporalDateSwap} - For {@link java.util.Date}
+ <li class='jc'>{@link org.apache.juneau.transforms.TemporalCalendarSwap} - For {@link java.util.Calendar}
+ </ul>
+ <li>
+ All serializers and parsers now have built-in default swaps for common class types:
+ <ul class='doctree'>
+ <li class='jc'>{@link java.util.Enumeration}
+ <li class='jc'>{@link java.util.Iterator}
+ <li class='jc'>{@link java.util.Locale}
+ <li class='jc'>{@link java.util.Calendar} - ISO offset date-time.
+ <li class='jc'>{@link java.util.Date} - Local date-time
+ <li class='jc'>{@link java.time.Instant} - ISO instant.
+ <li class='jc'>{@link java.time.ZonedDateTime} - ISO offset date-time.
+ <li class='jc'>{@link java.time.LocalDate} - ISO local date.
+ <li class='jc'>{@link java.time.LocalDateTime} - ISO local date-time.
+ <li class='jc'>{@link java.time.LocalTime} - ISO local time.
+ <li class='jc'>{@link java.time.OffsetDateTime} - ISO offset date-time.
+ <li class='jc'>{@link java.time.OffsetTime} - ISO offset time.
+ <li class='jc'>{@link java.time.Year} - ISO year.
+ <li class='jc'>{@link java.time.YearMonth} - ISO year-month.
+ <li class='jc'>{@link java.time.Temporal} - ISO instant.
+ <li class='jc'>{@link java.util.TimeZone}
+ <li class='jc'>{@link javax.xml.datatype.XMLGregorianCalendar}
+ <li class='jc'>{@link java.time.ZoneId}
+ </ul>
</ul>
<h5 class='topic w800'>juneau-config</h5>
diff --git a/juneau-doc/src/main/javadoc/resources/docs.txt b/juneau-doc/src/main/javadoc/resources/docs.txt
index 29df1ca..18bcec6 100644
--- a/juneau-doc/src/main/javadoc/resources/docs.txt
+++ b/juneau-doc/src/main/javadoc/resources/docs.txt
@@ -135,6 +135,7 @@ juneau-marshall.ConfigurableProperties.Common = #juneau-marshall.ConfigurablePro
juneau-marshall.ConfigurableProperties.CommonParser = #juneau-marshall.ConfigurableProperties.CommonParser, Overview > juneau-marshall > Configurable Properties > Common Parser Properties
juneau-marshall.ConfigurableProperties.CommonSerializer = #juneau-marshall.ConfigurableProperties.CommonSerializer, Overview > juneau-marshall > Configurable Properties > Common Serializer Properties
juneau-marshall.ContextsBuildersSessionsPropertyStores = #juneau-marshall.ContextsBuildersSessionsPropertyStores, Overview > juneau-marshall > Contexts, Builders, Sessions, and PropertyStores
+juneau-marshall.DefaultTransforms = #juneau-marshall.DefaultTransforms, Overview > juneau-marshall > Default Transforms
juneau-marshall.Groups = #juneau-marshall.Groups, Overview > juneau-marshall > SerializerGroups and ParserGroups
juneau-marshall.HtmlDetails = #juneau-marshall.HtmlDetails, Overview > juneau-marshall > HTML Details
juneau-marshall.HtmlDetails.BasicHtmlDocTemplate = #juneau-marshall.HtmlDetails.BasicHtmlDocTemplate, Overview > juneau-marshall > HTML Details > BasicHtmlDocTemplate
diff --git a/juneau-doc/src/main/javadoc/resources/fragments/toc.html b/juneau-doc/src/main/javadoc/resources/fragments/toc.html
index f6e7edc..f54622f 100644
--- a/juneau-doc/src/main/javadoc/resources/fragments/toc.html
+++ b/juneau-doc/src/main/javadoc/resources/fragments/toc.html
@@ -35,9 +35,10 @@
<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.ObjectMap'>ObjectMap and ObjectList</a></p>
<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.Groups'>SerializerGroups and ParserGroups</a></p>
<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.ContextsBuildersSessionsPropertyStores'>Contexts, Builders, Sessions, and PropertyStores</a></p>
+ <li><p class='todo'><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.DefaultTransforms'>Default Transforms</a></p>
<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.Transforms'>Transforms</a></p>
<ol>
- <li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.Transforms.PojoSwaps'>PojoSwaps</a></p>
+ <li><p class='todo'><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.Transforms.PojoSwaps'>PojoSwaps</a></p>
<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.Transforms.PerMediaTypePojoSwaps'>Per-media-type PojoSwaps</a></p>
<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.Transforms.OneWayPojoSwaps'>One-way PojoSwaps</a></p>
<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.Transforms.SwapAnnotation'>@Swap Annotation</a></p>
@@ -259,7 +260,7 @@
<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-server.Parsers'>Parsers</a></p>
<li><p class='todo'><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-server.Properties'>Properties</a></p>
<li><p class='new'><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-server.ConfigAnnotations'>Config annotations</a></p>
- <li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-server.Transforms'>Transforms</a></p>
+ <li><p class='todo'><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-server.Transforms'>Transforms</a></p>
<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-server.URIs'>URIs</a></p>
<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-server.Guards'>Guards</a></p>
<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-server.Converters'>Converters</a></p>
diff --git a/juneau-doc/src/main/javadoc/resources/juneau-code.css b/juneau-doc/src/main/javadoc/resources/juneau-code.css
index 3f33d90..f7cf4dd 100644
--- a/juneau-doc/src/main/javadoc/resources/juneau-code.css
+++ b/juneau-doc/src/main/javadoc/resources/juneau-code.css
@@ -64,7 +64,7 @@ xt,xa,xc,xs,
mc,mk,mv,
cc,cs,ck,ce,
c,dc,bc {
- font-size: 9pt;
+ font-size: 10pt;
white-space: pre;
font-family: monospace;
tab-size: 3;
diff --git a/juneau-doc/src/main/javadoc/resources/juneau-doc.css b/juneau-doc/src/main/javadoc/resources/juneau-doc.css
index feab687..696e025 100755
--- a/juneau-doc/src/main/javadoc/resources/juneau-doc.css
+++ b/juneau-doc/src/main/javadoc/resources/juneau-doc.css
@@ -47,6 +47,10 @@
max-width: 800px;
}
+body {
+ -webkit-font-smoothing: antialiased;
+}
+
/*--- Override formatting on <table class='styled'> ---*/
table.styled,.contentContainer .description table.styled,.contentContainer ul li table.styled,ul.blockList ul.blockList li.blockList table.styled
{
@@ -346,35 +350,26 @@ li.sublink {
li.extlink {
list-style-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAsTAAALEwEAmpwYAAABWWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp0aWZ [...]
}
-li.info {
- list-style-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAMKGlDQ1BJQ0MgUHJvZmlsZQAASImVlwdYU8kWgOeWJCQktEAEpITeBOlVeo0gIB1shCSQUGJICCJ2dFHBtaBiwYquitjWAsiiInZlEez9oQiKsi4WbKC8SQLo6vfe+975vrn3z5kzZ845d+7kDgCq0WyRKBtVAyBHmCeOCQ1gJiWnMElPAAYYQBW4Akc2RyLyj46OAFCG7/+U97cAIrtft5X5+rn/v4o6lyfhAIBEQ07jSjg5kI8CgLtyROI8AAg9UG8yI08EmQijBJpiGCBkUxlnKNhdxmkKjpDbxMUEQk4FQInKZoszAFCRxcXM52RAPyrLINsLuQIh5AbIPhw+mwt5APKYnJzpkFUtIVumfecn4x8+00Z8stkZI6zIRS5KQQKJKJs98/8 [...]
-}
-li.warn {
- list-style-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAMKGlDQ1BJQ0MgUHJvZmlsZQAASImVlwdYU8kWgOeWJCQktEAEpITeBOlVeo0gIB1shCSQUGJICCJ2dFHBtaBiwYquitjWAsiiInZlEez9oQiKsi4WbKC8SQLo6vfe+975vrn3z5kzZ845d+7kDgCq0WyRKBtVAyBHmCeOCQ1gJiWnMElPAAYYQBW4Akc2RyLyj46OAFCG7/+U97cAIrtft5X5+rn/v4o6lyfhAIBEQ07jSjg5kI8CgLtyROI8AAg9UG8yI08EmQijBJpiGCBkUxlnKNhdxmkKjpDbxMUEQk4FQInKZoszAFCRxcXM52RAPyrLINsLuQIh5AbIPhw+mwt5APKYnJzpkFUtIVumfecn4x8+00Z8stkZI6zIRS5KQQKJKJs98/8 [...]
-}
-li.severe {
- list-style-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAMKGlDQ1BJQ0MgUHJvZmlsZQAASImVlwdYU8kWgOeWJCQktEAEpITeBOlVeo0gIB1shCSQUGJICCJ2dFHBtaBiwYquitjWAsiiInZlEez9oQiKsi4WbKC8SQLo6vfe+975vrn3z5kzZ845d+7kDgCq0WyRKBtVAyBHmCeOCQ1gJiWnMElPAAYYQBW4Akc2RyLyj46OAFCG7/+U97cAIrtft5X5+rn/v4o6lyfhAIBEQ07jSjg5kI8CgLtyROI8AAg9UG8yI08EmQijBJpiGCBkUxlnKNhdxmkKjpDbxMUEQk4FQInKZoszAFCRxcXM52RAPyrLINsLuQIh5AbIPhw+mwt5APKYnJzpkFUtIVumfecn4x8+00Z8stkZI6zIRS5KQQKJKJs98/8 [...]
-}
li.jc {
- list-style-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAMKGlDQ1BJQ0MgUHJvZmlsZQAASImVlwdYU8kWgOeWJCQktEAEpITeBOlVeo0gIB1shCSQUGJICCJ2dFHBtaBiwYquitjWAsiiInZlEez9oQiKsi4WbKC8SQLo6vfe+975vrn3z5kzZ845d+7kDgCq0WyRKBtVAyBHmCeOCQ1gJiWnMElPAAYYQBW4Akc2RyLyj46OAFCG7/+U97cAIrtft5X5+rn/v4o6lyfhAIBEQ07jSjg5kI8CgLtyROI8AAg9UG8yI08EmQijBJpiGCBkUxlnKNhdxmkKjpDbxMUEQk4FQInKZoszAFCRxcXM52RAPyrLINsLuQIh5AbIPhw+mwt5APKYnJzpkFUtIVumfecn4x8+00Z8stkZI6zIRS5KQQKJKJs98/8 [...]
+ list-style-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgCglpZD0ic3ZnMjgxMCIgCgl4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIAoJeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIAoJaGVpZ2h0PSIxNiIgCgl3aWR0aD0iMjQiIAoJdmVyc2lvbj0iMS4wIiAKCXZpZXdCb3g9IjAgLTEyMCA0ODAgNjAwIj4KICA8c3R5bGU+CiAgICAuaGVhdnkgeyBmb250OiBib2xkIDM1MHB4IHNhbnMtc2VyaWY7IHRleHQtc2hhZG93OiAxcHggMXB4IDFweCBibGFjazt9CiAgPC9zdHlsZT4KCTxkZWZ [...]
}
li.jac {
- list-style-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAMKGlDQ1BJQ0MgUHJvZmlsZQAASImVlwdYU8kWgOeWJCQktEAEpITeBOlVeo0gIB1shCSQUGJICCJ2dFHBtaBiwYquitjWAsiiInZlEez9oQiKsi4WbKC8SQLo6vfe+975vrn3z5kzZ845d+7kDgCq0WyRKBtVAyBHmCeOCQ1gJiWnMElPAAYYQBW4Akc2RyLyj46OAFCG7/+U97cAIrtft5X5+rn/v4o6lyfhAIBEQ07jSjg5kI8CgLtyROI8AAg9UG8yI08EmQijBJpiGCBkUxlnKNhdxmkKjpDbxMUEQk4FQInKZoszAFCRxcXM52RAPyrLINsLuQIh5AbIPhw+mwt5APKYnJzpkFUtIVumfecn4x8+00Z8stkZI6zIRS5KQQKJKJs98/8 [...]
+ list-style-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgCglpZD0ic3ZnMjgxMCIgCgl4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIAoJeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIAoJaGVpZ2h0PSIxNiIgCgl3aWR0aD0iMjQiIAoJdmVyc2lvbj0iMS4wIiAKCXZpZXdCb3g9IjAgLTEyMCA0ODAgNjAwIj4KICA8c3R5bGU+CiAgICAuaGVhdnkgeyBmb250OiBib2xkIDM1MHB4IHNhbnMtc2VyaWY7IHRleHQtc2hhZG93OiAxcHggMXB4IDFweCBibGFjazt9CiAgPC9zdHlsZT4KCTxkZWZ [...]
}
li.jic {
- list-style-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAMKGlDQ1BJQ0MgUHJvZmlsZQAASImVlwdYU8kWgOeWJCQktEAEpITeBOlVeo0gIB1shCSQUGJICCJ2dFHBtaBiwYquitjWAsiiInZlEez9oQiKsi4WbKC8SQLo6vfe+975vrn3z5kzZ845d+7kDgCq0WyRKBtVAyBHmCeOCQ1gJiWnMElPAAYYQBW4Akc2RyLyj46OAFCG7/+U97cAIrtft5X5+rn/v4o6lyfhAIBEQ07jSjg5kI8CgLtyROI8AAg9UG8yI08EmQijBJpiGCBkUxlnKNhdxmkKjpDbxMUEQk4FQInKZoszAFCRxcXM52RAPyrLINsLuQIh5AbIPhw+mwt5APKYnJzpkFUtIVumfecn4x8+00Z8stkZI6zIRS5KQQKJKJs98/8 [...]
+ list-style-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgCglpZD0ic3ZnMjgxMCIgCgl4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIAoJeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIAoJaGVpZ2h0PSIxNiIgCgl3aWR0aD0iMjQiIAoJdmVyc2lvbj0iMS4wIiAKCXZpZXdCb3g9IjAgLTEyMCA0ODAgNjAwIj4KICA8c3R5bGU+CiAgICAuaGVhdnkgeyBmb250OiBib2xkIDM1MHB4IHNhbnMtc2VyaWY7IHRleHQtc2hhZG93OiAxcHggMXB4IDFweCBibGFjazt9CiAgPC9zdHlsZT4KCTxkZWZ [...]
}
li.ja {
- list-style-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAMKGlDQ1BJQ0MgUHJvZmlsZQAASImVlwdYU8kWgOeWJCQktEAEpITeBOlVeo0gIB1shCSQUGJICCJ2dFHBtaBiwYquitjWAsiiInZlEez9oQiKsi4WbKC8SQLo6vfe+975vrn3z5kzZ845d+7kDgCq0WyRKBtVAyBHmCeOCQ1gJiWnMElPAAYYQBW4Akc2RyLyj46OAFCG7/+U97cAIrtft5X5+rn/v4o6lyfhAIBEQ07jSjg5kI8CgLtyROI8AAg9UG8yI08EmQijBJpiGCBkUxlnKNhdxmkKjpDbxMUEQk4FQInKZoszAFCRxcXM52RAPyrLINsLuQIh5AbIPhw+mwt5APKYnJzpkFUtIVumfecn4x8+00Z8stkZI6zIRS5KQQKJKJs98/8 [...]
+ list-style-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgCglpZD0ic3ZnMjgxMCIgCgl4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIAoJeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIAoJaGVpZ2h0PSIxNiIgCgl3aWR0aD0iMjQiIAoJdmVyc2lvbj0iMS4wIiAKCXZpZXdCb3g9IjAgLTEyMCA0ODAgNjAwIj4KICA8c3R5bGU+CiAgICAuaGVhdnkgeyBmb250OiBib2xkIDM1MHB4IHNhbnMtc2VyaWY7IHRleHQtc2hhZG93OiAxcHggMXB4IDFweCBibGFjazt9CiAgPC9zdHlsZT4KCTxkZWZ [...]
}
li.jm {
- list-style-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAMKGlDQ1BJQ0MgUHJvZmlsZQAASImVlwdYU8kWgOeWJCQktEAEpITeBOlVeo0gIB1shCSQUGJICCJ2dFHBtaBiwYquitjWAsiiInZlEez9oQiKsi4WbKC8SQLo6vfe+975vrn3z5kzZ845d+7kDgCq0WyRKBtVAyBHmCeOCQ1gJiWnMElPAAYYQBW4Akc2RyLyj46OAFCG7/+U97cAIrtft5X5+rn/v4o6lyfhAIBEQ07jSjg5kI8CgLtyROI8AAg9UG8yI08EmQijBJpiGCBkUxlnKNhdxmkKjpDbxMUEQk4FQInKZoszAFCRxcXM52RAPyrLINsLuQIh5AbIPhw+mwt5APKYnJzpkFUtIVumfecn4x8+00Z8stkZI6zIRS5KQQKJKJs98/8 [...]
+ list-style-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgCglpZD0ic3ZnMjgxMCIgCgl4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIAoJeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIAoJaGVpZ2h0PSIxMiIgCgl3aWR0aD0iMjQiIAoJdmVyc2lvbj0iMS4wIiAKCXZpZXdCb3g9IjAgLTE4MCA0ODAgNzIwIj4KICA8c3R5bGU+CiAgICAuaGVhdnkgeyBmb250OiBib2xkIDM1MHB4IHNhbnMtc2VyaWY7IHRleHQtc2hhZG93OiAxcHggMXB4IDFweCBibGFjazt9CiAgPC9zdHlsZT4KCTxkZWZ [...]
}
li.jf {
- list-style-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAMKGlDQ1BJQ0MgUHJvZmlsZQAASImVlwdYU8kWgOeWJCQktEAEpITeBOlVeo0gIB1shCSQUGJICCJ2dFHBtaBiwYquitjWAsiiInZlEez9oQiKsi4WbKC8SQLo6vfe+975vrn3z5kzZ845d+7kDgCq0WyRKBtVAyBHmCeOCQ1gJiWnMElPAAYYQBW4Akc2RyLyj46OAFCG7/+U97cAIrtft5X5+rn/v4o6lyfhAIBEQ07jSjg5kI8CgLtyROI8AAg9UG8yI08EmQijBJpiGCBkUxlnKNhdxmkKjpDbxMUEQk4FQInKZoszAFCRxcXM52RAPyrLINsLuQIh5AbIPhw+mwt5APKYnJzpkFUtIVumfecn4x8+00Z8stkZI6zIRS5KQQKJKJs98/8 [...]
+ list-style-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgCglpZD0ic3ZnMjgxMCIgCgl4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIAoJeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIAoJaGVpZ2h0PSIxMiIgCgl3aWR0aD0iMjQiIAoJdmVyc2lvbj0iMS4wIiAKCXZpZXdCb3g9IjAgLTE4MCA0ODAgNzIwIj4KICA8c3R5bGU+CiAgICAuaGVhdnkgeyBmb250OiBib2xkIDk2MHB4IHNhbnMtc2VyaWY7IHRleHQtc2hhZG93OiAxcHggMXB4IDFweCBibGFjazt9CiAgPC9zdHlsZT4KCTxkZWZ [...]
}
li.jp {
- list-style-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAMKGlDQ1BJQ0MgUHJvZmlsZQAASImVlwdYU8kWgOeWJCQktEAEpITeBOlVeo0gIB1shCSQUGJICCJ2dFHBtaBiwYquitjWAsiiInZlEez9oQiKsi4WbKC8SQLo6vfe+975vrn3z5kzZ845d+7kDgCq0WyRKBtVAyBHmCeOCQ1gJiWnMElPAAYYQBW4Akc2RyLyj46OAFCG7/+U97cAIrtft5X5+rn/v4o6lyfhAIBEQ07jSjg5kI8CgLtyROI8AAg9UG8yI08EmQijBJpiGCBkUxlnKNhdxmkKjpDbxMUEQk4FQInKZoszAFCRxcXM52RAPyrLINsLuQIh5AbIPhw+mwt5APKYnJzpkFUtIVumfecn4x8+00Z8stkZI6zIRS5KQQKJKJs98/8 [...]
+ list-style-image: url('data:image/svg+xml;base64,iPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgCglpZD0ic3ZnMjgxMCIgCgl4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIAoJeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIAoJaGVpZ2h0PSIxNiIgCgl3aWR0aD0iMjQiIAoJdmVyc2lvbj0iMS4wIiAKCXZpZXdCb3g9IjAgLTEyMCA0ODAgNjAwIj4KICA8c3R5bGU+CiAgICAuaGVhdnkgeyBmb250OiBib2xkIDM1MHB4IHNhbnMtc2VyaWY7IHRleHQtc2hhZG93OiAxcHggMXB4IDFweCBibGFjazt9CiAgPC9zdHlsZT4KCTxkZW [...]
}
.doctree ul {
@@ -433,4 +428,26 @@ hr {
background-color: black !important;
}
+div.info, div.warn, div.severe {
+ background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgo8c3ZnIAoJaWQ9InN2ZzI4MTAiIAoJeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiAKCXhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiAKCWhlaWdodD0iMjQiIAoJd2lkdGg9IjQyIiAKCXZlcnNpb249IjEuMCIgCgl2aWV3Qm94PSIwIDAgNDgwIDQ4MCI+Cgk8ZGVmcyBpZD0iZGVmczI4MzYiPgoJCTxsaW5lYXJHcmFkaWVudCBpZD0ibGl [...]
+ background-repeat: no-repeat;
+ background-position: left center;
+ padding: 15px 50px;
+ margin: 10px 0px;
+ width: 800px;
+}
+
+div.info {
+ background-color: #e9eefc;
+ border-left: 3px solid #1c43ba;
+}
+div.warn {
+ background-color: #faecd1;
+ border-left: 3px solid #b37700;
+}
+
+div.severe {
+ background-color: #faced3;
+ border-left: 3px solid #b32400;
+}
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/HtmlDocBuilder.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/HtmlDocBuilder.java
index efd02ea..f09bc43 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/HtmlDocBuilder.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/HtmlDocBuilder.java
@@ -118,11 +118,10 @@ public class HtmlDocBuilder {
* The HTML header section contents.
* Object will be converted to a string using {@link Object#toString()}.
* <p>
- * <ul class='doctree'>
- * <li class='info'>
- * <b>Tip:</b> Use {@link StringMessage} to generate value with delayed serialization so as not to
- * waste string concatenation cycles on non-HTML views.
- * </ul>
+ * <div class='info'>
+ * <b>Tip:</b> Use {@link StringMessage} to generate value with delayed serialization so as not to
+ * waste string concatenation cycles on non-HTML views.
+ * </div>
* @return This object (for method chaining).
*/
public HtmlDocBuilder header(Object...value) {
@@ -156,11 +155,10 @@ public class HtmlDocBuilder {
* @param value
* The HTML nav section links links.
* <p>
- * <ul class='doctree'>
- * <li class='info'>
- * <b>Tip:</b> Use {@link StringMessage} to generate value with delayed serialization so as not to
- * waste string concatenation cycles on non-HTML views.
- * </ul>
+ * <div class='info'>
+ * <b>Tip:</b> Use {@link StringMessage} to generate value with delayed serialization so as not to
+ * waste string concatenation cycles on non-HTML views.
+ * </div>
* @return This object (for method chaining).
*/
public HtmlDocBuilder navlinks(Object...value) {
@@ -195,11 +193,10 @@ public class HtmlDocBuilder {
* The HTML nav section contents.
* Object will be converted to a string using {@link Object#toString()}.
* <p>
- * <ul class='doctree'>
- * <li class='info'>
- * <b>Tip:</b> Use {@link StringMessage} to generate value with delayed serialization so as not to
- * waste string concatenation cycles on non-HTML views.
- * </ul>
+ * <div class='info'>
+ * <b>Tip:</b> Use {@link StringMessage} to generate value with delayed serialization so as not to
+ * waste string concatenation cycles on non-HTML views.
+ * </div>
* @return This object (for method chaining).
*/
public HtmlDocBuilder nav(Object...value) {
@@ -231,11 +228,10 @@ public class HtmlDocBuilder {
* The HTML aside section contents.
* Object will be converted to a string using {@link Object#toString()}.
* <p>
- * <ul class='doctree'>
- * <li class='info'>
- * <b>Tip:</b> Use {@link StringMessage} to generate value with delayed serialization so as not to waste
- * string concatenation cycles on non-HTML views.
- * </ul>
+ * <div class='info'>
+ * <b>Tip:</b> Use {@link StringMessage} to generate value with delayed serialization so as not to waste
+ * string concatenation cycles on non-HTML views.
+ * </div>
* @return This object (for method chaining).
*/
public HtmlDocBuilder aside(Object...value) {
@@ -267,11 +263,10 @@ public class HtmlDocBuilder {
* The HTML footer section contents.
* Object will be converted to a string using {@link Object#toString()}.
* <p>
- * <ul class='doctree'>
- * <li class='info'>
- * <b>Tip:</b> Use {@link StringMessage} to generate value with delayed serialization so as not to
- * waste string concatenation cycles on non-HTML views.
- * </ul>
+ * <div class='info'>
+ * <b>Tip:</b> Use {@link StringMessage} to generate value with delayed serialization so as not to
+ * waste string concatenation cycles on non-HTML views.
+ * </div>
* @return This object (for method chaining).
*/
public HtmlDocBuilder footer(Object...value) {
@@ -300,11 +295,10 @@ public class HtmlDocBuilder {
* The HTML CSS style section contents.
* Object will be converted to a string using {@link Object#toString()}.
* <p>
- * <ul class='doctree'>
- * <li class='info'>
- * <b>Tip:</b> Use {@link StringMessage} to generate value with delayed serialization so as not to
- * waste string concatenation cycles on non-HTML views.
- * </ul>
+ * <div class='info'>
+ * <b>Tip:</b> Use {@link StringMessage} to generate value with delayed serialization so as not to
+ * waste string concatenation cycles on non-HTML views.
+ * </div>
* @return This object (for method chaining).
*/
public HtmlDocBuilder style(Object...value) {
@@ -332,11 +326,10 @@ public class HtmlDocBuilder {
* The CSS URL in the HTML CSS style section.
* Object will be converted to a string using {@link Object#toString()}.
* <p>
- * <ul class='doctree'>
- * <li class='info'>
- * <b>Tip:</b> Use {@link StringMessage} to generate value with delayed serialization so as not to
- * waste string concatenation cycles on non-HTML views.
- * </ul>
+ * <div class='info'>
+ * <b>Tip:</b> Use {@link StringMessage} to generate value with delayed serialization so as not to
+ * waste string concatenation cycles on non-HTML views.
+ * </div>
* @return This object (for method chaining).
*/
public HtmlDocBuilder stylesheet(Object...value) {
@@ -365,11 +358,10 @@ public class HtmlDocBuilder {
* The HTML script section contents.
* Object will be converted to a string using {@link Object#toString()}.
* <p>
- * <ul class='doctree'>
- * <li class='info'>
- * <b>Tip:</b> Use {@link StringMessage} to generate value with delayed serialization so as not to
- * waste string concatenation cycles on non-HTML views.
- * </ul>
+ * <div class='info'>
+ * <b>Tip:</b> Use {@link StringMessage} to generate value with delayed serialization so as not to
+ * waste string concatenation cycles on non-HTML views.
+ * </div>
* @return This object (for method chaining).
*/
public HtmlDocBuilder script(Object...value) {
@@ -397,11 +389,10 @@ public class HtmlDocBuilder {
* @param value
* The HTML head section contents.
* <p>
- * <ul class='doctree'>
- * <li class='info'>
- * <b>Tip:</b> Use {@link StringMessage} to generate value with delayed serialization so as not to
- * waste string concatenation cycles on non-HTML views.
- * </ul>
+ * <div class='info'>
+ * <b>Tip:</b> Use {@link StringMessage} to generate value with delayed serialization so as not to
+ * waste string concatenation cycles on non-HTML views.
+ * </div>
* @return This object (for method chaining).
*/
public HtmlDocBuilder head(Object...value) {