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.*;