You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2020/10/20 17:04:21 UTC
[juneau] branch master updated: @Marshalled annotation.
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 <ja...@salesforce.com>
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<String,Object></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: </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: </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;
}