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 fbb4d3e  Annotation improvements.
fbb4d3e is described below

commit fbb4d3ea74da8009edb0736c301e20bf6b30d989
Author: JamesBognar <[email protected]>
AuthorDate: Wed Nov 11 14:54:49 2020 -0500

    Annotation improvements.
---
 .../jsonschema/JsonSchemaConfigAnnotationTest.java |   5 -
 .../juneau/jsonschema/JsonSchemaGeneratorTest.java | 104 ++++++++++++---------
 .../juneau/html/HtmlSchemaSerializerBuilder.java   |   5 +-
 .../juneau/json/JsonSchemaSerializerBuilder.java   |   5 +-
 .../juneau/jsonschema/JsonSchemaGenerator.java     |  44 ---------
 .../jsonschema/JsonSchemaGeneratorBuilder.java     |   5 +-
 .../jsonschema/JsonSchemaGeneratorSession.java     |  21 +----
 .../jsonschema/annotation/JsonSchemaConfig.java    |  20 ----
 .../annotation/JsonSchemaConfigAnnotation.java     |   3 -
 9 files changed, 73 insertions(+), 139 deletions(-)

diff --git 
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/jsonschema/JsonSchemaConfigAnnotationTest.java
 
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/jsonschema/JsonSchemaConfigAnnotationTest.java
index a82633a..2ae1ccb 100644
--- 
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/jsonschema/JsonSchemaConfigAnnotationTest.java
+++ 
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/jsonschema/JsonSchemaConfigAnnotationTest.java
@@ -20,7 +20,6 @@ import java.util.function.*;
 import java.util.stream.*;
 
 import org.apache.juneau.*;
-import org.apache.juneau.annotation.*;
 import org.apache.juneau.jsonschema.annotation.*;
 import org.apache.juneau.reflect.*;
 import org.apache.juneau.svl.*;
@@ -62,7 +61,6 @@ public class JsonSchemaConfigAnnotationTest {
                allowNestedDescriptions="$X{true}",
                allowNestedExamples="$X{true}",
                beanDefMapper=BasicBeanDefMapper.class,
-               defaultSchemas=@CS(k=A.class,v="{foo:'bar'}"),
                ignoreTypes="$X{foo}",
                useBeanDefs="$X{true}"
        )
@@ -78,7 +76,6 @@ public class JsonSchemaConfigAnnotationTest {
                check("true", x.isAllowNestedDescriptions());
                check("true", x.isAllowNestedExamples());
                check("BasicBeanDefMapper", x.getBeanDefMapper());
-               
check("{org.apache.juneau.jsonschema.JsonSchemaConfigAnnotationTest$A={foo:'bar'}}",
 x.getDefaultSchemas());
                check("foo", x.getIgnoreTypes());
                check("true", x.isUseBeanDefs());
        }
@@ -100,7 +97,6 @@ public class JsonSchemaConfigAnnotationTest {
                check("false", x.isAllowNestedDescriptions());
                check("false", x.isAllowNestedExamples());
                check("BasicBeanDefMapper", x.getBeanDefMapper());
-               check("{}", x.getDefaultSchemas());
                check("", x.getIgnoreTypes());
                check("false", x.isUseBeanDefs());
        }
@@ -121,7 +117,6 @@ public class JsonSchemaConfigAnnotationTest {
                check("false", x.isAllowNestedDescriptions());
                check("false", x.isAllowNestedExamples());
                check("BasicBeanDefMapper", x.getBeanDefMapper());
-               check("{}", x.getDefaultSchemas());
                check("", x.getIgnoreTypes());
                check("false", x.isUseBeanDefs());
        }
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 547fa50..0c4e962 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
@@ -21,6 +21,8 @@ import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.collections.*;
 import org.apache.juneau.jsonschema.annotation.*;
+import org.apache.juneau.reflect.*;
+import org.apache.juneau.svl.*;
 import org.apache.juneau.testutils.pojos.*;
 import org.apache.juneau.transform.*;
 import org.junit.*;
@@ -1215,27 +1217,27 @@ public class JsonSchemaGeneratorTest {
                        .defaultSchema(char.class, OMap.of("type", "bar"))
                        .defaultSchema(TestEnumToString.class, OMap.of("type", 
"bar"))
                        .build().createSession();
-               
assertObject(s.getSchema(SimpleBean.class)).json().is("{type:'bar'}");
-               
assertObject(s.getSchema(BeanMap.class)).json().is("{type:'bar'}");
-               
assertObject(s.getSchema(BeanList.class)).json().is("{type:'bar'}");
-               
assertObject(s.getSchema(BeanList[][].class)).json().is("{type:'bar'}");
-               
assertObject(s.getSchema(boolean.class)).json().is("{type:'bar'}");
-               
assertObject(s.getSchema(Boolean.class)).json().is("{type:'bar'}");
-               
assertObject(s.getSchema(short.class)).json().is("{type:'bar'}");
-               
assertObject(s.getSchema(Short.class)).json().is("{type:'bar'}");
-               assertObject(s.getSchema(int.class)).json().is("{type:'bar'}");
-               
assertObject(s.getSchema(Integer.class)).json().is("{type:'bar'}");
-               assertObject(s.getSchema(long.class)).json().is("{type:'bar'}");
-               assertObject(s.getSchema(Long.class)).json().is("{type:'bar'}");
-               
assertObject(s.getSchema(float.class)).json().is("{type:'bar'}");
-               
assertObject(s.getSchema(Float.class)).json().is("{type:'bar'}");
-               
assertObject(s.getSchema(double.class)).json().is("{type:'bar'}");
-               
assertObject(s.getSchema(Double.class)).json().is("{type:'bar'}");
-               
assertObject(s.getSchema(String.class)).json().is("{type:'bar'}");
-               
assertObject(s.getSchema(StringBuilder.class)).json().is("{type:'bar'}");
-               
assertObject(s.getSchema(Character.class)).json().is("{type:'bar'}");
-               assertObject(s.getSchema(char.class)).json().is("{type:'bar'}");
-               
assertObject(s.getSchema(TestEnumToString.class)).json().is("{type:'bar'}");
+               
assertObject(s.getSchema(SimpleBean.class)).json().contains("type:'bar'}");
+               
assertObject(s.getSchema(BeanMap.class)).json().contains("type:'bar'");
+               
assertObject(s.getSchema(BeanList.class)).json().contains("type:'bar'");
+               
assertObject(s.getSchema(BeanList[][].class)).json().contains("type:'bar'");
+               
assertObject(s.getSchema(boolean.class)).json().contains("type:'bar'");
+               
assertObject(s.getSchema(Boolean.class)).json().contains("type:'bar'");
+               
assertObject(s.getSchema(short.class)).json().contains("type:'bar'");
+               
assertObject(s.getSchema(Short.class)).json().contains("type:'bar'");
+               
assertObject(s.getSchema(int.class)).json().contains("type:'bar'");
+               
assertObject(s.getSchema(Integer.class)).json().contains("type:'bar'");
+               
assertObject(s.getSchema(long.class)).json().contains("type:'bar'");
+               
assertObject(s.getSchema(Long.class)).json().contains("type:'bar'");
+               
assertObject(s.getSchema(float.class)).json().contains("type:'bar'");
+               
assertObject(s.getSchema(Float.class)).json().contains("type:'bar'");
+               
assertObject(s.getSchema(double.class)).json().contains("type:'bar'");
+               
assertObject(s.getSchema(Double.class)).json().contains("type:'bar'");
+               
assertObject(s.getSchema(String.class)).json().contains("type:'bar'");
+               
assertObject(s.getSchema(StringBuilder.class)).json().contains("type:'bar'");
+               
assertObject(s.getSchema(Character.class)).json().contains("type:'bar'");
+               
assertObject(s.getSchema(char.class)).json().contains("type:'bar'");
+               
assertObject(s.getSchema(TestEnumToString.class)).json().contains("type:'bar'");
        }
 
        // If default schema does not contain 'type', the value is augmented
@@ -1264,27 +1266,27 @@ public class JsonSchemaGeneratorTest {
                        .defaultSchema(char.class, OMap.of("foo", "bar"))
                        .defaultSchema(TestEnumToString.class, OMap.of("foo", 
"bar"))
                        .build().createSession();
-               
assertObject(s.getSchema(SimpleBean.class)).json().is("{type:'object',properties:{f1:{type:'string',foo:'bar'}},foo:'bar'}");
-               
assertObject(s.getSchema(BeanMap.class)).json().is("{type:'object',additionalProperties:{type:'object',properties:{f1:{type:'string',foo:'bar'}},foo:'bar'},foo:'bar'}");
-               
assertObject(s.getSchema(BeanList.class)).json().is("{type:'array',items:{type:'object',properties:{f1:{type:'string',foo:'bar'}},foo:'bar'},foo:'bar'}");
-               
assertObject(s.getSchema(BeanList[][].class)).json().is("{type:'array',items:{type:'array',items:{type:'array',items:{type:'object',properties:{f1:{type:'string',foo:'bar'}},foo:'bar'},foo:'bar'}},foo:'bar'}");
-               
assertObject(s.getSchema(boolean.class)).json().is("{type:'boolean',foo:'bar'}");
-               
assertObject(s.getSchema(Boolean.class)).json().is("{type:'boolean',foo:'bar'}");
-               
assertObject(s.getSchema(short.class)).json().is("{type:'integer',format:'int16',foo:'bar'}");
-               
assertObject(s.getSchema(Short.class)).json().is("{type:'integer',format:'int16',foo:'bar'}");
-               
assertObject(s.getSchema(int.class)).json().is("{type:'integer',format:'int32',foo:'bar'}");
-               
assertObject(s.getSchema(Integer.class)).json().is("{type:'integer',format:'int32',foo:'bar'}");
-               
assertObject(s.getSchema(long.class)).json().is("{type:'integer',format:'int64',foo:'bar'}");
-               
assertObject(s.getSchema(Long.class)).json().is("{type:'integer',format:'int64',foo:'bar'}");
-               
assertObject(s.getSchema(float.class)).json().is("{type:'number',format:'float',foo:'bar'}");
-               
assertObject(s.getSchema(Float.class)).json().is("{type:'number',format:'float',foo:'bar'}");
-               
assertObject(s.getSchema(double.class)).json().is("{type:'number',format:'double',foo:'bar'}");
-               
assertObject(s.getSchema(Double.class)).json().is("{type:'number',format:'double',foo:'bar'}");
-               
assertObject(s.getSchema(String.class)).json().is("{type:'string',foo:'bar'}");
-               
assertObject(s.getSchema(StringBuilder.class)).json().is("{type:'string',foo:'bar'}");
-               
assertObject(s.getSchema(Character.class)).json().is("{type:'string',foo:'bar'}");
-               
assertObject(s.getSchema(char.class)).json().is("{type:'string',foo:'bar'}");
-               
assertObject(s.getSchema(TestEnumToString.class)).json().is("{type:'string','enum':['one','two','three'],foo:'bar'}");
+               
assertObject(s.getSchema(SimpleBean.class)).json().is("{foo:'bar',type:'object',properties:{f1:{foo:'bar',type:'string'}}}");
+               
assertObject(s.getSchema(BeanMap.class)).json().is("{foo:'bar',type:'object',additionalProperties:{foo:'bar',type:'object',properties:{f1:{foo:'bar',type:'string'}}}}");
+               
assertObject(s.getSchema(BeanList.class)).json().is("{foo:'bar',type:'array',items:{foo:'bar',type:'object',properties:{f1:{foo:'bar',type:'string'}}}}");
+               
assertObject(s.getSchema(BeanList[][].class)).json().is("{foo:'bar',type:'array',items:{type:'array',items:{foo:'bar',type:'array',items:{foo:'bar',type:'object',properties:{f1:{foo:'bar',type:'string'}}}}}}");
+               
assertObject(s.getSchema(boolean.class)).json().is("{foo:'bar',type:'boolean'}");
+               
assertObject(s.getSchema(Boolean.class)).json().is("{foo:'bar',type:'boolean'}");
+               
assertObject(s.getSchema(short.class)).json().is("{foo:'bar',type:'integer',format:'int16'}");
+               
assertObject(s.getSchema(Short.class)).json().is("{foo:'bar',type:'integer',format:'int16'}");
+               
assertObject(s.getSchema(int.class)).json().is("{foo:'bar',type:'integer',format:'int32'}");
+               
assertObject(s.getSchema(Integer.class)).json().is("{foo:'bar',type:'integer',format:'int32'}");
+               
assertObject(s.getSchema(long.class)).json().is("{foo:'bar',type:'integer',format:'int64'}");
+               
assertObject(s.getSchema(Long.class)).json().is("{foo:'bar',type:'integer',format:'int64'}");
+               
assertObject(s.getSchema(float.class)).json().is("{foo:'bar',type:'number',format:'float'}");
+               
assertObject(s.getSchema(Float.class)).json().is("{foo:'bar',type:'number',format:'float'}");
+               
assertObject(s.getSchema(double.class)).json().is("{foo:'bar',type:'number',format:'double'}");
+               
assertObject(s.getSchema(Double.class)).json().is("{foo:'bar',type:'number',format:'double'}");
+               
assertObject(s.getSchema(String.class)).json().is("{foo:'bar',type:'string'}");
+               
assertObject(s.getSchema(StringBuilder.class)).json().is("{foo:'bar',type:'string'}");
+               
assertObject(s.getSchema(Character.class)).json().is("{foo:'bar',type:'string'}");
+               
assertObject(s.getSchema(char.class)).json().is("{foo:'bar',type:'string'}");
+               
assertObject(s.getSchema(TestEnumToString.class)).json().is("{foo:'bar',type:'string','enum':['one','two','three']}");
        }
 
        
//====================================================================================================
@@ -1486,4 +1488,22 @@ public class JsonSchemaGeneratorTest {
 
        @JsonSchemaConfig(applySchema=@Schema(on="SwapWithAnnotation2", 
type="foo",format="bar",description="baz",example="123"))
        public static class SwapWithAnnotation2 extends 
PojoSwap<SimpleBean,Integer> {}
+
+       
//====================================================================================================
+       // @JsonSchema on PojoSwap
+       
//====================================================================================================
+
+       @Schema(onClass=B.class,value="{foo:'bar'}")
+       static class BConfig {}
+
+       static class B {}
+       static ClassInfo bConfig = ClassInfo.of(BConfig.class);
+
+       @Test
+       public void schemaOnClass_onConfig() throws Exception {
+               AnnotationList al = bConfig.getAnnotationList();
+               JsonSchemaGeneratorSession x = 
JsonSchemaGenerator.create().applyAnnotations(al, 
VarResolver.DEFAULT.createSession()).build().createSession();
+               assertObject(x.getSchema(new B())).json().contains("foo:'bar'");
+       }
+
 }
\ No newline at end of file
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 5348acb..699325f 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
@@ -25,6 +25,7 @@ import org.apache.juneau.collections.*;
 import org.apache.juneau.http.*;
 import org.apache.juneau.internal.*;
 import org.apache.juneau.jsonschema.*;
+import org.apache.juneau.jsonschema.annotation.*;
 import org.apache.juneau.reflect.*;
 import org.apache.juneau.svl.*;
 import org.apache.juneau.xml.*;
@@ -199,7 +200,7 @@ public class HtmlSchemaSerializerBuilder extends 
HtmlSerializerBuilder {
         * Keys are full class names.
         *
         * <ul class='seealso'>
-        *      <li class='jf'>{@link 
JsonSchemaGenerator#JSONSCHEMA_defaultSchemas}
+        *      <li class='jf'>{@link Schema#value}
         * </ul>
         *
         * @param c
@@ -210,7 +211,7 @@ public class HtmlSchemaSerializerBuilder extends 
HtmlSerializerBuilder {
         */
        @FluentSetter
        public HtmlSchemaSerializerBuilder defaultSchema(Class<?> c, OMap 
schema) {
-               return putTo(JSONSCHEMA_defaultSchemas, c.getName(), schema);
+               return 
annotations(SchemaAnnotation.create(c).value(schema.toString()).build());
        }
 
        /**
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 93a8685..3835ca4 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
@@ -25,6 +25,7 @@ import org.apache.juneau.collections.*;
 import org.apache.juneau.http.*;
 import org.apache.juneau.internal.*;
 import org.apache.juneau.jsonschema.*;
+import org.apache.juneau.jsonschema.annotation.*;
 import org.apache.juneau.reflect.*;
 import org.apache.juneau.svl.*;
 
@@ -198,7 +199,7 @@ public class JsonSchemaSerializerBuilder extends 
JsonSerializerBuilder {
         * Keys are full class names.
         *
         * <ul class='seealso'>
-        *      <li class='jf'>{@link 
JsonSchemaGenerator#JSONSCHEMA_defaultSchemas}
+        *      <li class='jf'>{@link Schema#value}
         * </ul>
         *
         * @param c
@@ -209,7 +210,7 @@ public class JsonSchemaSerializerBuilder extends 
JsonSerializerBuilder {
         */
        @FluentSetter
        public JsonSchemaSerializerBuilder defaultSchema(Class<?> c, OMap 
schema) {
-               return putTo(JSONSCHEMA_defaultSchemas, c.getName(), schema);
+               return 
annotations(SchemaAnnotation.create(c).value(schema.toString()).build());
        }
 
        /**
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 bd6dc59..22916e0 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
@@ -217,36 +217,6 @@ public class JsonSchemaGenerator extends 
BeanTraverseContext implements JsonSche
        public static final String JSONSCHEMA_beanDefMapper = PREFIX + 
".beanDefMapper.o";
 
        /**
-        * Configuration property:  Default schemas.
-        *
-        * <h5 class='section'>Property:</h5>
-        * <ul class='spaced-list'>
-        *      <li><b>ID:</b>  {@link 
org.apache.juneau.jsonschema.JsonSchemaGenerator#JSONSCHEMA_defaultSchemas 
JSONSCHEMA_defaultSchemas}
-        *      <li><b>Name:</b>  
<js>"JsonSchemaGenerator.defaultSchema.smo"</js>
-        *      <li><b>Data type:</b>  <c>Map&lt;String,{@link 
org.apache.juneau.collections.OMap}&gt;</c>
-        *      <li><b>System property:</b>  
<c>JsonSchemaGenerator.defaultSchema</c>
-        *      <li><b>Environment variable:</b>  
<c>JSONSCHEMAGENERATOR_DEFAULTSCHEMA</c>
-        *      <li><b>Default:</b>  Empty map.
-        *      <li><b>Session property:</b>  <jk>false</jk>
-        *      <li><b>Annotations:</b>
-        *              <ul>
-        *                      <li class='ja'>{@link 
org.apache.juneau.jsonschema.annotation.JsonSchemaConfig#defaultSchemas()}
-        *              </ul>
-        *      <li><b>Methods:</b>
-        *              <ul>
-        *                      <li class='jm'>{@link 
org.apache.juneau.jsonschema.JsonSchemaGeneratorBuilder#defaultSchema(Class,OMap)}
-        *              </ul>
-        * </ul>
-        *
-        * <h5 class='section'>Description:</h5>
-        * <p>
-        * Allows you to override or provide custom schema information for 
particular class types.
-        * <p>
-        * Keys are full class names.
-        */
-       public static final String JSONSCHEMA_defaultSchemas = PREFIX + 
".defaultSchemas.smo";
-
-       /**
         * Configuration property:  Ignore types from schema definitions.
         *
         * <h5 class='section'>Property:</h5>
@@ -335,7 +305,6 @@ public class JsonSchemaGenerator extends 
BeanTraverseContext implements JsonSche
        private final boolean useBeanDefs, allowNestedExamples, 
allowNestedDescriptions;
        private final BeanDefMapper beanDefMapper;
        private final Set<TypeCategory> addExamplesTo, addDescriptionsTo;
-       private final Map<String,OMap> defaultSchemas;
        private final JsonSerializer jsonSerializer;
        private final Set<Pattern> ignoreTypes;
        private final Map<ClassMeta<?>,JsonSchemaClassMeta> 
jsonSchemaClassMetas = new ConcurrentHashMap<>();
@@ -355,7 +324,6 @@ public class JsonSchemaGenerator extends 
BeanTraverseContext implements JsonSche
                beanDefMapper = getInstanceProperty(JSONSCHEMA_beanDefMapper, 
BeanDefMapper.class, BasicBeanDefMapper.class);
                addExamplesTo = 
TypeCategory.parse(getStringProperty(JSONSCHEMA_addExamplesTo, null));
                addDescriptionsTo = 
TypeCategory.parse(getStringProperty(JSONSCHEMA_addDescriptionsTo, null));
-               defaultSchemas = getMapProperty(JSONSCHEMA_defaultSchemas, 
OMap.class);
 
                Set<Pattern> ignoreTypes = new LinkedHashSet<>();
                for (String s : split(ps.getProperty(JSONSCHEMA_ignoreTypes, 
String.class, "")))
@@ -456,17 +424,6 @@ public class JsonSchemaGenerator extends 
BeanTraverseContext implements JsonSche
        }
 
        /**
-        * Default schemas.
-        *
-        * @see #JSONSCHEMA_defaultSchemas
-        * @return
-        *      Custom schema information for particular class types.
-        */
-       protected final Map<String,OMap> getDefaultSchemas() {
-               return defaultSchemas;
-       }
-
-       /**
         * Ignore types from schema definitions.
         *
         * @see JsonSchemaGenerator#JSONSCHEMA_ignoreTypes
@@ -547,7 +504,6 @@ public class JsonSchemaGenerator extends 
BeanTraverseContext implements JsonSche
                                .a("beanDefMapper", beanDefMapper)
                                .a("addExamplesTo", addExamplesTo)
                                .a("addDescriptionsTo", addDescriptionsTo)
-                               .a("defaultSchemas", defaultSchemas)
                                .a("ignoreTypes", ignoreTypes)
                        );
        }
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 439fde0..30f169b 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
@@ -23,6 +23,7 @@ import org.apache.juneau.annotation.*;
 import org.apache.juneau.collections.*;
 import org.apache.juneau.http.*;
 import org.apache.juneau.internal.*;
+import org.apache.juneau.jsonschema.annotation.*;
 import org.apache.juneau.reflect.*;
 import org.apache.juneau.svl.*;
 
@@ -196,7 +197,7 @@ public class JsonSchemaGeneratorBuilder extends 
BeanTraverseBuilder {
         * Keys are full class names.
         *
         * <ul class='seealso'>
-        *      <li class='jf'>{@link 
JsonSchemaGenerator#JSONSCHEMA_defaultSchemas}
+        *      <li class='jf'>{@link Schema#value}
         * </ul>
         *
         * @param c
@@ -207,7 +208,7 @@ public class JsonSchemaGeneratorBuilder extends 
BeanTraverseBuilder {
         */
        @FluentSetter
        public JsonSchemaGeneratorBuilder defaultSchema(Class<?> c, OMap 
schema) {
-               return putTo(JSONSCHEMA_defaultSchemas, c.getName(), schema);
+               return 
annotations(SchemaAnnotation.create(c.getName()).value(schema.toString()).build());
        }
 
        /**
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorSession.java
index 7f38072..589eb28 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorSession.java
@@ -133,12 +133,6 @@ public class JsonSchemaGeneratorSession extends 
BeanTraverseSession {
                        return new OMap().a("$ref", getBeanDefUri(sType));
                }
 
-               OMap ds = 
getDefaultSchemas().get(sType.getInnerClass().getName());
-               if (ds != null && ds.containsKey("type")) {
-                       pop();
-                       return out.aa(ds);
-               }
-
                JsonSchemaClassMeta jscm = null;
                ClassMeta pojoSwapCM = pojoSwap == null ? null : 
getClassMeta(pojoSwap.getClass());
                if (pojoSwapCM != null && 
pojoSwapCM.hasAnnotation(Schema.class))
@@ -254,8 +248,8 @@ public class JsonSchemaGeneratorSession extends 
BeanTraverseSession {
                out.appendIf(false, true, true, "description", description);
                out.appendIf(false, true, true, "x-example", example);
 
-               if (ds != null)
-                       out.appendAll(ds);
+//             if (ds != null)
+//                     out.appendAll(ds);
 
                if (useDef) {
                        defs.put(getBeanDefId(sType), out);
@@ -418,17 +412,6 @@ public class JsonSchemaGeneratorSession extends 
BeanTraverseSession {
        }
 
        /**
-        * Configuration property:  Default schemas.
-        *
-        * @see JsonSchemaGenerator#JSONSCHEMA_defaultSchemas
-        * @return
-        *      Custom schema information for particular class types.
-        */
-       protected final Map<String,OMap> getDefaultSchemas() {
-               return ctx.getDefaultSchemas();
-       }
-
-       /**
         * Configuration property:  Ignore types from schema definitions.
         *
         * @see JsonSchemaGenerator#JSONSCHEMA_ignoreTypes
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 e71020e..894cc1a 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
@@ -197,26 +197,6 @@ public @interface JsonSchemaConfig {
        Class<? extends BeanDefMapper> beanDefMapper() default 
BeanDefMapper.Null.class;
 
        /**
-        * Configuration property:  Default schemas.
-        *
-        * <p>
-        * Allows you to override or provide custom schema information for 
particular class types.
-        *
-        * <ul class='notes'>
-        *      <li>
-        *              Keys are the class.
-        *              <br>Values are Simple-JSON objects.
-        *      <li>
-        *              Supports {@doc DefaultVarResolver} (e.g. 
<js>"$C{myConfigVar}"</js>).
-        * </ul>
-        *
-        * <ul class='seealso'>
-        *      <li class='jf'>{@link 
JsonSchemaGenerator#JSONSCHEMA_defaultSchemas}
-        * </ul>
-        */
-       CS[] defaultSchemas() default {};
-
-       /**
         * Configuration property:  Ignore types from schema definitions.
         *
         * <p>
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/JsonSchemaConfigAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/JsonSchemaConfigAnnotation.java
index 6000bc2..900b413 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/JsonSchemaConfigAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/JsonSchemaConfigAnnotation.java
@@ -16,7 +16,6 @@ import static org.apache.juneau.BeanContext.*;
 import static org.apache.juneau.jsonschema.JsonSchemaGenerator.*;
 
 import org.apache.juneau.*;
-import org.apache.juneau.annotation.*;
 import org.apache.juneau.jsonschema.*;
 import org.apache.juneau.reflect.*;
 import org.apache.juneau.svl.*;
@@ -54,8 +53,6 @@ public class JsonSchemaConfigAnnotation {
                                psb.set(JSONSCHEMA_allowNestedExamples, 
bool(a.allowNestedExamples()));
                        if (a.beanDefMapper() != BeanDefMapper.Null.class)
                                psb.set(JSONSCHEMA_beanDefMapper, 
a.beanDefMapper());
-                       for (CS e : a.defaultSchemas())
-                               psb.putTo(JSONSCHEMA_defaultSchemas, 
e.k().getName(), omap(e.v(), "defaultSchemas"));
                        if (! a.ignoreTypes().isEmpty())
                                psb.set(JSONSCHEMA_ignoreTypes, 
string(a.ignoreTypes()));
                        if (! a.useBeanDefs().isEmpty())

Reply via email to