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 2018/09/27 23:15:46 UTC
[juneau] branch master updated: Merge @JsonSchema and @Schema into
a single 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 a565d01 Merge @JsonSchema and @Schema into a single annotation.
a565d01 is described below
commit a565d0166de1ef36473d8a705ed4389a856ff7e7
Author: JamesBognar <ja...@apache.org>
AuthorDate: Thu Sep 27 19:15:30 2018 -0400
Merge @JsonSchema and @Schema into a single annotation.
---
.../a/rttests/RoundTripLargeObjectsTest.java | 2 +-
.../http/annotation/AnnotationUtilsTest.java | 1 +
.../juneau/httppart/HttpPartSchemaTest_Body.java | 1 +
.../httppart/HttpPartSchemaTest_Response.java | 1 +
.../juneau/jsonschema/JsonSchemaGeneratorTest.java | 10 +--
.../org/apache/juneau/testutils/TestUtils.java | 4 +-
.../juneau/http/annotation/AnnotationUtils.java | 2 +
.../org/apache/juneau/http/annotation/Body.java | 1 +
.../apache/juneau/http/annotation/Response.java | 1 +
.../juneau/httppart/HttpPartSchemaBuilder.java | 1 +
.../jsonschema/JsonSchemaBeanPropertyMeta.java | 28 ++++----
.../juneau/jsonschema/JsonSchemaClassMeta.java | 22 +++----
.../jsonschema/JsonSchemaGeneratorSession.java | 2 +-
.../juneau/jsonschema/annotation/JsonSchema.java | 56 ----------------
.../{http => jsonschema}/annotation/Schema.java | 3 +-
juneau-doc/docs.txt | 1 +
juneau-doc/src/main/javadoc/overview.html | 77 +++++++++++++++++-----
.../src/main/resources/ReleaseNotes/7.2.0.html | 4 +-
.../src/main/resources/ReleaseNotes/7.2.1.html | 26 ++++++++
.../28.HtmlDocAnnotation/01.UIvsDI.html | 57 ++++++++++++++++
.../{01.Widgets.html => 02.Widgets.html} | 0
...finedWidgets.html => 03.PredefinedWidgets.html} | 0
...iCustomization.html => 04.UiCustomization.html} | 0
.../{04.Stylesheets.html => 05.Stylesheets.html} | 0
.../microservice/resources/DirectoryResource.java | 1 +
.../microservice/resources/LogsResource.java | 1 +
.../org/apache/juneau/rest/SwaggerGenerator.java | 3 +-
.../juneau/rest/annotation/MethodSwagger.java | 2 +-
.../juneau/rest/helper/ResourceDescription.java | 1 +
.../juneau/rest/BasicRestInfoProviderTest.java | 1 +
.../juneau/rest/annotation/BodyAnnotationTest.java | 1 +
.../rest/annotation/ResponseAnnotationTest.java | 1 +
32 files changed, 202 insertions(+), 109 deletions(-)
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripLargeObjectsTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripLargeObjectsTest.java
index 04204dd..af718ef 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripLargeObjectsTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripLargeObjectsTest.java
@@ -54,7 +54,7 @@ public class RoundTripLargeObjectsTest extends RoundTripTest {
0
},
{ /* 1 */
- "Json DEFAULT_LAX",
+ "SimpleJson DEFAULT",
JsonSerializer.create().ssq().trimNullProperties(false),
JsonParser.create(),
0
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/http/annotation/AnnotationUtilsTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/http/annotation/AnnotationUtilsTest.java
index 6c213fc..67b5305 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/http/annotation/AnnotationUtilsTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/http/annotation/AnnotationUtilsTest.java
@@ -20,6 +20,7 @@ import static org.apache.juneau.http.annotation.AnnotationUtils.*;
import java.lang.annotation.*;
import java.lang.reflect.*;
+import org.apache.juneau.jsonschema.annotation.*;
import org.junit.*;
import org.junit.runners.*;
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_Body.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_Body.java
index f5efe7d..5ad6414 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_Body.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_Body.java
@@ -19,6 +19,7 @@ import static org.apache.juneau.internal.StringUtils.*;
import org.apache.juneau.*;
import org.apache.juneau.http.annotation.*;
+import org.apache.juneau.jsonschema.annotation.*;
import org.apache.juneau.utils.*;
import org.junit.*;
import org.junit.runners.*;
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_Response.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_Response.java
index 2252403..b91d1c5 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_Response.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/HttpPartSchemaTest_Response.java
@@ -19,6 +19,7 @@ import static org.junit.Assert.assertEquals;
import org.apache.juneau.*;
import org.apache.juneau.http.annotation.*;
+import org.apache.juneau.jsonschema.annotation.*;
import org.apache.juneau.utils.*;
import org.junit.*;
import org.junit.runners.*;
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorTest.java
index 1deb210..9ccf29d 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorTest.java
@@ -1137,7 +1137,7 @@ public class JsonSchemaGeneratorTest {
assertObjectEquals("{type:'foo',format:'bar',properties:{f1:{type:'integer',format:'int32'}},description:'baz','x-example':{f1:123}}", s.getSchema(A1.class));
}
- @JsonSchema(type="foo",format="bar",description="baz",example="{f1:123}")
+ @Schema(type="foo",format="bar",description="baz",example="{f1:123}")
public static class A1 {
public int f1;
}
@@ -1149,7 +1149,7 @@ public class JsonSchemaGeneratorTest {
}
public static class A2 {
- @JsonSchema(type="foo",format="bar",description="baz",example="123")
+ @Schema(type="foo",format="bar",description="baz",example="123")
public int f1;
}
@@ -1160,7 +1160,7 @@ public class JsonSchemaGeneratorTest {
}
public static class A3 {
- @JsonSchema(type="foo",format="bar",description="baz",example="123")
+ @Schema(type="foo",format="bar",description="baz",example="123")
public int getF1() {
return 123;
}
@@ -1177,7 +1177,7 @@ public class JsonSchemaGeneratorTest {
return 123;
}
- @JsonSchema(type="foo",format="bar",description="baz",example="123")
+ @Schema(type="foo",format="bar",description="baz",example="123")
public void setF1(int f1) {}
}
@@ -1195,6 +1195,6 @@ public class JsonSchemaGeneratorTest {
assertObjectEquals("{type:'array',items:{type:'array',items:{type:'foo',format:'bar',description:'baz','x-example':123}}}", s.getSchema(SimpleBean[][].class));
}
- @JsonSchema(type="foo",format="bar",description="baz",example="123")
+ @Schema(type="foo",format="bar",description="baz",example="123")
public static class SwapWithAnnotation extends PojoSwap<SimpleBean,Integer> {}
}
\ No newline at end of file
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/testutils/TestUtils.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/testutils/TestUtils.java
index cc2a215..6455cd4 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/testutils/TestUtils.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/testutils/TestUtils.java
@@ -369,14 +369,14 @@ public class TestUtils {
}
/**
- * Assert that the object equals the specified string after running it through SimpleJsonSerializer.DEFAULT_LAX.toString().
+ * Assert that the object equals the specified string after running it through SimpleJsonSerializer.DEFAULT.toString().
*/
public static final void assertObjectEquals(String s, Object o) {
assertObjectEquals(s, o, js2);
}
/**
- * Assert that the object equals the specified string after running it through SimpleJsonSerializer.DEFAULT_LAX.toString()
+ * Assert that the object equals the specified string after running it through SimpleJsonSerializer.DEFAULT.toString()
* with BEAN_sortProperties set to true.
*/
public static final void assertSortedObjectEquals(String s, Object o) {
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/AnnotationUtils.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/AnnotationUtils.java
index 9c03960..16ff4a3 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/AnnotationUtils.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/AnnotationUtils.java
@@ -12,6 +12,8 @@
// ***************************************************************************************************************************
package org.apache.juneau.http.annotation;
+import org.apache.juneau.jsonschema.annotation.*;
+
/**
* Various reusable utility methods when working with annotations.
*/
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 a049885..10d8f8b 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
@@ -22,6 +22,7 @@ import org.apache.juneau.annotation.*;
import org.apache.juneau.httppart.*;
import org.apache.juneau.json.*;
import org.apache.juneau.jsonschema.*;
+import org.apache.juneau.jsonschema.annotation.*;
/**
* REST request body annotation.
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 3156183..2cd2a90 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
@@ -22,6 +22,7 @@ import org.apache.juneau.annotation.*;
import org.apache.juneau.httppart.*;
import org.apache.juneau.json.*;
import org.apache.juneau.jsonschema.*;
+import org.apache.juneau.jsonschema.annotation.*;
import org.apache.juneau.oapi.*;
/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchemaBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchemaBuilder.java
index d660349..99e5b4a 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchemaBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchemaBuilder.java
@@ -24,6 +24,7 @@ import org.apache.juneau.http.annotation.*;
import org.apache.juneau.httppart.HttpPartSchema.*;
import org.apache.juneau.httppart.HttpPartSchema.Type;
import org.apache.juneau.internal.*;
+import org.apache.juneau.jsonschema.annotation.*;
import org.apache.juneau.utils.*;
/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaBeanPropertyMeta.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaBeanPropertyMeta.java
index 39afdc2..ab63296 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaBeanPropertyMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaBeanPropertyMeta.java
@@ -12,13 +12,15 @@
// ***************************************************************************************************************************
package org.apache.juneau.jsonschema;
+import static org.apache.juneau.internal.StringUtils.*;
+
import org.apache.juneau.*;
import org.apache.juneau.json.*;
import org.apache.juneau.jsonschema.annotation.*;
import org.apache.juneau.parser.*;
/**
- * Metadata on bean properties specific to the JSON-Schema pulled from the {@link JsonSchema @JsonSchema} annotation
+ * Metadata on bean properties specific to the JSON-Schema pulled from the {@link Schema @Schema} annotation
* on the bean property.
*/
public class JsonSchemaBeanPropertyMeta extends BeanPropertyMetaExtended {
@@ -40,11 +42,11 @@ public class JsonSchemaBeanPropertyMeta extends BeanPropertyMetaExtended {
super(bpm);
if (bpm.getField() != null)
- findInfo(bpm.getField().getAnnotation(JsonSchema.class));
+ findInfo(bpm.getField().getAnnotation(Schema.class));
if (bpm.getGetter() != null)
- findInfo(bpm.getGetter().getAnnotation(JsonSchema.class));
+ findInfo(bpm.getGetter().getAnnotation(Schema.class));
if (bpm.getSetter() != null)
- findInfo(bpm.getSetter().getAnnotation(JsonSchema.class));
+ findInfo(bpm.getSetter().getAnnotation(Schema.class));
}
private JsonSchemaBeanPropertyMeta() {
@@ -55,18 +57,18 @@ public class JsonSchemaBeanPropertyMeta extends BeanPropertyMetaExtended {
this.example = null;
}
- private void findInfo(JsonSchema js) {
+ private void findInfo(Schema js) {
if (js == null)
return;
if (! js.type().isEmpty())
type = js.type();
if (! js.format().isEmpty())
format = js.format();
- if (! js.description().isEmpty())
- description = js.description();
- if (! js.example().isEmpty()) {
+ if (js.description().length > 0)
+ description = joinnl(js.description());
+ if (js.example().length > 0) {
try {
- example = JsonParser.DEFAULT.parse(js.example(), Object.class);
+ example = JsonParser.DEFAULT.parse(joinnl(js.example()), Object.class);
} catch (ParseException e) {
throw new BeanRuntimeException(e);
}
@@ -74,7 +76,7 @@ public class JsonSchemaBeanPropertyMeta extends BeanPropertyMetaExtended {
}
/**
- * Returns the {@link JsonSchema#type() @JsonSchema(type)} annotation defined on the class.
+ * Returns the {@link Schema#type() @Schema(type)} annotation defined on the class.
*
* @return The value of the annotation, or <jk>null</jk> if not specified.
*/
@@ -83,7 +85,7 @@ public class JsonSchemaBeanPropertyMeta extends BeanPropertyMetaExtended {
}
/**
- * Returns the {@link JsonSchema#format() @JsonSchema(format)} annotation defined on the class.
+ * Returns the {@link Schema#format() @Schema(format)} annotation defined on the class.
*
* @return The value of the annotation, or <jk>null</jk> if not specified.
*/
@@ -92,7 +94,7 @@ public class JsonSchemaBeanPropertyMeta extends BeanPropertyMetaExtended {
}
/**
- * Returns the {@link JsonSchema#description() @JsonSchema(description)} annotation defined on the class.
+ * Returns the {@link Schema#description() @Schema(description)} annotation defined on the class.
*
* @return The value of the annotation, or <jk>null</jk> if not specified.
*/
@@ -101,7 +103,7 @@ public class JsonSchemaBeanPropertyMeta extends BeanPropertyMetaExtended {
}
/**
- * Returns the {@link JsonSchema#example() @JsonSchema(example)} annotation defined on the class.
+ * Returns the {@link Schema#example() @Schema(example)} annotation defined on the class.
*
* @return The value of the annotation, or <jk>null</jk> if not specified.
*/
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaClassMeta.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaClassMeta.java
index f476d88..fb1dfa0 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaClassMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaClassMeta.java
@@ -21,12 +21,12 @@ import org.apache.juneau.jsonschema.annotation.*;
import org.apache.juneau.parser.*;
/**
- * Metadata on classes specific to the JSON-Schema serializer and pulled from the {@link JsonSchema @JsonSchema} annotation on
+ * Metadata on classes specific to the JSON-Schema serializer and pulled from the {@link Schema @Schema} annotation on
* the class.
*/
public class JsonSchemaClassMeta extends ClassMetaExtended {
- private final JsonSchema jsonSchema;
+ private final Schema jsonSchema;
private final String type, format, description;
private Object example;
@@ -37,13 +37,13 @@ public class JsonSchemaClassMeta extends ClassMetaExtended {
*/
public JsonSchemaClassMeta(ClassMeta<?> cm) {
super(cm);
- this.jsonSchema = ClassUtils.getAnnotation(JsonSchema.class, getInnerClass());
+ this.jsonSchema = ClassUtils.getAnnotation(Schema.class, getInnerClass());
if (jsonSchema != null) {
type = nullIfEmpty(jsonSchema.type());
format = nullIfEmpty(jsonSchema.format());
- description = nullIfEmpty(jsonSchema.description());
+ description = nullIfEmpty(joinnl(jsonSchema.description()));
try {
- example = jsonSchema.example().isEmpty() ? null : JsonParser.DEFAULT.parse(jsonSchema.example(), Object.class);
+ example = jsonSchema.example().length == 0 ? null : JsonParser.DEFAULT.parse(joinnl(jsonSchema.example()), Object.class);
} catch (ParseException e) {
throw new BeanRuntimeException(e);
}
@@ -55,16 +55,16 @@ public class JsonSchemaClassMeta extends ClassMetaExtended {
}
/**
- * Returns the {@link JsonSchema @JsonSchema} annotation defined on the class.
+ * Returns the {@link Schema @Schema} annotation defined on the class.
*
* @return The value of the annotation, or <jk>null</jk> if not specified.
*/
- protected JsonSchema getAnnotation() {
+ protected Schema getAnnotation() {
return jsonSchema;
}
/**
- * Returns the {@link JsonSchema#type() @JsonSchema(type)} annotation defined on the class.
+ * Returns the {@link Schema#type() @Schema(type)} annotation defined on the class.
*
* @return The value of the annotation, or <jk>null</jk> if not specified.
*/
@@ -73,7 +73,7 @@ public class JsonSchemaClassMeta extends ClassMetaExtended {
}
/**
- * Returns the {@link JsonSchema#format() @JsonSchema(format)} annotation defined on the class.
+ * Returns the {@link Schema#format() @Schema(format)} annotation defined on the class.
*
* @return The value of the annotation, or <jk>null</jk> if not specified.
*/
@@ -82,7 +82,7 @@ public class JsonSchemaClassMeta extends ClassMetaExtended {
}
/**
- * Returns the {@link JsonSchema#description() @JsonSchema(description)} annotation defined on the class.
+ * Returns the {@link Schema#description() @Schema(description)} annotation defined on the class.
*
* @return The value of the annotation, or <jk>null</jk> if not specified.
*/
@@ -91,7 +91,7 @@ public class JsonSchemaClassMeta extends ClassMetaExtended {
}
/**
- * Returns the {@link JsonSchema#example() @JsonSchema(example)} annotation defined on the class.
+ * Returns the {@link Schema#example() @Schema(example)} annotation defined on the class.
*
* @return The value of the annotation, or <jk>null</jk> if not specified.
*/
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 d502f24..e8cee4e 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
@@ -132,7 +132,7 @@ public class JsonSchemaGeneratorSession extends BeanTraverseSession {
}
JsonSchemaClassMeta jscm = null;
- if (pojoSwap != null && pojoSwap.getClass().getAnnotation(JsonSchema.class) != null)
+ if (pojoSwap != null && pojoSwap.getClass().getAnnotation(Schema.class) != null)
jscm = getClassMeta(pojoSwap.getClass()).getExtendedMeta(JsonSchemaClassMeta.class);
if (jscm == null)
jscm = sType.getExtendedMeta(JsonSchemaClassMeta.class);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/JsonSchema.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/JsonSchema.java
deleted file mode 100644
index 745b15e..0000000
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/JsonSchema.java
+++ /dev/null
@@ -1,56 +0,0 @@
-// ***************************************************************************************************************************
-// * 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.jsonschema.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
-
-import org.apache.juneau.json.*;
-
-/**
- * Annotation for specifying various JSON-SCHEMA information for {@link JsonSchemaSerializer}.
- *
- * <p>
- * Can be applied to Java types and bean methods/fields.
- */
-@Documented
-@Target({TYPE,METHOD,FIELD})
-@Retention(RUNTIME)
-@Inherited
-public @interface JsonSchema {
-
- /**
- * Defines the type for the class or property.
- */
- String type() default "";
-
- /**
- * Defines the format for the class or property.
- */
- String format() default "";
-
- /**
- * Defines the description for the class or property.
- */
- String description() default "";
-
- /**
- * Defines the example for the class or property.
- *
- * <p>
- * The format of the value is Lax-JSON.
- */
- String example() default "";
-}
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Schema.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/Schema.java
similarity index 96%
rename from juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Schema.java
rename to juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/Schema.java
index 255139e..24ab4e8 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Schema.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/Schema.java
@@ -10,12 +10,13 @@
// * "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.http.annotation;
+package org.apache.juneau.jsonschema.annotation;
import static java.lang.annotation.RetentionPolicy.*;
import java.lang.annotation.*;
+import org.apache.juneau.http.annotation.*;
import org.apache.juneau.oapi.*;
/**
diff --git a/juneau-doc/docs.txt b/juneau-doc/docs.txt
index d7a2a5d..e08b14e 100644
--- a/juneau-doc/docs.txt
+++ b/juneau-doc/docs.txt
@@ -257,6 +257,7 @@ juneau-rest-server.HelloWorldExample = #juneau-rest-server.HelloWorldExample, Ov
juneau-rest-server.HtmlDocAnnotation = #juneau-rest-server.HtmlDocAnnotation, Overview > juneau-rest-server > @HtmlDoc
juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets = #juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets, Overview > juneau-rest-server > @HtmlDoc > Predefined Widgets
juneau-rest-server.HtmlDocAnnotation.Stylesheets = #juneau-rest-server.HtmlDocAnnotation.Stylesheets, Overview > juneau-rest-server > @HtmlDoc > Stylesheets
+juneau-rest-server.HtmlDocAnnotation.UIvsDI = #juneau-rest-server.HtmlDocAnnotation.UIvsDI, Overview > juneau-rest-server > @HtmlDoc > User Interfaces (UI) vs. Developer Interfaces (DI)
juneau-rest-server.HtmlDocAnnotation.UiCustomization = #juneau-rest-server.HtmlDocAnnotation.UiCustomization, Overview > juneau-rest-server > @HtmlDoc > UI Customization
juneau-rest-server.HtmlDocAnnotation.Widgets = #juneau-rest-server.HtmlDocAnnotation.Widgets, Overview > juneau-rest-server > @HtmlDoc > Widgets
juneau-rest-server.HttpPartAnnotations = #juneau-rest-server.HttpPartAnnotations, Overview > juneau-rest-server > HTTP-Part Annotations
diff --git a/juneau-doc/src/main/javadoc/overview.html b/juneau-doc/src/main/javadoc/overview.html
index 8380ed7..7b9d1b3 100644
--- a/juneau-doc/src/main/javadoc/overview.html
+++ b/juneau-doc/src/main/javadoc/overview.html
@@ -349,6 +349,7 @@
</ol>
<li><p class=''><a class='doclink' href='#juneau-rest-server.HtmlDocAnnotation'>@HtmlDoc</a></p>
<ol>
+ <li><p class=''><a class='doclink' href='#juneau-rest-server.HtmlDocAnnotation.UIvsDI'>User Interfaces (UI) vs. Developer Interfaces (DI)</a></p>
<li><p class=''><a class='doclink' href='#juneau-rest-server.HtmlDocAnnotation.Widgets'>Widgets</a></p>
<li><p class='new'><a class='doclink' href='#juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets'>Predefined Widgets</a></p>
<li><p class='updated'><a class='doclink' href='#juneau-rest-server.HtmlDocAnnotation.UiCustomization'>UI Customization</a></p>
@@ -19719,8 +19720,54 @@
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-rest-server.HtmlDocAnnotation.Widgets' id='juneau-rest-server.HtmlDocAnnotation.Widgets'>7.28.1 - Widgets</a></h4>
-<div class='topic'><!-- START: 7.28.1 - juneau-rest-server.HtmlDocAnnotation.Widgets -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-rest-server.HtmlDocAnnotation.UIvsDI' id='juneau-rest-server.HtmlDocAnnotation.UIvsDI'>7.28.1 - User Interfaces (UI) vs. Developer Interfaces (DI)</a></h4>
+<div class='topic'><!-- START: 7.28.1 - juneau-rest-server.HtmlDocAnnotation.UIvsDI -->
+<p>
+ An important distinction needs to be made about the HTML representations produced by the REST
+ API. These should not be considered User Interfaces, but rather Developer Interfaces.
+</p>
+<p>
+ UIs should hide the end-user from the underlying architecture.
+ The audience generally consists of non-technical people not interested in how the UI works.
+</p>
+<p>
+ DIs, on the other hand, should NOT hide the end-user from the underlying architecture.
+ Instead, it's a thin veneer over the REST interface with the following goals:
+</p>
+<ul class='spaced-list'>
+ <li>Make it easy for the developer to explore and understand the REST API.
+ <li>Make it easy for the developer to debug the REST API using simple tools (hopefully just a browser).
+</ul>
+<p>
+ As a result, the following guidelines are recommended:
+</p>
+<ul class='spaced-list'>
+ <li>
+ Use titles/descriptions/asides to describe why the REST interface exists.
+ A developer knowing little about it should be able to access it with a browser and quickly
+ understand what it is and how to use it.
+ <li>
+ Don't hide the raw data!
+ The HTML view should simply be considered an easier-to-read representation of the data normally
+ rendered in JSON or some other format.
+ <li>
+ Limit your use of Javascript!
+ You can use it sparingly if you want to implement something simple like a pull-down menu to
+ simplify some debug task, but remember that your audience cares more about interacting with your
+ service programmatically using REST.
+ Remember that the HTML is just icing on the cake.
+ <li>
+ Don't use it to implement a Web 2.0 interface!
+ If you want a Web 2.0 UI, implement it separately ON TOP OF this REST interface.
+ The architecture is flexible enough that you could in theory pull in and use jQuery, React,
+ Angular, or any number of sophisticated Javascript UI frameworks. Resist the urge to do so.
+</ul>
+</div><!-- END: 7.28.1 - juneau-rest-server.HtmlDocAnnotation.UIvsDI -->
+
+<!-- ==================================================================================================== -->
+
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-rest-server.HtmlDocAnnotation.Widgets' id='juneau-rest-server.HtmlDocAnnotation.Widgets'>7.28.2 - Widgets</a></h4>
+<div class='topic'><!-- START: 7.28.2 - juneau-rest-server.HtmlDocAnnotation.Widgets -->
<p>
The {@link org.apache.juneau.rest.widget.Widget} class allows you to add arbitrary HTML, CSS, and Javascript
to HTML pages.
@@ -19835,12 +19882,12 @@
<ul>
<li class='jf'>{@link org.apache.juneau.rest.RestContext#REST_widgets}
</ul>
-</div><!-- END: 7.28.1 - juneau-rest-server.HtmlDocAnnotation.Widgets -->
+</div><!-- END: 7.28.2 - juneau-rest-server.HtmlDocAnnotation.Widgets -->
<!-- ==================================================================================================== -->
-<h4 class='topic new' onclick='toggle(this)'><a href='#juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets' id='juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets'>7.28.2 - Predefined Widgets</a></h4>
-<div class='topic'><!-- START: 7.28.2 - juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets -->
+<h4 class='topic new' onclick='toggle(this)'><a href='#juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets' id='juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets'>7.28.3 - Predefined Widgets</a></h4>
+<div class='topic'><!-- START: 7.28.3 - juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets -->
<p>
The {@link org.apache.juneau.rest.widget} package contains predefined reusable widgets.
</p>
@@ -20078,12 +20125,12 @@
}
}
</p>
-</div><!-- END: 7.28.2 - juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets -->
+</div><!-- END: 7.28.3 - juneau-rest-server.HtmlDocAnnotation.PredefinedWidgets -->
<!-- ==================================================================================================== -->
-<h4 class='topic updated' onclick='toggle(this)'><a href='#juneau-rest-server.HtmlDocAnnotation.UiCustomization' id='juneau-rest-server.HtmlDocAnnotation.UiCustomization'>7.28.3 - UI Customization</a></h4>
-<div class='topic'><!-- START: 7.28.3 - juneau-rest-server.HtmlDocAnnotation.UiCustomization -->
+<h4 class='topic updated' onclick='toggle(this)'><a href='#juneau-rest-server.HtmlDocAnnotation.UiCustomization' id='juneau-rest-server.HtmlDocAnnotation.UiCustomization'>7.28.4 - UI Customization</a></h4>
+<div class='topic'><!-- START: 7.28.4 - juneau-rest-server.HtmlDocAnnotation.UiCustomization -->
<p>
The HTML views of POJOs can somewhat be considered a rudimentary User Interface.
In reality, a better term for them would be a Developer Interface as they're meant to be used
@@ -20228,12 +20275,12 @@
<ul>
<li class='link'>{@doc juneau-microservice-server.UiCustomization}
</ul>
-</div><!-- END: 7.28.3 - juneau-rest-server.HtmlDocAnnotation.UiCustomization -->
+</div><!-- END: 7.28.4 - juneau-rest-server.HtmlDocAnnotation.UiCustomization -->
<!-- ==================================================================================================== -->
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-rest-server.HtmlDocAnnotation.Stylesheets' id='juneau-rest-server.HtmlDocAnnotation.Stylesheets'>7.28.4 - Stylesheets</a></h4>
-<div class='topic'><!-- START: 7.28.4 - juneau-rest-server.HtmlDocAnnotation.Stylesheets -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-rest-server.HtmlDocAnnotation.Stylesheets' id='juneau-rest-server.HtmlDocAnnotation.Stylesheets'>7.28.5 - Stylesheets</a></h4>
+<div class='topic'><!-- START: 7.28.5 - juneau-rest-server.HtmlDocAnnotation.Stylesheets -->
<p>
The sample root page renders in the default "devops" look-and-feel:
</p>
@@ -20343,7 +20390,7 @@
}
}
</p>
-</div><!-- END: 7.28.4 - juneau-rest-server.HtmlDocAnnotation.Stylesheets -->
+</div><!-- END: 7.28.5 - juneau-rest-server.HtmlDocAnnotation.Stylesheets -->
</div><!-- END: 7.28 - juneau-rest-server.HtmlDocAnnotation -->
<!-- ==================================================================================================== -->
@@ -28286,7 +28333,7 @@
<li><p><a class='doclink' href='#7.0.0'>7.0.0 (Oct 25, 2017)</a></p>
<li><p><a class='doclink' href='#7.0.1'>7.0.1 (Dec 24, 2017)</a></p>
<li><p><a class='doclink' href='#7.1.0'>7.1.0 (Mar 08, 2018)</a></p>
-<li><p><a class='doclink' href='#7.2.0'>7.2.0 (TBD)</a></p>
+<li><p><a class='doclink' href='#7.2.0'>7.2.0 (Sept 25, 2018)</a></p>
</ul>
@@ -33609,10 +33656,10 @@
<!-- ==================================================================================================== -->
-<h3 class='topic' onclick='toggle(this)'><a href='#7.2.0' id='7.2.0'>7.2.0 (TBD)</a></h3>
+<h3 class='topic' onclick='toggle(this)'><a href='#7.2.0' id='7.2.0'>7.2.0 (Sept 25, 2018)</a></h3>
<div class='topic'><!-- START: 7.2.0 -->
<p>
- 7.2.0 is a major release that introduces several significant new functionality:
+ 7.2.0 is a major release that introduces several significant new features:
</p>
<ul class='spaced-list'>
<li>OpenAPI part serializing and parsing with full support for OpenAPI validation of input and output in the REST servlet and client APIs.
diff --git a/juneau-doc/src/main/resources/ReleaseNotes/7.2.0.html b/juneau-doc/src/main/resources/ReleaseNotes/7.2.0.html
index 65752dd..3d5cebb 100644
--- a/juneau-doc/src/main/resources/ReleaseNotes/7.2.0.html
+++ b/juneau-doc/src/main/resources/ReleaseNotes/7.2.0.html
@@ -13,10 +13,10 @@
***************************************************************************************************************************/
-->
-7.2.0 (TBD)
+7.2.0 (Sept 25, 2018)
<p>
- 7.2.0 is a major release that introduces several significant new functionality:
+ 7.2.0 is a major release that introduces several significant new features:
</p>
<ul class='spaced-list'>
<li>OpenAPI part serializing and parsing with full support for OpenAPI validation of input and output in the REST servlet and client APIs.
diff --git a/juneau-doc/src/main/resources/ReleaseNotes/7.2.1.html b/juneau-doc/src/main/resources/ReleaseNotes/7.2.1.html
new file mode 100644
index 0000000..f710c67
--- /dev/null
+++ b/juneau-doc/src/main/resources/ReleaseNotes/7.2.1.html
@@ -0,0 +1,26 @@
+<!--
+/***************************************************************************************************************************
+ * 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.
+ ***************************************************************************************************************************/
+ -->
+
+7.2.1 (TBD)
+
+<p>
+ Summary.
+</p>
+
+<h5 class='topic w800'>juneau-marshall</h5>
+<ul class='spaced-list'>
+ <li>
+ The <code><del>@JsonSchema</del></code> annotation has been merged with the {@link oaj.jsonschema.annotation.Schema @Schema} annotation.
+</ul>
diff --git a/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/28.HtmlDocAnnotation/01.UIvsDI.html b/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/28.HtmlDocAnnotation/01.UIvsDI.html
new file mode 100644
index 0000000..575f406
--- /dev/null
+++ b/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/28.HtmlDocAnnotation/01.UIvsDI.html
@@ -0,0 +1,57 @@
+<!--
+/***************************************************************************************************************************
+ * 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.
+ ***************************************************************************************************************************/
+ -->
+
+User Interfaces (UI) vs. Developer Interfaces (DI)
+
+<p>
+ An important distinction needs to be made about the HTML representations produced by the REST
+ API. These should not be considered User Interfaces, but rather Developer Interfaces.
+</p>
+<p>
+ UIs should hide the end-user from the underlying architecture.
+ The audience generally consists of non-technical people not interested in how the UI works.
+</p>
+<p>
+ DIs, on the other hand, should NOT hide the end-user from the underlying architecture.
+ Instead, it's a thin veneer over the REST interface with the following goals:
+</p>
+<ul class='spaced-list'>
+ <li>Make it easy for the developer to explore and understand the REST API.
+ <li>Make it easy for the developer to debug the REST API using simple tools (hopefully just a browser).
+</ul>
+<p>
+ As a result, the following guidelines are recommended:
+</p>
+<ul class='spaced-list'>
+ <li>
+ Use titles/descriptions/asides to describe why the REST interface exists.
+ A developer knowing little about it should be able to access it with a browser and quickly
+ understand what it is and how to use it.
+ <li>
+ Don't hide the raw data!
+ The HTML view should simply be considered an easier-to-read representation of the data normally
+ rendered in JSON or some other format.
+ <li>
+ Limit your use of Javascript!
+ You can use it sparingly if you want to implement something simple like a pull-down menu to
+ simplify some debug task, but remember that your audience cares more about interacting with your
+ service programmatically using REST.
+ Remember that the HTML is just icing on the cake.
+ <li>
+ Don't use it to implement a Web 2.0 interface!
+ If you want a Web 2.0 UI, implement it separately ON TOP OF this REST interface.
+ The architecture is flexible enough that you could in theory pull in and use jQuery, React,
+ Angular, or any number of sophisticated Javascript UI frameworks. Resist the urge to do so.
+</ul>
diff --git a/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/28.HtmlDocAnnotation/01.Widgets.html b/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/28.HtmlDocAnnotation/02.Widgets.html
similarity index 100%
rename from juneau-doc/src/main/resources/Topics/07.juneau-rest-server/28.HtmlDocAnnotation/01.Widgets.html
rename to juneau-doc/src/main/resources/Topics/07.juneau-rest-server/28.HtmlDocAnnotation/02.Widgets.html
diff --git a/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/28.HtmlDocAnnotation/02.PredefinedWidgets.html b/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/28.HtmlDocAnnotation/03.PredefinedWidgets.html
similarity index 100%
rename from juneau-doc/src/main/resources/Topics/07.juneau-rest-server/28.HtmlDocAnnotation/02.PredefinedWidgets.html
rename to juneau-doc/src/main/resources/Topics/07.juneau-rest-server/28.HtmlDocAnnotation/03.PredefinedWidgets.html
diff --git a/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/28.HtmlDocAnnotation/03.UiCustomization.html b/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/28.HtmlDocAnnotation/04.UiCustomization.html
similarity index 100%
rename from juneau-doc/src/main/resources/Topics/07.juneau-rest-server/28.HtmlDocAnnotation/03.UiCustomization.html
rename to juneau-doc/src/main/resources/Topics/07.juneau-rest-server/28.HtmlDocAnnotation/04.UiCustomization.html
diff --git a/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/28.HtmlDocAnnotation/04.Stylesheets.html b/juneau-doc/src/main/resources/Topics/07.juneau-rest-server/28.HtmlDocAnnotation/05.Stylesheets.html
similarity index 100%
rename from juneau-doc/src/main/resources/Topics/07.juneau-rest-server/28.HtmlDocAnnotation/04.Stylesheets.html
rename to juneau-doc/src/main/resources/Topics/07.juneau-rest-server/28.HtmlDocAnnotation/05.Stylesheets.html
diff --git a/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java b/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java
index 2b76259..21abd64 100755
--- a/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java
+++ b/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java
@@ -24,6 +24,7 @@ import org.apache.juneau.annotation.*;
import org.apache.juneau.dto.*;
import org.apache.juneau.html.annotation.*;
import org.apache.juneau.http.annotation.*;
+import org.apache.juneau.jsonschema.annotation.*;
import org.apache.juneau.rest.*;
import org.apache.juneau.rest.annotation.*;
import org.apache.juneau.rest.exception.*;
diff --git a/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java b/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
index d896d42..c442bb8 100755
--- a/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
+++ b/juneau-microservice/juneau-microservice-server/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
@@ -25,6 +25,7 @@ import org.apache.juneau.annotation.*;
import org.apache.juneau.dto.*;
import org.apache.juneau.html.annotation.*;
import org.apache.juneau.http.annotation.*;
+import org.apache.juneau.jsonschema.annotation.*;
import org.apache.juneau.rest.*;
import org.apache.juneau.rest.annotation.*;
import org.apache.juneau.rest.converters.*;
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/SwaggerGenerator.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/SwaggerGenerator.java
index aa1b5e9..dd9c551 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/SwaggerGenerator.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/SwaggerGenerator.java
@@ -32,6 +32,7 @@ import org.apache.juneau.http.annotation.Tag;
import org.apache.juneau.internal.*;
import org.apache.juneau.json.*;
import org.apache.juneau.jsonschema.*;
+import org.apache.juneau.jsonschema.annotation.*;
import org.apache.juneau.parser.*;
import org.apache.juneau.rest.annotation.*;
import org.apache.juneau.rest.util.*;
@@ -509,7 +510,7 @@ final class SwaggerGenerator {
// if (! omSwagger.isEmpty())
// assertNoEmpties(omSwagger);
// } catch (SwaggerException e1) {
-// System.err.println(omSwagger.toString(SimpleJsonSerializer.DEFAULT_LAX_READABLE));
+// System.err.println(omSwagger.toString(SimpleJsonSerializer.DEFAULT_READABLE));
// throw e1;
// }
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/MethodSwagger.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/MethodSwagger.java
index 37cd725..1ad9fee 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/MethodSwagger.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/MethodSwagger.java
@@ -301,7 +301,7 @@ public @interface MethodSwagger {
* <h5 class='section'>Notes:</h5>
* <ul class='spaced-list'>
* <li>
- * The format is a {@link JsonSerializer#DEFAULT_LAX Simple-JSON} object.
+ * The format is a {@link SimpleJsonSerializer#DEFAULT Simple-JSON} object.
* <br>Multiple lines are concatenated with newlines.
* <br>Comments and whitespace are ignored.
* <br>The leading and trailing <js>'{'</js>/<js>'}'</js> characters are optional.
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/ResourceDescription.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/ResourceDescription.java
index 9f4d850..65c8cef 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/ResourceDescription.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/helper/ResourceDescription.java
@@ -15,6 +15,7 @@ package org.apache.juneau.rest.helper;
import org.apache.juneau.annotation.*;
import org.apache.juneau.html.annotation.*;
import org.apache.juneau.http.annotation.*;
+import org.apache.juneau.jsonschema.annotation.*;
/**
* Shortcut label for child resources.
diff --git a/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/BasicRestInfoProviderTest.java b/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/BasicRestInfoProviderTest.java
index 23e0aa1..902992a 100644
--- a/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/BasicRestInfoProviderTest.java
+++ b/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/BasicRestInfoProviderTest.java
@@ -21,6 +21,7 @@ import java.io.*;
import java.util.*;
import org.apache.juneau.json.*;
+import org.apache.juneau.jsonschema.annotation.*;
import org.apache.juneau.xml.*;
import org.apache.juneau.*;
import org.apache.juneau.annotation.*;
diff --git a/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/annotation/BodyAnnotationTest.java b/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/annotation/BodyAnnotationTest.java
index 63d9d8e..387b2da 100644
--- a/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/annotation/BodyAnnotationTest.java
+++ b/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/annotation/BodyAnnotationTest.java
@@ -23,6 +23,7 @@ import org.apache.juneau.dto.swagger.*;
import org.apache.juneau.http.annotation.*;
import org.apache.juneau.internal.*;
import org.apache.juneau.json.*;
+import org.apache.juneau.jsonschema.annotation.*;
import org.apache.juneau.rest.mock.*;
import org.apache.juneau.rest.testutils.*;
import org.apache.juneau.rest.testutils.DTOs;
diff --git a/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/annotation/ResponseAnnotationTest.java b/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/annotation/ResponseAnnotationTest.java
index a2bf70f..0948e00 100644
--- a/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/annotation/ResponseAnnotationTest.java
+++ b/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/annotation/ResponseAnnotationTest.java
@@ -21,6 +21,7 @@ import org.apache.juneau.*;
import org.apache.juneau.dto.swagger.*;
import org.apache.juneau.http.annotation.*;
import org.apache.juneau.json.*;
+import org.apache.juneau.jsonschema.annotation.*;
import org.apache.juneau.oapi.*;
import org.apache.juneau.rest.mock.*;
import org.apache.juneau.utils.*;