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 99d1b1c  @Marshalled annotation.
99d1b1c is described below

commit 99d1b1cb502f0d5dec9c15d24894175770995353
Author: JamesBognar <[email protected]>
AuthorDate: Tue Oct 20 13:04:14 2020 -0400

    @Marshalled annotation.
---
 .../apache/juneau/BeanConfigAnnotationTest.java    |   4 -
 .../juneau/jsonschema/JsonSchemaGeneratorTest.java |  14 +-
 .../juneau/testutils/pojos/TestEnumToString.java   |   7 +
 .../org/apache/juneau/jena/RdfParserBuilder.java   |   4 +-
 .../apache/juneau/jena/RdfSerializerBuilder.java   |   4 +-
 .../main/java/org/apache/juneau/BeanContext.java   |  98 +------------
 .../java/org/apache/juneau/BeanContextBuilder.java |  55 ++++----
 .../main/java/org/apache/juneau/BeanFilter.java    |  24 +++-
 .../java/org/apache/juneau/BeanFilterBuilder.java  |  35 ++++-
 .../main/java/org/apache/juneau/BeanSession.java   |  11 --
 .../org/apache/juneau/BeanTraverseBuilder.java     |   4 +-
 .../src/main/java/org/apache/juneau/ClassMeta.java |  70 +++++-----
 .../src/main/java/org/apache/juneau/Context.java   |  11 ++
 .../java/org/apache/juneau/MarshalledFilter.java   |  80 +++++++++++
 .../org/apache/juneau/MarshalledFilterBuilder.java |  90 ++++++++++++
 .../src/main/java/org/apache/juneau/Session.java   |  11 ++
 .../java/org/apache/juneau/annotation/Bean.java    |  54 ++++++++
 .../apache/juneau/annotation/BeanAnnotation.java   |  34 +++++
 .../org/apache/juneau/annotation/BeanConfig.java   |  86 ++----------
 .../apache/juneau/annotation/BeanConfigApply.java  |  16 +--
 .../org/apache/juneau/annotation/Marshalled.java   | 154 +++++++++++++++++++++
 .../juneau/annotation/MarshalledAnnotation.java    |  84 +++++++++++
 .../org/apache/juneau/csv/CsvParserBuilder.java    |   4 +-
 .../apache/juneau/csv/CsvSerializerBuilder.java    |   4 +-
 .../juneau/html/HtmlDocSerializerBuilder.java      |   4 +-
 .../org/apache/juneau/html/HtmlParserBuilder.java  |   4 +-
 .../juneau/html/HtmlSchemaSerializerBuilder.java   |   6 +-
 .../apache/juneau/html/HtmlSerializerBuilder.java  |   4 +-
 .../html/HtmlStrippedDocSerializerBuilder.java     |   4 +-
 .../org/apache/juneau/http/annotation/Body.java    |  18 +--
 .../apache/juneau/http/annotation/FormData.java    |   8 +-
 .../org/apache/juneau/http/annotation/Header.java  |   8 +-
 .../org/apache/juneau/http/annotation/Path.java    |   7 +-
 .../org/apache/juneau/http/annotation/Query.java   |   7 +-
 .../apache/juneau/http/annotation/Response.java    |  19 +--
 .../org/apache/juneau/jso/JsoParserBuilder.java    |   4 +-
 .../apache/juneau/jso/JsoSerializerBuilder.java    |   4 +-
 .../org/apache/juneau/json/JsonParserBuilder.java  |   4 +-
 .../juneau/json/JsonSchemaSerializerBuilder.java   |   6 +-
 .../apache/juneau/json/JsonSerializerBuilder.java  |   4 +-
 .../juneau/json/SimpleJsonParserBuilder.java       |   4 +-
 .../juneau/json/SimpleJsonSerializerBuilder.java   |   4 +-
 .../juneau/jsonschema/JsonSchemaGenerator.java     |   2 +-
 .../jsonschema/JsonSchemaGeneratorBuilder.java     |   6 +-
 .../jsonschema/annotation/JsonSchemaConfig.java    |   2 +-
 .../juneau/msgpack/MsgPackParserBuilder.java       |   4 +-
 .../juneau/msgpack/MsgPackSerializerBuilder.java   |   4 +-
 .../apache/juneau/oapi/OpenApiParserBuilder.java   |   4 +-
 .../juneau/oapi/OpenApiSerializerBuilder.java      |   4 +-
 .../juneau/parser/InputStreamParserBuilder.java    |   4 +-
 .../org/apache/juneau/parser/ParserBuilder.java    |   4 +-
 .../apache/juneau/parser/ParserGroupBuilder.java   |   4 +-
 .../apache/juneau/parser/ReaderParserBuilder.java  |   4 +-
 .../juneau/plaintext/PlainTextParserBuilder.java   |   4 +-
 .../plaintext/PlainTextSerializerBuilder.java      |   4 +-
 .../serializer/OutputStreamSerializerBuilder.java  |   4 +-
 .../juneau/serializer/SerializerBuilder.java       |   4 +-
 .../juneau/serializer/SerializerGroupBuilder.java  |   4 +-
 .../juneau/serializer/WriterSerializerBuilder.java |   4 +-
 .../juneau/soap/SoapXmlSerializerBuilder.java      |   4 +-
 .../org/apache/juneau/uon/UonParserBuilder.java    |   4 +-
 .../apache/juneau/uon/UonSerializerBuilder.java    |   4 +-
 .../urlencoding/UrlEncodingParserBuilder.java      |   4 +-
 .../urlencoding/UrlEncodingSerializerBuilder.java  |   4 +-
 .../org/apache/juneau/xml/XmlParserBuilder.java    |   4 +-
 .../apache/juneau/xml/XmlSerializerBuilder.java    |   4 +-
 juneau-doc/docs/ReleaseNotes/9.0.0.html            |  50 +++++++
 .../juneau/examples/rest/dto/AtomFeedResource.java |   2 +-
 .../examples/rest/dto/JsonSchemaResource.java      |   2 +-
 .../org/apache/juneau/rest/RestContextBuilder.java |   4 +-
 .../juneau/rest/RestMethodContextBuilder.java      |   4 +-
 71 files changed, 824 insertions(+), 409 deletions(-)

diff --git 
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BeanConfigAnnotationTest.java
 
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BeanConfigAnnotationTest.java
index 0028d45..7a91146 100644
--- 
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BeanConfigAnnotationTest.java
+++ 
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BeanConfigAnnotationTest.java
@@ -125,7 +125,6 @@ public class BeanConfigAnnotationTest {
                bpwo="A1:$X{qux}",
                debug="$X{true}",
                detectRecursions="$X{true}",
-               examples="$X{A1}: {foo:1}",
                fluentSetters="$X{true}",
                ignoreInvocationExceptionsOnGetters="$X{true}",
                ignoreInvocationExceptionsOnSetters="$X{true}",
@@ -175,7 +174,6 @@ public class BeanConfigAnnotationTest {
                check("foo", bc.getBeanTypePropertyName());
                check("true", bc.isDebug());
                check("true", bc.isDetectRecursions());
-               check("A1={foo:1}", bc.getExamples());
                check("true", bc.isFluentSetters());
                check("true", bc.isIgnoreInvocationExceptionsOnGetters());
                check("true", bc.isIgnoreInvocationExceptionsOnSetters());
@@ -224,7 +222,6 @@ public class BeanConfigAnnotationTest {
                check("_type", bc.getBeanTypePropertyName());
                check("false", bc.isDebug());
                check("false", bc.isDetectRecursions());
-               check("", bc.getExamples());
                check("false", bc.isFluentSetters());
                check("false", bc.isIgnoreInvocationExceptionsOnGetters());
                check("false", bc.isIgnoreInvocationExceptionsOnSetters());
@@ -271,7 +268,6 @@ public class BeanConfigAnnotationTest {
                check("_type", bc.getBeanTypePropertyName());
                check("false", bc.isDebug());
                check("false", bc.isDetectRecursions());
-               check("", bc.getExamples());
                check("false", bc.isFluentSetters());
                check("false", bc.isIgnoreInvocationExceptionsOnGetters());
                check("false", bc.isIgnoreInvocationExceptionsOnSetters());
diff --git 
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorTest.java
 
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorTest.java
index 43ea903..547fa50 100755
--- 
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorTest.java
+++ 
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorTest.java
@@ -916,13 +916,11 @@ public class JsonSchemaGeneratorTest {
        @Test
        public void addExample_STRING_wDefault() throws Exception {
                JsonSchemaGeneratorSession s = 
JsonSchemaGenerator.DEFAULT.builder().addExamplesTo("string")
-                       .exampleJson(String.class, "bar1")
-                       .example(StringBuilder.class, new StringBuilder("bar2"))
+                       .example(StringBuilder.class, new StringBuilder("foo"))
                        .example(Character.class, 'b')
                        .example(char.class, 'c')
                        .build().createSession();
-               
assertObject(s.getSchema(String.class)).json().is("{type:'string','x-example':'bar1'}");
-               
assertObject(s.getSchema(StringBuilder.class)).json().is("{type:'string','x-example':'bar2'}");
+               
assertObject(s.getSchema(StringBuilder.class)).json().is("{type:'string','x-example':'foo'}");
                
assertObject(s.getSchema(Character.class)).json().is("{type:'string','x-example':'b'}");
                
assertObject(s.getSchema(char.class)).json().is("{type:'string','x-example':'c'}");
        }
@@ -939,13 +937,11 @@ public class JsonSchemaGeneratorTest {
        @Test
        public void addExample_STRING_2darray_wDefault() throws Exception {
                JsonSchemaGeneratorSession s = 
JsonSchemaGenerator.DEFAULT.builder().addExamplesTo("string")
-                       .exampleJson(String.class, "bar1")
-                       .example(StringBuilder.class, new StringBuilder("bar2"))
+                       .example(StringBuilder.class, new StringBuilder("foo"))
                        .example(Character.class, 'b')
                        .example(char.class, 'c')
                        .build().createSession();
-               
assertObject(s.getSchema(String[][].class)).json().is("{type:'array',items:{type:'array',items:{type:'string','x-example':'bar1'}}}");
-               
assertObject(s.getSchema(StringBuilder[][].class)).json().is("{type:'array',items:{type:'array',items:{type:'string','x-example':'bar2'}}}");
+               
assertObject(s.getSchema(StringBuilder[][].class)).json().is("{type:'array',items:{type:'array',items:{type:'string','x-example':'foo'}}}");
                
assertObject(s.getSchema(Character[][].class)).json().is("{type:'array',items:{type:'array',items:{type:'string','x-example':'b'}}}");
                
assertObject(s.getSchema(char[][].class)).json().is("{type:'array',items:{type:'array',items:{type:'string','x-example':'c'}}}");
        }
@@ -980,7 +976,7 @@ public class JsonSchemaGeneratorTest {
 
        @Test
        public void addExample_ENUM_wDefault_useEnumNames() throws Exception {
-               JsonSchemaGeneratorSession s = 
JsonSchemaGenerator.DEFAULT.builder().useEnumNames().addExamplesTo("enum").example(TestEnumToString.class,
 TestEnumToString.TWO).build().createSession();
+               JsonSchemaGeneratorSession s = 
JsonSchemaGenerator.DEFAULT.builder().useEnumNames().addExamplesTo("enum").example(TestEnumToString.class,
 "'TWO'").build().createSession();
                
assertObject(s.getSchema(TestEnumToString.class)).json().is("{type:'string','enum':['ONE','TWO','THREE'],'x-example':'TWO'}");
        }
 
diff --git 
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/testutils/pojos/TestEnumToString.java
 
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/testutils/pojos/TestEnumToString.java
index 66b224d..e6cb5f3 100644
--- 
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/testutils/pojos/TestEnumToString.java
+++ 
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/testutils/pojos/TestEnumToString.java
@@ -22,6 +22,13 @@ public enum TestEnumToString {
                this.val = val;
        }
 
+       public static TestEnumToString fromString(String val) {
+               for (TestEnumToString e : values())
+                       if (e.val.equals(val))
+                               return e;
+               return null;
+       }
+
        @Override
        public String toString() {
                return val;
diff --git 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserBuilder.java
 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserBuilder.java
index fd59882..f038c44 100644
--- 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserBuilder.java
+++ 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserBuilder.java
@@ -1057,8 +1057,8 @@ public class RdfParserBuilder extends ReaderParserBuilder 
{
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> RdfParserBuilder exampleJson(Class<T> pojoClass, String 
json) {
-               super.exampleJson(pojoClass, json);
+       public <T> RdfParserBuilder example(Class<T> pojoClass, String json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java
 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java
index f5efaaf..d0aeb57 100644
--- 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java
@@ -1217,8 +1217,8 @@ public class RdfSerializerBuilder extends 
WriterSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> RdfSerializerBuilder exampleJson(Class<T> pojoClass, String 
json) {
-               super.exampleJson(pojoClass, json);
+       public <T> RdfSerializerBuilder example(Class<T> pojoClass, String 
json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
index 7daec07..fd3fe9c 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
@@ -1096,64 +1096,6 @@ public class BeanContext extends Context implements 
MetaProvider {
        public static final String BEAN_typePropertyName = PREFIX + 
".typePropertyName.s";
 
        /**
-        * Configuration property:  POJO examples.
-        *
-        * <h5 class='section'>Property:</h5>
-        * <ul class='spaced-list'>
-        *      <li><b>ID:</b>  {@link 
org.apache.juneau.BeanContext#BEAN_examples BEAN_examples}
-        *      <li><b>Name:</b>  <js>"BeanContext.examples.smo"</js>
-        *      <li><b>Data type:</b>  <c>Map&lt;String,Object&gt;</c>
-        *      <li><b>Default:</b>  <c>{}</c>
-        *      <li><b>Session property:</b>  <jk>false</jk>
-        *      <li><b>Annotations:</b>
-        *              <ul>
-        *                      <li class='ja'>{@link 
org.apache.juneau.annotation.Example}
-        *                      <li class='ja'>{@link 
org.apache.juneau.annotation.BeanConfig#example()}
-        *                      <li class='ja'>{@link 
org.apache.juneau.annotation.BeanConfig#examples()}
-        *              </ul>
-        *      <li><b>Methods:</b>
-        *              <ul>
-        *                      <li class='jm'>{@link 
org.apache.juneau.BeanContextBuilder#example(Class,Object)}
-        *              </ul>
-        * </ul>
-        *
-        * <h5 class='section'>Description:</h5>
-        *
-        * <p>
-        * Specifies an example of the specified class.
-        *
-        * <p>
-        * Examples are used in cases such as POJO examples in Swagger 
documents.
-        *
-        * <p>
-        * Setting applies to specified class and all subclasses.
-        *
-        * <h5 class='section'>Example:</h5>
-        * <p class='bcode w800'>
-        *      <jc>// Create a serializer that excludes the 'foo' and 'bar' 
properties on the MyBean class.</jc>
-        *      WriterSerializer s = JsonSerializer
-        *              .<jsm>create</jsm>()
-        *              .example(MyBean.<jk>class</jk>, <jk>new</jk> 
MyBean().foo(<js>"foo"</js>).bar(123))
-        *              .build();
-        *
-        *      <jc>// Same, but use property.</jc>
-        *      WriterSerializer s = JsonSerializer
-        *              .<jsm>create</jsm>()
-        *              .addTo(<jsf>BEAN_examples</jsf>, 
MyBean.<jk>class</jk>.getName(), <jk>new</jk> 
MyBean().foo(<js>"foo"</js>).bar(123))
-        *              .build();
-        * </p>
-        *
-        * <p>
-        * POJO examples can also be defined on classes via the following:
-        * <ul class='spaced-list'>
-        *      <li>A static field annotated with {@link Example @Example}.
-        *      <li>A static method annotated with {@link Example @Example} 
with zero arguments or one {@link BeanSession} argument.
-        *      <li>A static method with name <c>example</c> with no arguments 
or one {@link BeanSession} argument.
-        * </ul>
-        */
-       public static final String BEAN_examples = PREFIX + ".examples.smo";
-
-       /**
         * Configuration property:  Find fluent setters.
         *
         * <h5 class='section'>Property:</h5>
@@ -2242,7 +2184,6 @@ public class BeanContext extends Context implements 
MetaProvider {
        private final List<Class<?>> beanDictionaryClasses;
        private final String[] notBeanPackageNames, notBeanPackagePrefixes;
        private final PojoSwap<?,?>[] swaps;
-       private final Map<String,?> examples;
        private final BeanRegistry beanRegistry;
        private final Map<String,ClassInfo> implClasses;
        private final PropertyNamer propertyNamer;
@@ -2355,8 +2296,6 @@ public class BeanContext extends Context implements 
MetaProvider {
                }
                swaps = lpf.toArray(new PojoSwap[lpf.size()]);
 
-               examples = getMapProperty(BEAN_examples, Object.class);
-
                AMap<String,ClassInfo> icm = AMap.of();
                for (Map.Entry<String,Class<?>> e : 
getClassMapProperty(BEAN_implClasses).entrySet())
                        icm.put(e.getKey(), ClassInfo.of(e.getValue()));
@@ -2364,8 +2303,8 @@ public class BeanContext extends Context implements 
MetaProvider {
 
                if (! cmCacheCache.containsKey(beanHashCode)) {
                        ConcurrentHashMap<Class,ClassMeta> cm = new 
ConcurrentHashMap<>();
-                       cm.putIfAbsent(String.class, new 
ClassMeta(String.class, this, null, findPojoSwaps(String.class), 
findChildPojoSwaps(String.class), findExample(String.class)));
-                       cm.putIfAbsent(Object.class, new 
ClassMeta(Object.class, this, null, findPojoSwaps(Object.class), 
findChildPojoSwaps(Object.class), findExample(Object.class)));
+                       cm.putIfAbsent(String.class, new 
ClassMeta(String.class, this, null, findPojoSwaps(String.class), 
findChildPojoSwaps(String.class)));
+                       cm.putIfAbsent(Object.class, new 
ClassMeta(Object.class, this, null, findPojoSwaps(Object.class), 
findChildPojoSwaps(Object.class)));
                        cmCacheCache.putIfAbsent(beanHashCode, cm);
                }
                cmCache = cmCacheCache.get(beanHashCode);
@@ -2582,7 +2521,7 @@ public class BeanContext extends Context implements 
MetaProvider {
                                // Make sure someone didn't already set it 
while this thread was blocked.
                                cm = cmCache.get(type);
                                if (cm == null)
-                                       cm = new ClassMeta<>(type, this, 
findImplClass(type), findPojoSwaps(type), findChildPojoSwaps(type), 
findExample(type));
+                                       cm = new ClassMeta<>(type, this, 
findImplClass(type), findPojoSwaps(type), findChildPojoSwaps(type));
                        }
                }
                if (waitForInit)
@@ -2906,26 +2845,6 @@ public class BeanContext extends Context implements 
MetaProvider {
                return null;
        }
 
-       private final Object findExample(Class<?> c) {
-               if (c != null) {
-                       Object o = examples.get(c.getName());
-                       if (o != null)
-                               return o;
-                       o = examples.get(c.getSimpleName());
-                       if (o != null)
-                               return o;
-                       Class<?> c2 = findImplClass(c);
-                       if (c2 == null)
-                               return null;
-                       o = examples.get(c2.getName());
-                       if (o != null)
-                               return o;
-                       o = examples.get(c2.getSimpleName());
-                       return o;
-               }
-               return null;
-       }
-
        /**
         * Checks whether a class has a {@link PojoSwap} associated with it in 
this bean context.
         *
@@ -3602,17 +3521,6 @@ public class BeanContext extends Context implements 
MetaProvider {
        }
 
        /**
-        * POJO examples.
-        *
-        * @see #BEAN_examples
-        * @return
-        *      A map of POJO examples keyed by class name.
-        */
-       protected final Map<String,?> getExamples() {
-               return examples;
-       }
-
-       /**
         * Find fluent setters.
         *
         * <h5 class='section'>Description:</h5>
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java
index a89ff1f..6ce6124 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java
@@ -25,7 +25,6 @@ import org.apache.juneau.annotation.*;
 import org.apache.juneau.http.*;
 import org.apache.juneau.internal.*;
 import org.apache.juneau.marshall.*;
-import org.apache.juneau.parser.*;
 import org.apache.juneau.reflect.*;
 import org.apache.juneau.svl.*;
 import org.apache.juneau.transform.*;
@@ -1642,7 +1641,7 @@ public class BeanContextBuilder extends ContextBuilder {
        }
 
        /**
-        * <i><l>BeanContext</l> configuration property:&emsp;</i>  POJO 
example.
+        * POJO example.
         *
         * <p>
         * Specifies an example of the specified class.
@@ -1650,47 +1649,47 @@ public class BeanContextBuilder extends ContextBuilder {
         * <p>
         * Examples are used in cases such as POJO examples in Swagger 
documents.
         *
-        * <p>
-        * Setting applies to specified class and all subclasses.
-        *
         * <h5 class='section'>Example:</h5>
         * <p class='bcode w800'>
         *      <jc>// Create a serializer that excludes the 'foo' and 'bar' 
properties on the MyBean class.</jc>
-        *      WriterSerializer s = JsonSerializer
+        *      WriterSerializer <jv>serializer</jv> = JsonSerializer
         *              .<jsm>create</jsm>()
         *              .example(MyBean.<jk>class</jk>, <jk>new</jk> 
MyBean().foo(<js>"foo"</js>).bar(123))
         *              .build();
-        *
-        *      <jc>// Same, but use property.</jc>
-        *      WriterSerializer s = JsonSerializer
-        *              .<jsm>create</jsm>()
-        *              .addTo(<jsf>BEAN_examples</jsf>, 
MyBean.<jk>class</jk>.getName(), <jk>new</jk> 
MyBean().foo(<js>"foo"</js>).bar(123))
-        *              .build();
+        * </p>
+        * 
+        * <p>
+        * This is a shorthand method for the following code:
+        * <p class='bcode w800'>
+        *              <jv>builder</jv>.annotations(<jk>new</jk> 
MarshalledAnnotation().onClass(<jv>pojoClass</jv>).example(SimpleJson.<jsf>DEFAULT</jsf>.toString(<jv>o</jv>)))
         * </p>
         *
+        * <ul class='notes'>
+        *      <li>Using this method assumes the serialized form of the object 
is the same as that produced
+        *              by the default serializer.  This may not be true based 
on settings or swaps on the constructed serializer.
+        * </ul>
+        * 
         * <p>
         * POJO examples can also be defined on classes via the following:
         * <ul class='spaced-list'>
+        *      <li>The {@link Marshalled#example()} annotation on the class 
itself.
         *      <li>A static field annotated with {@link Example @Example}.
         *      <li>A static method annotated with {@link Example @Example} 
with zero arguments or one {@link BeanSession} argument.
         *      <li>A static method with name <c>example</c> with no arguments 
or one {@link BeanSession} argument.
         * </ul>
         *
-        * <ul class='seealso'>
-        *      <li class='jf'>{@link BeanContext#BEAN_examples}
-        * </ul>
-        *
         * @param pojoClass The POJO class.
-        * @param o An instance of the POJO class used for examples.
+        * @param o
+        *      An instance of the POJO class used for examples.
         * @return This object (for method chaining).
         */
        @FluentSetter
        public <T> BeanContextBuilder example(Class<T> pojoClass, T o) {
-               return putTo(BEAN_examples, pojoClass.getName(), o);
+               return annotations(new 
MarshalledAnnotation().onClass(pojoClass).example(SimpleJson.DEFAULT.toString(o)));
        }
 
        /**
-        * <i><l>BeanContext</l> configuration property:&emsp;</i>  POJO 
example.
+        * POJO example.
         *
         * <p>
         * Specifies an example in JSON of the specified class.
@@ -1704,13 +1703,19 @@ public class BeanContextBuilder extends ContextBuilder {
         * <h5 class='section'>Example:</h5>
         * <p class='bcode w800'>
         *      <jc>// Create a serializer that excludes the 'foo' and 'bar' 
properties on the MyBean class.</jc>
-        *      WriterSerializer s = JsonSerializer
+        *      WriterSerializer <jv>serializer</jv> = JsonSerializer
         *              .<jsm>create</jsm>()
         *              .example(MyBean.<jk>class</jk>, <js>"{foo:'bar'}"</js>)
         *              .build();
         * </p>
         *
         * <p>
+        * This is a shorthand method for the following code:
+        * <p class='bcode w800'>
+        *              <jv>builder</jv>.annotations(<jk>new</jk> 
MarshalledAnnotation().onClass(<jv>pojoClass</jv>).example(<jv>json</jv>))
+        * </p>
+        *
+        * <p>
         * POJO examples can also be defined on classes via the following:
         * <ul class='spaced-list'>
         *      <li>A static field annotated with {@link Example @Example}.
@@ -1719,7 +1724,7 @@ public class BeanContextBuilder extends ContextBuilder {
         * </ul>
         *
         * <ul class='seealso'>
-        *      <li class='jf'>{@link BeanContext#BEAN_examples}
+        *      <li class='ja'>{@link Marshalled#example()}
         * </ul>
         *
         * @param <T> The POJO class type.
@@ -1728,12 +1733,8 @@ public class BeanContextBuilder extends ContextBuilder {
         * @return This object (for method chaining).
         */
        @FluentSetter
-       public <T> BeanContextBuilder exampleJson(Class<T> pojoClass, String 
json) {
-               try {
-                       return putTo(BEAN_examples, pojoClass.getName(), 
SimpleJson.DEFAULT.read(json, pojoClass));
-               } catch (ParseException e) {
-                       throw new RuntimeException(e);
-               }
+       public <T> BeanContextBuilder example(Class<T> pojoClass, String json) {
+               return annotations(new 
MarshalledAnnotation().onClass(pojoClass).example(json));
        }
 
        /**
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanFilter.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanFilter.java
index c66802e..a93a50f 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanFilter.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanFilter.java
@@ -38,9 +38,9 @@ public final class BeanFilter {
        private final Class<?> beanClass;
        private final Set<String> bpi, bpx, bpro, bpwo;
        private final PropertyNamer propertyNamer;
-       private final Class<?> interfaceClass, stopClass;
+       private final Class<?> implClass, interfaceClass, stopClass;
        private final boolean sortProperties, fluentSetters;
-       private final String typeName;
+       private final String typeName, example;
        private final Class<?>[] beanDictionary;
        @SuppressWarnings("rawtypes")
        private final BeanInterceptor interceptor;
@@ -55,6 +55,8 @@ public final class BeanFilter {
                this.bpx = new LinkedHashSet<>(builder.bpx);
                this.bpro = new LinkedHashSet<>(builder.bpro);
                this.bpwo = new LinkedHashSet<>(builder.bpwo);
+               this.example = builder.example;
+               this.implClass = builder.implClass;
                this.interfaceClass = builder.interfaceClass;
                this.stopClass = builder.stopClass;
                this.sortProperties = builder.sortProperties;
@@ -178,6 +180,15 @@ public final class BeanFilter {
        }
 
        /**
+        * Returns the implementation class associated with this class.
+        *
+        * @return The implementation class associated with this class, or 
<jk>null</jk> if no implementation class is associated.
+        */
+       public Class<?> getImplClass() {
+               return implClass;
+       }
+
+       /**
         * Returns the interface class associated with this class.
         *
         * @return The interface class associated with this class, or 
<jk>null</jk> if no interface class is associated.
@@ -196,6 +207,15 @@ public final class BeanFilter {
        }
 
        /**
+        * Returns the example associated with this class.
+        *
+        * @return The example associated with this class, or <jk>null</jk> if 
no example is associated.
+        */
+       public String getExample() {
+               return example;
+       }
+
+       /**
         * Calls the {@link BeanInterceptor#readProperty(Object, String, 
Object)} method on the registered property filters.
         *
         * @param bean The bean from which the property was read.
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanFilterBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanFilterBuilder.java
index a13844d..576ef1b 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanFilterBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanFilterBuilder.java
@@ -30,13 +30,13 @@ import org.apache.juneau.transform.*;
 public class BeanFilterBuilder {
 
        Class<?> beanClass;
-       String typeName;
+       String typeName, example;
        ASet<String>
                bpi = ASet.of(),
                bpx = ASet.of(),
                bpro = ASet.of(),
                bpwo = ASet.of();
-       Class<?> interfaceClass, stopClass;
+       Class<?> implClass, interfaceClass, stopClass;
        boolean sortProperties, fluentSetters;
        Object propertyNamer;
        List<Class<?>> dictionary;
@@ -96,6 +96,12 @@ public class BeanFilterBuilder {
 
                        if (b.interceptor() != BeanInterceptor.Default.class)
                                interceptor(b.interceptor());
+
+                       if (b.implClass() != Null.class)
+                               implClass(b.implClass());
+
+                       if (! b.example().isEmpty())
+                               example(b.example());
                }
                return this;
        }
@@ -138,7 +144,18 @@ public class BeanFilterBuilder {
        }
 
        /**
-        * Configuration property:  Bean interface class.
+        * Bean implementation class.
+        *
+        * @param value The new value for this setting.
+        * @return This object (for method chaining).
+        */
+       public BeanFilterBuilder implClass(Class<?> value) {
+               this.implClass = value;
+               return this;
+       }
+
+       /**
+        * Bean interface class.
         *
         * Identifies a class to be used as the interface class for this and 
all subclasses.
         *
@@ -633,6 +650,18 @@ public class BeanFilterBuilder {
        }
 
        /**
+        * Example.
+        *
+        * @param value
+        *      The new value for this property.
+        * @return This object (for method chaining).
+        */
+       public BeanFilterBuilder example(String value) {
+               this.example = value;
+               return this;
+       }
+
+       /**
         * Configuration property:  Bean interceptor.
         *
         * <p>
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
index 5710b9a..2e22a36 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
@@ -1298,17 +1298,6 @@ public class BeanSession extends Session {
        }
 
        /**
-        * Configuration property:  POJO examples.
-        *
-        * @see BeanContext#BEAN_examples
-        * @return
-        *      A map of POJO examples keyed by class name.
-        */
-       protected final Map<String,?> getExamples() {
-               return ctx.getExamples();
-       }
-
-       /**
         * Configuration property:  Find fluent setters.
         *
         * <h5 class='section'>Description:</h5>
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseBuilder.java
index fd43aca..f94aaea 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseBuilder.java
@@ -499,8 +499,8 @@ public class BeanTraverseBuilder extends BeanContextBuilder 
{
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> BeanTraverseBuilder exampleJson(Class<T> pojoClass, String 
json) {
-               super.exampleJson(pojoClass, json);
+       public <T> BeanTraverseBuilder example(Class<T> pojoClass, String json) 
{
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
index 2a955f8..c64a3a3 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
@@ -32,7 +32,6 @@ import java.util.concurrent.locks.*;
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.collections.*;
 import org.apache.juneau.http.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.json.*;
 import org.apache.juneau.reflect.*;
 import org.apache.juneau.transform.*;
@@ -108,7 +107,7 @@ public final class ClassMeta<T> implements Type {
        private final InvocationHandler invocationHandler;      // The 
invocation handler for this class (if it has one).
        private final BeanRegistry beanRegistry;                // The bean 
registry of this class meta (if it has one).
        private final ClassMeta<?>[] args;                      // Arg types if 
this is an array of args.
-       private final Object example;                          // Example 
object.
+       private final String example;                           // Example JSON.
        private final Map<Class<?>,Mutater<?,T>> fromMutaters = new 
ConcurrentHashMap<>();
        private final Map<Class<?>,Mutater<T,?>> toMutaters = new 
ConcurrentHashMap<>();
        private final Mutater<String,T> stringMutater;
@@ -136,7 +135,7 @@ public final class ClassMeta<T> implements Type {
         *      Used for delayed initialization when the possibility of class 
reference loops exist.
         */
        @SuppressWarnings({ "rawtypes", "unchecked" })
-       ClassMeta(Class<T> innerClass, BeanContext beanContext, Class<? extends 
T> implClass, PojoSwap<T,?>[] swaps, PojoSwap<?,?>[] childPojoSwaps, Object 
example) {
+       ClassMeta(Class<T> innerClass, BeanContext beanContext, Class<? extends 
T> implClass, PojoSwap<T,?>[] swaps, PojoSwap<?,?>[] childPojoSwaps) {
                this.innerClass = innerClass;
                this.info = ClassInfo.of(innerClass);
                this.beanContext = beanContext;
@@ -148,7 +147,7 @@ public final class ClassMeta<T> implements Type {
                        if (beanContext != null && beanContext.cmCache != null 
&& isCacheable(innerClass))
                                beanContext.cmCache.put(innerClass, this);
 
-                       ClassMetaBuilder<T> builder = new 
ClassMetaBuilder(innerClass, beanContext, implClass, swaps, childPojoSwaps, 
example);
+                       ClassMetaBuilder<T> builder = new 
ClassMetaBuilder(innerClass, beanContext, implClass, swaps, childPojoSwaps);
 
                        this.cc = builder.cc;
                        this.isDelegate = builder.isDelegate;
@@ -340,10 +339,10 @@ public final class ClassMeta<T> implements Type {
                        childUnswapMap;
                Method exampleMethod;
                Field exampleField;
-               Object example;
+               String example;
                Mutater<String,T> stringMutater;
 
-               ClassMetaBuilder(Class<T> innerClass, BeanContext beanContext, 
Class<? extends T> implClass, PojoSwap<T,?>[] swaps, PojoSwap<?,?>[] 
childPojoSwaps, Object example) {
+               ClassMetaBuilder(Class<T> innerClass, BeanContext beanContext, 
Class<? extends T> implClass, PojoSwap<T,?>[] swaps, PojoSwap<?,?>[] 
childPojoSwaps) {
                        this.innerClass = innerClass;
                        this.beanContext = beanContext;
                        BeanContext bc = beanContext;
@@ -534,6 +533,7 @@ public final class ClassMeta<T> implements Type {
                        }
 
                        BeanFilter beanFilter = findBeanFilter(bc);
+                       MarshalledFilter marshalledFilter = 
findMarshalledFilter(bc);
 
                        if (swaps != null)
                                this.swaps.a(swaps);
@@ -616,6 +616,12 @@ public final class ClassMeta<T> implements Type {
                                }
                        }
 
+                       if (beanFilter != null)
+                               example = beanFilter.getExample();
+
+                       if (example == null && marshalledFilter != null)
+                               example = marshalledFilter.getExample();
+
                        if (example == null && bc != null)
                                for (Example e : 
bc.getAnnotations(Example.class, c))
                                        if (! e.value().isEmpty())
@@ -624,10 +630,10 @@ public final class ClassMeta<T> implements Type {
                        if (example == null) {
                                switch(cc) {
                                        case BOOLEAN:
-                                               example = true;
+                                               example = "true";
                                                break;
                                        case CHAR:
-                                               example = 'a';
+                                               example = "a";
                                                break;
                                        case CHARSEQ:
                                        case STR:
@@ -635,22 +641,22 @@ public final class ClassMeta<T> implements Type {
                                                break;
                                        case DECIMAL:
                                                if (isFloat())
-                                                       example = new Float(1f);
+                                                       example = "1.0";
                                                else if (isDouble())
-                                                       example = new 
Double(1d);
+                                                       example = "1.0";
                                                break;
                                        case ENUM:
                                                Iterator<? extends Enum> i = 
EnumSet.allOf((Class<? extends Enum>)c).iterator();
                                                if (i.hasNext())
-                                                       example = i.next();
+                                                       example = 
beanContext.isUseEnumNames() ? i.next().name() : i.next().toString();
                                                break;
                                        case NUMBER:
                                                if (isShort())
-                                                       example = new 
Short((short)1);
+                                                       example = "1";
                                                else if (isInteger())
-                                                       example = new 
Integer(1);
+                                                       example = "1";
                                                else if (isLong())
-                                                       example = new Long(1l);
+                                                       example = "1";
                                                break;
                                        case URI:
                                        case ARGS:
@@ -671,8 +677,6 @@ public final class ClassMeta<T> implements Type {
                                }
                        }
 
-                       this.example = example;
-
                        this.stringMutater = Mutaters.get(String.class, c);
                }
 
@@ -687,6 +691,17 @@ public final class ClassMeta<T> implements Type {
                        return null;
                }
 
+               private MarshalledFilter findMarshalledFilter(BeanContext bc) {
+                       try {
+                               List<Marshalled> ba = 
info.getAnnotations(Marshalled.class, bc);
+                               if (! ba.isEmpty())
+                                       return 
MarshalledFilter.create(innerClass).applyAnnotations(ba).build();
+                       } catch (Exception e) {
+                               throw new RuntimeException(e);
+                       }
+                       return null;
+               }
+
                private void findSwaps(List<PojoSwap> l, BeanContext bc) {
 
                        if (bc != null) {
@@ -950,25 +965,8 @@ public final class ClassMeta<T> implements Type {
        @BeanIgnore
        public T getExample(BeanSession session) {
                try {
-                       if (example != null) {
-                               if (isInstance(example))
-                                       return (T)example;
-                               if (example instanceof String) {
-                                       if (isCharSequence())
-                                               return (T)example;
-                                       String s = example.toString();
-                                       if (isMapOrBean() && 
StringUtils.isJsonObject(s, false))
-                                               return 
JsonParser.DEFAULT.parse(s, this);
-                                       if (isCollectionOrArray() && 
StringUtils.isJsonArray(s, false))
-                                               return 
JsonParser.DEFAULT.parse(s, this);
-                               }
-                               if (example instanceof Map && isMapOrBean()) {
-                                       return 
JsonParser.DEFAULT.parse(SimpleJsonSerializer.DEFAULT_READABLE.toString(example),
 this);
-                               }
-                               if (example instanceof Collection && 
isCollectionOrArray()) {
-                                       return 
JsonParser.DEFAULT.parse(SimpleJsonSerializer.DEFAULT_READABLE.serialize(example),
 this);
-                               }
-                       }
+                       if (example != null)
+                               return 
session.getContext().getContext(JsonParser.class).parse(example, this);
                        if (exampleMethod != null)
                                return 
(T)MethodInfo.of(exampleMethod).invokeFuzzy(null, session);
                        if (exampleField != null)
@@ -1723,7 +1721,7 @@ public final class ClassMeta<T> implements Type {
        @SuppressWarnings({ "unchecked", "rawtypes" })
        public T newInstanceFromString(Object outer, String arg) throws 
ExecutableException {
 
-               if (isEnum() && beanContext.isUseEnumNames() && 
fromStringMethod != null)
+               if (isEnum() && beanContext.isUseEnumNames())
                        return (T)Enum.valueOf((Class<? extends 
Enum>)this.innerClass, arg);
 
                Method m = fromStringMethod;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Context.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Context.java
index 2fd3b90..a7e014f 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Context.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Context.java
@@ -762,6 +762,17 @@ public abstract class Context {
        }
 
        /**
+        * Constructs the specified context class using the property store of 
this context class.
+        * 
+        * @param c The context class to instantiate.
+        * @param <T> The context class to instantiate.
+        * @return The instantiated context class.
+        */
+       public <T extends Context> T getContext(Class<T> c) {
+               return ContextCache.INSTANCE.create(c, propertyStore);
+       }
+
+       /**
         * Create a new bean session based on the properties defined on this 
context.
         *
         * <p>
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MarshalledFilter.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MarshalledFilter.java
new file mode 100644
index 0000000..6bfba67
--- /dev/null
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MarshalledFilter.java
@@ -0,0 +1,80 @@
+// 
***************************************************************************************************************************
+// * 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.                                              *
+// 
***************************************************************************************************************************
+package org.apache.juneau;
+
+import org.apache.juneau.annotation.*;
+
+/**
+ * Parent class for all non-bean filters.
+ *
+ * <p>
+ * Marshall filters are used to control aspects of how POJOs are handled 
during serialization and parsing.
+ *
+ * <p>
+ * Marshall filters are created by {@link MarshalledFilterBuilder} which is 
the programmatic equivalent to the {@link Marshalled @Marshalled}
+ * annotation.
+ */
+public final class MarshalledFilter {
+
+       private final Class<?> marshalledClass;
+
+       private final Class<?> implClass;
+       private final String example;
+
+       /**
+        * Constructor.
+        */
+       MarshalledFilter(MarshalledFilterBuilder builder) {
+               this.marshalledClass = builder.marshalledClass;
+               this.implClass = builder.implClass;
+               this.example = builder.example;
+       }
+
+       /**
+        * Create a new instance of this POJO filter.
+        *
+        * @param <T> The POJO class being filtered.
+        * @param marshalledClass The POJO class being filtered.
+        * @return A new {@link MarshalledFilterBuilder} object.
+        */
+       public static <T> MarshalledFilterBuilder create(Class<T> 
marshalledClass) {
+               return new MarshalledFilterBuilder(marshalledClass);
+       }
+
+       /**
+        * Returns the class that this filter applies to.
+        *
+        * @return The class that this filter applies to.
+        */
+       public Class<?> getMarshalledClass() {
+               return marshalledClass;
+       }
+
+       /**
+        * Returns the implementation class associated with this class.
+        *
+        * @return The implementation class associated with this class, or 
<jk>null</jk> if no implementation class is associated.
+        */
+       public Class<?> getImplClass() {
+               return implClass;
+       }
+
+       /**
+        * Returns the example string with this class.
+        *
+        * @return The example string associated with this class, or 
<jk>null</jk> if no example string is associated.
+        */
+       public String getExample() {
+               return example;
+       }
+}
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MarshalledFilterBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MarshalledFilterBuilder.java
new file mode 100644
index 0000000..d6d5f9f
--- /dev/null
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MarshalledFilterBuilder.java
@@ -0,0 +1,90 @@
+// 
***************************************************************************************************************************
+// * 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.                                              *
+// 
***************************************************************************************************************************
+package org.apache.juneau;
+
+import java.util.*;
+
+import org.apache.juneau.annotation.*;
+
+/**
+ * Builder class for {@link MarshalledFilter} objects.
+ *
+ * <p>
+ * This class is the programmatic equivalent to the aggregation of one or more 
{@link Marshalled @Marshalled} annotations.
+ */
+public class MarshalledFilterBuilder {
+
+       Class<?> marshalledClass;
+
+       Class<?> implClass;
+       String example;
+
+       /**
+        * Constructor.
+        *
+        * @param marshalledClass The class that this filter applies to.
+        */
+       public MarshalledFilterBuilder(Class<?> marshalledClass) {
+               this.marshalledClass = marshalledClass;
+       }
+
+       /**
+        * Applies the information in the specified list of {@link Marshalled 
@Marshalled} annotations to this filter.
+        *
+        * @param annotations The annotations to apply.
+        * @return This object (for method chaining).
+        */
+       public MarshalledFilterBuilder applyAnnotations(List<Marshalled> 
annotations) {
+
+               for (Marshalled b : annotations) {
+
+                       if (b.implClass() != Null.class)
+                               implClass(b.implClass());
+
+                       if (! b.example().isEmpty())
+                               example(b.example());
+               }
+               return this;
+       }
+
+       /**
+        * Implementation class.
+        *
+        * @param value The new value for this setting.
+        * @return This object (for method chaining).
+        */
+       public MarshalledFilterBuilder implClass(Class<?> value) {
+               this.implClass = value;
+               return this;
+       }
+
+       /**
+        * POJO example in Simplified JSON format.
+        *
+        * @param value The new value for this annotation.
+        * @return This object (for method chaining).
+        */
+       public MarshalledFilterBuilder example(String value) {
+               this.example = value;
+               return this;
+       }
+
+       /**
+        * Creates a {@link MarshalledFilter} with settings in this builder 
class.
+        *
+        * @return A new {@link MarshalledFilter} instance.
+        */
+       public MarshalledFilter build() {
+               return new MarshalledFilter(this);
+       }
+}
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Session.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Session.java
index 29c0844..20c8cb7 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Session.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Session.java
@@ -40,6 +40,7 @@ public abstract class Session {
        private Map<String,Object> cache;
        private List<String> warnings;                 // Any warnings 
encountered.
 
+       private final Context ctx;
        private final boolean debug;
        private final Locale locale;
        private final TimeZone timeZone;
@@ -54,6 +55,7 @@ public abstract class Session {
         *      Runtime arguments.
         */
        protected Session(Context ctx, SessionArgs args) {
+               this.ctx = ctx;
                this.properties = args.properties == null ? OMap.EMPTY_MAP : 
args.properties;
                debug = getProperty(CONTEXT_debug, Boolean.class, 
ctx.isDebug());
                locale = getProperty(CONTEXT_locale, Locale.class, 
ctx.getDefaultLocale());
@@ -199,6 +201,15 @@ public abstract class Session {
                return properties.keySet();
        }
 
+       /**
+        * Returns the context that created this session.
+        *
+        * @return The context that created this session.
+        */
+       public Context getContext() {
+               return ctx;
+       }
+
        @SuppressWarnings("unchecked")
        private <T> T newInstance(Class<T> type, Object o, Object def) {
                T t = null;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Bean.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Bean.java
index a3e3e37..a60631d 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Bean.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Bean.java
@@ -149,6 +149,44 @@ public @interface Bean {
        Class<?>[] dictionary() default {};
 
        /**
+        * POJO example.
+        *
+        * <p>
+        * Specifies an example of the specified class in Simplified JSON 
format.
+        *
+        * <p>
+        * Examples are used in cases such as POJO examples in Swagger 
documents.
+        *
+        * <h5 class='section'>Example:</h5>
+        * <p class='bcode w800'>
+        *      <ja>@Bean</ja>(example=<js>"{foo:'bar'}"</js>)
+        *      <jk>public class</jk> MyClass {...}
+        * </p>
+        *
+        * <ul class='notes'>
+        *      <li>
+        *              Setting applies to specified class and all subclasses.
+        *      <li>
+        *              Keys are the class of the example.
+        *              <br>Values are Simple-JSON representation of that class.
+        *      <li>
+        *              POJO examples can also be defined on classes via the 
following:
+        *              <ul class='spaced-list'>
+        *                      <li>A static field annotated with {@link 
Example @Example}.
+        *                      <li>A static method annotated with {@link 
Example @Example} with zero arguments or one {@link BeanSession} argument.
+        *                      <li>A static method with name <c>example</c> 
with no arguments or one {@link BeanSession} argument.
+        *              </ul>
+        *      <li>
+        *              Supports {@doc DefaultVarResolver} (e.g. 
<js>"$C{myConfigVar}"</js>).
+        * </ul>
+        *
+        * <ul class='seealso'>
+        *      <li class='ja'>{@link Example}
+        * </ul>
+        */
+       String example() default "";
+
+       /**
         * Find fluent setters.
         *
         * <p>
@@ -182,6 +220,22 @@ public @interface Bean {
        boolean fluentSetters() default false;
 
        /**
+        * Implementation class.
+        *
+        * <p>
+        * For interfaces and abstract classes this method can be used to 
specify an implementation class for the
+        * interface/abstract class so that instances of the implementation 
class are used when instantiated (e.g. during a
+        * parse).
+        *
+        * <h5 class='section'>Example:</h5>
+        * <p class='bcode w800'>
+        *      <ja>@Bean</ja>(implClass=MyInterfaceImpl.<jk>class</jk>)
+        *      <jk>public class</jk> MyInterface {...}
+        * <p>
+        */
+       Class<?> implClass() default Null.class;
+
+       /**
         * Identifies a class to be used as the interface class for this and 
all subclasses.
         *
         * <p>
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanAnnotation.java
index 7216191..0c4e43c 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanAnnotation.java
@@ -29,6 +29,7 @@ public class BeanAnnotation extends 
TargetedAnnotation.OnClass implements Bean {
        private Class<?>[]
                dictionary = new Class[0];
        private Class<?>
+               implClass = Object.class,
                interfaceClass = Object.class,
                stopClass = Object.class;
        private Class<? extends BeanInterceptor<?>>
@@ -40,6 +41,7 @@ public class BeanAnnotation extends 
TargetedAnnotation.OnClass implements Bean {
                bpx = "",
                bpro = "",
                bpwo = "",
+               example = "",
                typeName = "",
                typePropertyName = "";
        boolean
@@ -145,6 +147,22 @@ public class BeanAnnotation extends 
TargetedAnnotation.OnClass implements Bean {
        }
 
        @Override
+       public String example() {
+               return example;
+       }
+
+       /**
+        * Sets the <c>example</c> property on this annotation.
+        *
+        * @param value The new value for this property.
+        * @return This object (for method chaining).
+        */
+       public BeanAnnotation example(String value) {
+               this.example = value;
+               return this;
+       }
+
+       @Override
        public boolean fluentSetters() {
                return fluentSetters;
        }
@@ -161,6 +179,22 @@ public class BeanAnnotation extends 
TargetedAnnotation.OnClass implements Bean {
        }
 
        @Override
+       public Class<?> implClass() {
+               return implClass;
+       }
+
+       /**
+        * Sets the <c>implClass</c> property on this annotation.
+        *
+        * @param value The new value for this property.
+        * @return This object (for method chaining).
+        */
+       public BeanAnnotation implClass(Class<?> value) {
+               this.implClass = value;
+               return this;
+       }
+
+       @Override
        public Class<?> interfaceClass() {
                return interfaceClass;
        }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfig.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfig.java
index 33a0447..ca4c36a 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfig.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfig.java
@@ -116,6 +116,19 @@ public @interface BeanConfig {
        Example[] applyExample() default {};
 
        /**
+        * Dynamically applies {@link Marshalled Marshalled} annotations to 
specified classes.
+        *
+        * <p>
+        * Provides an alternate approach for applying annotations using {@link 
Marshalled#on() Marshalled.on} to specify the names
+        * to apply the annotation to.
+        *
+        * <ul class='seealso'>
+        *      <li class='link'>{@doc DynamicallyAppliedAnnotations}
+        * </ul>
+        */
+       Marshalled[] applyMarshalled() default {};
+
+       /**
         * Dynamically applies {@link NameProperty @NameProperty} annotations 
to specified methods/fields.
         *
         * <p>
@@ -726,79 +739,6 @@ public @interface BeanConfig {
        Class<?>[] dictionary_remove() default {};
 
        /**
-        * Configuration property:  POJO examples.
-        *
-        * <p>
-        * Specifies an example of the specified class.
-        *
-        * <p>
-        * Examples are used in cases such as POJO examples in Swagger 
documents.
-        *
-        * <h5 class='section'>Example:</h5>
-        * <p class='bcode w800'>
-        *      <ja>@BeanConfig</ja>(
-        *              examples={
-        *                      <ja>@CS</ja>(key=MyBean.<jk>class</jk>, 
value=<js>"{foo:'bar'}"</js>)
-        *              }
-        *      )
-        * </p>
-        *
-        * <ul class='notes'>
-        *      <li>
-        *              Setting applies to specified class and all subclasses.
-        *      <li>
-        *              Keys are the class of the example.
-        *              <br>Values are Simple-JSON representation of that class.
-        *      <li>
-        *              POJO examples can also be defined on classes via the 
following:
-        *              <ul class='spaced-list'>
-        *                      <li>A static field annotated with {@link 
Example @Example}.
-        *                      <li>A static method annotated with {@link 
Example @Example} with zero arguments or one {@link BeanSession} argument.
-        *                      <li>A static method with name <c>example</c> 
with no arguments or one {@link BeanSession} argument.
-        *              </ul>
-        *      <li>
-        *              Supports {@doc DefaultVarResolver} (e.g. 
<js>"$C{myConfigVar}"</js>).
-        * </ul>
-        *
-        * <ul class='seealso'>
-        *      <li class='jf'>{@link BeanContext#BEAN_examples}
-        * </ul>
-        */
-       CS[] example() default {};
-
-       /**
-        * Configuration property:  POJO examples.
-        *
-        * <p>
-        * Same as {@link #example()} but allows you to define examples as a 
Simple-JSON string.
-        *
-        * <h5 class='section'>Example:</h5>
-        * <p class='bcode w800'>
-        *      <ja>@BeanConfig</ja>(
-        *              examples={
-        *                      <js>"MyBean: {foo:'bar'}"</js>  <jc>// Could 
also be "{MyBean: {foo:'bar'}}"</jc>
-        *              }
-        *      )
-        * </p>
-        *
-        * <ul class='notes'>
-        *      <li>
-        *              Keys are the class of the example and can be the 
fully-qualified name or simple name.
-        *              <br>Values are Simple-JSON representation of that class.
-        *      <li>
-        *              The individual strings are concatenated together and 
the whole string is treated as a JSON Object.
-        *              <br>The leading and trailing <js>'{'</js> and 
<js>'}'</js> characters are optional.
-        *      <li>
-        *              Supports {@doc DefaultVarResolver} (e.g. 
<js>"$C{myConfigVar}"</js>).
-        * </ul>
-        *
-        * <ul class='seealso'>
-        *      <li class='jf'>{@link BeanContext#BEAN_examples}
-        * </ul>
-        */
-       String[] examples() default {};
-
-       /**
         * Configuration property:  Find fluent setters.
         *
         * <p>
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfigApply.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfigApply.java
index 8491cf9..4c20f7b 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfigApply.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfigApply.java
@@ -19,8 +19,6 @@ import java.util.*;
 
 import org.apache.juneau.*;
 import org.apache.juneau.http.*;
-import org.apache.juneau.marshall.*;
-import org.apache.juneau.parser.*;
 import org.apache.juneau.reflect.*;
 import org.apache.juneau.svl.*;
 
@@ -71,10 +69,6 @@ public class BeanConfigApply extends ConfigApply<BeanConfig> 
{
                        psb.set(BEAN_typePropertyName, 
string(a.typePropertyName()));
                if (! a.debug().isEmpty())
                        psb.set(CONTEXT_debug, bool(a.debug()));
-               for (CS e : a.example())
-                       psb.putTo(BEAN_examples, e.k().getName(), parse(e.k(), 
e.v(), "example"));
-               if (a.examples().length > 0)
-                       psb.putAllTo(BEAN_examples, omap(a.examples(), 
"examples"));
                if (! a.fluentSetters().isEmpty())
                        psb.set(BEAN_fluentSetters, bool(a.fluentSetters()));
                if (! a.ignoreInvocationExceptionsOnGetters().isEmpty())
@@ -146,6 +140,8 @@ public class BeanConfigApply extends 
ConfigApply<BeanConfig> {
                        psb.prependTo(BEAN_annotations, a.applyBeanIgnore());
                if (a.applyExample().length > 0)
                        psb.prependTo(BEAN_annotations, a.applyExample());
+               if (a.applyMarshalled().length > 0)
+                       psb.prependTo(BEAN_annotations, a.applyMarshalled());
                if (a.applyNameProperty().length > 0)
                        psb.prependTo(BEAN_annotations, a.applyNameProperty());
                if (a.applyParentProperty().length > 0)
@@ -184,12 +180,4 @@ public class BeanConfigApply extends 
ConfigApply<BeanConfig> {
        private TimeZone timeZone(String in) {
                return TimeZone.getTimeZone(string(in));
        }
-
-       private <T> T parse(Class<T> c, String in, String loc) {
-               try {
-                       return SimpleJson.DEFAULT.read(string(in), c);
-               } catch (ParseException e) {
-                       throw new ConfigException("Invalid syntax for 
visibility on annotation @BeanConfig({0}): {1}", loc, in);
-               }
-       }
 }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Marshalled.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Marshalled.java
new file mode 100644
index 0000000..90d0cb6
--- /dev/null
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Marshalled.java
@@ -0,0 +1,154 @@
+// 
***************************************************************************************************************************
+// * 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.                                              *
+// 
***************************************************************************************************************************
+package org.apache.juneau.annotation;
+
+import org.apache.juneau.*;
+
+/**
+ * Annotation that can be applied to classes to control how they are 
marshalled.
+ *
+ * <p>
+ * This annotation is typically only applied to non-bean classes.  The {@link 
Bean @Bean} annotation contains equivalent
+ * functionality for bean classes.
+ */
+public @interface Marshalled {
+
+       /**
+        * Dynamically apply this annotation to the specified classes.
+        *
+        * <p>
+        * Used in conjunction with the {@link BeanConfig#applyMarshalled()}.
+        * It is ignored when the annotation is applied directly to classes.
+        *
+        * <p>
+        * The following example shows the equivalent methods for applying the 
{@link Bean @Bean} annotation to REST methods:
+        * <p class='bpcode w800'>
+        *      <jc>// Class with explicit annotation.</jc>
+        *      <ja>@Marshalled</ja>(example=<js>"{foo:'bar'}"</js>)
+        *      <jk>public class</jk> A {...}
+        *
+        *      <jc>// Class with annotation applied via @BeanConfig</jc>
+        *      <jk>public class</jk> B {...}
+        *
+        *      <jc>// Java REST method with @BeanConfig annotation.</jc>
+        *      <ja>@RestMethod</ja>(...)
+        *      <ja>@BeanConfig</ja>(
+        *              applyMarshalled={
+        *                      <ja>@Marshalled</ja>(on=<js>"B"</js>, 
example=<js>"{foo:'bar'}"</js>)
+        *              }
+        *      )
+        *      <jk>public void</jk> doFoo() {...}
+        * </p>
+        *
+        * <h5 class='section'>Valid patterns:</h5>
+        * <ul class='spaced-list'>
+        *  <li>Classes:
+        *              <ul>
+        *                      <li>Fully qualified:
+        *                              <ul>
+        *                                      <li><js>"com.foo.MyClass"</js>
+        *                              </ul>
+        *                      <li>Fully qualified inner class:
+        *                              <ul>
+        *                                      
<li><js>"com.foo.MyClass$Inner1$Inner2"</js>
+        *                              </ul>
+        *                      <li>Simple:
+        *                              <ul>
+        *                                      <li><js>"MyClass"</js>
+        *                              </ul>
+        *                      <li>Simple inner:
+        *                              <ul>
+        *                                      
<li><js>"MyClass$Inner1$Inner2"</js>
+        *                                      <li><js>"Inner1$Inner2"</js>
+        *                                      <li><js>"Inner2"</js>
+        *                              </ul>
+        *              </ul>
+        *      <li>A comma-delimited list of anything on this list.
+        * </ul>
+        *
+        * <ul class='seealso'>
+        *      <li class='link'>{@doc DynamicallyAppliedAnnotations}
+        * </ul>
+        */
+       String[] on() default {};
+
+       /**
+        * Dynamically apply this annotation to the specified classes.
+        *
+        * <p>
+        * Identical to {@link #on()} except allows you to specify class 
objects instead of a strings.
+        *
+        * <ul class='seealso'>
+        *      <li class='link'>{@doc DynamicallyAppliedAnnotations}
+        * </ul>
+        */
+       Class<?>[] onClass() default {};
+
+       /**
+        * Implementation class.
+        *
+        * <p>
+        * For interfaces and abstract classes this method can be used to 
specify an implementation class for the
+        * interface/abstract class so that instances of the implementation 
class are used when instantiated (e.g. during a
+        * parse).
+        *
+        * <h5 class='section'>Example:</h5>
+        * <p class='bcode w800'>
+        *      <ja>@Marshalled</ja>(implClass=MyInterfaceImpl.<jk>class</jk>)
+        *      <jk>public class</jk> MyInterface {...}
+        * <p>
+        *
+        * <ul class='seealso'>
+        *      <li class='jf'>{@link BeanContext#BEAN_implClasses}
+        * </ul>
+        */
+       Class<?> implClass() default Null.class;
+
+       /**
+        * POJO example.
+        *
+        * <p>
+        * Specifies an example of the specified class in Simplified JSON 
format.
+        *
+        * <p>
+        * Examples are used in cases such as POJO examples in Swagger 
documents.
+        *
+        * <h5 class='section'>Example:</h5>
+        * <p class='bcode w800'>
+        *      <ja>@Marshalled</ja>(example=<js>"{foo:'bar'}"</js>)
+        *      <jk>public class</jk> MyClass {...}
+        * </p>
+        *
+        * <ul class='notes'>
+        *      <li>
+        *              Setting applies to specified class and all subclasses.
+        *      <li>
+        *              Keys are the class of the example.
+        *              <br>Values are Simple-JSON representation of that class.
+        *      <li>
+        *              POJO examples can also be defined on classes via the 
following:
+        *              <ul class='spaced-list'>
+        *                      <li>A static field annotated with {@link 
Example @Example}.
+        *                      <li>A static method annotated with {@link 
Example @Example} with zero arguments or one {@link BeanSession} argument.
+        *                      <li>A static method with name <c>example</c> 
with no arguments or one {@link BeanSession} argument.
+        *              </ul>
+        *      <li>
+        *              Supports {@doc DefaultVarResolver} (e.g. 
<js>"$C{myConfigVar}"</js>).
+        * </ul>
+        *
+        * <ul class='seealso'>
+        *      <li class='ja'>{@link Example}
+        * </ul>
+        */
+       String example() default "";
+}
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/MarshalledAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/MarshalledAnnotation.java
new file mode 100644
index 0000000..d8b0a26
--- /dev/null
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/MarshalledAnnotation.java
@@ -0,0 +1,84 @@
+// 
***************************************************************************************************************************
+// * 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.                                              *
+// 
***************************************************************************************************************************
+package org.apache.juneau.annotation;
+
+import java.lang.annotation.*;
+
+import org.apache.juneau.*;
+
+/**
+ * A concrete implementation of the {@link Marshalled} annotation.
+ *
+ * <ul class='seealso'>
+ *     <li class='jm'>{@link BeanContextBuilder#annotations(Annotation...)}
+ * </ul>
+ */
+public class MarshalledAnnotation extends TargetedAnnotation.OnClass 
implements Marshalled {
+
+       private Class<?> implClass = Null.class;
+       private String example = "";
+
+       @Override
+       public Class<?> implClass() {
+               return implClass;
+       }
+
+       /**
+        * Sets the <c>implClass</c> property on this annotation.
+        *
+        * @param value The new value for this property.
+        * @return This object (for method chaining).
+        */
+       public MarshalledAnnotation implClass(Class<?> value) {
+               this.implClass = value;
+               return this;
+       }
+
+       @Override
+       public String example() {
+               return example;
+       }
+
+       /**
+        * Sets the <c>example</c> property on this annotation.
+        *
+        * @param value The new value for this property.
+        * @return This object (for method chaining).
+        */
+       public MarshalledAnnotation example(String value) {
+               this.example = value;
+               return this;
+       }
+
+       // <FluentSetters>
+
+       @Override /* GENERATED - TargetedAnnotation */
+       public MarshalledAnnotation on(String...value) {
+               super.on(value);
+               return this;
+       }
+
+       @Override /* GENERATED - OnClass */
+       public MarshalledAnnotation on(java.lang.Class<?>...value) {
+               super.on(value);
+               return this;
+       }
+
+       @Override /* GENERATED - OnClass */
+       public MarshalledAnnotation onClass(java.lang.Class<?>...value) {
+               super.onClass(value);
+               return this;
+       }
+
+       // </FluentSetters>
+}
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParserBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParserBuilder.java
index d14da51..eb831d7 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParserBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParserBuilder.java
@@ -338,8 +338,8 @@ public class CsvParserBuilder extends ReaderParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> CsvParserBuilder exampleJson(Class<T> pojoClass, String 
json) {
-               super.exampleJson(pojoClass, json);
+       public <T> CsvParserBuilder example(Class<T> pojoClass, String json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializerBuilder.java
index 82261d0..9ef4133 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializerBuilder.java
@@ -338,8 +338,8 @@ public class CsvSerializerBuilder extends 
WriterSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> CsvSerializerBuilder exampleJson(Class<T> pojoClass, String 
json) {
-               super.exampleJson(pojoClass, json);
+       public <T> CsvSerializerBuilder example(Class<T> pojoClass, String 
json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializerBuilder.java
index 0817548..9e3c979 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializerBuilder.java
@@ -864,8 +864,8 @@ public class HtmlDocSerializerBuilder extends 
HtmlStrippedDocSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> HtmlDocSerializerBuilder exampleJson(Class<T> pojoClass, 
String json) {
-               super.exampleJson(pojoClass, json);
+       public <T> HtmlDocSerializerBuilder example(Class<T> pojoClass, String 
json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserBuilder.java
index 8b640e3..84b1855 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserBuilder.java
@@ -341,8 +341,8 @@ public class HtmlParserBuilder extends XmlParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> HtmlParserBuilder exampleJson(Class<T> pojoClass, String 
json) {
-               super.exampleJson(pojoClass, json);
+       public <T> HtmlParserBuilder example(Class<T> pojoClass, String json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSchemaSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSchemaSerializerBuilder.java
index 117ddf6..2f61eb9 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSchemaSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSchemaSerializerBuilder.java
@@ -91,7 +91,7 @@ public class HtmlSchemaSerializerBuilder extends 
HtmlSerializerBuilder {
         * from the following:
         * <ul class='javatree'>
         *      <li class='ja'>{@link Example}
-        *      <li class='jf'>{@link BeanContext#BEAN_examples}
+        *      <li class='ja'>{@link Marshalled#example() Marshalled(example)}
         * </ul>
         *
         * <ul class='seealso'>
@@ -517,8 +517,8 @@ public class HtmlSchemaSerializerBuilder extends 
HtmlSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> HtmlSchemaSerializerBuilder exampleJson(Class<T> pojoClass, 
String json) {
-               super.exampleJson(pojoClass, json);
+       public <T> HtmlSchemaSerializerBuilder example(Class<T> pojoClass, 
String json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerBuilder.java
index 9ce0718..166c303 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerBuilder.java
@@ -434,8 +434,8 @@ public class HtmlSerializerBuilder extends 
XmlSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> HtmlSerializerBuilder exampleJson(Class<T> pojoClass, String 
json) {
-               super.exampleJson(pojoClass, json);
+       public <T> HtmlSerializerBuilder example(Class<T> pojoClass, String 
json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializerBuilder.java
index ae6f70e..dcf2f5f 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializerBuilder.java
@@ -338,8 +338,8 @@ public class HtmlStrippedDocSerializerBuilder extends 
HtmlSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> HtmlStrippedDocSerializerBuilder exampleJson(Class<T> 
pojoClass, String json) {
-               super.exampleJson(pojoClass, json);
+       public <T> HtmlStrippedDocSerializerBuilder example(Class<T> pojoClass, 
String json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Body.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Body.java
index 06a82e8..298c5e8 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Body.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Body.java
@@ -18,7 +18,6 @@ import static java.lang.annotation.RetentionPolicy.*;
 import java.lang.annotation.*;
 
 import org.apache.juneau.jsonschema.annotation.Schema;
-import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.httppart.*;
 import org.apache.juneau.json.*;
@@ -346,15 +345,13 @@ public @interface Body {
         * </p>
         *
         * <p>
-        * Examples can also be specified via generic properties as well using 
the {@link BeanContext#BEAN_examples} property at either the class or method 
level.
+        * Examples can also be specified via generic properties as well using 
the {@link Marshalled#example() @Marshalled(example)} annotation.
         * <p class='bcode w800'>
         *      <jc>// Examples defined at class level.</jc>
-        *      <ja>@Rest</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>@Rest</ja>
+        *      <ja>@BeanConfig</ja>(
+        *              applyMarshalled={
+        *                      
<ja>@Marshalled</ja>(on=<js>"PetCreate"</js>,example=<js>"{name:'Doggie',price:9.99,species:'Dog',tags:['friendly','cute']}"</js>)
         *              }
         *      )
         * </p>
@@ -367,10 +364,7 @@ public @interface Body {
         *
         * <ul class='seealso'>
         *      <li class='ja'>{@link Example}
-        *      <li class='jc'>{@link BeanContext}
-        *      <ul>
-        *              <li class='jf'>{@link BeanContext#BEAN_examples 
BEAN_examples}
-        *      </ul>
+        *      <li class='ja'>{@link Marshalled#example() Marshalled(example)}
         *      <li class='jc'>{@link JsonSchemaSerializer}
         *      <ul>
         *              <li class='jf'>{@link 
JsonSchemaGenerator#JSONSCHEMA_addExamplesTo JSONSCHEMA_addExamplesTo}
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/FormData.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/FormData.java
index bdb4ea8..b4b392a 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/FormData.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/FormData.java
@@ -19,7 +19,6 @@ import java.lang.annotation.*;
 import java.util.*;
 
 import org.apache.juneau.jsonschema.annotation.Items;
-import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.collections.*;
 import org.apache.juneau.httppart.*;
@@ -1009,7 +1008,7 @@ public @interface FormData {
         *              name=<js>"status"</js>,
         *              type=<js>"array"</js>,
         *              collectionFormat=<js>"csv"</js>,
-        *              example=<js>"AVALIABLE,PENDING"</js>
+        *              example=<js>"AVAILIABLE,PENDING"</js>
         *      )
         *      PetStatus[] status
         * </p>
@@ -1027,10 +1026,7 @@ public @interface FormData {
         *
         * <ul class='seealso'>
         *      <li class='ja'>{@link Example}
-        *      <li class='jc'>{@link BeanContext}
-        *      <ul>
-        *              <li class='jf'>{@link BeanContext#BEAN_examples 
BEAN_examples}
-        *      </ul>
+        *      <li class='ja'>{@link Marshalled#example() Marshalled(example)}
         *      <li class='jc'>{@link JsonSchemaSerializer}
         *      <ul>
         *              <li class='jf'>{@link 
JsonSchemaGenerator#JSONSCHEMA_addExamplesTo JSONSCHEMA_addExamplesTo}
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Header.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Header.java
index 06b8790..4e16ede 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Header.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Header.java
@@ -19,7 +19,6 @@ import java.lang.annotation.*;
 import java.util.*;
 
 import org.apache.juneau.jsonschema.annotation.Items;
-import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.collections.*;
 import org.apache.juneau.httppart.*;
@@ -974,7 +973,7 @@ public @interface Header {
         *              name=<js>"Status"</js>,
         *              type=<js>"array"</js>,
         *              collectionFormat=<js>"csv"</js>,
-        *              example=<js>"AVALIABLE,PENDING"</js>
+        *              example=<js>"AVAILIABLE,PENDING"</js>
         *      )
         *      PetStatus[] status
         * </p>
@@ -992,10 +991,7 @@ public @interface Header {
         *
         * <ul class='seealso'>
         *      <li class='ja'>{@link Example}
-        *      <li class='jc'>{@link BeanContext}
-        *      <ul>
-        *              <li class='jf'>{@link BeanContext#BEAN_examples 
BEAN_examples}
-        *      </ul>
+        *      <li class='ja'>{@link Marshalled#example() Marshalled(example)}
         *      <li class='jc'>{@link JsonSchemaSerializer}
         *      <ul>
         *              <li class='jf'>{@link 
JsonSchemaGenerator#JSONSCHEMA_addExamplesTo JSONSCHEMA_addExamplesTo}
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Path.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Path.java
index 75ea8b4..83a8c6a 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Path.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Path.java
@@ -19,7 +19,6 @@ import java.lang.annotation.*;
 import java.util.*;
 
 import org.apache.juneau.jsonschema.annotation.Items;
-import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.collections.*;
 import org.apache.juneau.httppart.*;
@@ -953,10 +952,8 @@ public @interface Path {
         *
         * <ul class='seealso'>
         *      <li class='ja'>{@link Example}
-        *      <li class='jc'>{@link BeanContext}
-        *      <ul>
-        *              <li class='jf'>{@link BeanContext#BEAN_examples 
BEAN_examples}
-        *      </ul>
+        *      <li class='ja'>{@link Bean#example() Bean(example)}
+        *      <li class='ja'>{@link Marshalled#example() Marshalled(example)}
         *      <li class='jc'>{@link JsonSchemaSerializer}
         *      <ul>
         *              <li class='jf'>{@link 
JsonSchemaGenerator#JSONSCHEMA_addExamplesTo JSONSCHEMA_addExamplesTo}
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Query.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Query.java
index 12544e5..242ec71 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Query.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Query.java
@@ -19,7 +19,6 @@ import java.lang.annotation.*;
 import java.util.*;
 
 import org.apache.juneau.jsonschema.annotation.Items;
-import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.collections.*;
 import org.apache.juneau.httppart.*;
@@ -1006,10 +1005,8 @@ public @interface Query {
         *
         * <ul class='seealso'>
         *      <li class='ja'>{@link Example}
-        *      <li class='jc'>{@link BeanContext}
-        *      <ul>
-        *              <li class='jf'>{@link BeanContext#BEAN_examples 
BEAN_examples}
-        *      </ul>
+        *      <li class='ja'>{@link Bean#example() Bean(example)}
+        *      <li class='ja'>{@link Marshalled#example() Marshalled(example)}
         *      <li class='jc'>{@link JsonSchemaSerializer}
         *      <ul>
         *              <li class='jf'>{@link 
JsonSchemaGenerator#JSONSCHEMA_addExamplesTo JSONSCHEMA_addExamplesTo}
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Response.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Response.java
index 27f92d6..d95a013 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Response.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Response.java
@@ -18,7 +18,6 @@ import static java.lang.annotation.RetentionPolicy.*;
 import java.lang.annotation.*;
 
 import org.apache.juneau.jsonschema.annotation.Schema;
-import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.httppart.*;
 import org.apache.juneau.json.*;
@@ -219,15 +218,13 @@ public @interface Response {
         * </p>
         *
         * <p>
-        * Examples can also be specified via generic properties as well using 
the {@link BeanContext#BEAN_examples} property at either the class or method 
level.
+        * Examples can also be specified via generic properties as well using 
the {@link Marshalled#example() @Marshalled(example)} annotation at either the 
class or method level.
         * <p class='bcode w800'>
         *      <jc>// Examples defined at class level.</jc>
-        *      <ja>@Rest</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>@Rest</ja>
+        *      <ja>@BeanConfig</ja>(
+        *              applyMarshalled={
+        *                      
<ja>@Marshalled</ja>(on=<js>"PetCreate"</js>,example=<js>"{name:'Doggie',price:9.99,species:'Dog',tags:['friendly','cute']}"</js>)
         *              }
         *      )
         * </p>
@@ -240,10 +237,8 @@ public @interface Response {
         *
         * <ul class='seealso'>
         *      <li class='ja'>{@link Example}
-        *      <li class='jc'>{@link BeanContext}
-        *      <ul>
-        *              <li class='jf'>{@link BeanContext#BEAN_examples 
BEAN_examples}
-        *      </ul>
+        *      <li class='ja'>{@link Bean#example() Bean(example)}
+        *      <li class='ja'>{@link Marshalled#example() Marshalled(example)}
         *      <li class='jc'>{@link JsonSchemaSerializer}
         *      <ul>
         *              <li class='jf'>{@link 
JsonSchemaGenerator#JSONSCHEMA_addExamplesTo JSONSCHEMA_addExamplesTo}
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoParserBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoParserBuilder.java
index 7d58be0..dbb00c6 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoParserBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoParserBuilder.java
@@ -337,8 +337,8 @@ public class JsoParserBuilder extends 
InputStreamParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> JsoParserBuilder exampleJson(Class<T> pojoClass, String 
json) {
-               super.exampleJson(pojoClass, json);
+       public <T> JsoParserBuilder example(Class<T> pojoClass, String json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializerBuilder.java
index 43ae6a3..4233165 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializerBuilder.java
@@ -337,8 +337,8 @@ public class JsoSerializerBuilder extends 
OutputStreamSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> JsoSerializerBuilder exampleJson(Class<T> pojoClass, String 
json) {
-               super.exampleJson(pojoClass, json);
+       public <T> JsoSerializerBuilder example(Class<T> pojoClass, String 
json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParserBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParserBuilder.java
index 511262e..74a1529 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParserBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParserBuilder.java
@@ -358,8 +358,8 @@ public class JsonParserBuilder extends ReaderParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> JsonParserBuilder exampleJson(Class<T> pojoClass, String 
json) {
-               super.exampleJson(pojoClass, json);
+       public <T> JsonParserBuilder example(Class<T> pojoClass, String json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSchemaSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSchemaSerializerBuilder.java
index 7833226..4851a0e 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSchemaSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSchemaSerializerBuilder.java
@@ -90,7 +90,7 @@ public class JsonSchemaSerializerBuilder extends 
JsonSerializerBuilder {
         * from the following:
         * <ul class='javatree'>
         *      <li class='ja'>{@link Example}
-        *      <li class='jf'>{@link BeanContext#BEAN_examples}
+        *      <li class='ja'>{@link Marshalled#example() Marshalled(example)}
         * </ul>
         *
         * <ul class='seealso'>
@@ -516,8 +516,8 @@ public class JsonSchemaSerializerBuilder extends 
JsonSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> JsonSchemaSerializerBuilder exampleJson(Class<T> pojoClass, 
String json) {
-               super.exampleJson(pojoClass, json);
+       public <T> JsonSchemaSerializerBuilder example(Class<T> pojoClass, 
String json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializerBuilder.java
index 1b3d15b..df28335 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializerBuilder.java
@@ -394,8 +394,8 @@ public class JsonSerializerBuilder extends 
WriterSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> JsonSerializerBuilder exampleJson(Class<T> pojoClass, String 
json) {
-               super.exampleJson(pojoClass, json);
+       public <T> JsonSerializerBuilder example(Class<T> pojoClass, String 
json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/SimpleJsonParserBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/SimpleJsonParserBuilder.java
index 6923049..1711abb 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/SimpleJsonParserBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/SimpleJsonParserBuilder.java
@@ -337,8 +337,8 @@ public class SimpleJsonParserBuilder extends 
JsonParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> SimpleJsonParserBuilder exampleJson(Class<T> pojoClass, 
String json) {
-               super.exampleJson(pojoClass, json);
+       public <T> SimpleJsonParserBuilder example(Class<T> pojoClass, String 
json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/SimpleJsonSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/SimpleJsonSerializerBuilder.java
index a314c2f..69a02f2 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/SimpleJsonSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/SimpleJsonSerializerBuilder.java
@@ -337,8 +337,8 @@ public class SimpleJsonSerializerBuilder extends 
JsonSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> SimpleJsonSerializerBuilder exampleJson(Class<T> pojoClass, 
String json) {
-               super.exampleJson(pojoClass, json);
+       public <T> SimpleJsonSerializerBuilder example(Class<T> pojoClass, 
String json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java
index 4df34c1..bd6dc59 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java
@@ -109,7 +109,7 @@ public class JsonSchemaGenerator extends 
BeanTraverseContext implements JsonSche
         * from the following:
         * <ul class='javatree'>
         *      <li class='ja'>{@link Example}
-        *      <li class='jf'>{@link BeanContext#BEAN_examples}
+        *      <li class='ja'>{@link Marshalled#example() Marshalled(example)}
         * </ul>
         *
         * <p>
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorBuilder.java
index c88b1e6..8ca07c3 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorBuilder.java
@@ -88,7 +88,7 @@ public class JsonSchemaGeneratorBuilder extends 
BeanTraverseBuilder {
         * from the following:
         * <ul class='javatree'>
         *      <li class='ja'>{@link Example}
-        *      <li class='jf'>{@link BeanContext#BEAN_examples}
+        *      <li class='ja'>{@link Marshalled#example() Marshalled(example)}
         * </ul>
         *
         * <ul class='seealso'>
@@ -546,8 +546,8 @@ public class JsonSchemaGeneratorBuilder extends 
BeanTraverseBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> JsonSchemaGeneratorBuilder exampleJson(Class<T> pojoClass, 
String json) {
-               super.exampleJson(pojoClass, json);
+       public <T> JsonSchemaGeneratorBuilder example(Class<T> pojoClass, 
String json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/JsonSchemaConfig.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/JsonSchemaConfig.java
index 800b2fc..432e0e6 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/JsonSchemaConfig.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/JsonSchemaConfig.java
@@ -90,7 +90,7 @@ public @interface JsonSchemaConfig {
         * from the following:
         * <ul class='javatree'>
         *      <li class='ja'>{@link Example}
-        *      <li class='jf'>{@link BeanContext#BEAN_examples}
+        *      <li class='ja'>{@link Marshalled#example() Marshalled(example)}
         * </ul>
         *
         * <ul class='notes'>
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParserBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParserBuilder.java
index 4e9aae5..95172b8 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParserBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParserBuilder.java
@@ -337,8 +337,8 @@ public class MsgPackParserBuilder extends 
InputStreamParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> MsgPackParserBuilder exampleJson(Class<T> pojoClass, String 
json) {
-               super.exampleJson(pojoClass, json);
+       public <T> MsgPackParserBuilder example(Class<T> pojoClass, String 
json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerBuilder.java
index fac832e..09601ef 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerBuilder.java
@@ -337,8 +337,8 @@ public class MsgPackSerializerBuilder extends 
OutputStreamSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> MsgPackSerializerBuilder exampleJson(Class<T> pojoClass, 
String json) {
-               super.exampleJson(pojoClass, json);
+       public <T> MsgPackSerializerBuilder example(Class<T> pojoClass, String 
json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiParserBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiParserBuilder.java
index 561e7fc..ec2ecc5 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiParserBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiParserBuilder.java
@@ -453,8 +453,8 @@ public class OpenApiParserBuilder extends UonParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> OpenApiParserBuilder exampleJson(Class<T> pojoClass, String 
json) {
-               super.exampleJson(pojoClass, json);
+       public <T> OpenApiParserBuilder example(Class<T> pojoClass, String 
json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiSerializerBuilder.java
index e125f46..d9e1d5c 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiSerializerBuilder.java
@@ -464,8 +464,8 @@ public class OpenApiSerializerBuilder extends 
UonSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> OpenApiSerializerBuilder exampleJson(Class<T> pojoClass, 
String json) {
-               super.exampleJson(pojoClass, json);
+       public <T> OpenApiSerializerBuilder example(Class<T> pojoClass, String 
json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/InputStreamParserBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/InputStreamParserBuilder.java
index 6aecc9d..9b43b54 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/InputStreamParserBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/InputStreamParserBuilder.java
@@ -368,8 +368,8 @@ public class InputStreamParserBuilder extends ParserBuilder 
{
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> InputStreamParserBuilder exampleJson(Class<T> pojoClass, 
String json) {
-               super.exampleJson(pojoClass, json);
+       public <T> InputStreamParserBuilder example(Class<T> pojoClass, String 
json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserBuilder.java
index c4b94a7..59c885e 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserBuilder.java
@@ -616,8 +616,8 @@ public class ParserBuilder extends BeanContextBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> ParserBuilder exampleJson(Class<T> pojoClass, String json) {
-               super.exampleJson(pojoClass, json);
+       public <T> ParserBuilder example(Class<T> pojoClass, String json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroupBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroupBuilder.java
index cd78dc8..ce0a2fb 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroupBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroupBuilder.java
@@ -655,8 +655,8 @@ public class ParserGroupBuilder extends BeanContextBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> ParserGroupBuilder exampleJson(Class<T> pojoClass, String 
json) {
-               super.exampleJson(pojoClass, json);
+       public <T> ParserGroupBuilder example(Class<T> pojoClass, String json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParserBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParserBuilder.java
index 1063dec..3fd7485 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParserBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParserBuilder.java
@@ -405,8 +405,8 @@ public abstract class ReaderParserBuilder extends 
ParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> ReaderParserBuilder exampleJson(Class<T> pojoClass, String 
json) {
-               super.exampleJson(pojoClass, json);
+       public <T> ReaderParserBuilder example(Class<T> pojoClass, String json) 
{
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextParserBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextParserBuilder.java
index 9742b78..80df196 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextParserBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextParserBuilder.java
@@ -338,8 +338,8 @@ public class PlainTextParserBuilder extends 
ReaderParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> PlainTextParserBuilder exampleJson(Class<T> pojoClass, 
String json) {
-               super.exampleJson(pojoClass, json);
+       public <T> PlainTextParserBuilder example(Class<T> pojoClass, String 
json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextSerializerBuilder.java
index 702ad11..39a4610 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextSerializerBuilder.java
@@ -338,8 +338,8 @@ public class PlainTextSerializerBuilder extends 
WriterSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> PlainTextSerializerBuilder exampleJson(Class<T> pojoClass, 
String json) {
-               super.exampleJson(pojoClass, json);
+       public <T> PlainTextSerializerBuilder example(Class<T> pojoClass, 
String json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializerBuilder.java
index 25ea161..d096b7a 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializerBuilder.java
@@ -371,8 +371,8 @@ public class OutputStreamSerializerBuilder extends 
SerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> OutputStreamSerializerBuilder exampleJson(Class<T> 
pojoClass, String json) {
-               super.exampleJson(pojoClass, json);
+       public <T> OutputStreamSerializerBuilder example(Class<T> pojoClass, 
String json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerBuilder.java
index 6e9f37e..acaa853 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerBuilder.java
@@ -836,8 +836,8 @@ public class SerializerBuilder extends BeanTraverseBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> SerializerBuilder exampleJson(Class<T> pojoClass, String 
json) {
-               super.exampleJson(pojoClass, json);
+       public <T> SerializerBuilder example(Class<T> pojoClass, String json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroupBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroupBuilder.java
index e96e7e0..5c4d451 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroupBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroupBuilder.java
@@ -793,8 +793,8 @@ public class SerializerGroupBuilder extends 
BeanTraverseBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> SerializerGroupBuilder exampleJson(Class<T> pojoClass, 
String json) {
-               super.exampleJson(pojoClass, json);
+       public <T> SerializerGroupBuilder example(Class<T> pojoClass, String 
json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializerBuilder.java
index adc7e3c..f9dcb9d 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializerBuilder.java
@@ -585,8 +585,8 @@ public class WriterSerializerBuilder extends 
SerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> WriterSerializerBuilder exampleJson(Class<T> pojoClass, 
String json) {
-               super.exampleJson(pojoClass, json);
+       public <T> WriterSerializerBuilder example(Class<T> pojoClass, String 
json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializerBuilder.java
index d260b30..1faf56b 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializerBuilder.java
@@ -358,8 +358,8 @@ public class SoapXmlSerializerBuilder extends 
XmlSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> SoapXmlSerializerBuilder exampleJson(Class<T> pojoClass, 
String json) {
-               super.exampleJson(pojoClass, json);
+       public <T> SoapXmlSerializerBuilder example(Class<T> pojoClass, String 
json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserBuilder.java
index 3f5e245..85ccb17 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserBuilder.java
@@ -397,8 +397,8 @@ public class UonParserBuilder extends ReaderParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> UonParserBuilder exampleJson(Class<T> pojoClass, String 
json) {
-               super.exampleJson(pojoClass, json);
+       public <T> UonParserBuilder example(Class<T> pojoClass, String json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializerBuilder.java
index 436ce77..b02e3eb 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializerBuilder.java
@@ -518,8 +518,8 @@ public class UonSerializerBuilder extends 
WriterSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> UonSerializerBuilder exampleJson(Class<T> pojoClass, String 
json) {
-               super.exampleJson(pojoClass, json);
+       public <T> UonSerializerBuilder example(Class<T> pojoClass, String 
json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserBuilder.java
index 12c90fc..d9e805d 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserBuilder.java
@@ -358,8 +358,8 @@ public class UrlEncodingParserBuilder extends 
UonParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> UrlEncodingParserBuilder exampleJson(Class<T> pojoClass, 
String json) {
-               super.exampleJson(pojoClass, json);
+       public <T> UrlEncodingParserBuilder example(Class<T> pojoClass, String 
json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.java
index e9a244a..2857729 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.java
@@ -358,8 +358,8 @@ public class UrlEncodingSerializerBuilder extends 
UonSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> UrlEncodingSerializerBuilder exampleJson(Class<T> pojoClass, 
String json) {
-               super.exampleJson(pojoClass, json);
+       public <T> UrlEncodingSerializerBuilder example(Class<T> pojoClass, 
String json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserBuilder.java
index 99ec600..884bed4 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserBuilder.java
@@ -486,8 +486,8 @@ public class XmlParserBuilder extends ReaderParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> XmlParserBuilder exampleJson(Class<T> pojoClass, String 
json) {
-               super.exampleJson(pojoClass, json);
+       public <T> XmlParserBuilder example(Class<T> pojoClass, String json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerBuilder.java
index 47f4fe6..8323a13 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerBuilder.java
@@ -465,8 +465,8 @@ public class XmlSerializerBuilder extends 
WriterSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> XmlSerializerBuilder exampleJson(Class<T> pojoClass, String 
json) {
-               super.exampleJson(pojoClass, json);
+       public <T> XmlSerializerBuilder example(Class<T> pojoClass, String 
json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git a/juneau-doc/docs/ReleaseNotes/9.0.0.html 
b/juneau-doc/docs/ReleaseNotes/9.0.0.html
new file mode 100644
index 0000000..e38f3e8
--- /dev/null
+++ b/juneau-doc/docs/ReleaseNotes/9.0.0.html
@@ -0,0 +1,50 @@
+<!--
+/***************************************************************************************************************************
+ * 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.
+ 
***************************************************************************************************************************/
+ -->
+
+9.0.0 (TBD)
+
+<p>
+Juneau 9.0.0 is a major release. 
+</p>
+
+<h5 class='topic w800'>juneau-marshall</h5>
+<ul class='spaced-list'>
+       <li>
+               New {@link aoj.annotation.Marshalled @Marshalled} annotation 
for non-bean classes.
+       <li>
+               New {@link aoj.annotation.Bean#example() @Bean(example)} 
annotation.
+</ul>
+
+<h5 class='topic w800'>juneau-rest-server</h5>
+<ul class='spaced-list'>
+       <li>
+               Removed deprecated APIs.
+</ul>
+
+<h5 class='topic w800'>juneau-rest-server-springboot</h5>
+<ul class='spaced-list'>
+</ul>
+
+<h5 class='topic w800'>juneau-rest-client</h5>
+<ul class='spaced-list'>
+       <li>
+               Replaced deprecated APIs with new RestClient API introduced in 
8.2.0.
+</ul>
+
+<h5 class='topic w800'>juneau-rest-mock</h5>
+<ul class='spaced-list'>
+       <li>
+               Replaced deprecated APIs with new RestClient API introduced in 
8.2.0.
+</ui>
diff --git 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/dto/AtomFeedResource.java
 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/dto/AtomFeedResource.java
index 08fb8df..22e093d 100644
--- 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/dto/AtomFeedResource.java
+++ 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/dto/AtomFeedResource.java
@@ -71,7 +71,7 @@ import org.apache.juneau.serializer.annotation.*;
        addRootProperty="true"
 )
 @BeanConfig(
-       examples="Feed: $F{AtomFeedResource_example.json}"
+       
applyMarshalled=@Marshalled(onClass=Feed.class,example="$F{AtomFeedResource_example.json}")
 )
 public class AtomFeedResource extends BasicRestServletJena {
        private static final long serialVersionUID = 1L;
diff --git 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/dto/JsonSchemaResource.java
 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/dto/JsonSchemaResource.java
index 6bd236c..3c367c9 100644
--- 
a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/dto/JsonSchemaResource.java
+++ 
b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/dto/JsonSchemaResource.java
@@ -62,7 +62,7 @@ import org.apache.juneau.rest.widget.*;
        }
 )
 @BeanConfig(
-       examples="Schema: $F{JsonSchemaResource_example.json}"
+       
applyMarshalled=@Marshalled(on="Schema",example="$F{JsonSchemaResource_example.json}")
 )
 public class JsonSchemaResource extends BasicRestServletJena {
        private static final long serialVersionUID = 1L;
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
index 0474b6f..266b097 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
@@ -2550,8 +2550,8 @@ public class RestContextBuilder extends 
BeanContextBuilder implements ServletCon
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> RestContextBuilder exampleJson(Class<T> pojoClass, String 
json) {
-               super.exampleJson(pojoClass, json);
+       public <T> RestContextBuilder example(Class<T> pojoClass, String json) {
+               super.example(pojoClass, json);
                return this;
        }
 
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestMethodContextBuilder.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestMethodContextBuilder.java
index 9b5f5af..685000f 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestMethodContextBuilder.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestMethodContextBuilder.java
@@ -362,8 +362,8 @@ public class RestMethodContextBuilder extends 
BeanContextBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public <T> RestMethodContextBuilder exampleJson(Class<T> pojoClass, 
String json) {
-               super.exampleJson(pojoClass, json);
+       public <T> RestMethodContextBuilder example(Class<T> pojoClass, String 
json) {
+               super.example(pojoClass, json);
                return this;
        }
 

Reply via email to