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/05/06 20:51:14 UTC

[juneau] branch master updated: Javadocs.

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

commit 661ff144a82d2086c1c4df493df8af9d14497dfe
Author: JamesBognar <ja...@apache.org>
AuthorDate: Mon May 6 16:50:47 2019 -0400

    Javadocs.
---
 juneau-doc/docs/ReleaseNotes/8.0.1.html            | 54 ++++++++++++++++
 .../03.Instantiation/02.BasicRestServlet.html      | 52 +++++++--------
 .../03.Instantiation/03.BasicRest.html             | 38 +++++------
 .../16.ConfigAnnotations.html                      | 74 ++++++++++++++++++++++
 .../27.Swagger/01.BasicRestServlet.html            | 39 +++++-------
 .../27.Swagger/06.ParameterExamples.html           | 22 +++----
 .../27.Swagger/08.ResponseExamples.html            | 13 ++--
 .../17.juneau-examples-rest/01.RootResources.html  | 13 ++--
 .../17.juneau-examples-rest/04.DtoExamples.html    |  9 +--
 .../01.Installing.html                             | 11 ++--
 .../01.Installing.html                             | 11 ++--
 11 files changed, 218 insertions(+), 118 deletions(-)

diff --git a/juneau-doc/docs/ReleaseNotes/8.0.1.html b/juneau-doc/docs/ReleaseNotes/8.0.1.html
index f587c2f..3f330a4 100644
--- a/juneau-doc/docs/ReleaseNotes/8.0.1.html
+++ b/juneau-doc/docs/ReleaseNotes/8.0.1.html
@@ -53,6 +53,60 @@
 <h5 class='topic w800'>juneau-rest-server</h5>
 <ul class='spaced-list'>
 	<li>
+		New annotations that can be applied to REST classes and methods to configure serializers and parsers.
+		<p class='bcode w800'>
+	<jc>// Old way using generic properties.</jc>
+	<ja>@RestResource</ja>(
+		path=<js>"/atom"</js>,
+		title=<js>"Sample ATOM feed resource"</js>,
+		properties={
+			<ja>@Property</ja>(name=<jsf>WSERIALIZER_quoteChar</jsf>, value=<js>"'"</js>),
+			<ja>@Property</ja>(name=<jsf>RDF_rdfxml_tab</jsf>, value=<js>"5"</js>),
+			<ja>@Property</ja>(name<jsf>RDF_addRootProperty</jsf>, value=<js>"true"</js>),
+			<ja>@Property</ja>(name=<jsf>BEAN_examples</jsf>, value=<js>"{'org.apache.juneau.dto.atom.Feed': $F{AtomFeedResource_example.json}}"</js>)
+		}
+		...
+	)
+	<jk>public class</jk> AtomFeedResource <jk>extends</jk> BasicRestServletJena {
+		...
+	}
+		
+	<jc>New way using specific annotations.</jc>
+	<ja>@RestResource</ja>(
+		path=<js>"/atom"</js>,
+		title=<js>"Sample ATOM feed resource"</js>
+		...
+	)
+	<ja>@SerializerConfig</ja>(quoteChar=<js>"'"</js>)
+	<ja>@RdfConfig</ja>(rdfxml_tab=<js>"5"</js>, addRootProperty=<js>"true"</js>)
+	<ja>@BeanConfig</ja>(examples=<js>"Feed: $F{AtomFeedResource_example.json}"</js>)
+	<jk>public class</jk> AtomFeedResource <jk>extends</jk> BasicRestServletJena {
+		...
+	}
+		</p>
+		<p>
+			Config annotations are provided for all serializers and parsers:
+		</p>
+		<ul>
+			<li class='ja'>{@link oaj.annotation.BeanConfig BeanConfig}
+			<li class='ja'>{@link oaj.csv.annotation.CsvConfig CsvConfig}
+			<li class='ja'>{@link oaj.html.annotation.HtmlConfig HtmlConfig}
+			<li class='ja'>{@link oaj.html.annotation.HtmlDocConfig HtmlDocConfig}
+			<li class='ja'>{@link oaj.jso.annotation.JsoConfig JsoConfig}
+			<li class='ja'>{@link oaj.json.annotation.JsonConfig JsonConfig}
+			<li class='ja'>{@link oaj.jsonschema.annotation.JsonSchemaConfig JsonSchemaConfig}
+			<li class='ja'>{@link oaj.msgpack.annotation.MsgPackConfig MsgPackConfig}
+			<li class='ja'>{@link oaj.oapi.annotation.OpenApiConfig OpenApiConfig}
+			<li class='ja'>{@link oaj.parser.annotation.ParserConfig ParserConfig}
+			<li class='ja'>{@link oaj.plaintext.annotation.PlainTextConfig PlainTextConfig}
+			<li class='ja'>{@link oaj.jena.annotation.RdfConfig RdfConfig}
+			<li class='ja'>{@link oaj.serializer.annotation.SerializerConfig SerializerConfig}
+			<li class='ja'>{@link oaj.soap.annotation.SoapXmlConfig SoapXmlConfig}
+			<li class='ja'>{@link oaj.uon.annotation.UonConfig UonConfig}
+			<li class='ja'>{@link oaj.urlencoding.annotation.UrlEncodingConfig UrlEncodingConfig}
+			<li class='ja'>{@link oaj.xml.annotation.XmlConfig XmlConfig}
+		</ul>
+	<li>
 		Added the following classes that provide the same support as the servlet classes but doesn't extend from <code>HttpServlet</code>.
 		<br>This fixes an issue where instances of {@link oajr.BasicRestServlet} are registered as top-level servlets even though
 		you don't want them to be.  
diff --git a/juneau-doc/docs/Topics/07.juneau-rest-server/03.Instantiation/02.BasicRestServlet.html b/juneau-doc/docs/Topics/07.juneau-rest-server/03.Instantiation/02.BasicRestServlet.html
index fb1c0bf..6b51783 100644
--- a/juneau-doc/docs/Topics/07.juneau-rest-server/03.Instantiation/02.BasicRestServlet.html
+++ b/juneau-doc/docs/Topics/07.juneau-rest-server/03.Instantiation/02.BasicRestServlet.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-BasicRestServlet
+{updated} BasicRestServlet
 
 <p>
 	The {@link oajr.BasicRestServlet} class is a subclass of {@link oajr.RestServlet}
@@ -67,30 +67,26 @@ BasicRestServlet
 				},
 				<jc>// Never show aside contents of page inherited from class.</jc>
 				aside=<js>"NONE"</js>
-			),
-		
-			<jc>// POJO swaps to apply to all serializers/parsers.</jc>
+			)
+		)
+		<ja>@JsonSchemaConfig</ja>(
+			<jc>// Add descriptions to the following types when not specified:</jc>
+			addDescriptionsTo=<js>"bean,collection,array,map,enum"</js>,
+			<jc>// Add x-example to the following types:</jc>
+			addExamplesTo=<js>"bean,collection,array,map"</js>,
+			<jc>// Don't generate schema information on the Swagger bean itself or HTML beans.</jc>
+			ignoreTypes=<js>"Swagger,org.apache.juneau.dto.html5.*"</js>,
+			<jc>// Use $ref references for bean definitions to reduce duplication in Swagger.</jc>
+			useBeanDefs=<js>"true"</js>
+		)
+		<ja>@BeanConfig</ja>(
+			<jc>// When parsing generated beans, ignore unknown properties that may only exist as getters and not setters.</jc>
+			ignoreUnknownBeanProperties=<js>"true"</js>,
+			<jc>// POJO swaps to apply to all serializers/parsers on this method.</jc>
 			pojoSwaps={
 				<jc>// Use the SwaggerUI swap when rendering Swagger beans.</jc>
+				<jc>// This is a per-media-type swap that only applies to text/html requests.</jc>
 				SwaggerUI.<jk>class</jk>
-			},
-			
-			<jc>// Properties to apply to all serializers/parsers and REST-specific API objects.</jc>
-			properties={
-				<jc>// Add descriptions to the following types when not specified:</jc>
-				<ja>@Property</ja>(name=<jsf>JSONSCHEMA_addDescriptionsTo</jsf>, value=<js>"bean,collection,array,map,enum"</js>),
-		
-				<jc>// Automatically add examples to the following types:</jc>
-				<ja>@Property</ja>(name=<jsf>JSONSCHEMA_addExamplesTo</jsf>, value=<js>"bean,collection,array,map"</js>),
-		
-				<jc>// Don't generate schema information on the Swagger bean itself or HTML beans.</jc>
-				<ja>@Property</ja>(name=<jsf>JSONSCHEMA_ignoreTypes</jsf>, value="<js>Swagger,org.apache.juneau.dto.html5.*"</js>)
-			},
-			
-			<jc>// Shortcut for boolean properties.</jc>
-			flags={
-				<jc>// Use $ref references for bean definitions to reduce duplication in Swagger.</jc>
-				<jsf>JSONSCHEMA_useBeanDefs</jsf>
 			}
 		)
 		<jk>public</jk> Swagger getOptions(RestRequest req) {
@@ -135,13 +131,7 @@ BasicRestServlet
 			MsgPackParser.<jk>class</jk>,
 			PlainTextParser.<jk>class</jk>
 		},
-		
-		<jc>// Properties to apply to all serializers/parsers and REST-specific API objects.</jc>
-		properties={
-			<jc>// Enable automatic resolution of URI objects to root-relative values.</jc>
-			<ja>@Property</ja>(name=<jsf>SERIALIZER_uriResolution</jsf>, value=<js>"ROOT_RELATIVE"</js>)
-		},
-		
+
 		<jc>// HTML-page specific settings</jc>
 		htmldoc=<ja>@HtmlDoc</ja>(
 		
@@ -184,6 +174,10 @@ BasicRestServlet
 		// By default, we define static files through the external configuration file.</jc>
 		staticFiles={<js>"$C{REST/staticFiles}"</js>}
 	)
+	<ja>@SerializerConfig</ja>(
+		<jc>// Enable automatic resolution of URI objects to root-relative values.</jc>
+		uriResolution=<js>"ROOT_RELATIVE"</js>
+	)
 	<jk>public interface</jk> BasicRestConfig {}
 </p>
 <p>
diff --git a/juneau-doc/docs/Topics/07.juneau-rest-server/03.Instantiation/03.BasicRest.html b/juneau-doc/docs/Topics/07.juneau-rest-server/03.Instantiation/03.BasicRest.html
index 4a2d788..81df566 100644
--- a/juneau-doc/docs/Topics/07.juneau-rest-server/03.Instantiation/03.BasicRest.html
+++ b/juneau-doc/docs/Topics/07.juneau-rest-server/03.Instantiation/03.BasicRest.html
@@ -61,30 +61,26 @@
 				},
 				<jc>// Never show aside contents of page inherited from class.</jc>
 				aside=<js>"NONE"</js>
-			),
-		
-			<jc>// POJO swaps to apply to all serializers/parsers.</jc>
+			)
+		)
+		<ja>@JsonSchemaConfig</ja>(
+			<jc>// Add descriptions to the following types when not specified:</jc>
+			addDescriptionsTo=<js>"bean,collection,array,map,enum"</js>,
+			<jc>// Add x-example to the following types:</jc>
+			addExamplesTo=<js>"bean,collection,array,map"</js>,
+			<jc>// Don't generate schema information on the Swagger bean itself or HTML beans.</jc>
+			ignoreTypes=<js>"Swagger,org.apache.juneau.dto.html5.*"</js>,
+			<jc>// Use $ref references for bean definitions to reduce duplication in Swagger.</jc>
+			useBeanDefs=<js>"true"</js>
+		)
+		<ja>@BeanConfig</ja>(
+			<jc>// When parsing generated beans, ignore unknown properties that may only exist as getters and not setters.</jc>
+			ignoreUnknownBeanProperties=<js>"true"</js>,
+			<jc>// POJO swaps to apply to all serializers/parsers on this method.</jc>
 			pojoSwaps={
 				<jc>// Use the SwaggerUI swap when rendering Swagger beans.</jc>
+				<jc>// This is a per-media-type swap that only applies to text/html requests.</jc>
 				SwaggerUI.<jk>class</jk>
-			},
-			
-			<jc>// Properties to apply to all serializers/parsers and REST-specific API objects.</jc>
-			properties={
-				<jc>// Add descriptions to the following types when not specified:</jc>
-				<ja>@Property</ja>(name=<jsf>JSONSCHEMA_addDescriptionsTo</jsf>, value=<js>"bean,collection,array,map,enum"</js>),
-		
-				<jc>// Automatically add examples to the following types:</jc>
-				<ja>@Property</ja>(name=<jsf>JSONSCHEMA_addExamplesTo</jsf>, value=<js>"bean,collection,array,map"</js>),
-		
-				<jc>// Don't generate schema information on the Swagger bean itself or HTML beans.</jc>
-				<ja>@Property</ja>(name=<jsf>JSONSCHEMA_ignoreTypes</jsf>, value="<js>Swagger,org.apache.juneau.dto.html5.*"</js>)
-			},
-			
-			<jc>// Shortcut for boolean properties.</jc>
-			flags={
-				<jc>// Use $ref references for bean definitions to reduce duplication in Swagger.</jc>
-				<jsf>JSONSCHEMA_useBeanDefs</jsf>
 			}
 		)
 		<jk>public</jk> Swagger getOptions(RestRequest req) {
diff --git a/juneau-doc/docs/Topics/07.juneau-rest-server/16.ConfigAnnotations.html b/juneau-doc/docs/Topics/07.juneau-rest-server/16.ConfigAnnotations.html
new file mode 100644
index 0000000..3fa9c0d
--- /dev/null
+++ b/juneau-doc/docs/Topics/07.juneau-rest-server/16.ConfigAnnotations.html
@@ -0,0 +1,74 @@
+<!--
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *  
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ ***************************************************************************************************************************/
+ -->
+
+{new} Config annotations
+
+<p>
+	Config annotations allow you to define serializer and parser properties using specialized annotations.
+	All configuration properties have annotation-equivalents.
+</p>
+<p>
+	The following shows the difference between the two approaches:
+</p>
+<h5 class='figure'>Example:</h5>
+<p class='bpcode w800'>
+	<jc>// Servlet with properties applied</jc>
+	<ja>@RestResource</ja>(
+		properties={
+			<ja>@Property</ja>(name=<jsf>BEAN_sortProperties</jsf>, value=<js>"true"</js>),
+			<ja>@Property</ja>(name=<jsf>SERIALIZER_trimNulls</jsf>, value=<js>"true"</js>),
+			<ja>@Property</ja>(name=<jsf>JSON_escapeSolidus</jsf>, value=<js>"true"</js>)
+		}
+	)
+	<jk>public</jk> MyRestServlet <jk>extends</jk> BasicRestServlet {...}
+</p>
+<p class='bpcode w800'>
+	<jc>// Servlet with config annotations applied</jc>
+	<ja>@RestResource</ja>(
+		...
+	)
+	<ja>@BeanConfig</ja>(sortProperties=<js>"true"</js>)
+	<ja>@SerializerConfig</ja>(trimNulls=<js>"true"</js>)
+	<ja>@JsonConfig</ja>(escapeSolidus=<js>"true"</js>)
+	<jk>public</jk> MyRestServlet <jk>extends</jk> BasicRestServlet {...}
+</p>
+<p>
+	Using config annotations is often cleaner and supports the same SVL variable support as those in the REST annotations.
+</p>
+<p>
+	Config annotations are defined for all serializers and parsers:
+</p>
+<ul>
+	<li class='ja'>{@link oaj.annotation.BeanConfig BeanConfig}
+	<li class='ja'>{@link oaj.csv.annotation.CsvConfig CsvConfig}
+	<li class='ja'>{@link oaj.html.annotation.HtmlConfig HtmlConfig}
+	<li class='ja'>{@link oaj.html.annotation.HtmlDocConfig HtmlDocConfig}
+	<li class='ja'>{@link oaj.jso.annotation.JsoConfig JsoConfig}
+	<li class='ja'>{@link oaj.json.annotation.JsonConfig JsonConfig}
+	<li class='ja'>{@link oaj.jsonschema.annotation.JsonSchemaConfig JsonSchemaConfig}
+	<li class='ja'>{@link oaj.msgpack.annotation.MsgPackConfig MsgPackConfig}
+	<li class='ja'>{@link oaj.oapi.annotation.OpenApiConfig OpenApiConfig}
+	<li class='ja'>{@link oaj.parser.annotation.ParserConfig ParserConfig}
+	<li class='ja'>{@link oaj.plaintext.annotation.PlainTextConfig PlainTextConfig}
+	<li class='ja'>{@link oaj.jena.annotation.RdfConfig RdfConfig}
+	<li class='ja'>{@link oaj.serializer.annotation.SerializerConfig SerializerConfig}
+	<li class='ja'>{@link oaj.soap.annotation.SoapXmlConfig SoapXmlConfig}
+	<li class='ja'>{@link oaj.uon.annotation.UonConfig UonConfig}
+	<li class='ja'>{@link oaj.urlencoding.annotation.UrlEncodingConfig UrlEncodingConfig}
+	<li class='ja'>{@link oaj.xml.annotation.XmlConfig XmlConfig}
+</ul>
+<p>
+	Config annotations can be defined at both the class and method level just like properties.
+</p>
diff --git a/juneau-doc/docs/Topics/07.juneau-rest-server/27.Swagger/01.BasicRestServlet.html b/juneau-doc/docs/Topics/07.juneau-rest-server/27.Swagger/01.BasicRestServlet.html
index 1075078..e6b6687 100644
--- a/juneau-doc/docs/Topics/07.juneau-rest-server/27.Swagger/01.BasicRestServlet.html
+++ b/juneau-doc/docs/Topics/07.juneau-rest-server/27.Swagger/01.BasicRestServlet.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-BasicRestServlet
+{updated} BasicRestServlet
 
 <p>
 	Any subclass of {@link oajr.BasicRestServlet} gets an auto-generated Swagger UI when performing an <code>OPTIONS</code>
@@ -57,31 +57,26 @@ BasicRestServlet
 				},
 				<jc>// Never show aside contents of page inherited from class.</jc>
 				aside=<js>"NONE"</js>
-			),
-	
-			<jc>// POJO swaps to apply to all serializers/parsers.</jc>
+			)
+		)
+		<ja>@JsonSchemaConfig</ja>(
+			<jc>// Add descriptions to the following types when not specified:</jc>
+			addDescriptionsTo=<js>"bean,collection,array,map,enum"</js>,
+			<jc>// Add x-example to the following types:</jc>
+			addExamplesTo=<js>"bean,collection,array,map"</js>,
+			<jc>// Don't generate schema information on the Swagger bean itself or HTML beans.</jc>
+			ignoreTypes=<js>"Swagger,org.apache.juneau.dto.html5.*"</js>,
+			<jc>// Use $ref references for bean definitions to reduce duplication in Swagger.</jc>
+			useBeanDefs=<js>"true"</js>
+		)
+		<ja>@BeanConfig</ja>(
+			<jc>// When parsing generated beans, ignore unknown properties that may only exist as getters and not setters.</jc>
+			ignoreUnknownBeanProperties=<js>"true"</js>,
+			<jc>// POJO swaps to apply to all serializers/parsers on this method.</jc>
 			pojoSwaps={
 				<jc>// Use the SwaggerUI swap when rendering Swagger beans.</jc>
 				<jc>// This is a per-media-type swap that only applies to text/html requests.</jc>
 				SwaggerUI.<jk>class</jk>
-			},
-		
-			<jc>// Properties to apply to all serializers/parsers and REST-specific API objects.</jc>
-			properties={
-				<jc>// Add descriptions to the following types when not specified:</jc>
-				<ja>@Property</ja>(name=<jsf>JSONSCHEMA_addDescriptionsTo</jsf>, value=<js>"bean,collection,array,map,enum"</js>),
-		
-				<jc>// Add x-example to the following types:</jc>
-				<ja>@Property</ja>(name=<jsf>JSONSCHEMA_addExamplesTo</jsf>, value=<js>"bean,collection,array,map"</js>),
-		
-				<jc>// Don't generate schema information on the Swagger bean itself or HTML beans.</jc>
-				<ja>@Property</ja>(name=<jsf>JSONSCHEMA_ignoreTypes</jsf>, value=<js>"Swagger,org.apache.juneau.dto.html5.*"</js>)
-			},
-		
-			<jc>// Shortcut for boolean properties.</jc>
-			flags={
-				<jc>// Use $ref references for bean definitions to reduce duplication in Swagger.</jc>
-				<jsf>JSONSCHEMA_useBeanDefs</jsf>
 			}
 		)
 		<jk>public</jk> Swagger getOptions(RestRequest req) {
diff --git a/juneau-doc/docs/Topics/07.juneau-rest-server/27.Swagger/06.ParameterExamples.html b/juneau-doc/docs/Topics/07.juneau-rest-server/27.Swagger/06.ParameterExamples.html
index 19f4ae2..554a7fd 100644
--- a/juneau-doc/docs/Topics/07.juneau-rest-server/27.Swagger/06.ParameterExamples.html
+++ b/juneau-doc/docs/Topics/07.juneau-rest-server/27.Swagger/06.ParameterExamples.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-Parameter Examples
+{updated} Parameter Examples
 
 <p>
 	The <code>model</code> select box in the parameters can be expanded to show examples:
@@ -169,10 +169,10 @@ Parameter Examples
 
 		<ja>@RestMethod</ja>(name=<jsf>OPTIONS</jsf>, path=<js>"/*"</js>,
 			...
-			properties={
-				<jc>// Add x-example to the following types:</jc>
-				<ja>@Property</ja>(name=<jsf>JSONSCHEMA_addExamplesTo</jsf>, value=<js>"bean,collection,array,map"</js>),
-			},
+		)
+		<ja>@JsonSchemaConfig</ja>(
+			<jc>// Add x-example to the following types:</jc>
+			addExamplesTo=<js>"bean,collection,array,map"</js>,
 			...
 		)
 		<jk>public</jk> Swagger getOptions(RestRequest req) {...}
@@ -213,18 +213,14 @@ Parameter Examples
 	}
 </p>
 <p>
-	Examples can also be specified via generic properties as well using the {@link oaj.BeanContext#BEAN_examples} property at either the class or method level.
+	Examples can also be specified via generic properties as well using the {@link oaj.BeanContext#BEAN_examples} property or {@link oaj.annotation.BeanConfig#examples() @BeanConfig(examples)} annotation at either the class or method level.
 </p>
 <h5 class='figure'>Example:</h5>
 <p class='bpcode w800'>
 	<jc>// Examples defined at class level.</jc>
-	<ja>@RestResource</ja>(
-		properties={
-			<ja>@Property</ja>(
-				name=<jsf>BEAN_examples</jsf>,
-				value=<js>"{'org.apache.juneau.examples.rest.petstore.PetCreate': {name:'Doggie',price:9.99,species:'Dog',tags:['friendly','cute']}}"</js>
-			)
-		}
+	<ja>@RestResource</ja>(...)
+	<ja>@BeanConfig</ja>(
+		examples=<js>"{PetCreate: {name:'Doggie',price:9.99,species:'Dog',tags:['friendly','cute']}}"</js>
 	)
 </p>
 <h5 class='section'>See Also:</h5>
diff --git a/juneau-doc/docs/Topics/07.juneau-rest-server/27.Swagger/08.ResponseExamples.html b/juneau-doc/docs/Topics/07.juneau-rest-server/27.Swagger/08.ResponseExamples.html
index 34bfb8b..75c7e09 100644
--- a/juneau-doc/docs/Topics/07.juneau-rest-server/27.Swagger/08.ResponseExamples.html
+++ b/juneau-doc/docs/Topics/07.juneau-rest-server/27.Swagger/08.ResponseExamples.html
@@ -147,17 +147,14 @@ Response Examples
 	}
 </p>
 <p>
-	Examples can also be specified via generic properties as well using the {@link oaj.BeanContext#BEAN_examples} property at either the class or method level.
+	Examples can also be specified via generic properties as well using the {@link oaj.BeanContext#BEAN_examples} property 
+	or {@link oaj.annoation.BeanConfig#examples @BeanConfig(examples)} annotation at either the class or method level.
 </p>
 <p class='bpcode w800'>
 	<jc>// Examples defined at class level.</jc>
-	<ja>@RestResource</ja>(
-		properties={
-			<ja>@Property</ja>(
-				name=<jsf>BEAN_examples</jsf>,
-				value=<js>"{'org.apache.juneau.examples.rest.petstore.PetCreate': {name:'Doggie',price:9.99,species:'Dog',tags:['friendly','cute']}}"</js>
-			)
-		}
+	<ja>@RestResource</ja>(...)
+	<ja>@BeanConfig</ja>(
+		examples=<js>"{PetCreate: {name:'Doggie',price:9.99,species:'Dog',tags:['friendly','cute']}}"</js>
 	)
 </p>
 <p>
diff --git a/juneau-doc/docs/Topics/17.juneau-examples-rest/01.RootResources.html b/juneau-doc/docs/Topics/17.juneau-examples-rest/01.RootResources.html
index 17862f2..df61165 100644
--- a/juneau-doc/docs/Topics/17.juneau-examples-rest/01.RootResources.html
+++ b/juneau-doc/docs/Topics/17.juneau-examples-rest/01.RootResources.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-RootResources
+{updated} RootResources
 
 <p>
 	The <l>RootResources</l> class is the main page for the REST microservice.
@@ -103,12 +103,6 @@ RootResources
 				<js>"&lt;/div&gt;"</js>
 			}
 		),
-		properties={
-			<jc>// For testing purposes, we want to use single quotes in all the serializers so it's easier to do simple
-			// String comparisons.
-			// You can apply any of the Serializer/Parser/BeanContext settings this way.</jc>
-			<ja>@Property</ja>(name=<jsf>WSERIALIZER_quoteChar</jsf>, value=<js>"'"</js>)
-		},
 		children={
 			HelloWorldResource.<jk>class</jk>,
 			PetStoreResource.<jk>class</jk>,
@@ -119,6 +113,11 @@ RootResources
 			ShutdownResource.<jk>class</jk>
 		}
 	)
+	<ja>@SerializerConfig</ja>(
+		<jc>// For testing purposes, we want to use single quotes in all the serializers so it's easier to do simple
+		// String comparisons.</jc>
+		quoteChar=<js>"'"</js>
+	)
 	<jk>public class</jk> RootResources <jk>extends</jk> BasicRestServletJenaGroup {
 		<jc>// No code!</jc>
 	}
diff --git a/juneau-doc/docs/Topics/17.juneau-examples-rest/04.DtoExamples.html b/juneau-doc/docs/Topics/17.juneau-examples-rest/04.DtoExamples.html
index 7319665..110b0e7 100644
--- a/juneau-doc/docs/Topics/17.juneau-examples-rest/04.DtoExamples.html
+++ b/juneau-doc/docs/Topics/17.juneau-examples-rest/04.DtoExamples.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-DtoExamples
+{updated} DtoExamples
 
 <p>
 	The <l>DtoExamples</l> resource is a resource group for demonstrating various DTO examples.
@@ -69,13 +69,10 @@ DtoExamples
 				<js>"source: $C{Source/gitHub}/org/apache/juneau/examples/rest/$R{servletClassSimple}.java"</js>
 			}
 		),
-		properties={ 
-			<ja>@Property</ja>(name=<jsf>SERIALIZER_quoteChar</jsf>, value=<js>"'"</js>), 
-			<ja>@Property</ja>(name=<jsf>RDF_rdfxml_tab</jsf>, value=<js>"5"</js>), 
-			<ja>@Property</ja>(name=<jsf>RDF_addRootProperty</jsf>, value=<js>"true"</js>)
-		}, 
 		encoders=GzipEncoder.<jk>class</jk> 
 	) 
+	<ja>@SerializerConfig</ja>(quoteChar=<js>"'"</js>)
+	<ja>@RdfConfig</ja>(rdfxml_tab=<js>"5"</js>, addRootProperty=<js>"true"</js>)
 	<jk>public class</jk> AtomFeedResource <jk>extends</jk> BasicRestServletJena { 
 	
 		<jk>private</jk> Feed <jf>feed</jf>; <jc>// The root resource object</jc> 
diff --git a/juneau-doc/docs/Topics/18.juneau-examples-rest-jetty/01.Installing.html b/juneau-doc/docs/Topics/18.juneau-examples-rest-jetty/01.Installing.html
index abf8e6a..896ac67 100644
--- a/juneau-doc/docs/Topics/18.juneau-examples-rest-jetty/01.Installing.html
+++ b/juneau-doc/docs/Topics/18.juneau-examples-rest-jetty/01.Installing.html
@@ -87,12 +87,6 @@ Installing in Eclipse
 				<js>"&lt;/div&gt;"</js>
 			}
 		),
-		properties={
-			<jc>// For testing purposes, we want to use single quotes in all the serializers so it's easier to do simple
-			// String comparisons.
-			// You can apply any of the Serializer/Parser/BeanContext settings this way.</jc>
-			<ja>@Property</ja>(name=<jsf>WSERIALIZER_quoteChar</jsf>, value=<js>"'"</js>)
-		},
 		children={
 			HelloWorldResource.<jk>class</jk>,
 			PetStoreResource.<jk>class</jk>,
@@ -102,6 +96,11 @@ Installing in Eclipse
 			ShutdownResource.<jk>class</jk>
 		}
 	)
+	<ja>@SerializerConfig</ja>(
+		<jc>// For testing purposes, we want to use single quotes in all the serializers so it's easier to do simple
+		// String comparisons.</jc>
+		quoteChar=<js>"'"</js>
+	)
 	<jk>public class</jk> RootResources <jk>extends</jk> BasicRestServletJenaGroup {
 		<jc>// No code</jc>
 	}
diff --git a/juneau-doc/docs/Topics/19.juneau-examples-rest-springboot/01.Installing.html b/juneau-doc/docs/Topics/19.juneau-examples-rest-springboot/01.Installing.html
index 0c4b81e..1904fe9 100644
--- a/juneau-doc/docs/Topics/19.juneau-examples-rest-springboot/01.Installing.html
+++ b/juneau-doc/docs/Topics/19.juneau-examples-rest-springboot/01.Installing.html
@@ -92,12 +92,6 @@ Installing in Eclipse
 				<js>"&lt;/div&gt;"</js>
 			}
 		),
-		properties={
-			<jc>// For testing purposes, we want to use single quotes in all the serializers so it's easier to do simple
-			// String comparisons.
-			// You can apply any of the Serializer/Parser/BeanContext settings this way.</jc>
-			<ja>@Property</ja>(name=<jsf>WSERIALIZER_quoteChar</jsf>, value=<js>"'"</js>)
-		},
 		children={
 			HelloWorldResource.<jk>class</jk>,
 			PetStoreResource.<jk>class</jk>,
@@ -107,6 +101,11 @@ Installing in Eclipse
 			ShutdownResource.<jk>class</jk>
 		}
 	)
+	<ja>@SerializerConfig</ja>(
+		<jc>// For testing purposes, we want to use single quotes in all the serializers so it's easier to do simple
+		// String comparisons.</jc>
+		quoteChar=<js>"'"</js>
+	)
 	<jk>public class</jk> RootResources <jk>extends</jk> BasicRestServletJenaGroup {
 		<jc>// No code</jc>
 	}