diff --git a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/Config.java b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/Config.java
index 00a736f..79a49ed 100644
--- a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/Config.java
+++ b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/Config.java
@@ -157,7 +157,7 @@
 	 * Configuration property:  Configuration name.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.config.Config#CONFIG_name CONFIG_name}
 	 * 	<li><b>Name:</b>  <js>"Config.name.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
@@ -182,7 +182,7 @@
 	 * Configuration property:  Configuration store.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.config.Config#CONFIG_store CONFIG_store}
 	 * 	<li><b>Name:</b>  <js>"Config.store.o"</js>
 	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.config.store.ConfigStore}
@@ -203,7 +203,7 @@
 	 * Configuration property:  POJO serializer.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.config.Config#CONFIG_serializer CONFIG_serializer}
 	 * 	<li><b>Name:</b>  <js>"Config.serializer.o"</js>
 	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.serializer.WriterSerializer}
@@ -225,7 +225,7 @@
 	 * Configuration property:  POJO parser.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.config.Config#CONFIG_parser CONFIG_parser}
 	 * 	<li><b>Name:</b>  <js>"Config.parser.o"</js>
 	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.parser.ReaderParser}
@@ -247,7 +247,7 @@
 	 * Configuration property:  Value encoder.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.config.Config#CONFIG_encoder CONFIG_encoder}
 	 * 	<li><b>Name:</b>  <js>"Config.encoder.o"</js>
 	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.config.encode.ConfigEncoder}
@@ -269,7 +269,7 @@
 	 * Configuration property:  SVL variable resolver.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.config.Config#CONFIG_varResolver CONFIG_varResolver}
 	 * 	<li><b>Name:</b>  <js>"Config.varResolver.o"</js>
 	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.svl.VarResolver}
@@ -291,7 +291,7 @@
 	 * Configuration property:  Binary value line length.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.config.Config#CONFIG_binaryLineLength CONFIG_binaryLineLength}
 	 * 	<li><b>Name:</b>  <js>"Config.binaryLineLength.i"</js>
 	 * 	<li><b>Data type:</b>  <jk>int</jk>
@@ -315,7 +315,7 @@
 	 * Configuration property:  Binary value format.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.config.Config#CONFIG_binaryFormat CONFIG_binaryFormat}
 	 * 	<li><b>Name:</b>  <js>"Config.binaryFormat.s"</js>
 	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.BinaryFormat}
@@ -346,7 +346,7 @@
 	 * Configuration property:  Multi-line values should always be on separate lines.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.config.Config#CONFIG_multiLineValuesOnSeparateLines CONFIG_multiLineValuesOnSeparateLines}
 	 * 	<li><b>Name:</b>  <js>"Config.multiLineValuesOnSeparateLines.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -369,7 +369,7 @@
 	 * Configuration property:  Read-only.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.config.Config#CONFIG_readOnly CONFIG_readOnly}
 	 * 	<li><b>Name:</b>  <js>"Config.readOnly.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -998,6 +998,7 @@
 	 * 	<jk>byte</jk>[] b = config.getObject(key, <jk>byte</jk>[].<jk>class</jk>);
 	 * </p>
 	 *
+	 * <p>
 	 * Byte arrays are stored as encoded strings, typically BASE64, but dependent on the {@link #CONFIG_binaryFormat} setting.
 	 *
 	 * @param key The key.
diff --git a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigFileStore.java b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigFileStore.java
index 222f357..ebd7277 100644
--- a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigFileStore.java
+++ b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigFileStore.java
@@ -46,7 +46,7 @@
 	 * Configuration property:  Local file system directory.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.config.store.ConfigFileStore#FILESTORE_directory FILESTORE_directory}
 	 * 	<li><b>Name:</b>  <js>"ConfigFileStore.directory.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
@@ -70,7 +70,7 @@
 	 * Configuration property:  Charset.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.config.store.ConfigFileStore#FILESTORE_charset FILESTORE_charset}
 	 * 	<li><b>Name:</b>  <js>"ConfigFileStore.charset.s"</js>
 	 * 	<li><b>Data type:</b>  {@link java.nio.charset.Charset}
@@ -94,7 +94,7 @@
 	 * Configuration property:  Use watcher.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.config.store.ConfigFileStore#FILESTORE_useWatcher FILESTORE_useWatcher}
 	 * 	<li><b>Name:</b>  <js>"ConfigFileStore.useWatcher.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -121,7 +121,7 @@
 	 * Configuration property:  Watcher sensitivity.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.config.store.ConfigFileStore#FILESTORE_watcherSensitivity FILESTORE_watcherSensitivity}
 	 * 	<li><b>Name:</b>  <js>"ConfigFileStore.watcherSensitivity.s"</js>
 	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.config.store.WatcherSensitivity}
@@ -149,7 +149,7 @@
 	 * Configuration property:  Update-on-write.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.config.store.ConfigFileStore#FILESTORE_updateOnWrite FILESTORE_updateOnWrite}
 	 * 	<li><b>Name:</b>  <js>"ConfigFileStore.updateOnWrite.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -176,7 +176,7 @@
 	 * Configuration property:  File extensions.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.config.store.ConfigFileStore#FILESTORE_extensions FILESTORE_extensions}
 	 * 	<li><b>Name:</b>  <js>"ConfigFileStore.extensions.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c> (comma-delimited)
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/jsonschema/JsonType.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/jsonschema/JsonType.java
index b2120cf..3d0a356 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/jsonschema/JsonType.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/jsonschema/JsonType.java
@@ -22,8 +22,8 @@
  *
  * <h5 class='section'>Example:</h5>
  * <p class='bcode w800'>
- * 	// Produces 'number', not 'NUMBER'.
- * 	String json = JsonSerializer.DEFAULT.serialize(JsonType.NUMBER);
+ * 	<jc>// Produces 'number', not 'NUMBER'.</jc>
+ * 	String json = JsonSerializer.<jsf>DEFAULT</jsf>.serialize(JsonType.<jsf>NUMBER</jsf>);
  * </p>
  *
  * <ul class='seealso'>
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/HeaderInfo.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/HeaderInfo.java
index 7204b02..77d122e 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/HeaderInfo.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/HeaderInfo.java
@@ -317,8 +317,8 @@
 	 * 	<ul>
 	 * 		<li>{@link Items}
 	 * 		<li><c>String</c> - JSON object representation of {@link Items}
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	items(<js>"{type:'type',format:'format',...}"</js>);
 	 * 			</p>
 	 * 	</ul>
@@ -927,13 +927,13 @@
 	 * 		<li><c>Object</c>
 	 * 		<li><c>Collection&lt;Object&gt;</c>
 	 * 		<li><c>String</c> - JSON array representation of <c>Collection&lt;Object&gt;</c>.
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	_enum(<js>"['foo','bar']"</js>);
 	 * 			</p>
 	 * 		<li><c>String</c> - Individual values.
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	_enum(<js>"foo"</js>, <js>"bar"</js>);
 	 * 			</p>
 	 * 	</ul>
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Info.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Info.java
index 79e0881..21039df 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Info.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Info.java
@@ -273,8 +273,8 @@
 	 * 	<ul>
 	 * 		<li>{@link Contact}
 	 * 		<li><c>String</c> - JSON object representation of {@link Contact}
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	contact(<js>"{name:'name',url:'url',...}"</js>);
 	 * 			</p>
 	 * 	</ul>
@@ -322,8 +322,8 @@
 	 * 	<ul>
 	 * 		<li>{@link License}
 	 * 		<li><c>String</c> - JSON object representation of {@link License}
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	license(<js>"{name:'name',url:'url',...}"</js>);
 	 * 			</p>
 	 * 	</ul>
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Items.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Items.java
index 391a294..b233e9e 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Items.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Items.java
@@ -285,8 +285,8 @@
 	 * 	<ul>
 	 * 		<li>{@link Items}
 	 * 		<li><c>String</c> - JSON object representation of {@link Items}
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	items(<js>"{type:'type',format:'format',...}"</js>);
 	 * 			</p>
 	 * 	</ul>
@@ -905,13 +905,13 @@
 	 * 		<li><c>Object</c>
 	 * 		<li><c>Collection&lt;Object&gt;</c>
 	 * 		<li><c>String</c> - JSON array representation of <c>Collection&lt;Object&gt;</c>
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	_enum(<js>"['foo','bar']"</js>);
 	 * 			</p>
 	 * 		<li><c>String</c> - Individual values
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	_enum(<js>"foo"</js>, <js>"bar"</js>);
 	 * 			</p>
 	 * 	</ul>
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Operation.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Operation.java
index 71f4e33..1f787d9 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Operation.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Operation.java
@@ -264,13 +264,13 @@
 	 * 	<ul>
 	 * 		<li><c>Collection&lt;String&gt;</c>
 	 * 		<li><c>String</c> - JSON array representation of <c>Collection&lt;String&gt;</c>
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	tags(<js>"['foo','bar']"</js>);
 	 * 			</p>
 	 * 		<li><c>String</c> - Individual values
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	tags(<js>"foo"</js>, <js>"bar"</js>);
 	 * 			</p>
 	 * 	</ul>
@@ -402,8 +402,8 @@
 	 * 	<ul>
 	 * 		<li>{@link ExternalDocumentation}
 	 * 		<li><c>String</c> - JSON object representation of {@link ExternalDocumentation}
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	externalDocs(<js>"{description:'description',url:'url'}"</js>);
 	 * 			</p>
 	 * 	</ul>
@@ -530,13 +530,13 @@
 	 * 		<li><c>Collection&lt;{@link MediaType}|String&gt;</c>
 	 * 		<li><c>{@link MediaType}[]</c>
 	 * 		<li><c>String</c> - JSON array representation of <c>Collection&lt;{@link MediaType}&gt;</c>
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	consumes(<js>"['text/json']"</js>);
 	 * 			</p>
 	 * 		<li><c>String</c> - Individual values
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	consumes(<js>"text/json"</js>);
 	 * 			</p>
 	 * 	</ul>
@@ -616,13 +616,13 @@
 	 * 		<li><c>Collection&lt;{@link MediaType}|String&gt;</c>
 	 * 		<li><c>{@link MediaType}[]</c>
 	 * 		<li><c>String</c> - JSON array representation of <c>Collection&lt;{@link MediaType}&gt;</c>
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	produces(<js>"['text/json']"</js>);
 	 * 			</p>
 	 * 		<li><c>String</c> - Individual values
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	produces(<js>"text/json"</js>);
 	 * 			</p>
 	 * 	</ul>
@@ -749,13 +749,13 @@
 	 * 		<li>{@link ParameterInfo}
 	 * 		<li><c>Collection&lt;{@link ParameterInfo}|String&gt;</c>
 	 * 		<li><c>String</c> - JSON array representation of <c>Collection&lt;{@link ParameterInfo}&gt;</c>
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	parameters(<js>"[{path:'path',id:'id'}]"</js>);
 	 * 			</p>
 	 * 		<li><c>String</c> - JSON object representation of {@link ParameterInfo}
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	parameters(<js>"{path:'path',id:'id'}"</js>);
 	 * 			</p>
 	 * 	</ul>
@@ -844,8 +844,8 @@
 	 * 	<ul>
 	 * 		<li><c>Map&lt;Integer,{@link ResponseInfo}|String&gt;</c>
 	 * 		<li><c>String</c> - JSON object representation of <c>Map&lt;Integer,{@link ResponseInfo}&gt;</c>
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	responses(<js>"{'404':{description:'description',...}}"</js>);
 	 * 			</p>
 	 * 	</ul>
@@ -919,13 +919,13 @@
 	 * 	<ul>
 	 * 		<li><c>Collection&lt;String&gt;</c>
 	 * 		<li><c>String</c> - JSON array representation of <c>Collection&lt;String&gt;</c>
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	schemes(<js>"['scheme1','scheme2']"</js>);
 	 * 			</p>
 	 * 		<li><c>String</c> - Individual values
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	schemes(<js>"scheme1</js>, <js>"scheme2"</js>);
 	 * 			</p>
 	 * 	</ul>
@@ -1076,8 +1076,8 @@
 	 * 	<ul>
 	 * 		<li><c>Map&lt;String,List&lt;String&gt;&gt;</c>
 	 * 		<li><c>String</c> - JSON object representation of a <c>Map&lt;String,List&lt;String&gt;&gt;</c>
-	 * 		<h5 class='figure'>Example:</h5>
-	 * 		<p class='bcode w800'>
+	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	securities(<js>"{key:['val1','val2']}"</js>);
 	 * 		</p>
 	 * 	</ul>
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ParameterInfo.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ParameterInfo.java
index 3c549ff..fdf2f67 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ParameterInfo.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ParameterInfo.java
@@ -514,8 +514,8 @@
 	 * 	<ul>
 	 * 		<li>{@link SchemaInfo}
 	 * 		<li><c>String</c> - JSON object representation of {@link SchemaInfo}
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	schema(<js>"{type:'type',description:'description',...}"</js>);
 	 * 			</p>
 	 * 	</ul>
@@ -735,8 +735,8 @@
 	 * 	<ul>
 	 * 		<li>{@link Items}
 	 * 		<li><c>String</c> - JSON object representation of {@link Items}
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	items(<js>"{type:'type',format:'format',...}"</js>);
 	 * 			</p>
 	 * 	</ul>
@@ -1330,13 +1330,13 @@
 	 * 		<li><c>Object</c>
 	 * 		<li><c>Collection&lt;Object&gt;</c>
 	 * 		<li><c>String</c> - JSON array representation of <c>Collection&lt;Object&gt;</c>
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	_enum(<js>"['foo','bar']"</js>);
 	 * 			</p>
 	 * 		<li><c>String</c> - Individual values
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	_enum(<js>"foo"</js>, <js>"bar"</js>);
 	 * 			</p>
 	 * 	</ul>
@@ -1484,8 +1484,8 @@
 	 * 	<ul>
 	 * 		<li><c>Map&lt;String,String&gt;</c>
 	 * 		<li><c>String</c> - JSON object representation of <c>Map&lt;String,Object&gt;</c>
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	examples(<js>"{'text/json':'{foo:\\'bar\\'}'}"</js>);
 	 * 			</p>
 	 * 	</ul>
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ResponseInfo.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ResponseInfo.java
index 4d32b0b..ee8b98b 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ResponseInfo.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ResponseInfo.java
@@ -33,7 +33,7 @@
  * 			<jsm>schemaInfo</jsm>
  * 				.type(<js>"array"</js>)
  * 				.items(
- * 					<jsm>items<jsm>()
+ * 					<jsm>items</jsm>()
  * 						.set(<js>"$ref"</js>, <js>"#/definitions/VeryComplexType"</js>)
  * 				)
  * 		);
@@ -235,8 +235,8 @@
 	 * 	<ul>
 	 * 		<li>{@link SchemaInfo}
 	 * 		<li><c>String</c> - JSON object representation of {@link SchemaInfo}
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	schema(<js>"{type:'type',description:'description',...}"</js>);
 	 * 			</p>
 	 * 	</ul>
@@ -309,8 +309,8 @@
 	 * 	<ul>
 	 * 		<li><c>Map&lt;String,{@link HeaderInfo}|String&gt;</c>
 	 * 		<li><c>String</c> - JSON object representation of <c>Map&lt;String,{@link HeaderInfo}&gt;</c>
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	headers(<js>"{headerName:{description:'description',...}}"</js>);
 	 * 			</p>
 	 * 	</ul>
@@ -430,8 +430,8 @@
 	 * 	<ul>
 	 * 		<li><c>Map&lt;String,Object&gt;</c>
 	 * 		<li><c>String</c> - JSON object representation of <c>Map&lt;String,Object&gt;</c>
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	examples(<js>"{'text/json':{foo:'bar'}}"</js>);
 	 * 			</p>
 	 * 	</ul>
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SchemaInfo.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SchemaInfo.java
index 4fd8e6a..9c4048f 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SchemaInfo.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SchemaInfo.java
@@ -38,8 +38,8 @@
  * <p class='bcode w800'>
  * 	<jc>// Construct using SwaggerBuilder.</jc>
  * 	SchemaInfo x = <jsm>schemaInfo</jsm>()
- * 		.type("string")
- * 		.title("foo")
+ * 		.type(<js>"string"</js>)
+ * 		.title(<js>"foo"</js>)
  *
  * 	<jc>// Serialize using JsonSerializer.</jc>
  * 	String json = JsonSerializer.<jsf>DEFAULT</jsf>.toString(x);
@@ -843,13 +843,13 @@
 	 * 	<ul>
 	 * 		<li><c>Collection&lt;String&gt;</c>
 	 * 		<li><c>String</c> - JSON array representation of <c>Collection&lt;String&gt;</c>
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	schemes(<js>"['scheme1','scheme2']"</js>);
 	 * 			</p>
 	 * 		<li><c>String</c> - Individual values
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	schemes(<js>"scheme1</js>, <js>"scheme2"</js>);
 	 * 			</p>
 	 * 	</ul>
@@ -909,13 +909,13 @@
 	 * 		<li><c>Object</c>
 	 * 		<li><c>Collection&lt;Object&gt;</c>
 	 * 		<li><c>String</c> - JSON array representation of <c>Collection&lt;Object&gt;</c>
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	_enum(<js>"['foo','bar']"</js>);
 	 * 			</p>
 	 * 		<li><c>String</c> - Individual values
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	_enum(<js>"foo"</js>, <js>"bar"</js>);
 	 * 			</p>
 	 * 	</ul>
@@ -1007,8 +1007,8 @@
 	 * 	<ul>
 	 * 		<li>{@link Items}
 	 * 		<li><c>String</c> - JSON object representation of {@link Items}
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	items(<js>"{type:'type',format:'format',...}"</js>);
 	 * 			</p>
 	 * 	</ul>
@@ -1064,13 +1064,13 @@
 	 * 		<li><c>Object</c>
 	 * 		<li><c>Collection&lt;Object&gt;</c>
 	 * 		<li><c>String</c> - JSON array representation of <c>Collection&lt;Object&gt;</c>
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	allOf(<js>"['foo','bar']"</js>);
 	 * 			</p>
 	 * 		<li><c>String</c> - Individual values
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	allOf(<js>"foo"</js>, <js>"bar"</js>);
 	 * 			</p>
 	 * 	</ul>
@@ -1126,8 +1126,8 @@
 	 * 	<ul>
 	 * 		<li><c>Map&lt;String,Map&lt;String,Object&gt;&gt;</c>
 	 * 		<li><c>String</c> - JSON object representation of <c>Map&lt;String,Map&lt;String,Object&gt;&gt;</c>
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	properties(<js>"{name:{foo:'bar'}}"</js>);
 	 * 			</p>
 	 * 	</ul>
@@ -1275,8 +1275,8 @@
 	 * 	<ul>
 	 * 		<li>{@link Xml}
 	 * 		<li><c>String</c> - JSON object representation of {@link Xml}
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	xml(<js>"{name:'name',namespace:'namespace',...}"</js>);
 	 * 			</p>
 	 * 	</ul>
@@ -1318,8 +1318,8 @@
 	 * 	<ul>
 	 * 		<li>{@link ExternalDocumentation}
 	 * 		<li><c>String</c> - JSON object representation of {@link ExternalDocumentation}
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	externalDocs(<js>"{description:'description',url:'url'}"</js>);
 	 * 			</p>
 	 * 	</ul>
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SecurityScheme.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SecurityScheme.java
index 1138ea3..9a952ca 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SecurityScheme.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SecurityScheme.java
@@ -501,8 +501,8 @@
 	 * 	<ul>
 	 * 		<li><c>Map&lt;String,{@link HeaderInfo}|String&gt;</c>
 	 * 		<li><c>String</c> - JSON object representation of <c>Map&lt;String,{@link HeaderInfo}&gt;</c>
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	scopes(<js>"{name:'value'}"</js>);
 	 * 			</p>
 	 * 	</ul>
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Swagger.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Swagger.java
index 6d6b0be..fd78bbe 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Swagger.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Swagger.java
@@ -250,8 +250,8 @@
 	 * 	<ul>
 	 * 		<li>{@link Info}
 	 * 		<li><c>String</c> - JSON object representation of {@link Info}
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	info(<js>"{title:'title',description:'description',...}"</js>);
 	 * 			</p>
 	 * 	</ul>
@@ -438,13 +438,13 @@
 	 * 	<ul>
 	 * 		<li><c>Collection&lt;String&gt;</c>
 	 * 		<li><c>String</c> - JSON array representation of <c>Collection&lt;String&gt;</c>
-	 * 		<h5 class='figure'>Example:</h5>
-	 * 		<p class='bcode w800'>
+	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	schemes(<js>"['scheme1','scheme2']"</js>);
 	 * 		</p>
 	 * 		<li><c>String</c> - Individual values
-	 * 		<h5 class='figure'>Example:</h5>
-	 * 		<p class='bcode w800'>
+	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	schemes(<js>"scheme1"</js>, <js>"scheme2"</js>);
 	 * 		</p>
 	 * 	</ul>
@@ -520,13 +520,13 @@
 	 * 		<li>{@link MediaType}
 	 * 		<li><c>Collection&lt;{@link MediaType}|String&gt;</c>
 	 * 		<li><c>String</c> - JSON array representation of <c>Collection&lt;{@link MediaType}&gt;</c>
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	consumes(<js>"['text/json']"</js>);
 	 * 			</p>
 	 * 		<li><c>String</c> - Individual values
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	consumes(<js>"text/json"</js>);
 	 * 			</p>
 	 * 	</ul>
@@ -603,13 +603,13 @@
 	 * 		<li>{@link MediaType}
 	 * 		<li><c>Collection&lt;{@link MediaType}|String&gt;</c>
 	 * 		<li><c>String</c> - JSON array representation of <c>Collection&lt;{@link MediaType}&gt;</c>
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	consumes(<js>"['text/json']"</js>);
 	 * 			</p>
 	 * 		<li><c>String</c> - Individual values
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	consumes(<js>"text/json"</js>);
 	 * 			</p>
 	 * 	</ul>
@@ -739,8 +739,8 @@
 	 * 	<ul>
 	 * 		<li><c>Map&lt;String,Map&lt;String,{@link Operation}&gt;|String&gt;</c>
 	 * 		<li><c>String</c> - JSON object representation of <c>Map&lt;String,Map&lt;String,{@link Operation}&gt;&gt;</c>
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	paths(<js>"{'foo':{'get':{operationId:'operationId',...}}}"</js>);
 	 * 			</p>
 	 * 	</ul>
@@ -820,8 +820,8 @@
 	 * 	<ul>
 	 * 		<li><c>Map&lt;String,Map&lt;String,{@link SchemaInfo}&gt;|String&gt;</c>
 	 * 		<li><c>String</c> - JSON object representation of <c>Map&lt;String,Map&lt;String,{@link SchemaInfo}&gt;&gt;</c>
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	definitions(<js>"{'foo':{'bar':{format:'format',...}}}"</js>);
 	 * 			</p>
 	 * 	</ul>
@@ -916,8 +916,8 @@
 	 * 	<ul>
 	 * 		<li><c>Map&lt;String,{@link ParameterInfo}|String&gt;</c>
 	 * 		<li><c>String</c> - JSON object representation of <c>Map&lt;String,{@link ParameterInfo}&gt;</c>
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	parameters(<js>"{'foo':{name:'name',...}}"</js>);
 	 * 			</p>
 	 * 	</ul>
@@ -1023,8 +1023,8 @@
 	 * 	<ul>
 	 * 		<li><c>Map&lt;String,{@link ResponseInfo}|String&gt;</c>
 	 * 		<li><c>String</c> - JSON object representation of <c>Map&lt;String,{@link ResponseInfo}&gt;</c>
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	responses(<js>"{'foo':{description:'description',...}}"</js>);
 	 * 			</p>
 	 * 	</ul>
@@ -1101,8 +1101,8 @@
 	 * 	<ul>
 	 * 		<li><c>Map&lt;String,{@link SecurityScheme}|String&gt;</c>
 	 * 		<li><c>String</c> - JSON object representation of <c>Map&lt;String,{@link SecurityScheme}&gt;</c>
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	securityDefinitions(<js>"{'foo':{name:'name',...}}"</js>);
 	 * 			</p>
 	 * 	</ul>
@@ -1197,13 +1197,13 @@
 	 * 	<ul>
 	 * 		<li><c>Collection&lt;Map&lt;String,List&lt;String&gt;&gt;&gt;</c>
 	 * 		<li><c>String</c> - JSON array representation of <c>Collection&lt;Map&lt;String,List&lt;String&gt;&gt;&gt;</c>
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	securities(<js>"[{...}]"</js>);
 	 * 			</p>
 	 * 		<li><c>String</c> - JSON object representation of <c>Map&lt;String,List&lt;String&gt;&gt;</c>
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	securities(<js>"{...}"</js>);
 	 * 			</p>
 	 * 	</ul>
@@ -1280,13 +1280,13 @@
 	 * 		<li><c>Collection&lt;{@link Tag}|String&gt;</c>
 	 * 		<li><c>{@link Tag}[]</c>
 	 * 		<li><c>String</c> - JSON array representation of <c>Collection&lt;{@link Tag}&gt;</c>
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	tags(<js>"[{name:'name',description:'description',...}]"</js>);
 	 * 			</p>
 	 * 		<li><c>String</c> - JSON object representation of <c>{@link Tag}</c>
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	tags(<js>"{name:'name',description:'description',...}"</js>);
 	 * 			</p>
 	 * 	</ul>
@@ -1344,8 +1344,8 @@
 	 * 	<ul>
 	 * 		<li>{@link ExternalDocumentation}
 	 * 		<li><c>String</c> - JSON object representation of {@link ExternalDocumentation}
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	externalDocs(<js>"{description:'description',url:'url'}"</js>);
 	 * 			</p>
 	 * 	</ul>
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Tag.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Tag.java
index 2cdcb9d..f03581b 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Tag.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Tag.java
@@ -207,8 +207,8 @@
 	 * 	<ul>
 	 * 		<li>{@link ExternalDocumentation}
 	 * 		<li><c>String</c> - JSON object representation of {@link ExternalDocumentation}
-	 * 			<h5 class='figure'>Example:</h5>
 	 * 			<p class='bcode w800'>
+	 * 	<jc>// Example </jc>
 	 * 	externalDocs(<js>"{description:'description',url:'url'}"</js>);
 	 * 			</p>
 	 * 	</ul>
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ui/SwaggerUI.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ui/SwaggerUI.java
index d57ee42..bdd9c14 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ui/SwaggerUI.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ui/SwaggerUI.java
@@ -40,7 +40,7 @@
 	 * Configuration property:  Resolve <c>$ref</c> references in schema up to the specified depth.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.dto.swagger.ui.SwaggerUI#SWAGGERUI_resolveRefsMaxDepth SWAGGERUI_resolveRefsMaxDepth}
 	 * 	<li><b>Name:</b>  <js>"SwaggerUI.resolveRefsMaxDepth.i"</js>
 	 * 	<li><b>Data type:</b>  <jk>int</jk>
@@ -58,7 +58,7 @@
 	 *
 	 * <h5 class='section'>Example:</h5>
 	 * <p class='bcode w800'>
-	 * 	<jc>// Resolve schema references up to 5 levels deep.
+	 * 	<jc>// Resolve schema references up to 5 levels deep.</jc>
 	 * 	<ja>@Rest</ja>(
 	 * 			properties={
 	 * 				<ja>@Property</ja>(name=<jsf>SWAGGERUI_resolveRefsMaxDepth</jsf>, value=<js>"5"</js>)
diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfCommon.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfCommon.java
index e45d582..5d7212d 100644
--- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfCommon.java
+++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfCommon.java
@@ -45,7 +45,7 @@
 	 * Configuration property:  RDF language.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_language RDF_language}
 	 * 	<li><b>Name:</b>  <js>"RdfCommon.language.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
@@ -111,7 +111,7 @@
 	 * Configuration property:  XML namespace for Juneau properties.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_juneauNs RDF_juneauNs}
 	 * 	<li><b>Name:</b>  <js>"RdfCommon.juneauNs.s"</js>
 	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.xml.Namespace}
@@ -135,7 +135,7 @@
 	 * Configuration property:  Default XML namespace for bean properties.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_juneauBpNs RDF_juneauBpNs}
 	 * 	<li><b>Name:</b>  <js>"RdfCommon.juneauBpNs.s"</js>
 	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.xml.Namespace}
@@ -159,7 +159,7 @@
 	 * Configuration property:  RDF/XML property: <c>iri_rules</c>.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_arp_iriRules RDF_arp_iriRules}
 	 * 	<li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.iri-rules.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
@@ -197,7 +197,7 @@
 	 * Configuration property:  RDF/XML ARP property: <c>error-mode</c>.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_arp_errorMode RDF_arp_errorMode}
 	 * 	<li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.error-mode.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
@@ -243,7 +243,7 @@
 	 * Configuration property:  RDF/XML ARP property: <c>embedding</c>.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_arp_embedding RDF_arp_embedding}
 	 * 	<li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.embedding.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -271,7 +271,7 @@
 	 * Configuration property:  RDF/XML ARP property: <c>ERR_xxx</c>.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_arp_err_ RDF_arp_err_}
 	 * 	<li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.ERR_"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
@@ -305,7 +305,7 @@
 	 * Configuration property:  RDF/XML ARP property: <c>WARN_xxx</c>.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_arp_warn_ RDF_arp_warn_}
 	 * 	<li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.WARN_"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
@@ -323,7 +323,7 @@
 	 * RDF/XML ARP property: <c>IGN_xxx</c>.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_arp_ign_ RDF_arp_ign_}
 	 * 	<li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.IGN_"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
@@ -341,7 +341,7 @@
 	 * Configuration property:  RDF/XML property: <c>xmlbase</c>.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_xmlBase RDF_rdfxml_xmlBase}
 	 * 	<li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.xmlbase.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
@@ -364,7 +364,7 @@
 	 * Configuration property:  RDF/XML property: <c>longId</c>.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_longId RDF_rdfxml_longId}
 	 * 	<li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.longId.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -388,7 +388,7 @@
 	 * Configuration property:  RDF/XML property: <c>allowBadURIs</c>.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_allowBadUris RDF_rdfxml_allowBadUris}
 	 * 	<li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.allowBadURIs.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -411,7 +411,7 @@
 	 * Configuration property:  RDF/XML property: <c>relativeURIs</c>.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_relativeUris RDF_rdfxml_relativeUris}
 	 * 	<li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.relativeURIs.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
@@ -456,7 +456,7 @@
 	 * Configuration property:  RDF/XML property: <c>showXmlDeclaration</c>.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_showXmlDeclaration RDF_rdfxml_showXmlDeclaration}
 	 * 	<li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.showXmlDeclaration.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
@@ -489,7 +489,7 @@
 	 * Configuration property:  RDF/XML property: <c>showDoctypeDeclaration</c>.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_showDoctypeDeclaration RDF_rdfxml_showDoctypeDeclaration}
 	 * 	<li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.showDoctypeDeclaration.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -515,7 +515,7 @@
 	 * Configuration property:  RDF/XML property: <c>tab</c>.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_tab RDF_rdfxml_tab}
 	 * 	<li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.tab.i"</js>
 	 * 	<li><b>Data type:</b>  <jk>int</jk>
@@ -538,7 +538,7 @@
 	 * Configuration property:  RDF/XML property: <c>attributeQuoteChar</c>.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_attributeQuoteChar RDF_rdfxml_attributeQuoteChar}
 	 * 	<li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.attributeQuoteChar.s"</js>
 	 * 	<li><b>Data type:</b>  <c>Character</c>
@@ -561,7 +561,7 @@
 	 * Configuration property:  RDF/XML property: <c>blockRules</c>.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_blockRules RDF_rdfxml_blockRules}
 	 * 	<li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.blockRules.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
@@ -586,7 +586,7 @@
 	 * Configuration property:  N3/Turtle property: <c>minGap</c>.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_n3_minGap RDF_n3_minGap}
 	 * 	<li><b>Name:</b>  <js>"RdfCommon.jena.n3.minGap.i"</js>
 	 * 	<li><b>Data type:</b>  <jk>int</jk>
@@ -609,7 +609,7 @@
 	 * Configuration property:  N3/Turtle property: <c>objectLists</c>.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_n3_objectLists RDF_n3_objectLists}
 	 * 	<li><b>Name:</b>  <js>"RdfCommon.jena.n3.objectLists.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -632,7 +632,7 @@
 	 * Configuration property:  N3/Turtle property: <c>subjectColumn</c>.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_n3_subjectColumn RDF_n3_subjectColumn}
 	 * 	<li><b>Name:</b>  <js>"RdfCommon.jena.n3.subjectColumn.i"</js>
 	 * 	<li><b>Data type:</b>  <jk>int</jk>
@@ -655,7 +655,7 @@
 	 * Configuration property:  N3/Turtle property: <c>propertyColumn</c>.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_n3_propertyColumn RDF_n3_propertyColumn}
 	 * 	<li><b>Name:</b>  <js>"RdfCommon.jena.n3.propertyColumn.i"</js>
 	 * 	<li><b>Data type:</b>  <jk>int</jk>
@@ -678,7 +678,7 @@
 	 * Configuration property:  N3/Turtle property: <c>indentProperty</c>.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_n3_indentProperty RDF_n3_indentProperty}
 	 * 	<li><b>Name:</b>  <js>"RdfCommon.jena.n3.indentProperty.i"</js>
 	 * 	<li><b>Data type:</b>  <jk>int</jk>
@@ -701,7 +701,7 @@
 	 * Configuration property:  N3/Turtle property: <c>widePropertyLen</c>.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_n3_widePropertyLen RDF_n3_widePropertyLen}
 	 * 	<li><b>Name:</b>  <js>"RdfCommon.jena.n3.widePropertyLen.i"</js>
 	 * 	<li><b>Data type:</b>  <jk>int</jk>
@@ -725,7 +725,7 @@
 	 * Configuration property:  N3/Turtle property: <c>abbrevBaseURI</c>.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_n3_abbrevBaseUri RDF_n3_abbrevBaseUri}
 	 * 	<li><b>Name:</b>  <js>"RdfCommon.jena.n3.abbrevBaseURI.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -748,7 +748,7 @@
 	 * Configuration property:  N3/Turtle property: <c>usePropertySymbols</c>.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_n3_usePropertySymbols RDF_n3_usePropertySymbols}
 	 * 	<li><b>Name:</b>  <js>"RdfCommon.jena.n3.usePropertySymbols.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -771,7 +771,7 @@
 	 * Configuration property:  N3/Turtle property: <c>useTripleQuotedStrings</c>.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_n3_useTripleQuotedStrings RDF_n3_useTripleQuotedStrings}
 	 * 	<li><b>Name:</b>  <js>"RdfCommon.jena.n3.useTripleQuotedStrings.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -794,7 +794,7 @@
 	 * Configuration property:  N3/Turtle property: <c>useDoubles</c>.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_n3_useDoubles RDF_n3_useDoubles}
 	 * 	<li><b>Name:</b>  <js>"RdfCommon.jena.n3.useDoubles.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -817,7 +817,7 @@
 	 * Configuration property:  RDF format for representing collections and arrays.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_collectionFormat RDF_collectionFormat}
 	 * 	<li><b>Name:</b>  <js>"RdfCommon.collectionFormat.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
@@ -863,7 +863,7 @@
 	 * Configuration property:  Collections should be serialized and parsed as loose collections.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_looseCollections RDF_looseCollections}
 	 * 	<li><b>Name:</b>  <js>"RdfCommon.looseCollections.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java
index abd5e7e..538735f 100644
--- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java
+++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java
@@ -60,7 +60,7 @@
 	 * Configuration property:  Trim whitespace from text elements.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfParser#RDF_trimWhitespace RDF_trimWhitespace}
 	 * 	<li><b>Name:</b>  <js>"RdfParser.trimWhitespace.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
index 813d481..45d98c1 100644
--- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
+++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
@@ -59,7 +59,7 @@
 	 * Configuration property:  Add <js>"_type"</js> properties when needed.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfSerializer#RDF_addBeanTypes RDF_addBeanTypes}
 	 * 	<li><b>Name:</b>  <js>"RdfSerializer.addBeanTypes.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -92,7 +92,7 @@
 	 * Configuration property:  Add XSI data types to non-<c>String</c> literals.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfSerializer#RDF_addLiteralTypes RDF_addLiteralTypes}
 	 * 	<li><b>Name:</b>  <js>"RdfSerializer.addLiteralTypes.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -117,7 +117,7 @@
 	 * Configuration property:  Add RDF root identifier property to root node.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfSerializer#RDF_addRootProperty RDF_addRootProperty}
 	 * 	<li><b>Name:</b>  <js>"RdfSerializer.addRootProperty.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -152,7 +152,7 @@
 	 * Configuration property:  Auto-detect namespace usage.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfSerializer#RDF_autoDetectNamespaces RDF_autoDetectNamespaces}
 	 * 	<li><b>Name:</b>  <js>"RdfSerializer.autoDetectNamespaces.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -184,7 +184,7 @@
 	 * Configuration property:  Default namespaces.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfSerializer#RDF_namespaces RDF_namespaces}
 	 * 	<li><b>Name:</b>  <js>"RdfSerializer.namespaces.ls"</js>
 	 * 	<li><b>Data type:</b>  <c>List&lt;{@link org.apache.juneau.xml.Namespace}&gt;</c>
@@ -213,7 +213,7 @@
 	 * Configuration property:  Reuse XML namespaces when RDF namespaces not specified.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jena.RdfSerializer#RDF_useXmlNamespaces RDF_useXmlNamespaces}
 	 * 	<li><b>Name:</b>  <js>"Rdf.useXmlNamespaces.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/annotation/Rdf.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/annotation/Rdf.java
index 0c6aa9a..e4141dc 100644
--- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/annotation/Rdf.java
+++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/annotation/Rdf.java
@@ -73,9 +73,8 @@
 	 * Used in conjunction with the {@link RdfConfig#applyRdf()}.
 	 * It is ignored when the annotation is applied directly to classes/methods/fields.
 	 *
-	 * <p>
-	 * The valid pattern matches are:
-	 * <ul>
+	 * <h5 class='section'>Valid patterns:</h5>
+	 * <ul class='spaced-list'>
 	 *  <li>Classes:
 	 * 		<ul>
 	 * 			<li>Fully qualified:
diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/annotation/RdfConfig.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/annotation/RdfConfig.java
index 16aed62..2e59938 100644
--- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/annotation/RdfConfig.java
+++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/annotation/RdfConfig.java
@@ -99,8 +99,6 @@
 	 *		 </ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Rdf.language.s"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -115,8 +113,6 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Rdf.juneauNs.s"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -131,8 +127,6 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Rdf.juneauBpNs.s"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -164,8 +158,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Rdf.jena.rdfXml.iri-rules.s"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -194,8 +186,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Rdf.jena.rdfXml.error-mode.s"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -221,8 +211,6 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Rdf.jena.rdfXml.embedding.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -242,8 +230,6 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Rdf.jena.rdfXml.xmlbase.s"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -262,8 +248,6 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Rdf.jena.rdfXml.longId.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -281,8 +265,6 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Rdf.jena.rdfXml.allowBadURIs.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -322,8 +304,6 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Rdf.jena.rdfXml.relativeURIs.s"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -350,8 +330,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Rdf.jena.rdfXml.showXmlDeclaration.s"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -372,8 +350,6 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Rdf.jena.rdfXml.showDoctypeDeclaration"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -391,8 +367,6 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Rdf.jena.rdfXml.tab.i"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -410,8 +384,6 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Rdf.jena.rdfXml.attributeQuoteChar.s"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -431,8 +403,6 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Rdf.jena.rdfXml.blockRules.s"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -450,8 +420,6 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Rdf.jena.n3.minGap.i"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -469,8 +437,6 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Rdf.jena.n3.objectLists.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -488,8 +454,6 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Rdf.jena.n3.subjectColumn.i"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -507,8 +471,6 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Rdf.jena.n3.propertyColumn.i"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -526,8 +488,6 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Rdf.jena.n3.indentProperty.i"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -546,8 +506,6 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Rdf.jena.n3.widePropertyLen.i"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -565,8 +523,6 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Rdf.jena.n3.abbrevBaseURI.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -584,8 +540,6 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Rdf.jena.n3.usePropertySymbols.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -603,8 +557,6 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Rdf.jena.n3.useTripleQuotedStrings.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -622,8 +574,6 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Rdf.jena.n3.useDoubles.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -655,8 +605,6 @@
 	 * 		lost.
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Rdf.collectionFormat.s"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -684,8 +632,6 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Rdf.looseCollections.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -707,8 +653,6 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"RdfParser.trimWhitespace.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -734,8 +678,6 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"RdfSerializer.addBeanTypes.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -750,8 +692,6 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"RdfSerializer.addLiteralTypes.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -775,8 +715,6 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"RdfSerializer.addRootProperty.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -798,8 +736,6 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"RdfSerializer.autoDetectNamespaces.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -817,8 +753,6 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"RdfSerializer.namespaces.ls"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -843,8 +777,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Rdf.useXmlNamespaces.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
index 288dd03..9512b49 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
@@ -155,7 +155,7 @@
 	 * Configuration property:  Annotations.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_annotations BEAN_annotations}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.annotations.lo"</js>
 	 * 	<li><b>Data type:</b>  <c>List&lt;{@link java.lang.annotation.Annotation}&gt;</c>
@@ -187,7 +187,7 @@
 	 * The following example shows the equivalent methods for applying the {@link Bean @Bean} annotation:
 	 * <p class='bpcode w800'>
 	 * 	<jc>// Class with explicit annotation.</jc>
-	 * 	<ja>@Bean</ja>(bpi=<jk>"street,city,state"</js>)
+	 * 	<ja>@Bean</ja>(bpi=<js>"street,city,state"</js>)
 	 * 	<jk>public class</jk> A {...}
 	 *
 	 * 	<jc>// Class with annotation applied via @BeanConfig</jc>
@@ -197,7 +197,7 @@
 	 * 	<ja>@RestMethod</ja>(...)
 	 * 	<ja>@BeanConfig</ja>(
 	 * 		annotations={
-	 * 			<ja>@Bean</ja>(on=<js>"B"</js>, bpi=<jk>"street,city,state"</js>)
+	 * 			<ja>@Bean</ja>(on=<js>"B"</js>, bpi=<js>"street,city,state"</js>)
 	 * 		}
 	 * 	)
 	 * 	<jk>public void</jk> doFoo() {...}
@@ -209,7 +209,7 @@
 	 * Configuration property:  Minimum bean class visibility.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_beanClassVisibility BEAN_beanClassVisibility}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.beanClassVisibility.s"</js>
 	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.Visibility}
@@ -257,7 +257,7 @@
 	 * Configuration property:  Minimum bean constructor visibility.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_beanConstructorVisibility BEAN_beanConstructorVisibility}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.beanConstructorVisibility.s"</js>
 	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.Visibility}
@@ -305,7 +305,7 @@
 	 * Configuration property:  Bean dictionary.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_beanDictionary BEAN_beanDictionary}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.beanDictionary.lc"</js>
 	 * 	<li><b>Data type:</b>  <c>List&lt;Class&gt;</c>
@@ -399,7 +399,7 @@
 	 * Configuration property:  Minimum bean field visibility.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_beanFieldVisibility BEAN_beanFieldVisibility}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.beanFieldVisibility.s"</js>
 	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.Visibility}
@@ -453,7 +453,7 @@
 	 * Configuration property:  Bean filters.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_beanFilters BEAN_beanFilters}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.beanFilters.lc"</js>
 	 * 	<li><b>Data type:</b>  <c>List&lt;Class&gt;</c>
@@ -537,7 +537,7 @@
 	 * Configuration property:  BeanMap.put() returns old property value.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_beanMapPutReturnsOldValue BEAN_beanMapPutReturnsOldValue}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.beanMapPutReturnsOldValue.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -590,7 +590,7 @@
 	 * Configuration property:  Minimum bean method visibility.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_beanMethodVisibility BEAN_beanMethodVisibility}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.beanMethodVisibility.s"</js>
 	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.Visibility}
@@ -638,7 +638,7 @@
 	 * Configuration property:  Beans require no-arg constructors.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_beansRequireDefaultConstructor BEAN_beansRequireDefaultConstructor}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.beansRequireDefaultConstructor.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -686,7 +686,7 @@
 	 * Configuration property:  Beans require Serializable interface.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_beansRequireSerializable BEAN_beansRequireSerializable}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.beansRequireSerializable.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -734,7 +734,7 @@
 	 * Configuration property:  Beans require setters for getters.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_beansRequireSettersForGetters BEAN_beansRequireSettersForGetters}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.beansRequireSettersForGetters.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -779,7 +779,7 @@
 	 * Configuration property:  Beans require at least one property.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_beansRequireSomeProperties BEAN_beansRequireSomeProperties}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.beansRequireSomeProperties.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -826,7 +826,7 @@
 	 * Configuration property:  Bean type property name.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_beanTypePropertyName BEAN_beanTypePropertyName}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.beanTypePropertyName.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
@@ -874,7 +874,7 @@
 	 * Configuration property:  Bean property includes.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_bpi BEAN_bpi}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.bpi.sms"</js>
 	 * 	<li><b>Data type:</b>  <c>Map&lt;String,String&gt;</c>
@@ -940,7 +940,7 @@
 	 * Configuration property:  Bean property excludes.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_bpx BEAN_bpx}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.bpx.sms"</js>
 	 * 	<li><b>Data type:</b>  <c>Map&lt;String,String&gt;</c>
@@ -1009,7 +1009,7 @@
 	 * Configuration property:  Read-only bean properties.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_bpro BEAN_bpro}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.bpro.sms"</js>
 	 * 	<li><b>Data type:</b>  <c>Map&lt;String,String&gt;</c>
@@ -1076,7 +1076,7 @@
 	 * Configuration property:  Write-only bean properties.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_bpwo BEAN_bpwo}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.bpwo.sms"</js>
 	 * 	<li><b>Data type:</b>  <c>Map&lt;String,String&gt;</c>
@@ -1143,7 +1143,7 @@
 	 * Configuration property:  Debug mode.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_debug BEAN_debug}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.debug.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -1203,7 +1203,7 @@
 	 * Configuration property:  POJO examples.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_examples BEAN_examples}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.examples.smo"</js>
 	 * 	<li><b>Data type:</b>  <c>Map&lt;String,Object&gt;</c>
@@ -1259,7 +1259,9 @@
 	/**
 	 * Configuration property:  Bean property excludes.
 	 *
-	 * @deprecated Use {@link #BEAN_bpx}
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #BEAN_bpx}
+	 * </div>
 	 */
 	@Deprecated public static final String BEAN_excludeProperties = BEAN_bpx;
 
@@ -1267,7 +1269,7 @@
 	 * Configuration property:  Find fluent setters.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_fluentSetters BEAN_fluentSetters}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.fluentSetters.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -1323,7 +1325,7 @@
 	 * Configuration property:  Ignore invocation errors on getters.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_ignoreInvocationExceptionsOnGetters BEAN_ignoreInvocationExceptionsOnGetters}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.ignoreInvocationExceptionsOnGetters.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -1368,7 +1370,7 @@
 	 * Configuration property:  Ignore invocation errors on setters.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_ignoreInvocationExceptionsOnSetters BEAN_ignoreInvocationExceptionsOnSetters}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.ignoreInvocationExceptionsOnSetters.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -1413,7 +1415,7 @@
 	 * Configuration property:  Ignore properties without setters.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_ignorePropertiesWithoutSetters BEAN_ignorePropertiesWithoutSetters}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.ignorePropertiesWithoutSetters.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -1457,7 +1459,7 @@
 	 * Configuration property:  Ignore unknown properties.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_ignoreUnknownBeanProperties BEAN_ignoreUnknownBeanProperties}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.ignoreUnknownBeanProperties.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -1502,7 +1504,7 @@
 	 * Configuration property:  Ignore unknown properties with null values.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_ignoreUnknownNullBeanProperties BEAN_ignoreUnknownNullBeanProperties}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.ignoreUnknownNullBeanProperties.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -1546,7 +1548,7 @@
 	 * Configuration property:  Implementation classes.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_implClasses BEAN_implClasses}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.implClasses.smc"</js>
 	 * 	<li><b>Data type:</b>  <c>Map&lt;String,Class&gt;</c>
@@ -1589,7 +1591,9 @@
 	/**
 	 * Configuration property:  Bean property includes.
 	 *
-	 * @deprecated Use {@link #BEAN_bpi}
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #BEAN_bpi}
+	 * </div>
 	 */
 	@Deprecated public static final String BEAN_includeProperties = BEAN_bpi;
 
@@ -1597,7 +1601,7 @@
 	 * Configuration property:  Locale.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_locale BEAN_locale}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.locale.s"</js>
 	 * 	<li><b>Data type:</b>  {@link java.util.Locale}
@@ -1647,7 +1651,7 @@
 	 * Configuration property:  Media type.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_mediaType BEAN_mediaType}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.mediaType.s"</js>
 	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.http.MediaType}
@@ -1697,7 +1701,7 @@
 	 * Configuration property:  Bean class exclusions.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_notBeanClasses BEAN_notBeanClasses}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.notBeanClasses.sc"</js>
 	 * 	<li><b>Data type:</b>  <c>Set&lt;Class&gt;</c>
@@ -1762,7 +1766,7 @@
 	 * Configuration property:  Bean package exclusions.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_notBeanPackages BEAN_notBeanPackages}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.notBeanPackages.ss"</js>
 	 * 	<li><b>Data type:</b>  <c>Set&lt;String&gt;</c>
@@ -1844,7 +1848,7 @@
 	 * Configuration property:  POJO swaps.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_pojoSwaps BEAN_pojoSwaps}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.pojoSwaps.lo"</js>
 	 * 	<li><b>Data type:</b>  <c>List&lt;Object&gt;</c>
@@ -1962,7 +1966,7 @@
 	 * Configuration property:  Bean property namer.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_propertyNamer BEAN_propertyNamer}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.propertyNamer.c"</js>
 	 * 	<li><b>Data type:</b>  <code>Class&lt;{@link org.apache.juneau.PropertyNamer}&gt;</code>
@@ -2014,7 +2018,7 @@
 	 * Configuration property:  Sort bean properties.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_sortProperties BEAN_sortProperties}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.sortProperties.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -2069,7 +2073,7 @@
 	 * Configuration property:  Time zone.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_timeZone BEAN_timeZone}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.timeZone.s"</js>
 	 * 	<li><b>Data type:</b>  {@link java.util.TimeZone}
@@ -2119,7 +2123,7 @@
 	 * Configuration property:  Use enum names.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_useEnumNames BEAN_useEnumNames}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.useEnumNames.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -2156,7 +2160,7 @@
 	 * 		.build();
 	 *
 	 * 	<jc>// Enum with overridden toString().</jc>
-	 * 	<jc>// Will be serialized as ONE/TWO/THREE even though there's a toString() method..
+	 * 	<jc>// Will be serialized as ONE/TWO/THREE even though there's a toString() method.</jc>
 	 * 	<jk>public enum</jk> Option {
 	 * 		<jsf>ONE</jsf>(1),
 	 * 		<jsf>TWO</jsf>(2),
@@ -2180,7 +2184,7 @@
 	 * Configuration property:  Use interface proxies.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_useInterfaceProxies BEAN_useInterfaceProxies}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.useInterfaceProxies.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -2225,7 +2229,7 @@
 	 * Configuration property:  Use Java Introspector.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanContext#BEAN_useJavaBeanIntrospector BEAN_useJavaBeanIntrospector}
 	 * 	<li><b>Name:</b>  <js>"BeanContext.useJavaBeanIntrospector.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java
index 2e80a66..16bcb70 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java
@@ -160,6 +160,10 @@
 	/**
 	 * Configuration property:  Bean dictionary.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #dictionary(Object...)}
+	 * </div>
+	 *
 	 * <p>
 	 * Adds to the list of classes that make up the bean dictionary in this bean context.
 	 *
@@ -170,7 +174,6 @@
 	 * @param values
 	 * 	The values to add to this property.
 	 * @return This object (for method chaining).
-	 * @deprecated Use {@link #dictionary(Object...)}
 	 */
 	@Deprecated
 	public BeanContextBuilder beanDictionary(Object...values) {
@@ -180,6 +183,10 @@
 	/**
 	 * Configuration property:  Bean dictionary.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #dictionary(Class...)}
+	 * </div>
+	 *
 	 * <p>
 	 * Same as {@link #beanDictionary(Object...)} but takes in an array of classes.
 	 *
@@ -190,7 +197,6 @@
 	 * @param values
 	 * 	The values to add to this property.
 	 * @return This object (for method chaining).
-	 * @deprecated Use {@link #dictionary(Class...)}
 	 */
 	@Deprecated
 	public BeanContextBuilder beanDictionary(Class<?>...values) {
@@ -200,6 +206,10 @@
 	/**
 	 * Configuration property:  Bean dictionary.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #dictionaryReplace(Class...)}
+	 * </div>
+	 *
 	 * <p>
 	 * Same as {@link #beanDictionary(Object...)} but replaces the existing value.
 	 *
@@ -210,7 +220,6 @@
 	 * @param values
 	 * 	The new values for this property.
 	 * @return This object (for method chaining).
-	 * @deprecated Use {@link #dictionaryReplace(Class...)}
 	 */
 	@Deprecated
 	public BeanContextBuilder beanDictionaryReplace(Class<?>...values) {
@@ -220,6 +229,10 @@
 	/**
 	 * Configuration property:  Bean dictionary.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #dictionaryReplace(Object...)}
+	 * </div>
+	 *
 	 * <p>
 	 * Same as {@link #beanDictionary(Object...)} but replaces the existing value.
 	 *
@@ -230,7 +243,6 @@
 	 * @param values
 	 * 	The new values for this property.
 	 * @return This object (for method chaining).
-	 * @deprecated Use {@link #dictionaryReplace(Object...)}
 	 */
 	@Deprecated
 	public BeanContextBuilder beanDictionaryReplace(Object...values) {
@@ -240,6 +252,10 @@
 	/**
 	 * Configuration property:  Bean dictionary.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #dictionaryRemove(Class...)}
+	 * </div>
+	 *
 	 * <p>
 	 * Removes from the list of classes that make up the bean dictionary in this bean context.
 	 *
@@ -250,7 +266,6 @@
 	 * @param values
 	 * 	The values to remove from this property.
 	 * @return This object (for method chaining).
-	 * @deprecated Use {@link #dictionaryRemove(Class...)}
 	 */
 	@Deprecated
 	public BeanContextBuilder beanDictionaryRemove(Class<?>...values) {
@@ -260,6 +275,10 @@
 	/**
 	 * Configuration property:  Bean dictionary.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #dictionaryRemove(Object...)}
+	 * </div>
+	 *
 	 * <p>
 	 * Removes from the list of classes that make up the bean dictionary in this bean context.
 	 *
@@ -270,7 +289,6 @@
 	 * @param values
 	 * 	The values to remove from this property.
 	 * @return This object (for method chaining).
-	 * @deprecated Use {@link #dictionaryRemove(Object...)}
 	 */
 	@Deprecated
 	public BeanContextBuilder beanDictionaryRemove(Object...values) {
@@ -1080,7 +1098,9 @@
 	/**
 	 * Configuration property:  Bean property excludes.
 	 *
-	 * @deprecated Use {@link #bpx(Class, String)}
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #bpx(Class, String)}
+	 * </div>
 	 */
 	@SuppressWarnings("javadoc")
 	@Deprecated public BeanContextBuilder excludeProperties(Class<?> beanClass, String properties) {
@@ -1090,7 +1110,9 @@
 	/**
 	 * Configuration property:  Bean property excludes.
 	 *
-	 * @deprecated Use {@link #bpx(Map)}
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #bpx(Map)}
+	 * </div>
 	 */
 	@SuppressWarnings("javadoc")
 	@Deprecated public BeanContextBuilder excludeProperties(Map<String,String> values) {
@@ -1100,7 +1122,9 @@
 	/**
 	 * Configuration property:  Bean property excludes.
 	 *
-	 * @deprecated Use {@link #bpx(String, String)}
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #bpx(String, String)}
+	 * </div>
 	 */
 	@SuppressWarnings("javadoc")
 	@Deprecated public BeanContextBuilder excludeProperties(String beanClassName, String value) {
@@ -1336,7 +1360,9 @@
 	/**
 	 * Configuration property:  Bean property includes.
 	 *
-	 * @deprecated Use {@link #bpi(Class, String)}
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #bpi(Class, String)}
+	 * </div>
 	 */
 	@SuppressWarnings("javadoc")
 	@Deprecated public BeanContextBuilder includeProperties(Class<?> beanClass, String value) {
@@ -1346,7 +1372,9 @@
 	/**
 	 * Configuration property:  Bean property includes.
 	 *
-	 * @deprecated Use {@link #bpi(Map)}
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #bpi(Map)}
+	 * </div>
 	 */
 	@SuppressWarnings("javadoc")
 	@Deprecated public BeanContextBuilder includeProperties(Map<String,String> values) {
@@ -1356,7 +1384,9 @@
 	/**
 	 * Configuration property:  Bean property includes.
 	 *
-	 * @deprecated Use {@link #bpi(String, String)}
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #bpi(String, String)}
+	 * </div>
 	 */
 	@SuppressWarnings("javadoc")
 	@Deprecated public BeanContextBuilder includeProperties(String beanClassName, String value) {
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseContext.java
index e600f78..7e2a357 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseContext.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseContext.java
@@ -36,7 +36,7 @@
 	 * Configuration property:  Automatically detect POJO recursions.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanTraverseContext#BEANTRAVERSE_detectRecursions BEANTRAVERSE_detectRecursions}
 	 * 	<li><b>Name:</b>  <js>"BeanTraverseContext.detectRecursions.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -113,7 +113,7 @@
 	 * Configuration property:  Ignore recursion errors.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanTraverseContext#BEANTRAVERSE_ignoreRecursions BEANTRAVERSE_ignoreRecursions}
 	 * 	<li><b>Name:</b>  <js>"BeanTraverseContext.ignoreRecursions.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -147,7 +147,7 @@
 	 * Configuration property:  Initial depth.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanTraverseContext#BEANTRAVERSE_initialDepth BEANTRAVERSE_initialDepth}
 	 * 	<li><b>Name:</b>  <js>"BeanTraverseContext.initialDepth.i"</js>
 	 * 	<li><b>Data type:</b>  <jk>int</jk>
@@ -196,7 +196,7 @@
 	 * Configuration property:  Max traversal depth.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.BeanTraverseContext#BEANTRAVERSE_maxDepth BEANTRAVERSE_maxDepth}
 	 * 	<li><b>Name:</b>  <js>"BeanTraverseContext.maxDepth.i"</js>
 	 * 	<li><b>Data type:</b>  <jk>int</jk>
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Bean.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Bean.java
index b61677d..94a2d5d 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Bean.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Bean.java
@@ -46,7 +46,10 @@
 	 * <ul class='seealso'>
 	 * 	<li class='jf'>{@link BeanContext#BEAN_beanDictionary}
 	 * </ul>
-	 * @deprecated Use {@link #dictionary()}.
+	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - {@link #dictionary()}.
+	 * </div>
 	 */
 	@Deprecated
 	Class<?>[] beanDictionary() default {};
@@ -156,7 +159,9 @@
 	/**
 	 * Specifies a list of properties that should be excluded from {@link BeanMap#entrySet()}.
 	 *
-	 * @deprecated Use {@link #bpx()}
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - {@link #bpx()}.
+	 * </div>
 	 */
 	@Deprecated String excludeProperties() default "";
 
@@ -237,7 +242,7 @@
 	 * The following example shows the equivalent methods for applying the {@link Bean @Bean} annotation to REST methods:
 	 * <p class='bpcode w800'>
 	 * 	<jc>// Class with explicit annotation.</jc>
-	 * 	<ja>@Bean</ja>(bpi=<jk>"street,city,state"</js>)
+	 * 	<ja>@Bean</ja>(bpi=<js>"street,city,state"</js>)
 	 * 	<jk>public class</jk> A {...}
 	 *
 	 * 	<jc>// Class with annotation applied via @BeanConfig</jc>
@@ -247,15 +252,14 @@
 	 * 	<ja>@RestMethod</ja>(...)
 	 * 	<ja>@BeanConfig</ja>(
 	 * 		applyBean={
-	 * 			<ja>@Bean</ja>(on=<js>"B"</js>, bpi=<jk>"street,city,state"</js>)
+	 * 			<ja>@Bean</ja>(on=<js>"B"</js>, bpi=<js>"street,city,state"</js>)
 	 * 		}
 	 * 	)
 	 * 	<jk>public void</jk> doFoo() {...}
 	 * </p>
 	 *
-	 * <p>
-	 * The valid pattern matches are:
-	 * <ul>
+	 * <h5 class='section'>Valid patterns:</h5>
+	 * <ul class='spaced-list'>
 	 *  <li>Classes:
 	 * 		<ul>
 	 * 			<li>Fully qualified:
@@ -289,7 +293,9 @@
 	/**
 	 * The set and order of names of properties associated with a bean class.
 	 *
-	 * @deprecated Use {@link #bpi()}
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - {@link #bpi()}.
+	 * </div>
 	 */
 	@Deprecated String properties() default "";
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfig.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfig.java
index e462431..b74bf76 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfig.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfig.java
@@ -188,8 +188,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.beanClassVisibility.s"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -220,8 +218,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.beanConstructorVisibility.s"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -250,7 +246,10 @@
 	 * 	<li class='jf'>{@link BeanContext#BEAN_beanDictionary}
 	 * 	<li class='link'>{@doc juneau-marshall.BeanDictionaries}
 	 * </ul>
-	 * @deprecated Use {@link #dictionary()}
+	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - {@link #dictionary()}.
+	 * </div>
 	 */
 	@Deprecated
 	Class<?>[] beanDictionary() default {};
@@ -261,7 +260,10 @@
 	 * <ul class='seealso'>
 	 * 	<li class='jf'>{@link BeanContext#BEAN_beanDictionary}
 	 * </ul>
-	 * @deprecated Use {@link #dictionary_replace()}
+	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - {@link #dictionary_replace()}.
+	 * </div>
 	 */
 	@Deprecated
 	Class<?>[] beanDictionary_replace() default {};
@@ -272,7 +274,10 @@
 	 * <ul class='seealso'>
 	 * 	<li class='jf'>{@link BeanContext#BEAN_beanDictionary_remove}
 	 * </ul>
-	 * @deprecated Use {@link #dictionary_remove()}
+	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - {@link #dictionary_remove()}.
+	 * </div>
 	 */
 	@Deprecated
 	Class<?>[] beanDictionary_remove() default {};
@@ -299,8 +304,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.beanFieldVisibility.s"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -373,8 +376,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.beanMapPutReturnsOldValue.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -405,8 +406,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.beanMethodVisibility.s"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -433,8 +432,6 @@
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
 	 * 	<li>
 	 * 		The {@link Bean @Bean} annotation can be used on a class to override this setting when <js>"true"</js>.
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.beansRequireDefaultConstructor.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -461,8 +458,6 @@
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
 	 * 	<li>
 	 * 		The {@link Bean @Bean} annotation can be used on a class to override this setting when <js>"true"</js>.
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.beansRequireSerializable.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -487,8 +482,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.beansRequireSettersForGetters.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -513,8 +506,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.beansRequireSomeProperties.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -535,8 +526,6 @@
 	 * 		Default value: <js>"_type"</js>.
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.beanTypePropertyName.s"</js>.
 	 * </ul>
 
 	 * <ul class='seealso'>
@@ -598,8 +587,6 @@
 	 * 		</p>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.properties.sms"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -631,8 +618,6 @@
 	 * 		Setting applies to specified class and all subclasses.
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.properties.sms"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -674,7 +659,7 @@
 	 * 	<jk>public</jk> MyBean getBeanDetails(<ja>@Path</ja> String id) {...}
 	 * </p>
 	 *
-	 * <ul class=''>
+	 * <ul class='notes'>
 	 * 	<li>
 	 * 		The format of each value is: <js>"Key: comma-delimited-tokens"</js>.
 	 * 	<li>
@@ -692,8 +677,6 @@
 	 * 		</p>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.bpx.sms"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -725,8 +708,6 @@
 	 * 		Setting applies to specified class and all subclasses.
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.bpx.sms"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -752,7 +733,7 @@
 	 * 	<jk>public void</jk> postMyBeans(List&lt;MyBean&gt; l) {...}
 	 * </p>
 	 *
-	 * <ul class=''>
+	 * <ul class='notes'>
 	 * 	<li>
 	 * 		The format of each value is: <js>"Key: comma-delimited-tokens"</js>.
 	 * 	<li>
@@ -770,8 +751,6 @@
 	 * 		</p>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.bpro.sms"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -797,15 +776,13 @@
 	 * 	<jk>public void</jk> postMyBeans(List&lt;MyBean&gt; l) {...}
 	 * </p>
 	 *
-	 * <ul class=''>
+	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Values are comma-delimited lists of bean property names.
 	 * 	<li>
 	 * 		Properties apply to specified class and all subclasses.
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.bpro.sms"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -831,7 +808,7 @@
 	 * 	<jk>public</jk> List&lt;MyBean&gt; getMyBeans() {...}
 	 * </p>
 	 *
-	 * <ul class=''>
+	 * <ul class='notes'>
 	 * 	<li>
 	 * 		The format of each value is: <js>"Key: comma-delimited-tokens"</js>.
 	 * 	<li>
@@ -849,8 +826,6 @@
 	 * 		</p>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.bpro.sms"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -876,15 +851,13 @@
 	 * 	<jk>public void</jk> List&lt;MyBean&gt; getMyBeans() {...}
 	 * </p>
 	 *
-	 * <ul class=''>
+	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Values are comma-delimited lists of bean property names.
 	 * 	<li>
 	 * 		Properties apply to specified class and all subclasses.
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.bpro.sms"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -923,8 +896,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.debug.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -1007,8 +978,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.examples.smo"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -1041,8 +1010,6 @@
 	 * 		<br>The leading and trailing <js>'{'</js> and <js>'}'</js> characters are optional.
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.examples.smo"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -1054,7 +1021,9 @@
 	/**
 	 * Configuration property:  Bean property excludes.
 	 *
-	 * @deprecated Use {@link #bpxMap()}
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - {@link #bpxMap()}.
+	 * </div>
 	 */
 	@Deprecated CS[] excludeProperties() default {};
 
@@ -1082,8 +1051,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.fluentSetters.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -1108,8 +1075,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.ignoreInvocationExceptionsOnGetters.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -1134,8 +1099,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.ignoreInvocationExceptionsOnSetters.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -1160,8 +1123,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.ignorePropertiesWithoutSetters.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -1186,8 +1147,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.ignoreUnknownBeanProperties.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -1212,8 +1171,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.ignoreUnknownNullBeanProperties.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -1234,7 +1191,7 @@
 	 * <p class='bcode w800'>
 	 * 	<ja>@BeanConfig</ja>(
 	 * 		implClasses={
-	 * 			<ja>@CCEntry</ja>(key=MyInterface.<jk>class</jk>, value=MyInterfaceImpl.<jk>class</jk>)
+	 * 			<ja>@CC</ja>(key=MyInterface.<jk>class</jk>, value=MyInterfaceImpl.<jk>class</jk>)
 	 * 		}
 	 * 	)
 	 * <p>
@@ -1248,7 +1205,9 @@
 	/**
 	 * Configuration property:  Bean property includes.
 	 *
-	 * @deprecated Use {@link #bpiMap()}
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - {@link #bpiMap()}.
+	 * </div>
 	 */
 	@Deprecated CS[] includeProperties() default {};
 
@@ -1261,8 +1220,6 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.locale.s"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -1280,8 +1237,6 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.mediaType.s"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -1300,8 +1255,6 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.notBeanClasses.sc"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -1355,8 +1308,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.notBeanPackages.ss"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -1471,8 +1422,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.sortProperties.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -1490,8 +1439,6 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.timeZone.s"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -1515,8 +1462,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.useEnumNames.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -1542,8 +1487,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.useInterfaceProxies.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -1568,8 +1511,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanContext.useJavaBeanIntrospector.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -1615,8 +1556,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanTraverseContext.detectRecursions.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -1645,8 +1584,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanTraverseContext.ignoreRecursions.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -1669,8 +1606,6 @@
 	 * 		Default value: <js>"0"</js>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanTraverseContext.initialDepth.i"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -1693,8 +1628,6 @@
 	 * 		Default value: <js>"100"</js>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"BeanTraverseContext.maxDepth.i"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConstructor.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConstructor.java
index 19c04fd..93305e8 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConstructor.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConstructor.java
@@ -46,7 +46,9 @@
  * 	<li class='link'>{@doc juneau-marshall.Transforms.BeancAnnotation}
  * </ul>
  *
- * @deprecated Use {@link Beanc}
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - {@link Beanc}.
+ * </div>
  */
 @Documented
 @Target(CONSTRUCTOR)
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanIgnore.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanIgnore.java
index 0817f8e..f4a0b65 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanIgnore.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanIgnore.java
@@ -47,9 +47,8 @@
 	 * Used in conjunction with the {@link BeanConfig#applyBeanIgnore()}.
 	 * It is ignored when the annotation is applied directly to classes/methods/fields/constructors.
 	 *
-	 * <p>
-	 * The valid pattern matches are:
-	 * <ul>
+	 * <h5 class='section'>Valid patterns:</h5>
+	 * <ul class='spaced-list'>
 	 *  <li>Classes:
 	 * 		<ul>
 	 * 			<li>Fully qualified:
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanProperty.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanProperty.java
index dd4cff0..b5ac4ea 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanProperty.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanProperty.java
@@ -29,7 +29,9 @@
  * 	<li class='link'>{@doc juneau-marshall.Transforms.BeanpAnnotation}
  * </ul>
  *
- * @deprecated Use {@link Beanp}
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - {@link Beanp}.
+ * </div>
  */
 @Documented
 @Target({FIELD,METHOD,PARAMETER})
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Beanc.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Beanc.java
index 9ffef63..da45a5a 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Beanc.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Beanc.java
@@ -95,9 +95,8 @@
 	 *		<jk>int</jk> age = p.getAge();   <jc>// 45</jc>
 	 * </p>
 	 *
-	 * <p>
-	 * The valid pattern matches are:
-	 * <ul>
+	 * <h5 class='section'>Valid patterns:</h5>
+	 * <ul class='spaced-list'>
 	 * 	<li>Constructors:
 	 * 		<ul>
 	 * 			<li>Fully qualified with args:
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Beanp.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Beanp.java
index 7f365d4..07dafa1 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Beanp.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Beanp.java
@@ -209,9 +209,8 @@
 	 * Used in conjunction with the {@link BeanConfig#applyBeanp()}.
 	 * It is ignored when the annotation is applied directly to fields/methods.
 	 *
-	 * <p>
-	 * The valid pattern matches are:
-	 * <ul>
+	 * <h5 class='section'>Valid patterns:</h5>
+	 * <ul class='spaced-list'>
 	 * 	<li>Methods:
 	 * 		<ul>
 	 * 			<li>Fully qualified with args:
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Example.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Example.java
index 259b259..4505e82 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Example.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Example.java
@@ -51,7 +51,7 @@
  * 	}
  *
  * 	<jc>// On a class.</jc>
- * 	<ja>@Example</js>(<js>"{foo:'bar',baz:123}"</js>)
+ * 	<ja>@Example</ja>(<js>"{foo:'bar',baz:123}"</js>)
  * 	<jk>public class</jk> C {...}
  * </p>
  */
@@ -68,9 +68,8 @@
 	 * Used in conjunction with the {@link BeanConfig#applyExample()}.
 	 * It is ignored when the annotation is applied directly to classes/methods/fields.
 	 *
-	 * <p>
-	 * The valid pattern matches are:
-	 * <ul>
+	 * <h5 class='section'>Valid patterns:</h5>
+	 * <ul class='spaced-list'>
 	 *  <li>Classes:
 	 * 		<ul>
 	 * 			<li>Fully qualified:
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/NameProperty.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/NameProperty.java
index 98143e5..56af737 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/NameProperty.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/NameProperty.java
@@ -41,9 +41,8 @@
 	 * Used in conjunction with the {@link BeanConfig#applyNameProperty()}.
 	 * It is ignored when the annotation is applied directly to methods/fields.
 	 *
-	 * <p>
-	 * The valid pattern matches are:
-	 * <ul>
+	 * <h5 class='section'>Valid patterns:</h5>
+	 * <ul class='spaced-list'>
 	 * 	<li>Methods:
 	 * 		<ul>
 	 * 			<li>Fully qualified with args:
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/ParentProperty.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/ParentProperty.java
index 2db2263..808a1c5 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/ParentProperty.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/ParentProperty.java
@@ -44,9 +44,8 @@
 	 * Used in conjunction with the {@link BeanConfig#applyParentProperty()}.
 	 * It is ignored when the annotation is applied directly to methods/fields.
 	 *
-	 * <p>
-	 * The valid pattern matches are:
-	 * <ul>
+	 * <h5 class='section'>Valid patterns:</h5>
+	 * <ul class='spaced-list'>
 	 * 	<li>Methods:
 	 * 		<ul>
 	 * 			<li>Fully qualified with args:
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Swap.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Swap.java
index 9a9ea62b..b8ef0a6 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Swap.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Swap.java
@@ -78,9 +78,8 @@
 	 * Used in conjunction with the {@link BeanConfig#applySwap()}.
 	 * It is ignored when the annotation is applied directly to classes.
 	 *
-	 * <p>
-	 * The valid pattern matches are:
-	 * <ul>
+	 * <h5 class='section'>Valid patterns:</h5>
+	 * <ul class='spaced-list'>
 	 *  <li>Classes:
 	 * 		<ul>
 	 * 			<li>Fully qualified:
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/URI.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/URI.java
index 2f6b04f..1b22e2c 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/URI.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/URI.java
@@ -40,9 +40,8 @@
 	 * Used in conjunction with the {@link BeanConfig#applyURI()}.
 	 * It is ignored when the annotation is applied directly to class/method/fields.
 	 *
-	 * <p>
-	 * The valid pattern matches are:
-	 * <ul>
+	 * <h5 class='section'>Valid patterns:</h5>
+	 * <ul class='spaced-list'>
 	 *  <li>Classes:
 	 * 		<ul>
 	 * 			<li>Fully qualified:
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/annotation/Csv.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/annotation/Csv.java
index 24c29b3..e7cbc54 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/annotation/Csv.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/annotation/Csv.java
@@ -38,9 +38,8 @@
 	 * Used in conjunction with the {@link CsvConfig#applyCsv()}.
 	 * It is ignored when the annotation is applied directly to classes/methods/fields.
 	 *
-	 * <p>
-	 * The valid pattern matches are:
-	 * <ul>
+	 * <h5 class='section'>Valid patterns:</h5>
+	 * <ul class='spaced-list'>
 	 *  <li>Classes:
 	 * 		<ul>
 	 * 			<li>Fully qualified:
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializer.java
index f289ca2..651883e 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializer.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializer.java
@@ -57,13 +57,13 @@
  * 	<ja>@Rest</ja>(
  * 		messages=<js>"nls/AddressBookResource"</js>,
  * 		title=<js>"$L{title}"</js>,
- * 		description=<js>"$L{description}"</js>,
- * 		htmldoc=<ja>@HtmlDoc</ja>(
- * 			navlinks={
- * 				<js>"options: servlet:/?method=OPTIONS"</js>,
- * 				<js>"doc: doc"</js>
- * 			}
- * 		)
+ * 		description=<js>"$L{description}"</js>
+ * 	)
+ * 	<ja>@HtmlDocConfig</ja>(
+ * 		navlinks={
+ * 			<js>"options: servlet:/?method=OPTIONS"</js>,
+ * 			<js>"doc: doc"</js>
+ * 		}
  * 	)
  * </p>
  *
@@ -86,7 +86,7 @@
 	 * Configuration property:  Aside section contents.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_aside HTMLDOC_aside}
 	 * 	<li><b>Name:</b>  <js>"HtmlDocSerializer.aside.ls"</js>
 	 * 	<li><b>Data type:</b>  <c>List&lt;String&gt;</c>
@@ -111,16 +111,14 @@
 	 *
 	 * <h5 class='section'>Example:</h5>
 	 * <p class='bcode w800'>
-	 * 	<ja>@Rest</ja>(
-	 * 		htmldoc=<ja>@HtmlDoc</ja>(
-	 * 			aside={
-	 * 				<js>"&lt;ul&gt;"</js>,
-	 * 				<js>"	&lt;li&gt;Item 1"</js>,
-	 * 				<js>"	&lt;li&gt;Item 2"</js>,
-	 * 				<js>"	&lt;li&gt;Item 3"</js>,
-	 * 				<js>"&lt;/ul&gt;"</js>
-	 * 			}
-	 * 		)
+	 *  <ja>@HtmlDocConfig</ja>(
+	 * 		aside={
+	 * 			<js>"&lt;ul&gt;"</js>,
+	 * 			<js>"	&lt;li&gt;Item 1"</js>,
+	 * 			<js>"	&lt;li&gt;Item 2"</js>,
+	 * 			<js>"	&lt;li&gt;Item 3"</js>,
+	 * 			<js>"&lt;/ul&gt;"</js>
+	 * 		}
 	 * 	)
 	 * </p>
 	 */
@@ -130,7 +128,7 @@
 	 * Configuration property:  Footer section contents.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_footer HTMLDOC_footer}
 	 * 	<li><b>Name:</b>  <js>"HtmlDocSerializer.footer.ls"</js>
 	 * 	<li><b>Data type:</b>  <c>List&lt;String&gt;</c>
@@ -153,12 +151,10 @@
 	 *
 	 * <h5 class='section'>Example:</h5>
 	 * <p class='bcode w800'>
-	 * 	<ja>@Rest</ja>(
-	 * 		htmldoc=<ja>@HtmlDoc</ja>(
-	 * 			footer={
-	 * 				<js>"&lt;b&gt;This interface is great!&lt;/b&gt;"</js>
-	 * 			}
-	 * 		)
+	 *  <ja>@HtmlDocConfig</ja>(
+	 * 		footer={
+	 * 			<js>"&lt;b&gt;This interface is great!&lt;/b&gt;"</js>
+	 * 		}
 	 * 	)
 	 * </p>
 	 */
@@ -168,7 +164,7 @@
 	 * Configuration property:  Additional head section content.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_head HTMLDOC_head}
 	 * 	<li><b>Name:</b>  <js>"HtmlDocSerializer.head.ls"</js>
 	 * 	<li><b>Data type:</b>  <c>List&lt;String&gt;</c>
@@ -199,12 +195,10 @@
 	 * <p>
 	 * A shortcut on <ja>@Rest</ja> is also provided for this setting:
 	 * <p class='bcode w800'>
-	 * 	<ja>@Rest</ja>(
-	 * 		htmldoc=@HtmlDoc(
-	 * 			head={
-	 * 				<js>"&lt;link rel='icon' href='$U{servlet:/htdocs/mypageicon.ico}'&gt;"</js>
-	 * 			}
-	 * 		)
+	 *  <ja>@HtmlDocConfig</ja>(
+	 * 		head={
+	 * 			<js>"&lt;link rel='icon' href='$U{servlet:/htdocs/mypageicon.ico}'&gt;"</js>
+	 * 		}
 	 * 	)
 	 * </p>
 	 */
@@ -214,7 +208,7 @@
 	 * Configuration property:  Header section contents.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_header HTMLDOC_header}
 	 * 	<li><b>Name:</b>  <js>"HtmlDocSerializer.header.ls"</js>
 	 * 	<li><b>Data type:</b>  <c>List&lt;String&gt;</c>
@@ -235,12 +229,10 @@
 	 *
 	 * <h5 class='section'>Example:</h5>
 	 * <p class='bcode w800'>
-	 * 	<ja>@Rest</ja>(
-	 * 		htmldoc=<ja>@HtmlDoc</ja>(
-	 * 			header={
-	 * 				<js>"&lt;h1&gt;My own header&lt;/h1&gt;"</js>
-	 * 			}
-	 * 		)
+	 *  <ja>@HtmlDocConfig</ja>(
+	 * 		header={
+	 * 			<js>"&lt;h1&gt;My own header&lt;/h1&gt;"</js>
+	 * 		}
 	 * 	)
 	 * </p>
 	 */
@@ -250,7 +242,7 @@
 	 * Configuration property:  Nav section contents.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_nav HTMLDOC_nav}
 	 * 	<li><b>Name:</b>  <js>"HtmlDocSerializer.nav.ls"</js>
 	 * 	<li><b>Data type:</b>  <c>List&lt;String&gt;</c>
@@ -271,12 +263,10 @@
 	 *
 	 * <h5 class='section'>Example:</h5>
 	 * <p class='bcode w800'>
-	 * 	<ja>@Rest</ja>(
-	 * 		htmldoc=<ja>@HtmlDoc</ja>(
-	 * 			nav={
-	 * 				<js>"&lt;p class='special-navigation'&gt;This is my special navigation content&lt;/p&gt;"</js>
-	 * 			}
-	 * 		)
+	 *  <ja>@HtmlDocConfig</ja>(
+	 * 		nav={
+	 * 			<js>"&lt;p class='special-navigation'&gt;This is my special navigation content&lt;/p&gt;"</js>
+	 * 		}
 	 * 	)
 	 * </p>
 	 *
@@ -289,7 +279,7 @@
 	 * Configuration property:  Page navigation links.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_navlinks HTMLDOC_navlinks}
 	 * 	<li><b>Name:</b>  <js>"HtmlDocSerializer.navlinks.ls"</js>
 	 * 	<li><b>Data type:</b>  <c>List&lt;String&gt;</c>
@@ -342,13 +332,11 @@
 	 * <p>
 	 * A shortcut on <ja>@Rest</ja> is also provided for this setting:
 	 * <p class='bcode w800'>
-	 * 	<ja>@Rest</ja>(
-	 * 		htmldoc=@HtmlDoc(
-	 * 			navlinks={
-	 * 				<js>"options: servlet:/?method=OPTIONS"</js>,
-	 * 				<js>"doc: doc"</js>
-	 * 			}
-	 * 		)
+	 *  <ja>@HtmlDocConfig</ja>(
+	 * 		navlinks={
+	 * 			<js>"options: servlet:/?method=OPTIONS"</js>,
+	 * 			<js>"doc: doc"</js>
+	 * 		}
 	 * 	)
 	 * 	<jk>public class</jk> AddressBookResource <jk>extends</jk> BasicRestServletJena {
 	 * </p>
@@ -364,7 +352,7 @@
 	 * Configuration property:  No-results message.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_noResultsMessage HTMLDOC_noResultsMessage}
 	 * 	<li><b>Name:</b>  <js>"HtmlDocSerializer.noResultsMessage.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
@@ -384,10 +372,8 @@
 	 *
 	 * <h5 class='section'>Example:</h5>
 	 * <p class='bcode w800'>
-	 * 	<ja>@Rest</ja>(
-	 * 		htmldoc=<ja>@HtmlDoc</ja>(
-	 * 			noResultsMessage=<js>"&lt;b&gt;This interface is great!&lt;/b&gt;"</js>
-	 * 		)
+	 *  <ja>@HtmlDocConfig</ja>(
+	 * 		noResultsMessage=<js>"&lt;b&gt;This interface is great!&lt;/b&gt;"</js>
 	 * 	)
 	 * </p>
 	 *
@@ -400,7 +386,7 @@
 	 * Configuration property:  Prevent word wrap on page.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_nowrap HTMLDOC_nowrap}
 	 * 	<li><b>Name:</b>  <js>"HtmlDocSerializer.nowrap.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -424,7 +410,7 @@
 	 * Configuration property:  Javascript code.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_script HTMLDOC_script}
 	 * 	<li><b>Name:</b>  <js>"HtmlDocSerializer.script.ls"</js>
 	 * 	<li><b>Data type:</b>  <c>List&lt;String&gt;</c>
@@ -455,12 +441,10 @@
 	 * <p>
 	 * A shortcut on <ja>@Rest</ja> is also provided for this setting:
 	 * <p class='bcode w800'>
-	 * 	<ja>@Rest</ja>(
-	 * 		htmldoc=@HtmlDoc(
-	 * 			script={
-	 * 				<js>"alert('hello!');"</js>
-	 * 			}
-	 * 		)
+	 *  <ja>@HtmlDocConfig</ja>(
+	 * 		script={
+	 * 			<js>"alert('hello!');"</js>
+	 * 		}
 	 * 	)
 	 * </p>
 	 */
@@ -475,7 +459,7 @@
 	 * Configuration property:  CSS style code.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_style HTMLDOC_style}
 	 * 	<li><b>Name:</b>  <js>"HtmlDocSerializer.style.ls"</js>
 	 * 	<li><b>Data type:</b>  <c>List&lt;String&gt;</c>
@@ -506,13 +490,11 @@
 	 * <p>
 	 * A shortcut on <ja>@Rest</ja> is also provided for this setting:
 	 * <p class='bcode w800'>
-	 * 	<ja>@Rest</ja>(
-	 * 		htmldoc=@HtmlDoc(
-	 * 			style={
-	 * 				<js>"h3 { color: red; }"</js>,
-	 * 				<js>"h5 { font-weight: bold; }"</js>
-	 * 			}
-	 * 		)
+	 *  <ja>@HtmlDocConfig</ja>(
+	 * 		style={
+	 * 			<js>"h3 { color: red; }"</js>,
+	 * 			<js>"h5 { font-weight: bold; }"</js>
+	 * 		}
 	 * 	)
 	 * </p>
 	 */
@@ -527,7 +509,7 @@
 	 * Configuration property:  Stylesheet import URLs.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_stylesheet HTMLDOC_stylesheet}
 	 * 	<li><b>Name:</b>  <js>"HtmlDocSerializer.stylesheet.ls"</js>
 	 * 	<li><b>Data type:</b>  <c>List&lt;String&gt;</c>
@@ -559,7 +541,7 @@
 	 * Configuration property:  HTML document template.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_template HTMLDOC_template}
 	 * 	<li><b>Name:</b>  <js>"HtmlDocSerializer.template.c"</js>
 	 * 	<li><b>Data type:</b>  <code>Class&lt;{@link org.apache.juneau.html.HtmlDocTemplate}&gt;</code>
@@ -581,10 +563,8 @@
 	 *
 	 * <h5 class='section'>Example:</h5>
 	 * <p class='bcode w800'>
-	 * 	<ja>@Rest</ja>(
-	 * 		htmldoc=@HtmlDoc(
-	 * 			template=MySpecialDocTemplate.<jk>class</jk>
-	 * 		)
+	 *  <ja>@HtmlDocConfig</ja>(
+	 * 		template=MySpecialDocTemplate.<jk>class</jk>
 	 * 	)
 	 * </p>
 	 */
@@ -594,7 +574,7 @@
 	 * Configuration property:  HTML Widgets.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_widgets HTMLDOC_widgets}
 	 * 	<li><b>Name:</b>  <js>"HtmlDocSerializer.widgets.lo"</js>
 	 * 	<li><b>Data type:</b><c>List&lt;{@link org.apache.juneau.html.HtmlWidget}|Class&lt;{@link org.apache.juneau.html.HtmlWidget}&gt;&gt;</c>
@@ -635,7 +615,7 @@
 	 * and aside section of the page:
 	 *
 	 * <p class='bcode w800'>
-	 * 	<ja>@HtmlDocSerializer</ja>(
+	 * 	<ja>@HtmlDocConfig</ja>(
 	 * 		widgets={
 	 * 			MyWidget.<jk>class</jk>
 	 * 		},
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializerBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializerBuilder.java
index eea5aac..05437d6 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializerBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializerBuilder.java
@@ -124,7 +124,7 @@
 	 *
 	 * <h5 class='section'>Example:</h5>
 	 * <p class='bcode w800'>
-	 * 	<ja>@HtmlDoc</ja>(
+	 * 	<ja>@HtmlDocConfig</ja>(
 	 * 		head={
 	 * 			<js>"&lt;link rel='icon' href='$U{servlet:/htdocs/mypageicon.ico}'&gt;"</js>
 	 * 		}
@@ -219,7 +219,7 @@
 	 * <js>"servlet:/..."</js>.
 	 *
 	 * <h5 class='section'>Example:</h5>
-	 * <p>
+	 * <p class='bcode w800'>
 	 * 	<ja>@HtmlDocConfig</ja>(
 	 * 		navlinks={
 	 * 			<js>"options: servlet:/?method=OPTIONS"</js>,
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializer.java
index d556be5..a5e5934 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializer.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializer.java
@@ -137,7 +137,7 @@
 	 * Configuration property:  Add <js>"_type"</js> properties when needed.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.html.HtmlSerializer#HTML_addBeanTypes HTML_addBeanTypes}
 	 * 	<li><b>Name:</b>  <js>"HtmlSerializer.addBeanTypes.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -170,7 +170,7 @@
 	 * Configuration property:  Add key/value headers on bean/map tables.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.html.HtmlSerializer#HTML_addKeyValueTableHeaders HTML_addKeyValueTableHeaders}
 	 * 	<li><b>Name:</b>  <js>"HtmlSerializer.addKeyValueTableHeaders.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -244,7 +244,7 @@
 	 * Configuration property:  Look for URLs in {@link java.lang.String Strings}.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.html.HtmlSerializer#HTML_detectLinksInStrings HTML_detectLinksInStrings}
 	 * 	<li><b>Name:</b>  <js>"HtmlSerializer.detectLinksInStrings.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -321,7 +321,7 @@
 	 * Configuration property:  Link label parameter name.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.html.HtmlSerializer#HTML_labelParameter HTML_labelParameter}
 	 * 	<li><b>Name:</b>  <js>"HtmlSerializer.labelParameter.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
@@ -352,7 +352,7 @@
 	 * Configuration property:  Look for link labels in URIs.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.html.HtmlSerializer#HTML_detectLabelParameters HTML_detectLabelParameters}
 	 * 	<li><b>Name:</b>  <js>"HtmlSerializer.detectLabelParameters.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -432,7 +432,7 @@
 	 * Configuration property:  Anchor text source.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.html.HtmlSerializer#HTML_uriAnchorText HTML_uriAnchorText}
 	 * 	<li><b>Name:</b>  <js>"HtmlSerializer.uriAnchorText.s"</js>
 	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.html.AnchorText}
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/Html.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/Html.java
index d957799..6cf1de9 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/Html.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/Html.java
@@ -46,6 +46,7 @@
 	 * 	<jk>public</jk> String getDrive() {...}
 	 * </p>
 	 *
+	 * <p>
 	 * This overrides the behavior specified by {@link HtmlSerializer#HTML_uriAnchorText}.
 	 */
 	String anchorText() default "";
@@ -108,9 +109,8 @@
 	 * Used in conjunction with the {@link HtmlConfig#applyHtml()}.
 	 * It is ignored when the annotation is applied directly to classes/methods/fields.
 	 *
-	 * <p>
-	 * The valid pattern matches are:
-	 * <ul>
+	 * <h5 class='section'>Valid patterns:</h5>
+	 * <ul class='spaced-list'>
 	 *  <li>Classes:
 	 * 		<ul>
 	 * 			<li>Fully qualified:
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlConfig.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlConfig.java
index 7c72b14..b29eaa7 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlConfig.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlConfig.java
@@ -96,8 +96,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"HtmlSerializer.addBeanTypes.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -146,8 +144,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"HtmlSerializer.addKeyValueTableHeaders.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -196,8 +192,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"HtmlSerializer.detectLinksInStrings.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -217,8 +211,6 @@
 	 * 		Default value: <js>"label"</js>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"HtmlSerializer.labelParameter.s"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -270,8 +262,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"HtmlSerializer.detectLabelParameters.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -302,8 +292,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"HtmlSerializer.uriAnchorText.s"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlDocConfig.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlDocConfig.java
index 81cb4e3..6674576 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlDocConfig.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlDocConfig.java
@@ -85,8 +85,6 @@
 	 * 	<li>
 	 * 		On servlet/resource classes, this value is inherited from the <ja>@HtmlDocConfig</ja> annotation on the
 	 * 		parent class.
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"HtmlDocSerializer.aside.ls"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -127,8 +125,6 @@
 	 * 	<li>
 	 * 		On servlet/resource classes, this value is inherited from the <ja>@HtmlDocConfig</ja> annotation on the
 	 * 		parent class.
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"HtmlDocSerializer.footer.ls"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -167,8 +163,6 @@
 	 * 	<li>
 	 * 		On servlet/resource classes, this value is inherited from the <ja>@HtmlDocConfig</ja> annotation on the
 	 * 		parent class.
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"HtmlDocSerializer.head.ls"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -210,8 +204,6 @@
 	 * 	<li>
 	 * 		On servlet/resource classes, this value is inherited from the <ja>@HtmlDocConfig</ja> annotation on the
 	 * 		parent class if not overridden.
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"HtmlDocSerializer.header.ls"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -255,8 +247,6 @@
 	 * 	<li>
 	 * 		On servlet/resource classes, this value is inherited from the <ja>@HtmlDocConfig</ja> annotation on the
 	 * 		parent class.
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"HtmlDocSerializer.nav.ls"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -319,8 +309,6 @@
 	 * 	<li>
 	 * 		On servlet/resource classes, this value is inherited from the <ja>@HtmlDocConfig</ja> annotation on the
 	 * 		parent class.
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"HtmlDocSerializer.navlinks.ls"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -350,8 +338,6 @@
 	 * 	<li>
 	 * 		Supports {@doc DefaultRestSvlVariables}
 	 * 		(e.g. <js>"$L{my.localized.variable}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"HtmlDocSerializer.noResultsMessage.s"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -376,8 +362,6 @@
 	 * 	<li>
 	 * 		Supports {@doc DefaultRestSvlVariables}
 	 * 		(e.g. <js>"$L{my.localized.variable}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"HtmlDocSerializer.nowrap.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -394,7 +378,7 @@
 	 *
 	 * <h5 class='section'>Example:</h5>
 	 * <p class='bpcode w800'>
-	 * 	htmldoc=<ja>@HtmlDocConfig</ja>(
+	 * 	<ja>@HtmlDocConfig</ja>(
 	 * 		script={
 	 * 			<js>"alert('hello!');"</js>
 	 * 		}
@@ -418,8 +402,6 @@
 	 * 	<li>
 	 * 		On servlet/resource classes, this value is inherited from the <ja>@HtmlDocConfig</ja> annotation on the
 	 * 		parent class.
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"HtmlDocSerializer.script.ls"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -461,8 +443,6 @@
 	 * 	<li>
 	 * 		On servlet/resource classes, this value is inherited from the <ja>@HtmlDocConfig</ja> annotation on the
 	 * 		parent class.
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"HtmlDocSerializer.style.ls"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -491,8 +471,6 @@
 	 * 	<li>
 	 * 		On servlet/resource classes, this value is inherited from the <ja>@HtmlDocConfig</ja> annotation on the
 	 * 		parent class.
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"HtmlDocSerializer.stylesheet.ls"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -513,7 +491,7 @@
 	 *
 	 * <h5 class='section'>Example:</h5>
 	 * <p class='bcode w800'>
-	 * 	htmldoc=<ja>@HtmlDocConfig</ja>(
+	 * 	<ja>@HtmlDocConfig</ja>(
 	 * 		template=MySpecialDocTemplate.<jk>class</jk>
 	 * 	)
 	 * </p>
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlLink.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlLink.java
index 97b92fa..c3e9708 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlLink.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlLink.java
@@ -53,9 +53,8 @@
 	 * Used in conjunction with the {@link HtmlConfig#applyHtmlLink()}.
 	 * It is ignored when the annotation is applied directly to classes.
 	 *
-	 * <p>
-	 * The valid pattern matches are:
-	 * <ul>
+	 * <h5 class='section'>Valid patterns:</h5>
+	 * <ul class='spaced-list'>
 	 * 	<li>Classes:
 	 * 		<ul>
 	 * 			<li>Fully qualified: <js>"com.foo.MyClass"</js>
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/MediaType.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/MediaType.java
index cc19b69..6677196 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/MediaType.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/MediaType.java
@@ -239,8 +239,8 @@
 	 * <br>The comparison media type must not.
 	 *
 	 * <ul>
-	 * 	<li>Exact matches (e.g. <js>"text/json"<js>/</js>"text/json"</js>) should match
-	 * 		better than meta-character matches (e.g. <js>"text/*"<js>/</js>"text/json"</js>)
+	 * 	<li>Exact matches (e.g. <js>"text/json"</js>/</js>"text/json"</js>) should match
+	 * 		better than meta-character matches (e.g. <js>"text/*"</js>/</js>"text/json"</js>)
 	 * 	<li>The comparison media type can have additional subtype tokens (e.g. <js>"text/json+foo"</js>)
 	 * 		that will not prevent a match if the <c>allowExtraSubTypes</c> flag is set.
 	 * 		The reverse is not true, e.g. the comparison media type must contain all subtype tokens found in the
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/FormData.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/FormData.java
index 955d191..de4a639 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/FormData.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/FormData.java
@@ -223,7 +223,7 @@
 	 * <p>
 	 * The following are completely equivalent ways of defining a form post entry:
 	 * <p class='bcode w800'>
-	 * 	<jk>public</jk> Order placeOrder(<ja>@FormData</ja>(name=<js>"petId"</jk>) <jk>long</jk> petId) {...}
+	 * 	<jk>public</jk> Order placeOrder(<ja>@FormData</ja>(name=<js>"petId"</js>) <jk>long</jk> petId) {...}
 	 * </p>
 	 * <p class='bcode w800'>
 	 * 	<jk>public</jk> Order placeOrder(<ja>@FormData</ja>(<js>"petId"</js>) <jk>long</jk> petId) {...}
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/HasFormData.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/HasFormData.java
index 654a8eb..deada1d 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/HasFormData.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/HasFormData.java
@@ -59,10 +59,10 @@
 	 * <p>
 	 * The following are completely equivalent ways of defining the existence of a form post entry:
 	 * <p class='bcode w800'>
-	 * 	<jk>public</jk> Order placeOrder(<jk>@HasFormData</jk>(name=<js>"petId"</js>) <jk>boolean</jk> hasPetId) {...}
+	 * 	<jk>public</jk> Order placeOrder(<ja>@HasFormData</ja>(name=<js>"petId"</js>) <jk>boolean</jk> hasPetId) {...}
 	 * </p>
 	 * <p class='bcode w800'>
-	 * 	<jk>public</jk> Order placeOrder(<jk>@HasFormData</jk>(<js>"petId"</js>) <jk>boolean</jk> hasPetId) {...}
+	 * 	<jk>public</jk> Order placeOrder(<ja>@HasFormData</ja>(<js>"petId"</js>) <jk>boolean</jk> hasPetId) {...}
 	 * </p>
 	 */
 	String value() default "";
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/HasQuery.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/HasQuery.java
index cde53ea..ea06512 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/HasQuery.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/HasQuery.java
@@ -60,10 +60,10 @@
 	 * <p>
 	 * The following are completely equivalent ways of defining the existence of a query entry:
 	 * <p class='bcode w800'>
-	 * 	<jk>public</jk> Order placeOrder(<jk>@HasQuery</jk>(name=<js>"petId"</js>) <jk>boolean</jk> hasPetId) {...}
+	 * 	<jk>public</jk> Order placeOrder(<ja>@HasQuery</ja>(name=<js>"petId"</js>) <jk>boolean</jk> hasPetId) {...}
 	 * </p>
 	 * <p class='bcode w800'>
-	 * 	<jk>public</jk> Order placeOrder(<jk>@HasQuery</jk>(<js>"petId"</js>) <jk>boolean</jk> hasPetId) {...}
+	 * 	<jk>public</jk> Order placeOrder(<ja>@HasQuery</ja>(<js>"petId"</js>) <jk>boolean</jk> hasPetId) {...}
 	 * </p>
 	 */
 	String value() default "";
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Header.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Header.java
index b2cf142..ff451d5 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Header.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Header.java
@@ -173,7 +173,7 @@
 	 *
 	 * 		<jc>// Equivalent to @Header("Foo")</jc>
 	 * 		<ja>@Header</ja>
-	 * 		<ja>@@Beanp</ja>(<js>"Foo"</js>)
+	 * 		<ja>@Beanp</ja>(<js>"Foo"</js>)
 	 * 		String getFoo();
 	 * 	}
 	 * 		</p>
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Tag.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Tag.java
index 0a0eb51..72298ab 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Tag.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Tag.java
@@ -32,7 +32,7 @@
  * <p class='bcode w800'>
  * 	<jc>// A response object thats a hex-encoded string</jc>
  * 	<ja>@Rest</ja>(
- * 		swagger={
+ * 		swagger=<ja>@ResourceSwagger</ja>{
  * 			tags={
  * 				<ja>@Tag</ja>(
  * 					name=<js>"utility"</js>,
@@ -45,7 +45,7 @@
  * <p class='bcode w800'>
  * 	<jc>// Free-form</jc>
  * 	<ja>@Rest</ja>(
- * 		swagger={
+ * 		swagger=<ja>@ResourceSwagger</ja>{
  * 			tags={
  * 				<ja>@Tag</ja>({
  * 					<js>"name:'utility',"</js>,
@@ -113,7 +113,7 @@
 	 * The following are completely equivalent ways of defining the swagger description of the resource tags:
 	 * <p class='bcode w800'>
 	 * 	<jc>// Normal</jc>
-	 * 	<ja>@Rest</ja>(
+	 * 	<ja>@ResourceSwagger</ja>(
 	 * 		tags={
 	 * 			<ja>@Tag</ja>(
 	 * 				name=<js>"pet"</js>,
@@ -128,7 +128,7 @@
 	 * </p>
 	 * <p class='bcode w800'>
 	 * 	<jc>// Free-form</jc>
-	 * 	<ja>@Rest</ja>(
+	 * 	<ja>@ResourceSwagger</ja>(
 	 * 		tags={
 	 * 			<ja>@Tag</ja>(
 	 * 				name=<js>"pet"</js>,
@@ -146,7 +146,7 @@
 	 * </p>
 	 * <p class='bcode w800'>
 	 * 	<jc>// Free-form with variables</jc>
-	 * 	<ja>@Rest</ja>(
+	 * 	<ja>@ResourceSwagger</ja>(
 	 * 		tags={
 	 * 			<ja>@Tag</ja>(
 	 * 				name=<js>"pet"</js>,
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/remote/RemoteMethod.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/remote/RemoteMethod.java
index 3626258..064489e 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/remote/RemoteMethod.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/remote/RemoteMethod.java
@@ -50,7 +50,7 @@
 	 * <h5 class='figure'>Example:</h5>
 	 * <p class='bcode'>
 	 * 	<jc>// POST /pet</jc>
-	 * 	<ja>@RestMethod</ja>
+	 * 	<ja>@RemoteMethod</ja>
 	 * 	<jk>public void</jk> postPet(...) {...}
 	 * </p>
 	 */
@@ -65,7 +65,7 @@
 	 * <h5 class='figure'>Example:</h5>
 	 * <p class='bcode'>
 	 * 	<jc>// POST /pet</jc>
-	 * 	<ja>@RestMethod</ja>
+	 * 	<ja>@RemoteMethod</ja>
 	 * 	<jk>public void</jk> postPet(...) {...}
 	 * </p>
 	 *
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/remote/RemoteResource.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/remote/RemoteResource.java
index 0358d29..a12a848 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/remote/RemoteResource.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/remote/RemoteResource.java
@@ -20,10 +20,13 @@
 /**
  * Identifies a proxy against a REST interface.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link Remote}
+ * </div>
+ *
  * <ul class='seealso'>
  * 	<li class='link'>{@doc juneau-rest-client.RestProxies}
  * </ul>
- * @deprecated Use {@link Remote}
  */
 @Documented
 @Target({TYPE})
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/annotation/Jso.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/annotation/Jso.java
index fe3b04e..d9a2327 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/annotation/Jso.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/annotation/Jso.java
@@ -38,9 +38,8 @@
 	 * Used in conjunction with the {@link JsoConfig#applyJso()}.
 	 * It is ignored when the annotation is applied directly to classes/methods/fields.
 	 *
-	 * <p>
-	 * The valid pattern matches are:
-	 * <ul>
+	 * <h5 class='section'>Valid patterns:</h5>
+	 * <ul class='spaced-list'>
 	 *  <li>Classes:
 	 * 		<ul>
 	 * 			<li>Fully qualified:
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParser.java
index cc2ce8d..82dcfba 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParser.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParser.java
@@ -115,7 +115,7 @@
 	 * Configuration property:  Validate end.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.json.JsonParser#JSON_validateEnd JSON_validateEnd}
 	 * 	<li><b>Name:</b>  <js>"JsonParser.validateEnd.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializer.java
index e0a6dda..bfb7bb3 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializer.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializer.java
@@ -101,7 +101,7 @@
 	 * Configuration property:  Add <js>"_type"</js> properties when needed.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.json.JsonSerializer#JSON_addBeanTypes JSON_addBeanTypes}
 	 * 	<li><b>Name:</b>  <js>"JsonSerializer.addBeanTypes.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -134,7 +134,7 @@
 	 * Configuration property:  Prefix solidus <js>'/'</js> characters with escapes.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.json.JsonSerializer#JSON_escapeSolidus JSON_escapeSolidus}
 	 * 	<li><b>Name:</b>  <js>"JsonSerializer.escapeSolidus.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -186,7 +186,7 @@
 	 * Configuration property:  Simple JSON mode.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.json.JsonSerializer#JSON_simpleMode JSON_simpleMode}
 	 * 	<li><b>Name:</b>  <js>"JsonSerializer.simpleMode.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/annotation/Json.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/annotation/Json.java
index 98a917f..cb9dab8 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/annotation/Json.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/annotation/Json.java
@@ -43,9 +43,8 @@
 	 * Used in conjunction with the {@link JsonConfig#applyJson()}.
 	 * It is ignored when the annotation is applied directly to classes/methods/fields.
 	 *
-	 * <p>
-	 * The valid pattern matches are:
-	 * <ul>
+	 * <h5 class='section'>Valid patterns:</h5>
+	 * <ul class='spaced-list'>
 	 *  <li>Classes:
 	 * 		<ul>
 	 * 			<li>Fully qualified:
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/annotation/JsonConfig.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/annotation/JsonConfig.java
index f6c0de2..142ac72 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/annotation/JsonConfig.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/annotation/JsonConfig.java
@@ -79,8 +79,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"JsonParser.validateEnd.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -113,8 +111,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"JsonSerializer.addBeanTypes.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -141,8 +137,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"JsonSerializer.escapeSolidus.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -182,8 +176,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"JsonSerializer.simpleMode.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java
index 15e957f..b7a8f0a 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java
@@ -38,7 +38,7 @@
 	 * Configuration property:  Add descriptions to types.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jsonschema.JsonSchemaGenerator#JSONSCHEMA_addDescriptionsTo JSONSCHEMA_addDescriptionsTo}
 	 * 	<li><b>Name:</b>  <js>"JsonSchemaGenerator.addDescriptionsTo.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
@@ -82,7 +82,7 @@
 	 * Configuration property:  Add examples.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jsonschema.JsonSchemaGenerator#JSONSCHEMA_addExamplesTo JSONSCHEMA_addExamplesTo}
 	 * 	<li><b>Name:</b>  <js>"JsonSchemaGenerator.addExamplesTo.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
@@ -132,7 +132,7 @@
 	 * Configuration property:  Allow nested descriptions.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jsonschema.JsonSchemaGenerator#JSONSCHEMA_allowNestedDescriptions JSONSCHEMA_allowNestedDescriptions}
 	 * 	<li><b>Name:</b>  <js>"JsonSchemaGenerator.allowNestedDescriptions.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -160,7 +160,7 @@
 	 * Configuration property:  Allow nested examples.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jsonschema.JsonSchemaGenerator#JSONSCHEMA_allowNestedExamples JSONSCHEMA_allowNestedExamples}
 	 * 	<li><b>Name:</b>  <js>"JsonSchemaGenerator.allowNestedExamples.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -188,7 +188,7 @@
 	 * Configuration property:  Bean schema definition mapper.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jsonschema.JsonSchemaGenerator#JSONSCHEMA_beanDefMapper JSONSCHEMA_beanDefMapper}
 	 * 	<li><b>Name:</b>  <js>"JsonSchemaGenerator.beanDefMapper.o"</js>
 	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.jsonschema.BeanDefMapper}
@@ -219,7 +219,7 @@
 	 * Configuration property:  Default schemas.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jsonschema.JsonSchemaGenerator#JSONSCHEMA_defaultSchemas JSONSCHEMA_defaultSchemas}
 	 * 	<li><b>Name:</b>  <js>"JsonSchemaGenerator.defaultSchema.smo"</js>
 	 * 	<li><b>Data type:</b>  <c>Map&lt;String,{@link org.apache.juneau.ObjectMap}&gt;</c>
@@ -249,7 +249,7 @@
 	 * Configuration property:  Ignore types from schema definitions.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jsonschema.JsonSchemaGenerator#JSONSCHEMA_ignoreTypes JSONSCHEMA_ignoreTypes}
 	 * 	<li><b>Name:</b>  <js>"JsonSchemaGenerator.ignoreTypes.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c> (comma-delimited)
@@ -270,7 +270,7 @@
 	 *
 	 * <h5 class='section'>Example:</h5>
 	 * <p class='bcode w800'>
-	 * 	<jc>// Don't generate schema for any prototype packages or the class named 'Swagger'.
+	 * 	<jc>// Don't generate schema for any prototype packages or the class named 'Swagger'.</jc>
 	 * 	<ja>@Rest</ja>(
 	 * 			properties={
 	 * 				<ja>@Property</ja>(name=<jsf>JSONSCHEMA_ignoreTypes</jsf>, value=<js>"Swagger,*.proto.*"</js>)
@@ -284,7 +284,7 @@
 	 * Configuration property:  Use bean definitions.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.jsonschema.JsonSchemaGenerator#JSONSCHEMA_useBeanDefs JSONSCHEMA_useBeanDefs}
 	 * 	<li><b>Name:</b>  <js>"JsonSchemaGenerator.useBeanDefs.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorBuilder.java
index 931d612..16b8316 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorBuilder.java
@@ -246,7 +246,7 @@
 	 *
 	 * <h5 class='section'>Example:</h5>
 	 * <p class='bcode w800'>
-	 * 	<jc>// Don't generate schema for any prototype packages or the class named 'Swagger'.
+	 * 	<jc>// Don't generate schema for any prototype packages or the class named 'Swagger'.</jc>
 	 * 	<ja>@Rest</ja>(
 	 * 			properties={
 	 * 				<ja>@Property</ja>(name=<jsf>JSONSCHEMA_ignoreTypes</jsf>, value=<js>"Swagger,*.proto.*"</js>)
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/JsonSchemaConfig.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/JsonSchemaConfig.java
index f6ea3bf..697981b 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/JsonSchemaConfig.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/JsonSchemaConfig.java
@@ -71,8 +71,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"JsonSchemaGenerator.addDescriptionsTo.s"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -110,8 +108,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"JsonSchemaGenerator.addDescriptionsTo.s"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -135,8 +131,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"JsonSchemaGenerator.allowNestedDescriptions.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -160,8 +154,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"JsonSchemaGenerator.allowNestedExamples.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -215,8 +207,6 @@
 	 * 		<br>Values are Simple-JSON objects.
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"JsonSchemaGenerator.defaultSchema.smo"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -237,8 +227,6 @@
 	 * 		Format: Comma-delimited list of patterns
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"JsonSchemaGenerator.ignoreTypes.s"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -274,8 +262,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"JsonSchemaGenerator.useBeanDefs.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/Schema.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/Schema.java
index ba3d1d1..1641d5d 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/Schema.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/Schema.java
@@ -727,9 +727,8 @@
 	 * Used in conjunction with the {@link JsonSchemaConfig#applySchema()}.
 	 * It is ignored when the annotation is applied directly to classes/methods/fields.
 	 *
-	 * <p>
-	 * The valid pattern matches are:
-	 * <ul>
+	 * <h5 class='section'>Valid patterns:</h5>
+	 * <ul class='spaced-list'>
 	 *  <li>Classes:
 	 * 		<ul>
 	 * 			<li>Fully qualified:
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
index 029afc1..736aa56 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
@@ -41,7 +41,7 @@
 	 * Configuration property:  Add <js>"_type"</js> properties when needed.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.msgpack.MsgPackSerializer#MSGPACK_addBeanTypes MSGPACK_addBeanTypes}
 	 * 	<li><b>Name:</b>  <js>"MsgPackSerializer.addBeanTypes.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/annotation/MsgPack.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/annotation/MsgPack.java
index 4a3fd38..925ac55 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/annotation/MsgPack.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/annotation/MsgPack.java
@@ -38,9 +38,8 @@
 	 * Used in conjunction with the {@link MsgPackConfig#applyMsgPack()}.
 	 * It is ignored when the annotation is applied directly to classes/methods/fields.
 	 *
-	 * <p>
-	 * The valid pattern matches are:
-	 * <ul>
+	 * <h5 class='section'>Valid patterns:</h5>
+	 * <ul class='spaced-list'>
 	 *  <li>Classes:
 	 * 		<ul>
 	 * 			<li>Fully qualified:
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/annotation/MsgPackConfig.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/annotation/MsgPackConfig.java
index 5672d53..34190f3 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/annotation/MsgPackConfig.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/annotation/MsgPackConfig.java
@@ -83,8 +83,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"MsgPackSerializer.addBeanTypes.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/annotation/OpenApi.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/annotation/OpenApi.java
index 534e06b..3252e5a 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/annotation/OpenApi.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/annotation/OpenApi.java
@@ -38,9 +38,8 @@
 	 * Used in conjunction with the {@link OpenApiConfig#applyOpenApi()}.
 	 * It is ignored when the annotation is applied directly to classes/methods/fields.
 	 *
-	 * <p>
-	 * The valid pattern matches are:
-	 * <ul>
+	 * <h5 class='section'>Valid patterns:</h5>
+	 * <ul class='spaced-list'>
 	 *  <li>Classes:
 	 * 		<ul>
 	 * 			<li>Fully qualified:
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/InputStreamParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/InputStreamParser.java
index 14fa487..772b1e8 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/InputStreamParser.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/InputStreamParser.java
@@ -39,7 +39,7 @@
 	 * Configuration property:  Binary input format.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.parser.InputStreamParser#ISPARSER_binaryFormat ISPARSER_binaryFormat}
 	 * 	<li><b>Name:</b>  <js>"InputStreamParser.binaryFormat.s"</js>
 	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.BinaryFormat}
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/Parser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/Parser.java
index c683f7d..b4dadc7 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/Parser.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/Parser.java
@@ -129,7 +129,7 @@
 	 * Configuration property:  Auto-close streams.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.parser.Parser#PARSER_autoCloseStreams PARSER_autoCloseStreams}
 	 * 	<li><b>Name:</b>  <js>"Parser.autoCloseStreams.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -179,7 +179,7 @@
 	 * Configuration property:  Debug output lines.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.parser.Parser#PARSER_debugOutputLines PARSER_debugOutputLines}
 	 * 	<li><b>Name:</b>  <js>"Parser.debugOutputLines.i"</js>
 	 * 	<li><b>Data type:</b>  <jk>int</jk>
@@ -232,7 +232,7 @@
 	 * Configuration property:  Parser listener.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.parser.Parser#PARSER_listener PARSER_listener}
 	 * 	<li><b>Name:</b>  <js>"Parser.listener.c"</js>
 	 * 	<li><b>Data type:</b>  <c>Class&lt;{@link org.apache.juneau.parser.ParserListener}&gt;</c>
@@ -300,7 +300,7 @@
 	 * Configuration property:  Strict mode.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.parser.Parser#PARSER_strict PARSER_strict}
 	 * 	<li><b>Name:</b>  <js>"Parser.strict.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -380,7 +380,7 @@
 	 * Configuration property:  Trim parsed strings.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.parser.Parser#PARSER_trimStrings PARSER_trimStrings}
 	 * 	<li><b>Name:</b>  <js>"Parser.trimStrings.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -430,7 +430,7 @@
 	 * Configuration property:  Unbuffered.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.parser.Parser#PARSER_unbuffered PARSER_unbuffered}
 	 * 	<li><b>Name:</b>  <js>"Parser.unbuffered.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java
index fc1b55f..7c45380 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java
@@ -277,7 +277,7 @@
 	protected final ClassMeta<?> getClassMeta(String typeName, BeanPropertyMeta pMeta, ClassMeta<?> eType) {
 		BeanRegistry br = null;
 
-		// Resolve via @@Beanp(dictionary={})
+		// Resolve via @Beanp(dictionary={})
 		if (pMeta != null) {
 			br = pMeta.getBeanRegistry();
 			if (br != null && br.hasName(typeName))
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParser.java
index 8619d83..885fe38 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParser.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParser.java
@@ -42,7 +42,7 @@
 	 * Configuration property:  File charset.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.parser.ReaderParser#RPARSER_fileCharset RPARSER_fileCharset}
 	 * 	<li><b>Name:</b>  <js>"ReaderParser.fileCharset.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
@@ -94,7 +94,7 @@
 	 * Configuration property:  Input stream charset.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.parser.ReaderParser#RPARSER_streamCharset RPARSER_streamCharset}
 	 * 	<li><b>Name:</b>  <js>"ReaderParser.streamCharset.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/annotation/ParserConfig.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/annotation/ParserConfig.java
index 47d553c..b5e62f3 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/annotation/ParserConfig.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/annotation/ParserConfig.java
@@ -67,8 +67,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"InputStreamParser.binaryFormat.s"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -97,8 +95,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Parser.autoCloseStreams.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -121,8 +117,6 @@
 	 * 		Default: 5
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Parser.debugOutputLines.i"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -186,8 +180,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Parser.strict.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -212,8 +204,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Parser.trimStrings.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -254,8 +244,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Parser.unbuffered.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -282,8 +270,6 @@
 	 * 		<js>"DEFAULT"</js> can be used to indicate the JVM default file system charset.
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"ReaderParser.fileCharset.s"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -306,8 +292,6 @@
 	 * 		<js>"DEFAULT"</js> can be used to indicate the JVM default file system charset.
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"ReaderParser.inputStreamCharset.s"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/annotation/PlainText.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/annotation/PlainText.java
index c57fc8b..891e7d2 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/annotation/PlainText.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/annotation/PlainText.java
@@ -38,9 +38,8 @@
 	 * Used in conjunction with the {@link PlainTextConfig#applyPlainText()}.
 	 * It is ignored when the annotation is applied directly to classes/methods/fields.
 	 *
-	 * <p>
-	 * The valid pattern matches are:
-	 * <ul>
+	 * <h5 class='section'>Valid patterns:</h5>
+	 * <ul class='spaced-list'>
 	 *  <li>Classes:
 	 * 		<ul>
 	 * 			<li>Fully qualified:
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ClassInfo.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ClassInfo.java
index 804df44..2e5760d 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ClassInfo.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ClassInfo.java
@@ -1795,15 +1795,15 @@
 	 *
 	 * <h5 class='section'>Examples:</h5>
 	 * <ul>
-	 * 	<li><js>"com.foo.MyClass"<js> - Normal class
-	 * 	<li><js>"com.foo.MyClass[][]"<js> - Array.
-	 * 	<li><js>"com.foo.MyClass$InnerClass"<js> - Inner class.
-	 * 	<li><js>"com.foo.MyClass$InnerClass[][]"<js> - Inner class array.
-	 * 	<li><js>"int"<js> - Primitive class.
-	 * 	<li><js>"int[][]"<js> - Primitive class class.
-	 * 	<li><js>"java.util.Map&lt;java.lang.String,java.lang.Object&gt;"<js> - Parameterized type.
-	 * 	<li><js>"java.util.AbstractMap&lt;K,V&gt;"<js> - Parameterized generic type.
-	 * 	<li><js>"V"<js> - Parameterized generic type argument.
+	 * 	<li><js>"com.foo.MyClass"</js> - Normal class
+	 * 	<li><js>"com.foo.MyClass[][]"</js> - Array.
+	 * 	<li><js>"com.foo.MyClass$InnerClass"</js> - Inner class.
+	 * 	<li><js>"com.foo.MyClass$InnerClass[][]"</js> - Inner class array.
+	 * 	<li><js>"int"</js> - Primitive class.
+	 * 	<li><js>"int[][]"</js> - Primitive class class.
+	 * 	<li><js>"java.util.Map&lt;java.lang.String,java.lang.Object&gt;"</js> - Parameterized type.
+	 * 	<li><js>"java.util.AbstractMap&lt;K,V&gt;"</js> - Parameterized generic type.
+	 * 	<li><js>"V"</js> - Parameterized generic type argument.
 	 * </ul>
 	 *
 	 * @return The underlying class name.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ExecutableInfo.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ExecutableInfo.java
index fb6d494..5f28111 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ExecutableInfo.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ExecutableInfo.java
@@ -689,8 +689,8 @@
 	 *
 	 * <h5 class='section'>Examples:</h5>
 	 * <ul>
-	 * 	<li><js>"com.foo.MyClass.get(java.util.String)"<js> - Method.
-	 * 	<li><js>"com.foo.MyClass(java.util.String)"<js> - Constructor.
+	 * 	<li><js>"com.foo.MyClass.get(java.util.String)"</js> - Method.
+	 * 	<li><js>"com.foo.MyClass(java.util.String)"</js> - Constructor.
 	 * </ul>
 	 *
 	 * @return The underlying executable name.
@@ -720,8 +720,8 @@
 	 *
 	 * <h5 class='section'>Examples:</h5>
 	 * <ul>
-	 * 	<li><js>"MyClass.get(String)"<js> - Method.
-	 * 	<li><js>"MyClass(String)"<js> - Constructor.
+	 * 	<li><js>"MyClass.get(String)"</js> - Method.
+	 * 	<li><js>"MyClass(String)"</js> - Constructor.
 	 * </ul>
 	 *
 	 * @return The underlying executable name.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializer.java
index e905735..64c8733 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializer.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializer.java
@@ -31,7 +31,7 @@
 	 * Configuration property:  Binary output format.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.serializer.OutputStreamSerializer#OSSERIALIZER_binaryFormat OSSERIALIZER_binaryFormat}
 	 * 	<li><b>Name:</b>  <js>"OutputStreamSerializer.binaryFormat.s"</js>
 	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.BinaryFormat}
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/Serializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/Serializer.java
index 872e736..fca70bc 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/Serializer.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/Serializer.java
@@ -51,7 +51,7 @@
 	 * Configuration property:  Add <js>"_type"</js> properties when needed.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.serializer.Serializer#SERIALIZER_addBeanTypes SERIALIZER_addBeanTypes}
 	 * 	<li><b>Name:</b>  <js>"Serializer.addBeanTypes.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -118,7 +118,7 @@
 	 * Configuration property:  Add type attribute to root nodes.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.serializer.Serializer#SERIALIZER_addRootType SERIALIZER_addRootType}
 	 * 	<li><b>Name:</b>  <js>"Serializer.addRootType.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -181,7 +181,7 @@
 	 * Configuration property:  Serializer listener.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.serializer.Serializer#SERIALIZER_listener SERIALIZER_listener}
 	 * 	<li><b>Name:</b>  <js>"Serializer.listener.c"</js>
 	 * 	<li><b>Data type:</b>  <c>Class&lt;{@link org.apache.juneau.serializer.SerializerListener}&gt;</c>
@@ -249,7 +249,7 @@
 	 * Configuration property:  Sort arrays and collections alphabetically.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.serializer.Serializer#SERIALIZER_sortCollections SERIALIZER_sortCollections}
 	 * 	<li><b>Name:</b>  <js>"Serializer.sortCollections.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -297,7 +297,7 @@
 	 * Configuration property:  Sort maps alphabetically.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.serializer.Serializer#SERIALIZER_sortMaps SERIALIZER_sortMaps}
 	 * 	<li><b>Name:</b>  <js>"Serializer.sortMaps.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -345,7 +345,7 @@
 	 * Configuration property:  Trim empty lists and arrays.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.serializer.Serializer#SERIALIZER_trimEmptyCollections SERIALIZER_trimEmptyCollections}
 	 * 	<li><b>Name:</b>  <js>"Serializer.trimEmptyCollections.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -399,7 +399,7 @@
 	 * Configuration property:  Trim empty maps.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.serializer.Serializer#SERIALIZER_trimEmptyMaps SERIALIZER_trimEmptyMaps}
 	 * 	<li><b>Name:</b>  <js>"Serializer.trimEmptyMaps.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -450,7 +450,7 @@
 	 * Configuration property:  Trim null bean property values.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.serializer.Serializer#SERIALIZER_trimNullProperties SERIALIZER_trimNullProperties}
 	 * 	<li><b>Name:</b>  <js>"Serializer.trimNullProperties.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -500,7 +500,7 @@
 	 * Configuration property:  Trim strings.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.serializer.Serializer#SERIALIZER_trimStrings SERIALIZER_trimStrings}
 	 * 	<li><b>Name:</b>  <js>"Serializer.trimStrings.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -550,7 +550,7 @@
 	 * Configuration property:  URI context bean.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.serializer.Serializer#SERIALIZER_uriContext SERIALIZER_uriContext}
 	 * 	<li><b>Name:</b>  <js>"Serializer.uriContext.s"</js>
 	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.UriContext}
@@ -615,7 +615,7 @@
 	 * Configuration property:  URI relativity.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.serializer.Serializer#SERIALIZER_uriRelativity SERIALIZER_uriRelativity}
 	 * 	<li><b>Name:</b>  <js>"Serializer.uriRelativity.s"</js>
 	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.UriRelativity}
@@ -673,7 +673,7 @@
 	 * Configuration property:  URI resolution.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.serializer.Serializer#SERIALIZER_uriResolution SERIALIZER_uriResolution}
 	 * 	<li><b>Name:</b>  <js>"Serializer.uriResolution.s"</js>
 	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.UriResolution}
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializer.java
index b91bfc2..71319ca 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializer.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializer.java
@@ -35,7 +35,7 @@
 	 * Configuration property:  File charset.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.serializer.WriterSerializer#WSERIALIZER_fileCharset WSERIALIZER_fileCharset}
 	 * 	<li><b>Name:</b>  <js>"WriterSerializer.fileCharset.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
@@ -87,7 +87,7 @@
 	 * Configuration property:  Maximum indentation.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.serializer.WriterSerializer#WSERIALIZER_maxIndent WSERIALIZER_maxIndent}
 	 * 	<li><b>Name:</b>  <js>"WriterSerializer.maxIndent.i"</js>
 	 * 	<li><b>Data type:</b>  <jk>int</jk>
@@ -133,7 +133,7 @@
 	 * Configuration property:  Quote character.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.serializer.WriterSerializer#WSERIALIZER_quoteChar WSERIALIZER_quoteChar}
 	 * 	<li><b>Name:</b>  <js>"WriterSerializer.quoteChar.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
@@ -180,7 +180,7 @@
 	 * Configuration property:  Output stream charset.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.serializer.WriterSerializer#WSERIALIZER_streamCharset WSERIALIZER_streamCharset}
 	 * 	<li><b>Name:</b>  <js>"WriterSerializer.streamCharset.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
@@ -229,7 +229,7 @@
 	 * Configuration property:  Use whitespace.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.serializer.WriterSerializer#WSERIALIZER_useWhitespace WSERIALIZER_useWhitespace}
 	 * 	<li><b>Name:</b>  <js>"WriterSerializer.useWhitespace.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/annotation/SerializerConfig.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/annotation/SerializerConfig.java
index c3a6d86..f3975d6 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/annotation/SerializerConfig.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/annotation/SerializerConfig.java
@@ -63,8 +63,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"OutputStreamSerializer.binaryFormat.s"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -105,8 +103,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Serializer.addBeanTypes.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -142,8 +138,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Serializer.addRootType.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -182,8 +176,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Serializer.sortCollections.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -210,8 +202,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Serializer.sortMaps.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -244,8 +234,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Serializer.trimEmptyCollections.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -276,8 +264,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Serializer.trimEmptyMaps.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -308,8 +294,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Serializer.trimNullProperties.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -333,8 +317,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Serializer.trimStrings.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -355,8 +337,6 @@
 	 * 		Format: JSON object representing a {@link UriContext}
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Serializer.uriContext.s"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -385,8 +365,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Serializer.uriRelativity.s"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -417,8 +395,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Serializer.uriResolution.s"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -451,8 +427,6 @@
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
 	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"WriterSerializer.fileCharset.s"</js>.
-	 * 	<li>
 	 * 		This setting does not apply to the RDF serializers.
 	 * </ul>
 	 *
@@ -476,8 +450,6 @@
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
 	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"WriterSerializer.maxIndent.i"</js>.
-	 * 	<li>
 	 * 		This setting does not apply to the RDF serializers.
 	 * </ul>
 	 *
@@ -495,12 +467,10 @@
 	 *
 	 * <ul class='notes'>
 	 * 	<li>
-	 * 		Default: "
+	 * 		Default: <c>"</c>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
 	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"WriterSerializer.quoteChar.s"</js>.
-	 * 	<li>
 	 * 		This setting does not apply to the RDF serializers.
 	 * </ul>
 	 *
@@ -527,8 +497,6 @@
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
 	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"WriterSerializer.streamCharset.s"</js>.
-	 * 	<li>
 	 * 		This setting does not apply to the RDF serializers.
 	 * </ul>
 	 *
@@ -553,8 +521,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"Serializer.useWhitespace.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializer.java
index 9dd55ec..a53ffed 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializer.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializer.java
@@ -46,7 +46,7 @@
 	 * Configuration property:  The <c>SOAPAction</c> HTTP header value to set on responses.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.soap.SoapXmlSerializer#SOAPXML_SOAPAction SOAPXML_SOAPAction}
 	 * 	<li><b>Name:</b>  <js>"SoapXmlSerializer.SOAPAction.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/annotation/SoapXml.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/annotation/SoapXml.java
index 836087c..7edc8b4 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/annotation/SoapXml.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/annotation/SoapXml.java
@@ -37,9 +37,9 @@
 	 * <p>
 	 * Used in conjunction with the {@link SoapXmlConfig#applySoapXml()}.
 	 * It is ignored when the annotation is applied directly to classes/methods/fields.
-	 * <p>
-	 * The valid pattern matches are:
-	 * <ul>
+	 *
+	 * <h5 class='section'>Valid patterns:</h5>
+	 * <ul class='spaced-list'>
 	 *  <li>Classes:
 	 * 		<ul>
 	 * 			<li>Fully qualified:
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/Var.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/Var.java
index d95d9ae..39727a8 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/Var.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/Var.java
@@ -115,10 +115,10 @@
 	 * The default implementation of this method always returns <jk>true</jk>.
 	 * <br>Subclasses can override this method to override the default behavior.
 	 *
-	 * <h5 class='topic'>Important Note</h5>
-	 * <p>
+	 * <div class='warn'>
 	 * As a general rule, variables that resolve user-entered data should not be recursively resolved as this may
 	 * cause a security hole.
+	 * </div>
 	 *
 	 * @return <jk>true</jk> if resolved variables should be recursively resolved.
 	 */
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BeanFilterBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BeanFilterBuilder.java
index cf2610f..9669e7b 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BeanFilterBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BeanFilterBuilder.java
@@ -131,7 +131,9 @@
 	/**
 	 * Configuration property:  Bean property includes.
 	 *
-	 * @deprecated Use {@link #bpi(String...)}
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #bpi(String...)}
+	 * </div>
 	 */
 	@SuppressWarnings("javadoc")
 	@Deprecated public BeanFilterBuilder<T> properties(String...value) {
@@ -144,7 +146,9 @@
 	/**
 	 * Configuration property:  Bean property excludes.
 	 *
-	 * @deprecated Use {@link #bpx(String...)}
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #bpx(String...)}
+	 * </div>
 	 */
 	@SuppressWarnings("javadoc")
 	@Deprecated public BeanFilterBuilder<T> excludeProperties(String...value) {
@@ -430,6 +434,10 @@
 	/**
 	 * Configuration property:  Bean dictionary.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #dictionary(Class...)}
+	 * </div>
+	 *
 	 * <p>
 	 * Adds to the list of classes that make up the bean dictionary for this bean.
 	 *
@@ -461,7 +469,6 @@
 	 * @param values
 	 * 	The values to add to this property.
 	 * @return This object (for method chaining).
-	 * @deprecated Use {@link #dictionary(Class...)}.
 	 */
 	@Deprecated
 	public BeanFilterBuilder<T> beanDictionary(Class<?>...values) {
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/Surrogate.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/Surrogate.java
index dda5398..751789b 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/Surrogate.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/Surrogate.java
@@ -60,6 +60,7 @@
  * 		.build();
  * </p>
  *
+ * <p>
  * Surrogates can also be associated using the {@link Swap @Swap} annotation.
  * <p class='bcode w800'>
  * 	<ja>@Swap</ja>(MySurrogate.<jk>class</jk>)
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transforms/ByteArrayBase64Swap.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transforms/ByteArrayBase64Swap.java
index a9d3ac1..2ec76cd 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transforms/ByteArrayBase64Swap.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transforms/ByteArrayBase64Swap.java
@@ -19,7 +19,10 @@
 
 /**
  * Transforms <code><jk>byte</jk>[]</code> arrays to BASE-64 encoded {@link String Strings}.
- * @deprecated Use {@link ByteArraySwap}
+ *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link ByteArraySwap}
+ * </div>
  */
 @Deprecated
 public class ByteArrayBase64Swap extends StringSwap<byte[]> {
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transforms/CalendarLongSwap.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transforms/CalendarLongSwap.java
index 844be81..f84cf5a 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transforms/CalendarLongSwap.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transforms/CalendarLongSwap.java
@@ -20,7 +20,9 @@
 /**
  * Transforms {@link Calendar Calendars} to {@link Long Longs} using {@code Calender.getTime().getTime()}.
  *
- * @deprecated Use {@link TemporalCalendarSwap}
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link TemporalCalendarSwap}
+ * </div>
  */
 @Deprecated
 public class CalendarLongSwap extends PojoSwap<Calendar,Long> {
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transforms/CalendarMapSwap.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transforms/CalendarMapSwap.java
index 227faf5..8ba762d 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transforms/CalendarMapSwap.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transforms/CalendarMapSwap.java
@@ -20,7 +20,9 @@
 /**
  * Transforms {@link Calendar Calendars} to {@link Map Maps} of the format <c>{time:long,timeZone:string}</c>.
  *
- * @deprecated Use {@link TemporalCalendarSwap}
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link TemporalCalendarSwap}
+ * </div>
  */
 @Deprecated
 @SuppressWarnings("rawtypes")
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transforms/CalendarSwap.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transforms/CalendarSwap.java
index 3c54828..2980ce0 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transforms/CalendarSwap.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transforms/CalendarSwap.java
@@ -54,7 +54,9 @@
  * 	<li>{@link DateTimeShort} - To {@link DateFormat#SHORT} date-time strings.
  * </ul>
  *
- * @deprecated Use {@link TemporalCalendarSwap}
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link TemporalCalendarSwap}
+ * </div>
  */
 @Deprecated
 public class CalendarSwap extends StringSwap<Calendar> {
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transforms/DateLongSwap.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transforms/DateLongSwap.java
index bc489fc..c0b7c97 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transforms/DateLongSwap.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transforms/DateLongSwap.java
@@ -21,7 +21,9 @@
 /**
  * Transforms {@link Date Dates} to {@link Long Longs}.
  *
- * @deprecated Use {@link TemporalDateSwap}
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link TemporalDateSwap}
+ * </div>
  */
 @Deprecated
 public class DateLongSwap extends PojoSwap<Date,Long> {
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transforms/DateMapSwap.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transforms/DateMapSwap.java
index 22a8c95..5802ff9 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transforms/DateMapSwap.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transforms/DateMapSwap.java
@@ -21,7 +21,9 @@
 /**
  * Transforms {@link Date Dates} to {@link Map Maps} of the format <tt>{value:long}</tt>.
  *
- * @deprecated Use {@link TemporalDateSwap}
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link TemporalDateSwap}
+ * </div>
  */
 @Deprecated
 @SuppressWarnings("rawtypes")
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transforms/DateSwap.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transforms/DateSwap.java
index d6a92dd..9d3eda4 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transforms/DateSwap.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transforms/DateSwap.java
@@ -54,7 +54,9 @@
  * 	<li>{@link DateTimeShort} - To {@link DateFormat#SHORT} date-time strings.
  * </ul>
  *
- * @deprecated Use {@link TemporalDateSwap}
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link TemporalDateSwap}
+ * </div>
  */
 @Deprecated
 public class DateSwap extends StringSwap<Date> {
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParser.java
index c375195..bd47d98 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParser.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParser.java
@@ -45,7 +45,7 @@
 	 * Configuration property: Decode <js>"%xx"</js> sequences.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.uon.UonParser#UON_decoding UON_decoding}
 	 * 	<li><b>Name:</b>  <js>"UonParser.decoding.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -83,7 +83,7 @@
 	 * 		.set(<jsf>UON_decoding</jsf>, <jk>true</jk>)
 	 * 		.build();
 	 *
-	 * <jc>// Produces: ["foo bar", "baz quz"].</jc>
+	 *  <jc>// Produces: ["foo bar", "baz quz"].</jc>
 	 * 	String[] foo = p.parse(<js>"@(foo%20bar,baz%20qux)"</js>, String[].<jk>class</jk>);
 	 * </p>
 	 */
@@ -93,7 +93,7 @@
 	 * Configuration property:  Validate end.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.uon.UonParser#UON_validateEnd UON_validateEnd}
 	 * 	<li><b>Name:</b>  <js>"UonParser.validateEnd.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializer.java
index 0acdd86..729456f 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializer.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializer.java
@@ -130,7 +130,7 @@
 	 * Configuration property:  Add <js>"_type"</js> properties when needed.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.uon.UonSerializer#UON_addBeanTypes UON_addBeanTypes}
 	 * 	<li><b>Name:</b>  <js>"UonSerializer.addBeanTypes.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -163,7 +163,7 @@
 	 * Configuration property:  Encode non-valid URI characters.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.uon.UonSerializer#UON_encoding UON_encoding}
 	 * 	<li><b>Name:</b>  <js>"UonSerializer.encoding.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -219,7 +219,7 @@
 	 * Configuration property:  Format to use for query/form-data/header values.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.uon.UonSerializer#UON_paramFormat UON_paramFormat}
 	 * 	<li><b>Name:</b>  <js>"UonSerializer.paramFormat.s"</js>
 	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.uon.ParamFormat}
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/annotation/Uon.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/annotation/Uon.java
index 8526da0..d726d11 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/annotation/Uon.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/annotation/Uon.java
@@ -38,9 +38,8 @@
 	 * Used in conjunction with the {@link UonConfig#applyUon()}.
 	 * It is ignored when the annotation is applied directly to classes/methods/fields.
 	 *
-	 * <p>
-	 * The valid pattern matches are:
-	 * <ul>
+	 * <h5 class='section'>Valid patterns:</h5>
+	 * <ul class='spaced-list'>
 	 *  <li>Classes:
 	 * 		<ul>
 	 * 			<li>Fully qualified:
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/annotation/UonConfig.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/annotation/UonConfig.java
index c70312f..d821fe9 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/annotation/UonConfig.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/annotation/UonConfig.java
@@ -82,8 +82,6 @@
 	 * 		The default is <js>"false"</js> for {@link UonParser}, <js>"true"</js> for {@link UrlEncodingParser}.
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"UonParser.decoding.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -108,8 +106,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"UonParser.validateEnd.b"</js>.
 	 * </ul>
 
 	 * <ul class='seealso'>
@@ -142,8 +138,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"UonSerializer.addBeanTypes.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -181,8 +175,6 @@
 	 * 		The default is <js>"false"</js> for {@link UonSerializer}, <js>"true"</js> for {@link UrlEncodingSerializer}.
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"UonSerializer.encoding.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -206,8 +198,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"UonSerializer.paramFormat.s"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
index 565239a..3470fdf 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
@@ -50,7 +50,7 @@
 	 * Configuration property:  Parser bean property collections/arrays as separate key/value pairs.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.urlencoding.UrlEncodingParser#URLENC_expandedParams URLENC_expandedParams}
 	 * 	<li><b>Name:</b>  <js>"UrlEncodingParser.expandedParams.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java
index b9bbe2c..f8c5aea 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java
@@ -127,7 +127,7 @@
 	 * Configuration property:  Serialize bean property collections/arrays as separate key/value pairs.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.urlencoding.UrlEncodingSerializer#URLENC_expandedParams URLENC_expandedParams}
 	 * 	<li><b>Name:</b>  <js>"UrlEncodingSerializer.expandedParams.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -175,7 +175,7 @@
 	 * 	<jc>// Expanded-params serializer.</jc>
 	 * 	WriterSerializer s2 = UrlEncodingSerializer.<jsm>create</jsm>().expandedParams().build();
 	 *
-	 * <jc>// Produces "f1=(a,b)&amp;f2=(c,d)"</jc>
+	 *  <jc>// Produces "f1=(a,b)&amp;f2=(c,d)"</jc>
 	 * 	String ss1 = s1.serialize(<jk>new</jk> A());
 	 *
 	 * 	<jc>// Produces "f1=a&amp;f1=b&amp;f2=c&amp;f2=d"</jc>
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncoding.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncoding.java
index 8f87cc1..2382430 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncoding.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncoding.java
@@ -45,9 +45,8 @@
 	 * Used in conjunction with the {@link UrlEncodingConfig#applyUrlEncoding()}.
 	 * It is ignored when the annotation is applied directly to classes/methods/fields.
 	 *
-	 * <p>
-	 * The valid pattern matches are:
-	 * <ul>
+	 * <h5 class='section'>Valid patterns:</h5>
+	 * <ul class='spaced-list'>
 	 *  <li>Classes:
 	 * 		<ul>
 	 * 			<li>Fully qualified:
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncodingConfig.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncodingConfig.java
index d960119..1113157 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncodingConfig.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncodingConfig.java
@@ -87,8 +87,6 @@
 	 * 		This option only applies to beans.
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"UrlEncodingSerializer.expandedParams.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/BeanDiff.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/BeanDiff.java
index 3cb3e4f..25e7230 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/BeanDiff.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/BeanDiff.java
@@ -22,7 +22,9 @@
 /**
  * Utility class for comparing two versions of a POJO.
  *
- * <p class='bpcode w800'>
+ * <p>
+ *
+ * <p class='bcode w800'>
  * 	<jc>// Two beans to compare.</jc>
  * 	MyBean bean1, bean2;
  *
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/CalendarUtils.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/CalendarUtils.java
index aa94513..01dae27 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/CalendarUtils.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/CalendarUtils.java
@@ -41,7 +41,7 @@
 		 * 	<li><js>"2001-07-04T15:30:45"</js>
 		 * </ul>
 		 *
-		 * <h5 class='topic'>Example input:</h5>
+		 * <h5 class='section'>Example input:</h5>
 		 * <ul>
 		 * 	<li><js>"2001-07-04T15:30:45"</js>
 		 * 	<li><js>"2001-07-04T15:30:45.1"</js>
@@ -62,7 +62,7 @@
 		 * 	<li><js>"2001-07-04T15:30:45Z"</js>
 		 * </ul>
 		 *
-		 * <h5 class='topic'>Example input:</h5>
+		 * <h5 class='section'>Example input:</h5>
 		 * <ul>
 		 * 	<li><js>"2001-07-04T15:30:45-05:00"</js>
 		 * 	<li><js>"2001-07-04T15:30:45Z"</js>
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/ClasspathResourceManager.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/ClasspathResourceManager.java
index 960d4c9..2d08217 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/ClasspathResourceManager.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/ClasspathResourceManager.java
@@ -91,7 +91,7 @@
 	 *
 	 * @param baseClass
 	 * 	Overrides the default class to use for retrieving the classpath resource.
-	 * 	<br>If <jk>null<jk>, uses the base class passed in through the constructor of this class.
+	 * 	<br>If <jk>null</jk>, uses the base class passed in through the constructor of this class.
 	 * @param name Name of the desired resource.
 	 * @param locale The locale.  Can be <jk>null</jk>.
 	 * @return An input stream to the object, or <jk>null</jk> if the resource could not be found.
@@ -135,7 +135,7 @@
 	 *
 	 * @param baseClass
 	 * 	Overrides the default class to use for retrieving the classpath resource.
-	 * 	<br>If <jk>null<jk>, uses the base class passed in through the constructor of this class.
+	 * 	<br>If <jk>null</jk>, uses the base class passed in through the constructor of this class.
 	 * @param name Name of the desired resource.
 	 * @return The resource converted to a string, or <jk>null</jk> if the resource could not be found.
 	 * @throws IOException Thrown by underlying stream.
@@ -161,7 +161,7 @@
 	 *
 	 * @param baseClass
 	 * 	Overrides the default class to use for retrieving the classpath resource.
-	 * 	<br>If <jk>null<jk>, uses the base class passed in through the constructor of this class.
+	 * 	<br>If <jk>null</jk>, uses the base class passed in through the constructor of this class.
 	 * @param name Name of the desired resource.
 	 * @param locale The locale.  Can be <jk>null</jk>.
 	 * @return The resource converted to a string, or <jk>null</jk> if the resource could not be found.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/IOPipe.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/IOPipe.java
index 15b57c0..9e95d16 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/IOPipe.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/IOPipe.java
@@ -28,7 +28,7 @@
  * <p class='bcode w800'>
  * 	InputStream in = getInputStream();
  * 	Writer out = getWriter();
- * 	IOPipe.create(in, out).closeOut().run();
+ * 	IOPipe.<jsm>create</jsm>(in, out).closeOut().run();
  * </p>
  *
  * <p>
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/MockHttpConnection.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/MockHttpConnection.java
index 9791878..577adcc 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/MockHttpConnection.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/MockHttpConnection.java
@@ -19,7 +19,9 @@
  * Used as a shim between the server and client APIs that allow the <c>RestClient</c>
  * class to send and receive mocked requests using the <c>MockRest</c> interface.
  *
- * @deprecated Use <c>org.apache.juneau.rest.mock2</c>
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use <c>org.apache.juneau.rest.mock2</c>
+ * </div>
  */
 @Deprecated
 public interface MockHttpConnection {
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/MockHttpRequest.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/MockHttpRequest.java
index e16e4cf..dfb64a9 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/MockHttpRequest.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/MockHttpRequest.java
@@ -19,7 +19,9 @@
  * Used as a shim between the server and client APIs that allow the <c>RestClient</c>
  * class to send and receive mocked requests using the <c>MockRest</c> interface.
  *
- * @deprecated Use <c>org.apache.juneau.rest.mock2</c>
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use <c>org.apache.juneau.rest.mock2</c>
+ * </div>
  */
 @Deprecated
 public interface MockHttpRequest {
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/MockHttpResponse.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/MockHttpResponse.java
index 8d52006..391b095 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/MockHttpResponse.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/MockHttpResponse.java
@@ -21,7 +21,9 @@
  * Used as a shim between the server and client APIs that allow the <c>RestClient</c>
  * class to send and receive mocked requests using the <c>MockRest</c> interface.
  *
- * @deprecated Use <c>org.apache.juneau.rest.mock2</c>
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use <c>org.apache.juneau.rest.mock2</c>
+ * </div>
  */
 @Deprecated
 public interface MockHttpResponse {
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParser.java
index a018d2c..308b6e4 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParser.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParser.java
@@ -46,7 +46,7 @@
 	 * Configuration property:  XML event allocator.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.xml.XmlParser#XML_eventAllocator XML_eventAllocator}
 	 * 	<li><b>Name:</b>  <js>"XmlParser.eventAllocator.c"</js>
 	 * 	<li><b>Data type:</b>  <code>Class&lt;{@link javax.xml.stream.util.XMLEventAllocator}&gt;</code>
@@ -72,7 +72,7 @@
 	 * Configuration property:  Preserve root element during generalized parsing.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.xml.XmlParser#XML_preserveRootElement XML_preserveRootElement}
 	 * 	<li><b>Name:</b>  <js>"XmlParser.preserveRootElement.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -125,7 +125,7 @@
 	 * Configuration property:  XML reporter.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.xml.XmlParser#XML_reporter XML_reporter}
 	 * 	<li><b>Name:</b>  <js>"XmlParser.reporter.c"</js>
 	 * 	<li><b>Data type:</b>  <code>Class&lt;{@link javax.xml.stream.XMLReporter}&gt;</code>
@@ -156,7 +156,7 @@
 	 * Configuration property:  XML resolver.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.xml.XmlParser#XML_resolver XML_resolver}
 	 * 	<li><b>Name:</b>  <js>"XmlParser.resolver.c"</js>
 	 * 	<li><b>Data type:</b>  <code>Class&lt;{@link javax.xml.stream.XMLResolver}&gt;</code>
@@ -182,7 +182,7 @@
 	 * Configuration property:  Enable validation.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.xml.XmlParser#XML_validating XML_validating}
 	 * 	<li><b>Name:</b>  <js>"XmlParser.validating.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java
index 8d14743..5cde6f1 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java
@@ -78,6 +78,7 @@
  * <p>
  * An additional "add-json-properties" mode is also provided to prevent loss of JSON data types...
  * <p class='bcode w800'>
+ * 	<xt>&lt;object&gt;</xt>
  * 		<xt>&lt;name</xt> <xa>_type</xa>=<xs>'string'</xs><xt>&gt;</xt>John Smith<xt>&lt;/name&gt;</xt>
  * 		<xt>&lt;address</xt> <xa>_type</xa>=<xs>'object'</xs><xt>&gt;</xt>
  * 			<xt>&lt;streetAddress</xt> <xa>_type</xa>=<xs>'string'</xs><xt>&gt;</xt>21 2nd Street<xt>&lt;/streetAddress&gt;</xt>
@@ -126,7 +127,7 @@
 	 * Configuration property:  Add <js>"_type"</js> properties when needed.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.xml.XmlSerializer#XML_addBeanTypes XML_addBeanTypes}
 	 * 	<li><b>Name:</b>  <js>"XmlSerializer.addBeanTypes.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -159,7 +160,7 @@
 	 * Configuration property:  Add namespace URLs to the root element.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.xml.XmlSerializer#XML_addNamespaceUrisToRoot XML_addNamespaceUrisToRoot}
 	 * 	<li><b>Name:</b>  <js>"XmlSerializer.addNamespaceUrisToRoot.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -195,7 +196,7 @@
 	 * Configuration property:  Auto-detect namespace usage.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.xml.XmlSerializer#XML_autoDetectNamespaces XML_autoDetectNamespaces}
 	 * 	<li><b>Name:</b>  <js>"XmlSerializer.autoDetectNamespaces.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -245,7 +246,7 @@
 	 * Configuration property:  Default namespace.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.xml.XmlSerializer#XML_defaultNamespace XML_defaultNamespace}
 	 * 	<li><b>Name:</b>  <js>"XmlSerializer.defaultNamespace.s"</js>
 	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.xml.Namespace}
@@ -277,7 +278,7 @@
 	 * Configuration property:  Enable support for XML namespaces.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.xml.XmlSerializer#XML_enableNamespaces XML_enableNamespaces}
 	 * 	<li><b>Name:</b>  <js>"XmlSerializer.enableNamespaces.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -309,7 +310,7 @@
 	 * Configuration property:  Default namespaces.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.xml.XmlSerializer#XML_namespaces XML_namespaces}
 	 * 	<li><b>Name:</b>  <js>"XmlSerializer.namespaces.ls"</js>
 	 * 	<li><b>Data type:</b>  <c>Set&lt;{@link org.apache.juneau.xml.Namespace}&gt;</c>
@@ -341,7 +342,7 @@
 	 * Configuration property:  XMLSchema namespace.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.xml.XmlSerializer#XML_xsNamespace XML_xsNamespace}
 	 * 	<li><b>Name:</b>  <js>"XmlSerializer.xsNamespace.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c> ({@link org.apache.juneau.xml.Namespace})
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/annotation/Xml.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/annotation/Xml.java
index b0d7f2f..2899faf 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/annotation/Xml.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/annotation/Xml.java
@@ -89,7 +89,7 @@
 	 *
 	 * 		<jc>// Normally, bean URL properties would be rendered as XML attributes on the bean element.</jc>
 	 * 		<jc>// Override so that it's rendered as an &lt;href&gt;http://foo&lt;/href&gt; child element instead.</jc>
-	 * 		<ja>@@Beanp</ja>(uri=<jk>true</jk>)
+	 * 		<ja>@Beanp</ja>(uri=<jk>true</jk>)
 	 * 		<ja>@Xml</ja>(format=XmlFormat.<jsf>ELEMENT</jsf>}
 	 * 		<jk>public</jk> URL <jf>href</jf> = <jk>new</jk> URL(<js>"http://foo"</js>);
 	 *
@@ -140,9 +140,8 @@
 	 * Used in conjunction with the {@link XmlConfig#applyXml()}.
 	 * It is ignored when the annotation is applied directly to classes/methods/fields.
 	 *
-	 * <p>
-	 * The valid pattern matches are:
-	 * <ul>
+	 * <h5 class='section'>Valid patterns:</h5>
+	 * <ul class='spaced-list'>
 	 *  <li>Classes:
 	 * 		<ul>
 	 * 			<li>Fully qualified:
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/annotation/XmlConfig.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/annotation/XmlConfig.java
index 2113463..97da04c 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/annotation/XmlConfig.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/annotation/XmlConfig.java
@@ -96,8 +96,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"XmlParser.preserveRootElement.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -153,8 +151,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"XmlParser.validating.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -187,8 +183,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"XmlSerializer.addBeanTypes.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -214,8 +208,6 @@
 	 * 		This setting is ignored if {@link XmlSerializer#XML_enableNamespaces} is not enabled.
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"XmlSerializer.addNamespaceUrisToRoot.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -255,8 +247,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"XmlSerializer.autoDetectNamespaces.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -275,8 +265,6 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"XmlSerializer.defaultNamespace.s"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -301,8 +289,6 @@
 	 * 		</ul>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"XmlSerializer.enableNamespaces.b"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -321,8 +307,6 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"XmlSerializer.namespaces.ls"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
@@ -342,8 +326,6 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		Supports {@doc DefaultSvlVariables} (e.g. <js>"$C{myConfigVar}"</js>).
-	 * 	<li>
-	 * 		A default global value can be set via the system property <js>"XmlSerializer.xsNamespace.s"</js>.
 	 * </ul>
 	 *
 	 * <ul class='seealso'>
diff --git a/juneau-doc/src/main/javadoc/resources/juneau-doc.css b/juneau-doc/src/main/javadoc/resources/juneau-doc.css
index d45d0f8..8d2cfb2 100755
--- a/juneau-doc/src/main/javadoc/resources/juneau-doc.css
+++ b/juneau-doc/src/main/javadoc/resources/juneau-doc.css
@@ -423,8 +423,8 @@
     list-style-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgCglpZD0ic3ZnMjgxMCIgCgl4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIAoJeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIAoJaGVpZ2h0PSIxNiIgCgl3aWR0aD0iMjQiIAoJdmVyc2lvbj0iMS4wIiAKCXZpZXdCb3g9IjAgLTEyMCA0ODAgNjAwIj4KICA8c3R5bGU+CiAgICAuaGVhdnkgeyBmb250OiBib2xkIDM1MHB4IHNhbnMtc2VyaWY7IHRleHQtc2hhZG93OiAxcHggMXB4IDFweCBibGFjazt9CiAgPC9zdHlsZT4KCTxkZWZzIGlkPSJkZWZzMjgzNiI+CgkJPGxpbmVhckdyYWRpZW50IGlkPSJsZzEiPgoJCQk8c3RvcCBzdG9wLWNvbG9yPSIjZmZmIiBzdG9wLW9wYWNpdHk9Ii43OTM4MSIgb2Zmc2V0PSIwIi8+CgkJCTxzdG9wIHN0b3AtY29sb3I9IiNmZmYiIHN0b3Atb3BhY2l0eT0iMCIgb2Zmc2V0PSIuODM3ODQiLz4KCQkJPHN0b3Agc3RvcC1jb2xvcj0iI2ZmZiIgc3RvcC1vcGFjaXR5PSIwIiBvZmZzZXQ9IjEiLz4KCQk8L2xpbmVhckdyYWRpZW50PgoJCTxyYWRpYWxHcmFkaWVudCBpZD0ibGcyIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY3k9IjI0MCIgY3g9IjI0MCIgcj0iMjI1Ij4KCQkJPHN0b3Agc3RvcC1jb2xvcj0iI2ZmOTkwMCIgc3RvcC1vcGFjaXR5PSIwIiBvZmZzZXQ9IjAiLz4KCQkJPHN0b3Agc3RvcC1jb2xvcj0iI2ZmYTUwMCIgc3RvcC1vcGFjaXR5PSIuNDEyMzciIG9mZnNldD0iMSIvPgoJCTwvcmFkaWFsR3JhZGllbnQ+CgkJPGxpbmVhckdyYWRpZW50IGlkPSJsZzMiIHkyPSIzMTEuODMiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4Mj0iNDUyLjYiIHkxPSIzMTEuODMiIHgxPSIyNy40MDEiPgoJCQk8c3RvcCBzdG9wLWNvbG9yPSIjY2Q3YjAwIiBvZmZzZXQ9IjAiLz4KCQkJPHN0b3Agc3RvcC1jb2xvcj0iI2EwNjcwMCIgb2Zmc2V0PSIxIi8+CgkJPC9saW5lYXJHcmFkaWVudD4KCQk8bGluZWFyR3JhZGllbnQgaWQ9ImxnNCIgeTI9IjE1Mi43NSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgyPSI0NDEuMTIiIHkxPSIxNTIuNzUiIHgxPSIzOC44ODEiPgoJCQk8c3RvcCBzdG9wLWNvbG9yPSIjZGRhNDVlIiBvZmZzZXQ9IjAiLz4KCQkJPHN0b3Agc3RvcC1jb2xvcj0iI2M5ODMwNCIgb2Zmc2V0PSIxIi8+CgkJPC9saW5lYXJHcmFkaWVudD4KCQk8cmFkaWFsR3JhZGllbnQgaWQ9ImxnNSIgeGxpbms6aHJlZj0iI2xnMSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIGN5PSIxNjcuNSIgY3g9IjE5Ni4wNyIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgtLjU2NzkwIC0xLjQzNDggMS40MDExIC0uNTU0NTYgLTgxLjg3NyA0MjAuMTQpIiByPSIyNDAiLz4KCTwvZGVmcz4KCTxwYXRoIGZpbGw9IiNjMDczMDAiIGQ9Im0yNDAgMGMtMTMyLjM0IDAtMjQwIDEwNy42Ni0yNDAgMjQwczEwNy42NiAyNDAgMjQwIDI0MCAyNDAtMTA3LjY2IDI0MC0yNDAtMTA3LjY2LTI0MC0yNDAtMjQweiIvPgoJPHBhdGggZmlsbD0iI2ZhYjA2NCIgZD0ibTQ2NSAyNDBjMCAxMjQuMDctMTAwLjkzIDIyNS0yMjUgMjI1cy0yMjUtMTAwLjkzLTIyNS0yMjUgMTAwLjkzLTIyNSAyMjUtMjI1IDIyNSAxMDAuOTMgMjI1IDIyNXoiLz4KCTxwYXRoIGZpbGw9InVybCgjbGc0KSIgZD0ibTI0MCAyNzguMDljNzguMTcgMCAxNDUuMzEtNDQuNDMgMjAxLjEyLTEwNy4wMy0yOC43LTgzLjQ5MS0xMDguMDEtMTQzLjY2LTIwMS4xMi0xNDMuNjYtOTMuMTEgMC4wMDEtMTcyLjQyIDYwLjE2OS0yMDEuMTIgMTQzLjY2IDU1LjgxIDYyLjYgMTIyLjk1IDEwNy4wMyAyMDEuMTIgMTA3LjAzeiIgLz4KCTxwYXRoIGZpbGw9InVybCgjbGczKSIgZD0ibTI0MCAyNzguMDljLTc4LjE3IDAtMTQ1LjMxLTQ0LjQzLTIwMS4xMi0xMDcuMDMtNy40MzMgMjEuNjMtMTEuNDc5IDQ0LjgyLTExLjQ3OSA2OC45NCAwIDExNy4yMyA5NS4zNjkgMjEyLjYgMjEyLjYgMjEyLjZzMjEyLjYtOTUuMzcgMjEyLjYtMjEyLjZjMC0yNC4xMi00LjA1LTQ3LjMxLTExLjQ4LTY4Ljk0LTU1LjgxIDYyLjYtMTIyLjk1IDEwNy4wMy0yMDEuMTIgMTA3LjAzeiIvPgoJPHBhdGggZmlsbD0idXJsKCNsZzUpIiBkPSJtNDY1IDI0MGMwIDEyNC4wNy0xMDAuOTMgMjI1LTIyNSAyMjVzLTIyNS0xMDAuOTMtMjI1LTIyNSAxMDAuOTMtMjI1IDIyNS0yMjUgMjI1IDEwMC45MyAyMjUgMjI1eiIgZmlsbC1ydWxlPSJldmVub2RkIi8+Cgk8cGF0aCBmaWxsPSJ1cmwoI2xnMikiIGQ9Im00NjUgMjQwYzAgMTI0LjA3LTEwMC45MyAyMjUtMjI1IDIyNXMtMjI1LTEwMC45My0yMjUtMjI1IDEwMC45My0yMjUgMjI1LTIyNSAyMjUgMTAwLjkzIDIyNSAyMjV6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz4KCTx0ZXh0IGZpbGw9IiNmZmZmZmYiIHg9IjEyNSIgeT0iMzYwIiBjbGFzcz0iaGVhdnkiPlA8L3RleHQ+Cjwvc3ZnPgo=');
 }
 ul.notes>li {
-    background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgCglpZD0ic3ZnMjgxMCIgCgl4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIAoJeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIAoJaGVpZ2h0PSIyNCIgCgl3aWR0aD0iMzIiIAoJdmVyc2lvbj0iMS4wIiAKCXZpZXdCb3g9IjAgLTEyMCA0ODAgNjAwIj4KICA8c3R5bGU+CiAgICAuaGVhdnkgeyBmb250OiAzNTBweCBzYW5zLXNlcmlmOyB0ZXh0LXNoYWRvdzogMXB4IDFweCAxcHggYmxhY2s7fQogIDwvc3R5bGU+Cgk8ZGVmcyBpZD0iZGVmczI4MzYiPgoJCTxsaW5lYXJHcmFkaWVudCBpZD0ibGcxIj4KCQkJPHN0b3Agc3RvcC1jb2xvcj0iI2ZmZiIgc3RvcC1vcGFjaXR5PSIuNzkzODEiIG9mZnNldD0iMCIvPgoJCQk8c3RvcCBzdG9wLWNvbG9yPSIjZmZmIiBzdG9wLW9wYWNpdHk9IjAiIG9mZnNldD0iLjgzNzg0Ii8+CgkJCTxzdG9wIHN0b3AtY29sb3I9IiNmZmYiIHN0b3Atb3BhY2l0eT0iMCIgb2Zmc2V0PSIxIi8+CgkJPC9saW5lYXJHcmFkaWVudD4KCQk8cmFkaWFsR3JhZGllbnQgaWQ9ImxnMiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIGN5PSIyNDAiIGN4PSIyNDAiIHI9IjIyNSI+CgkJCTxzdG9wIHN0b3AtY29sb3I9IiNmZmViMDAiIHN0b3Atb3BhY2l0eT0iMCIgb2Zmc2V0PSIwIi8+CgkJCTxzdG9wIHN0b3AtY29sb3I9IiNmZmViMDAiIHN0b3Atb3BhY2l0eT0iLjQxMjM3IiBvZmZzZXQ9IjEiLz4KCQk8L3JhZGlhbEdyYWRpZW50PgoJCTxsaW5lYXJHcmFkaWVudCBpZD0ibGczIiB5Mj0iMzExLjgzIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDI9IjQ1Mi42IiB5MT0iMzExLjgzIiB4MT0iMjcuNDAxIj4KCQkJPHN0b3Agc3RvcC1jb2xvcj0iI2NkYmQwMCIgb2Zmc2V0PSIwIi8+CgkJCTxzdG9wIHN0b3AtY29sb3I9IiNhMDliMDAiIG9mZnNldD0iMSIvPgoJCTwvbGluZWFyR3JhZGllbnQ+CgkJPGxpbmVhckdyYWRpZW50IGlkPSJsZzQiIHkyPSIxNTIuNzUiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4Mj0iNDQxLjEyIiB5MT0iMTUyLjc1IiB4MT0iMzguODgxIj4KCQkJPHN0b3Agc3RvcC1jb2xvcj0iI2RiZGQ1ZSIgb2Zmc2V0PSIwIi8+CgkJCTxzdG9wIHN0b3AtY29sb3I9IiNjOWMzMDQiIG9mZnNldD0iMSIvPgoJCTwvbGluZWFyR3JhZGllbnQ+CgkJPHJhZGlhbEdyYWRpZW50IGlkPSJsZzUiIHhsaW5rOmhyZWY9IiNsZzEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjeT0iMTY3LjUiIGN4PSIxOTYuMDciIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoLS41Njc5MCAtMS40MzQ4IDEuNDAxMSAtLjU1NDU2IC04MS44NzcgNDIwLjE0KSIgcj0iMjQwIi8+Cgk8L2RlZnM+Cgk8cGF0aCBmaWxsPSIjYzBiMTAwIiBkPSJtMjQwIDBjLTEzMi4zNCAwLTI0MCAxMDcuNjYtMjQwIDI0MHMxMDcuNjYgMjQwIDI0MCAyNDAgMjQwLTEwNy42NiAyNDAtMjQwLTEwNy42Ni0yNDAtMjQwLTI0MHoiLz4KCTxwYXRoIGZpbGw9IiNmYWVlNjQiIGQ9Im00NjUgMjQwYzAgMTI0LjA3LTEwMC45MyAyMjUtMjI1IDIyNXMtMjI1LTEwMC45My0yMjUtMjI1IDEwMC45My0yMjUgMjI1LTIyNSAyMjUgMTAwLjkzIDIyNSAyMjV6Ii8+Cgk8cGF0aCBmaWxsPSJ1cmwoI2xnNCkiIGQ9Im0yNDAgMjc4LjA5Yzc4LjE3IDAgMTQ1LjMxLTQ0LjQzIDIwMS4xMi0xMDcuMDMtMjguNy04My40OTEtMTA4LjAxLTE0My42Ni0yMDEuMTItMTQzLjY2LTkzLjExIDAuMDAxLTE3Mi40MiA2MC4xNjktMjAxLjEyIDE0My42NiA1NS44MSA2Mi42IDEyMi45NSAxMDcuMDMgMjAxLjEyIDEwNy4wM3oiIC8+Cgk8cGF0aCBmaWxsPSJ1cmwoI2xnMykiIGQ9Im0yNDAgMjc4LjA5Yy03OC4xNyAwLTE0NS4zMS00NC40My0yMDEuMTItMTA3LjAzLTcuNDMzIDIxLjYzLTExLjQ3OSA0NC44Mi0xMS40NzkgNjguOTQgMCAxMTcuMjMgOTUuMzY5IDIxMi42IDIxMi42IDIxMi42czIxMi42LTk1LjM3IDIxMi42LTIxMi42YzAtMjQuMTItNC4wNS00Ny4zMS0xMS40OC02OC45NC01NS44MSA2Mi42LTEyMi45NSAxMDcuMDMtMjAxLjEyIDEwNy4wM3oiLz4KCTxwYXRoIGZpbGw9InVybCgjbGc1KSIgZD0ibTQ2NSAyNDBjMCAxMjQuMDctMTAwLjkzIDIyNS0yMjUgMjI1cy0yMjUtMTAwLjkzLTIyNS0yMjUgMTAwLjkzLTIyNSAyMjUtMjI1IDIyNSAxMDAuOTMgMjI1IDIyNXoiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgoJPHBhdGggZmlsbD0idXJsKCNsZzIpIiBkPSJtNDY1IDI0MGMwIDEyNC4wNy0xMDAuOTMgMjI1LTIyNSAyMjVzLTIyNS0xMDAuOTMtMjI1LTIyNSAxMDAuOTMtMjI1IDIyNS0yMjUgMjI1IDEwMC45MyAyMjUgMjI1eiIgZmlsbC1ydWxlPSJldmVub2RkIi8+Cgk8dGV4dCBmaWxsPSIjZmZmZmZmIiB4PSIxMDUiIHk9IjM2MCIgY2xhc3M9ImhlYXZ5Ij7inI48L3RleHQ+Cjwvc3ZnPgo=') no-repeat left center;
-	padding: 10px 10px 10px 40px;
+    background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgCglpZD0ic3ZnMjgxMCIgCgl4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIAoJeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIAoJaGVpZ2h0PSIyNCIgCgl3aWR0aD0iMzIiIAoJdmVyc2lvbj0iMS4wIiAKCXZpZXdCb3g9IjAgLTEyMCA0ODAgNjAwIj4KICA8c3R5bGU+CiAgICAuaGVhdnkgeyBmb250OiAzNTBweCBzYW5zLXNlcmlmOyB0ZXh0LXNoYWRvdzogMXB4IDFweCAxcHggYmxhY2s7fQogIDwvc3R5bGU+Cgk8ZGVmcyBpZD0iZGVmczI4MzYiPgoJCTxsaW5lYXJHcmFkaWVudCBpZD0ibGcxIj4KCQkJPHN0b3Agc3RvcC1jb2xvcj0iI2ZmZiIgc3RvcC1vcGFjaXR5PSIuNzkzODEiIG9mZnNldD0iMCIvPgoJCQk8c3RvcCBzdG9wLWNvbG9yPSIjZmZmIiBzdG9wLW9wYWNpdHk9IjAiIG9mZnNldD0iLjgzNzg0Ii8+CgkJCTxzdG9wIHN0b3AtY29sb3I9IiNmZmYiIHN0b3Atb3BhY2l0eT0iMCIgb2Zmc2V0PSIxIi8+CgkJPC9saW5lYXJHcmFkaWVudD4KCQk8cmFkaWFsR3JhZGllbnQgaWQ9ImxnMiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIGN5PSIyNDAiIGN4PSIyNDAiIHI9IjIyNSI+CgkJCTxzdG9wIHN0b3AtY29sb3I9IiNmZmViMDAiIHN0b3Atb3BhY2l0eT0iMCIgb2Zmc2V0PSIwIi8+CgkJCTxzdG9wIHN0b3AtY29sb3I9IiNmZmViMDAiIHN0b3Atb3BhY2l0eT0iLjQxMjM3IiBvZmZzZXQ9IjEiLz4KCQk8L3JhZGlhbEdyYWRpZW50PgoJCTxsaW5lYXJHcmFkaWVudCBpZD0ibGczIiB5Mj0iMzExLjgzIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDI9IjQ1Mi42IiB5MT0iMzExLjgzIiB4MT0iMjcuNDAxIj4KCQkJPHN0b3Agc3RvcC1jb2xvcj0iI2NkYmQwMCIgb2Zmc2V0PSIwIi8+CgkJCTxzdG9wIHN0b3AtY29sb3I9IiNhMDliMDAiIG9mZnNldD0iMSIvPgoJCTwvbGluZWFyR3JhZGllbnQ+CgkJPGxpbmVhckdyYWRpZW50IGlkPSJsZzQiIHkyPSIxNTIuNzUiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4Mj0iNDQxLjEyIiB5MT0iMTUyLjc1IiB4MT0iMzguODgxIj4KCQkJPHN0b3Agc3RvcC1jb2xvcj0iI2RiZGQ1ZSIgb2Zmc2V0PSIwIi8+CgkJCTxzdG9wIHN0b3AtY29sb3I9IiNjOWMzMDQiIG9mZnNldD0iMSIvPgoJCTwvbGluZWFyR3JhZGllbnQ+CgkJPHJhZGlhbEdyYWRpZW50IGlkPSJsZzUiIHhsaW5rOmhyZWY9IiNsZzEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjeT0iMTY3LjUiIGN4PSIxOTYuMDciIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoLS41Njc5MCAtMS40MzQ4IDEuNDAxMSAtLjU1NDU2IC04MS44NzcgNDIwLjE0KSIgcj0iMjQwIi8+Cgk8L2RlZnM+Cgk8cGF0aCBmaWxsPSIjYzBiMTAwIiBkPSJtMjQwIDBjLTEzMi4zNCAwLTI0MCAxMDcuNjYtMjQwIDI0MHMxMDcuNjYgMjQwIDI0MCAyNDAgMjQwLTEwNy42NiAyNDAtMjQwLTEwNy42Ni0yNDAtMjQwLTI0MHoiLz4KCTxwYXRoIGZpbGw9IiNmYWVlNjQiIGQ9Im00NjUgMjQwYzAgMTI0LjA3LTEwMC45MyAyMjUtMjI1IDIyNXMtMjI1LTEwMC45My0yMjUtMjI1IDEwMC45My0yMjUgMjI1LTIyNSAyMjUgMTAwLjkzIDIyNSAyMjV6Ii8+Cgk8cGF0aCBmaWxsPSJ1cmwoI2xnNCkiIGQ9Im0yNDAgMjc4LjA5Yzc4LjE3IDAgMTQ1LjMxLTQ0LjQzIDIwMS4xMi0xMDcuMDMtMjguNy04My40OTEtMTA4LjAxLTE0My42Ni0yMDEuMTItMTQzLjY2LTkzLjExIDAuMDAxLTE3Mi40MiA2MC4xNjktMjAxLjEyIDE0My42NiA1NS44MSA2Mi42IDEyMi45NSAxMDcuMDMgMjAxLjEyIDEwNy4wM3oiIC8+Cgk8cGF0aCBmaWxsPSJ1cmwoI2xnMykiIGQ9Im0yNDAgMjc4LjA5Yy03OC4xNyAwLTE0NS4zMS00NC40My0yMDEuMTItMTA3LjAzLTcuNDMzIDIxLjYzLTExLjQ3OSA0NC44Mi0xMS40NzkgNjguOTQgMCAxMTcuMjMgOTUuMzY5IDIxMi42IDIxMi42IDIxMi42czIxMi42LTk1LjM3IDIxMi42LTIxMi42YzAtMjQuMTItNC4wNS00Ny4zMS0xMS40OC02OC45NC01NS44MSA2Mi42LTEyMi45NSAxMDcuMDMtMjAxLjEyIDEwNy4wM3oiLz4KCTxwYXRoIGZpbGw9InVybCgjbGc1KSIgZD0ibTQ2NSAyNDBjMCAxMjQuMDctMTAwLjkzIDIyNS0yMjUgMjI1cy0yMjUtMTAwLjkzLTIyNS0yMjUgMTAwLjkzLTIyNSAyMjUtMjI1IDIyNSAxMDAuOTMgMjI1IDIyNXoiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgoJPHBhdGggZmlsbD0idXJsKCNsZzIpIiBkPSJtNDY1IDI0MGMwIDEyNC4wNy0xMDAuOTMgMjI1LTIyNSAyMjVzLTIyNS0xMDAuOTMtMjI1LTIyNSAxMDAuOTMtMjI1IDIyNS0yMjUgMjI1IDEwMC45MyAyMjUgMjI1eiIgZmlsbC1ydWxlPSJldmVub2RkIi8+Cgk8dGV4dCBmaWxsPSIjZmZmZmZmIiB4PSIxMDUiIHk9IjM2MCIgY2xhc3M9ImhlYXZ5Ij7inI48L3RleHQ+Cjwvc3ZnPgo=') no-repeat left top;
+	padding: 5px 10px 10px 40px;
   	list-style: none;
   	margin-left: -40px;
 }
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
index 0ffb144..6642c9b 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
@@ -84,7 +84,7 @@
 	 * Configuration property:  Debug.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_debug RESTCLIENT_debug}
 	 * 	<li><b>Name:</b>  <js>"RestClient.debug.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -107,7 +107,7 @@
 	 * Configuration property:  Executor service.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_executorService RESTCLIENT_executorService}
 	 * 	<li><b>Name:</b>  <js>"RestClient.executorService.o"</js>
 	 * 	<li><b>Data type:</b>
@@ -145,7 +145,7 @@
 	 * Configuration property:  Shut down executor service on close.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_executorServiceShutdownOnClose RESTCLIENT_executorServiceShutdownOnClose}
 	 * 	<li><b>Name:</b>  <js>"RestClient.executorServiceShutdownOnClose.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -168,7 +168,7 @@
 	 * Configuration property:  Request headers.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_headers RESTCLIENT_headers}
 	 * 	<li><b>Name:</b>  <js>"RestClient.requestHeaders.sms"</js>
 	 * 	<li><b>Data type:</b>  <c>Map&lt;String,String&gt;</c>
@@ -191,7 +191,7 @@
 	 * Configuration property:  Call interceptors.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_interceptors RESTCLIENT_interceptors}
 	 * 	<li><b>Name:</b>  <js>"RestClient.interceptors.lo"</js>
 	 * 	<li><b>Data type:</b><c>List&lt;Class&lt;{@link org.apache.juneau.rest.client.RestCallInterceptor}&gt;|{@link org.apache.juneau.rest.client.RestCallInterceptor}&gt;</c>
@@ -217,7 +217,7 @@
 	 * Configuration property:  Keep HttpClient open.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_keepHttpClientOpen RESTCLIENT_keepHttpClientOpen}
 	 * 	<li><b>Name:</b>  <js>"RestClient.keepHttpClientOpen.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -240,7 +240,7 @@
 	 * Configuration property:  Parser.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_parser RESTCLIENT_parser}
 	 * 	<li><b>Name:</b>  <js>"RestClient.parser.o"</js>
 	 * 	<li><b>Data type:</b>
@@ -266,7 +266,7 @@
 	 * Configuration property:  Part parser.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_partParser RESTCLIENT_partParser}
 	 * 	<li><b>Name:</b>  <js>"RestClient.partParser.o"</js>
 	 * 	<li><b>Data type:</b>
@@ -292,7 +292,7 @@
 	 * Configuration property:  Part serializer.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_partSerializer RESTCLIENT_partSerializer}
 	 * 	<li><b>Name:</b>  <js>"RestClient.partSerializer.o"</js>
 	 * 	<li><b>Data type:</b>
@@ -318,7 +318,7 @@
 	 * Configuration property:  Request query parameters.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_query RESTCLIENT_query}
 	 * 	<li><b>Name:</b>  <js>"RestClient.query.sms"</js>
 	 * 	<li><b>Data type:</b>  <c>Map&lt;String,String&gt;</c>
@@ -341,7 +341,7 @@
 	 * Configuration property:  Number of retries to attempt.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_retries RESTCLIENT_retries}
 	 * 	<li><b>Name:</b>  <js>"RestClient.retries.i"</js>
 	 * 	<li><b>Data type:</b>  <jk>int</jk>
@@ -364,7 +364,7 @@
 	 * Configuration property:  The time in milliseconds between retry attempts.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_retryInterval RESTCLIENT_retryInterval}
 	 * 	<li><b>Name:</b>  <js>"RestClient.retryInterval.i"</js>
 	 * 	<li><b>Data type:</b>  <jk>int</jk>
@@ -388,7 +388,7 @@
 	 * Configuration property:  Retry-on determination object.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_retryOn RESTCLIENT_retryOn}
 	 * 	<li><b>Name:</b>  <js>"RestClient.retryOn.o"</js>
 	 * 	<li><b>Data type:</b>
@@ -413,7 +413,7 @@
 	 * Configuration property:  Root URI.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_rootUri RESTCLIENT_rootUri}
 	 * 	<li><b>Name:</b>  <js>"RestClient.rootUri.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
@@ -439,7 +439,7 @@
 	 * Configuration property:  Serializer.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_serializer RESTCLIENT_serializer}
 	 * 	<li><b>Name:</b>  <js>"RestClient.serializer.o"</js>
 	 * 	<li><b>Data type:</b>
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
index 243b9cc..3d2c582 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
@@ -343,10 +343,13 @@
 	/**
 	 * Sets the internal {@link HttpClient} to use for handling HTTP communications.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #httpClient(CloseableHttpClient)} and {@link #keepHttpClientOpen(boolean)}
+	 * </div>
+	 *
 	 * @param httpClient The HTTP client.
 	 * @param keepHttpClientOpen Don't close this client when the {@link RestClient#close()} method is called.
 	 * @return This object (for method chaining).
-	 * @deprecated Use {@link #httpClient(CloseableHttpClient)} and {@link #keepHttpClientOpen(boolean)}.
 	 */
 	@Deprecated
 	public RestClientBuilder httpClient(CloseableHttpClient httpClient, boolean keepHttpClientOpen) {
@@ -388,6 +391,10 @@
 	/**
 	 * Creates the {@link HttpClientConnectionManager} returned by {@link #createConnectionManager()}.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #getHttpClientBuilder()} and modify the client builder directly using {@link HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)}
+	 * </div>
+	 *
 	 * <p>
 	 * Subclasses can override this method to provide their own connection manager.
 	 *
@@ -397,7 +404,6 @@
 	 * @return The HTTP client builder to use to create the HTTP client.
 	 * @throws NoSuchAlgorithmException Unknown cryptographic algorithm.
 	 * @throws KeyManagementException General key management exception.
-	 * @deprecated Use {@link #getHttpClientBuilder()} and modify the client builder directly using {@link HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)}.
 	 */
 	@SuppressWarnings("resource")
 	@Deprecated
@@ -437,6 +443,10 @@
 	/**
 	 * Enable SSL support on this client.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #getHttpClientBuilder()} and modify the client builder directly using {@link HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)}
+	 * </div>
+	 *
 	 * <p>
 	 * Used in conjunction with the following methods for setting up SSL parameters:
 	 * <ul class='javatree'>
@@ -449,7 +459,6 @@
 	 * </ul>
 	 *
 	 * @return This object (for method chaining).
-	 * @deprecated Use {@link #getHttpClientBuilder()} and modify the client builder directly using {@link HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)}.
 	 */
 	@Deprecated
 	public RestClientBuilder enableSSL() {
@@ -460,6 +469,10 @@
 	/**
 	 * Enable LARestClientBuilder SSL support.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #getHttpClientBuilder()} and modify the client builder directly using {@link HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)}
+	 * </div>
+	 *
 	 * <p>
 	 * Same as calling the following:
 	 * <p class='bcode w800'>
@@ -472,7 +485,6 @@
 	 * @return This object (for method chaining).
 	 * @throws KeyStoreException Generic keystore exception.
 	 * @throws NoSuchAlgorithmException Unknown cryptographic algorithm.
-	 * @deprecated Use {@link #getHttpClientBuilder()} and modify the client builder directly using {@link HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)}.
 	 */
 	@Deprecated
 	public RestClientBuilder enableLaxSSL() throws KeyStoreException, NoSuchAlgorithmException {
@@ -485,6 +497,10 @@
 	/**
 	 * Supported SSL protocols.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #getHttpClientBuilder()} and modify the client builder directly using {@link HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)}
+	 * </div>
+	 *
 	 * <p>
 	 * This is the value passed to the <c>supportedProtocols</c> parameter of the
 	 * {@link SSLConnectionSocketFactory#SSLConnectionSocketFactory(SSLContext,String[],String[],HostnameVerifier)}
@@ -500,7 +516,6 @@
 	 *
 	 * @param sslProtocols The supported SSL protocols.
 	 * @return This object (for method chaining).
-	 * @deprecated Use {@link #getHttpClientBuilder()} and modify the client builder directly using {@link HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)}.
 	 */
 	@Deprecated
 	public RestClientBuilder sslProtocols(String...sslProtocols) {
@@ -511,6 +526,10 @@
 	/**
 	 * Supported cipher suites.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #getHttpClientBuilder()} and modify the client builder directly using {@link HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)}
+	 * </div>
+	 *
 	 * <p>
 	 * This is the value passed to the <c>supportedCipherSuites</c> parameter of the
 	 * {@link SSLConnectionSocketFactory#SSLConnectionSocketFactory(SSLContext,String[],String[],HostnameVerifier)}
@@ -525,7 +544,6 @@
 	 *
 	 * @param cipherSuites The supported cipher suites.
 	 * @return This object (for method chaining).
-	 * @deprecated Use {@link #getHttpClientBuilder()} and modify the client builder directly using {@link HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)}.
 	 */
 	@Deprecated
 	public RestClientBuilder cipherSuites(String...cipherSuites) {
@@ -536,6 +554,10 @@
 	/**
 	 * Hostname verifier.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #getHttpClientBuilder()} and modify the client builder directly using {@link HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)}
+	 * </div>
+	 *
 	 * <p>
 	 * This is the value passed to the <c>hostnameVerifier</c> parameter of the
 	 * {@link SSLConnectionSocketFactory#SSLConnectionSocketFactory(SSLContext,String[],String[],HostnameVerifier)}
@@ -550,7 +572,6 @@
 	 *
 	 * @param hostnameVerifier The hostname verifier.
 	 * @return This object (for method chaining).
-	 * @deprecated Use {@link #getHttpClientBuilder()} and modify the client builder directly using {@link HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)}.
 	 */
 	@Deprecated
 	public RestClientBuilder hostnameVerifier(HostnameVerifier hostnameVerifier) {
@@ -561,6 +582,10 @@
 	/**
 	 * Key managers.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #getHttpClientBuilder()} and modify the client builder directly using {@link HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)}
+	 * </div>
+	 *
 	 * <p>
 	 * This is the value passed to the <c>keyManagers</c> parameter of the
 	 * {@link SSLContext#init(KeyManager[],TrustManager[],SecureRandom)} method.
@@ -574,7 +599,6 @@
 	 *
 	 * @param keyManagers The key managers.
 	 * @return This object (for method chaining).
-	 * @deprecated Use {@link #getHttpClientBuilder()} and modify the client builder directly using {@link HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)}.
 	 */
 	@Deprecated
 	public RestClientBuilder keyManagers(KeyManager...keyManagers) {
@@ -585,6 +609,10 @@
 	/**
 	 * Trust managers.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #getHttpClientBuilder()} and modify the client builder directly using {@link HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)}
+	 * </div>
+	 *
 	 * <p>
 	 * This is the value passed to the <c>trustManagers</c> parameter of the
 	 * {@link SSLContext#init(KeyManager[],TrustManager[],SecureRandom)} method.
@@ -598,7 +626,6 @@
 	 *
 	 * @param trustManagers The trust managers.
 	 * @return This object (for method chaining).
-	 * @deprecated Use {@link #getHttpClientBuilder()} and modify the client builder directly using {@link HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)}.
 	 */
 	@Deprecated
 	public RestClientBuilder trustManagers(TrustManager...trustManagers) {
@@ -609,6 +636,10 @@
 	/**
 	 * Trust managers.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #getHttpClientBuilder()} and modify the client builder directly using {@link HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)}
+	 * </div>
+	 *
 	 * <p>
 	 * This is the value passed to the <c>random</c> parameter of the
 	 * {@link SSLContext#init(KeyManager[],TrustManager[],SecureRandom)} method.
@@ -622,7 +653,6 @@
 	 *
 	 * @param secureRandom The random number generator.
 	 * @return This object (for method chaining).
-	 * @deprecated Use {@link #getHttpClientBuilder()} and modify the client builder directly using {@link HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)}.
 	 */
 	@Deprecated
 	public RestClientBuilder secureRandom(SecureRandom secureRandom) {
@@ -634,8 +664,11 @@
 	 * When called, the {@link #createConnectionManager()} method will return a {@link PoolingHttpClientConnectionManager}
 	 * instead of a {@link BasicHttpClientConnectionManager}.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #getHttpClientBuilder()} and modify the client builder directly using {@link HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)}
+	 * </div>
+	 *
 	 * @return This object (for method chaining).
-	 * @deprecated Use {@link #getHttpClientBuilder()} and modify the client builder directly using {@link HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)}.
 	 */
 	@Deprecated
 	public RestClientBuilder pooled() {
@@ -646,12 +679,15 @@
 	/**
 	 * Set up this client to use BASIC auth.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #getHttpClientBuilder()} and modify the client builder directly using {@link HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)}
+	 * </div>
+	 *
 	 * @param host The auth scope hostname.
 	 * @param port The auth scope port.
 	 * @param user The username.
 	 * @param pw The password.
 	 * @return This object (for method chaining).
-	 * @deprecated Use {@link #getHttpClientBuilder()} and modify the client builder directly using {@link HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)}.
 	 */
 	@Deprecated
 	public RestClientBuilder basicAuth(String host, int port, String user, String pw) {
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/mock/MockHttpClientConnection.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/mock/MockHttpClientConnection.java
index acfbdb9..c65056d 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/mock/MockHttpClientConnection.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/mock/MockHttpClientConnection.java
@@ -24,9 +24,11 @@
 /**
  * An implementation of {@link HttpClientConnection} specifically for use in mocked connections using the {@link MockHttpConnection} class.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use <c>org.apache.juneau.restmock2</c>
+ * </div>
+ *
  * This implementation is NOT thread safe.
- * 
- * @deprecated Use <c>org.apache.juneau.rest.mock2</c>
  */
 @Deprecated
 public class MockHttpClientConnection implements HttpClientConnection {
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/mock/MockHttpClientConnectionManager.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/mock/MockHttpClientConnectionManager.java
index 83932dd..53237e7 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/mock/MockHttpClientConnectionManager.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/mock/MockHttpClientConnectionManager.java
@@ -24,9 +24,11 @@
 /**
  * An implementation of {@link HttpClientConnectionManager} specifically for use in mocked connections using the {@link MockHttpConnection} class.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use <c>org.apache.juneau.restmock2</c>
+ * </div>
+ *
  * This implementation is NOT thread safe.
- * 
- * @deprecated Use <c>org.apache.juneau.rest.mock2</c>
  */
 @Deprecated
 public class MockHttpClientConnectionManager implements HttpClientConnectionManager {
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/remote/RemoteMethod.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/remote/RemoteMethod.java
index 9802757..8640e33 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/remote/RemoteMethod.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/remote/RemoteMethod.java
@@ -23,11 +23,13 @@
 /**
  * Annotation applied to Java methods on REST proxy.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.remote.RemoteMethod}
+ * </div>
+ *
  * <ul class='seealso'>
  * 	<li class='link'>{@doc juneau-rest-client.RestProxies}
  * </ul>
- *
- * @deprecated Use {@link org.apache.juneau.http.remote.RemoteMethod}
  */
 @Documented
 @Target(METHOD)
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/remote/RemoteResource.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/remote/RemoteResource.java
index 1f45758..0ecd40d 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/remote/RemoteResource.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/remote/RemoteResource.java
@@ -20,11 +20,13 @@
 /**
  * Identifies a proxy against a REST interface.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.remote.RemoteMethod}
+ * </div>
+ *
  * <ul class='seealso'>
  * 	<li class='link'>{@doc juneau-rest-client.RestProxies}
  * </ul>
- *
- * @deprecated Use {@link org.apache.juneau.http.remote.RemoteMethod}
  */
 @Documented
 @Target({TYPE})
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/remote/RemoteReturn.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/remote/RemoteReturn.java
index 07a6297..fab5e16 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/remote/RemoteReturn.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/remote/RemoteReturn.java
@@ -15,7 +15,9 @@
 /**
  * Possible values for the {@link RemoteMethod#returns() @RemoteMethod(returns)} annotation.
  *
- * @deprecated Use {@link org.apache.juneau.http.remote.RemoteReturn}
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.remote.RemoteReturn}
+ * </div>
  */
 @Deprecated
 public enum RemoteReturn {
diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRemote.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRemote.java
index c5c73e6..e15385d 100644
--- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRemote.java
+++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRemote.java
@@ -130,7 +130,7 @@
 	 * <p>
 	 * Equivalent to calling the following:
 	 * <p class='bcode w800'>
-	 * 	MockRemoteResource.<jsf>create</jsf>(intf, impl).build();
+	 * 	MockRemoteResource.<jsm>create</jsm>(intf, impl).build();
 	 * </p>
 	 *
 	 * @param intf
@@ -153,7 +153,7 @@
 	 * <p>
 	 * Equivalent to calling the following:
 	 * <p class='bcode w800'>
-	 * 	MockRemoteResource.<jsf>create</jsf>(intf, impl).marshall(m).build();
+	 * 	MockRemoteResource.<jsm>create</jsm>(intf, impl).marshall(m).build();
 	 * </p>
 	 *
 	 * @param intf
@@ -179,7 +179,7 @@
 	 * <p>
 	 * Equivalent to calling the following:
 	 * <p class='bcode w800'>
-	 * 	MockRemoteResource.<jsf>create</jsf>(intf, impl).serializer(s).parser(p).build();
+	 * 	MockRemoteResource.<jsm>create</jsm>(intf, impl).serializer(s).parser(p).build();
 	 * </p>
 	 *
 	 * @param intf
diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRest.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRest.java
index 786ec8b..9576131 100644
--- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRest.java
+++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRest.java
@@ -49,7 +49,7 @@
  *  <ja>@Test</ja>
  *  <jk>public void</jk> testEcho() <jk>throws</jk> Exception {
  *  	MockRest
- *  		.<jsf>create</jsf>(MyRest.<jk>class</jk>)
+ *  		.<jsm>create</jsm>(MyRest.<jk>class</jk>)
  *  		.put(<js>"/String"</js>, <js>"'foo'"</js>)
  *  		.execute()
  *  		.assertStatus(200)
diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClient.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClient.java
index 43e86ec..0c43a9f 100644
--- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClient.java
+++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClient.java
@@ -92,7 +92,7 @@
 	 *
 	 * <p>
 	 * Equivalent to calling:
-	 * <p class='bpcode w800'>
+	 * <p class='bcode w800'>
 	 * 	MockRestClient.create(impl, m).build();
 	 * </p>
 	 *
@@ -113,7 +113,7 @@
 	 *
 	 * <p>
 	 * Equivalent to calling:
-	 * <p class='bpcode w800'>
+	 * <p class='bcode w800'>
 	 * 	MockRestClient.create(impl, s, p).build();
 	 * </p>
 	 *
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestLogger.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestLogger.java
index e804dc1..5330131 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestLogger.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestLogger.java
@@ -25,6 +25,10 @@
 /**
  * Logging utility class.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link BasicRestCallLogger}
+ * </div>
+ *
  * <p>
  * Subclasses can override these methods to tailor logging of HTTP requests.
  * <br>Subclasses MUST implement a no-arg public constructor.
@@ -32,8 +36,6 @@
  * <ul class='seealso'>
  * 	<li class='link'>{@doc juneau-rest-server.LoggingAndDebugging}
  * </ul>
- *
- * @deprecated Use {@link BasicRestCallLogger}
  */
 @Deprecated
 public class BasicRestLogger implements RestLogger {
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/HtmlDocBuilder.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/HtmlDocBuilder.java
index aca6f62..0ea84a6 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/HtmlDocBuilder.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/HtmlDocBuilder.java
@@ -27,6 +27,10 @@
 /**
  * Programmatic interface for setting properties used by the HtmlDoc serializer.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link HtmlDocConfig}
+ * </div>
+ *
  * <p>
  * Basically just a convenience wrapper around the servlet or method level properties for setting properties defined
  * by the {@link HtmlDocSerializer} class.
@@ -40,8 +44,6 @@
  * <ul class='seealso'>
  * 	<li class='link'>{@doc juneau-rest-server.HtmlDocAnnotation}
  * </ul>
- *
- * @deprecated Use {@link HtmlDocConfig}
  */
 @Deprecated
 public class HtmlDocBuilder {
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/NoOpRestLogger.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/NoOpRestLogger.java
index 60fd99e..ea84898 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/NoOpRestLogger.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/NoOpRestLogger.java
@@ -19,13 +19,16 @@
 /**
  * Logging utility class.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link RestCallLogger}
+ * </div>
+ *
  * <p>
  * Disables logging entirely.
  *
  * <ul class='seealso'>
  * 	<li class='link'>{@doc juneau-rest-server.LoggingAndDebugging}
  * </ul>
- * @deprecated Use {@link RestCallLogger}
  */
 @Deprecated
 public class NoOpRestLogger extends BasicRestLogger {
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestFormData.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestFormData.java
index 49549e2..d38f507 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestFormData.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestFormData.java
@@ -125,7 +125,7 @@
 	 * <ul class='notes'>
 	 * 	<li>
 	 * 		This method returns the raw unparsed value, and differs from calling
-	 * 		<code>get(name, String.<jk>class</js>)</code> which will convert the value from UON
+	 * 		<code>get(name, String.<jk>class</jk>)</code> which will convert the value from UON
 	 * 		notation:
 	 * 		<ul>
 	 * 			<li><js>"null"</js> =&gt; <jk>null</jk>
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestProperties.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestProperties.java
index 69a326b..69dfa89 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestProperties.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestProperties.java
@@ -17,6 +17,10 @@
 /**
  * Encapsulates request-level properties.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link RequestAttributes}
+ * </div>
+ *
  * <p>
  * These are properties specified for a single HTTP request that extends the properties defined on {@link RestMethodProperties}
  * and are accessible and modifiable through the following:
@@ -30,7 +34,6 @@
  * <ul class='seealso'>
  * 	<li class='link'>{@doc juneau-rest-server.ConfigurableProperties}
  * </ul>
- * @deprecated Use {@link RequestAttributes}
  */
 @SuppressWarnings("serial")
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestCallLoggerConfig.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestCallLoggerConfig.java
index cdb9184..4c925d0 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestCallLoggerConfig.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestCallLoggerConfig.java
@@ -259,7 +259,7 @@
 	 *
 	 * @param req The servlet request.
 	 * @param res The servlet response.
-	 * @return The applicable logging rule, or <jk>null<jk> if a match could not be found.
+	 * @return The applicable logging rule, or <jk>null</jk> if a match could not be found.
 	 */
 	public RestCallLoggerRule getRule(HttpServletRequest req, HttpServletResponse res) {
 
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
index 3984786..fc26c55 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
@@ -95,7 +95,7 @@
 	 * Configuration property:  Allow body URL parameter.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_allowBodyParam REST_allowBodyParam}
 	 * 	<li><b>Name:</b>  <js>"RestContext.allowBodyParam.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -160,7 +160,7 @@
 	 * Configuration property:  Allowed header URL parameters.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_allowedHeaderParams REST_allowedHeaderParams}
 	 * 	<li><b>Name:</b>  <js>"RestContext.allowedHeaderParams.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c> (comma-delimited)
@@ -230,7 +230,7 @@
 	 * Configuration property:  Allowed method headers.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_allowedMethodHeaders REST_allowedMethodHeaders}
 	 * 	<li><b>Name:</b>  <js>"RestContext.allowedMethodHeaders.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c> (comma-delimited)
@@ -297,7 +297,7 @@
 	 * Configuration property:  Allowed method URL parameters.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_allowedMethodParams REST_allowedMethodParams}
 	 * 	<li><b>Name:</b>  <js>"RestContext.allowedMethodParams.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c> (comma-delimited)
@@ -374,7 +374,9 @@
 	/**
 	 * Configuration property:  Allow header URL parameters.
 	 *
-	 * @deprecated Use {@link #REST_allowedHeaderParams}
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #REST_allowedHeaderParams}
+	 * </div>
 	 */
 	@Deprecated
 	public static final String REST_allowHeaderParams = PREFIX + ".allowHeaderParams.b";
@@ -383,7 +385,7 @@
 	 * Configuration property:  REST call handler.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_callHandler REST_callHandler}
 	 * 	<li><b>Name:</b>  <js>"RestContext.callHandler.o"</js>
 	 * 	<li><b>Data type:</b>
@@ -477,7 +479,7 @@
 	 * Configuration property:  REST call logger.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_callLogger REST_callLogger}
 	 * 	<li><b>Name:</b>  <js>"RestContext.callLogger.o"</js>
 	 * 	<li><b>Data type:</b>
@@ -545,7 +547,7 @@
 	 * Configuration property:  REST call logging rules.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_callLoggerConfig REST_callLoggerConfig}
 	 * 	<li><b>Name:</b>  <js>"RestContext.callLoggerConfig.o"</js>
 	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.rest.RestCallLoggerConfig}
@@ -622,7 +624,7 @@
 	 * Configuration property:  Children.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_children REST_children}
 	 * 	<li><b>Name:</b>  <js>"RestContext.children.lo"</js>
 	 * 	<li><b>Data type:</b>  <c>List&lt;Class|Object|{@link org.apache.juneau.rest.RestChild}&gt;</c>
@@ -712,6 +714,7 @@
 	 * 			builder.children(MyChildResource.<jk>class</jk>);
 	 * 		}
 	 * 	}
+	 * </p>
 	 *
 	 * <ul class='notes'>
 	 * 	<li>
@@ -734,7 +737,7 @@
 	 * Configuration property:  Classpath resource finder.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_classpathResourceFinder REST_classpathResourceFinder}
 	 * 	<li><b>Name:</b>  <js>"RestContext.classpathResourceFinder.o"</js>
 	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.utils.ClasspathResourceFinder}
@@ -812,6 +815,7 @@
 	 * 			builder.classpathResourceFinder(MyClasspathResourceFinder.<jk>class</jk>);
 	 * 		}
 	 * 	}
+	 * </p>
 	 *
 	 * <ul class='notes'>
 	 * 	<li>
@@ -836,7 +840,7 @@
 	 * Configuration property:  Client version header.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_clientVersionHeader REST_clientVersionHeader}
 	 * 	<li><b>Name:</b>  <js>"RestContext.clientVersionHeader.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
@@ -912,7 +916,7 @@
 	 * Configuration property:  Class-level response converters.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_converters REST_converters}
 	 * 	<li><b>Name:</b>  <js>"RestContext.converters.lo"</js>
 	 * 	<li><b>Data type:</b>  <c>List&lt;{@link org.apache.juneau.rest.RestConverter}|Class&lt;{@link org.apache.juneau.rest.RestConverter}&gt;&gt;</c>
@@ -1005,7 +1009,7 @@
 	 * Configuration property:  Debug mode.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_debug REST_debug}
 	 * 	<li><b>Name:</b>  <js>"RestContext.debug.s"</js>
 	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.rest.Enablement}
@@ -1037,7 +1041,7 @@
 	 * Configuration property:  Default character encoding.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_defaultCharset REST_defaultCharset}
 	 * 	<li><b>Name:</b>  <js>"RestContext.defaultCharset.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
@@ -1094,7 +1098,9 @@
 	/**
 	 * Configuration property:  Default request attributes.
 	 *
-	 * @deprecated Use {@link #REST_reqAttrs}
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #REST_reqAttrs}
+	 * </div>
 	 */
 	@Deprecated
 	public static final String REST_attrs = PREFIX + ".reqAttrs.smo";
@@ -1102,7 +1108,9 @@
 	/**
 	 * Configuration property:  Default request headers.
 	 *
-	 * @deprecated Use {@link #REST_reqHeaders}
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #REST_reqHeaders}
+	 * </div>
 	 */
 	@Deprecated
 	public static final String REST_defaultRequestHeaders = PREFIX + ".reqHeaders.smo";
@@ -1110,7 +1118,9 @@
 	/**
 	 * Configuration property:  Default response headers.
 	 *
-	 * @deprecated Use {@link #REST_resHeaders}
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #REST_resHeaders}
+	 * </div>
 	 */
 	@Deprecated
 	public static final String REST_defaultResponseHeaders = PREFIX + ".resHeaders.omo";
@@ -1119,7 +1129,7 @@
 	 * Configuration property:  Compression encoders.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_encoders REST_encoders}
 	 * 	<li><b>Name:</b>  <js>"RestContext.encoders.o"</js>
 	 * 	<li><b>Data type:</b>  <c>List&lt;{@link org.apache.juneau.encoders.Encoder}|Class&lt;{@link org.apache.juneau.encoders.Encoder}&gt;&gt;</c>
@@ -1190,7 +1200,7 @@
 	 * Configuration property:  Class-level guards.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_guards REST_guards}
 	 * 	<li><b>Name:</b>  <js>"RestContext.guards.lo"</js>
 	 * 	<li><b>Data type:</b>  <c>List&lt;{@link org.apache.juneau.rest.RestGuard}|Class&lt;{@link org.apache.juneau.rest.RestGuard}&gt;&gt;</c>
@@ -1274,7 +1284,7 @@
 	 * Configuration property:  REST info provider.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_infoProvider REST_infoProvider}
 	 * 	<li><b>Name:</b>  <js>"RestContext.infoProvider.o"</js>
 	 * 	<li><b>Data type:</b>
@@ -1366,7 +1376,9 @@
 	/**
 	 * Configuration property:  REST logger.
 	 *
-	 * @deprecated Use {@link #REST_callLogger}
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #REST_callLogger}
+	 * </div>
 	 */
 	@Deprecated
 	public static final String REST_logger = PREFIX + ".logger.o";
@@ -1375,7 +1387,7 @@
 	 * Configuration property:  The maximum allowed input size (in bytes) on HTTP requests.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_maxInput REST_maxInput}
 	 * 	<li><b>Name:</b>  <js>"RestContext.maxInput.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
@@ -1443,7 +1455,7 @@
 	 * Configuration property:  Messages.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_messages REST_messages}
 	 * 	<li><b>Name:</b>  <js>"RestContext.messages.lo"</js>
 	 * 	<li><b>Data type:</b>  <c>List&lt;{@link org.apache.juneau.rest.MessageBundleLocation}&gt;</c>
@@ -1529,7 +1541,7 @@
 	 * Configuration property:  MIME types.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_mimeTypes REST_mimeTypes}
 	 * 	<li><b>Name:</b>  <js>"RestContext.mimeTypes.ss"</js>
 	 * 	<li><b>Data type:</b>  <c>Set&lt;String&gt;</c>
@@ -1599,7 +1611,7 @@
 	 * Configuration property:  Java method parameter resolvers.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_paramResolvers REST_paramResolvers}
 	 * 	<li><b>Name:</b>  <js>"RestContext.paramResolvers.lo"</js>
 	 * 	<li><b>Data type:</b>  <c>List&lt;{@link org.apache.juneau.rest.RestMethodParam}|Class&lt;{@link org.apache.juneau.rest.RestMethodParam}&gt;&gt;</c>
@@ -1689,7 +1701,7 @@
 	 * Configuration property:  Parsers.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_parsers REST_parsers}
 	 * 	<li><b>Name:</b>  <js>"RestContext.parsers.lo"</js>
 	 * 	<li><b>Data type:</b>  <c>List&lt;{@link org.apache.juneau.parser.Parser}|Class&lt;{@link org.apache.juneau.parser.Parser}&gt;&gt;</c>
@@ -1783,7 +1795,7 @@
 	 * Configuration property:  HTTP part parser.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_partParser REST_partParser}
 	 * 	<li><b>Name:</b>  <js>"RestContext.partParser.o"</js>
 	 * 	<li><b>Data type:</b>  <c>{@link org.apache.juneau.httppart.HttpPartParser}|Class&lt;{@link org.apache.juneau.httppart.HttpPartParser}&gt;</c>
@@ -1851,7 +1863,7 @@
 	 * Configuration property:  HTTP part serializer.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_partSerializer REST_partSerializer}
 	 * 	<li><b>Name:</b>  <js>"RestContext.partSerializer.o"</js>
 	 * 	<li><b>Data type:</b>
@@ -1928,7 +1940,7 @@
 	 * Configuration property:  Resource path.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_path REST_path}
 	 * 	<li><b>Name:</b>  <js>"RestContext.path.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
@@ -2002,7 +2014,7 @@
 	 * Configuration property:  Render response stack traces in responses.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_renderResponseStackTraces REST_renderResponseStackTraces}
 	 * 	<li><b>Name:</b>  <js>"RestContext.renderResponseStackTraces.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -2067,7 +2079,7 @@
 	 * Configuration property:  Default request attributes.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_reqAttrs REST_reqAttrs}
 	 * 	<li><b>Name:</b>  <js>"RestContext.reqAttrs.smo"</js>
 	 * 	<li><b>Data type:</b>  <c>Map&lt;String,Object&gt;</c>
@@ -2138,7 +2150,7 @@
 	 * Configuration property:  Default request headers.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_reqHeaders REST_reqHeaders}
 	 * 	<li><b>Name:</b>  <js>"RestContext.reqHeaders.smo"</js>
 	 * 	<li><b>Data type:</b>  <c>Map&lt;String,String&gt;</c>
@@ -2208,7 +2220,7 @@
 	 * Configuration property:  Default response headers.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_resHeaders REST_resHeaders}
 	 * 	<li><b>Name:</b>  <js>"RestContext.resHeaders.omo"</js>
 	 * 	<li><b>Data type:</b>  <c>Map&lt;String,String&gt;</c>
@@ -2275,7 +2287,7 @@
 	 * Configuration property:  REST resource resolver.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_resourceResolver REST_resourceResolver}
 	 * 	<li><b>Name:</b>  <js>"RestContext.resourceResolver.o"</js>
 	 * 	<li><b>Data type:</b>
@@ -2366,7 +2378,7 @@
 	 * Configuration property:  Response handlers.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_responseHandlers REST_responseHandlers}
 	 * 	<li><b>Name:</b>  <js>"RestContext.responseHandlers.lo"</js>
 	 * 	<li><b>Data type:</b>  <c>List&lt;{@link org.apache.juneau.rest.ResponseHandler}|Class&lt;{@link org.apache.juneau.rest.ResponseHandler}&gt;&gt;</c>
@@ -2460,7 +2472,7 @@
 	 * Configuration property:  Declared roles.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_rolesDeclared REST_rolesDeclared}
 	 * 	<li><b>Name:</b>  <js>"RestContext.rolesDeclared.ss"</js>
 	 * 	<li><b>Data type:</b>  <c>Set&lt;String&gt;</c>
@@ -2507,7 +2519,7 @@
 	 * Configuration property:  Role guard.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_roleGuard REST_roleGuard}
 	 * 	<li><b>Name:</b>  <js>"RestContext.roleGuard.ss"</js>
 	 * 	<li><b>Data type:</b>  <c>Set&lt;String&gt;</c>
@@ -2579,7 +2591,7 @@
 	 * Configuration property:  Serializers.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_serializers REST_serializers}
 	 * 	<li><b>Name:</b>  <js>"RestContext.serializers.lo"</js>
 	 * 	<li><b>Data type:</b>  <c>List&lt;{@link org.apache.juneau.serializer.Serializer}|Class&lt;{@link org.apache.juneau.serializer.Serializer}&gt;&gt;</c>
@@ -2682,7 +2694,7 @@
 	 * Configuration property:  Static file response headers.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_staticFileResponseHeaders REST_staticFileResponseHeaders}
 	 * 	<li><b>Name:</b>  <js>"RestContext.staticFileResponseHeaders.omo"</js>
 	 * 	<li><b>Data type:</b>  <c>Map&lt;String,String&gt;</c>
@@ -2760,7 +2772,7 @@
 	 * Configuration property:  Static file mappings.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_staticFiles REST_staticFiles}
 	 * 	<li><b>Name:</b>  <js>"RestContext.staticFiles.lo"</js>
 	 * 	<li><b>Data type:</b>  <c>List&lt;{@link org.apache.juneau.rest.StaticFileMapping}&gt;</c>
@@ -2881,7 +2893,7 @@
 	 * Configuration property:  Supported accept media types.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_produces REST_produces}
 	 * 	<li><b>Name:</b>  <js>"RestContext.produces.ls"</js>
 	 * 	<li><b>Data type:</b>  <c>List&lt;String&gt;</c>
@@ -2947,7 +2959,7 @@
 	 * Configuration property:  Properties.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_properties REST_properties}
 	 * 	<li><b>Name:</b>  <js>"RestContext.properties.sms"</js>
 	 * 	<li><b>Data type:</b>  <c>Map&lt;String,String&gt;</c>
@@ -2996,7 +3008,7 @@
 	 * Configuration property:  Supported content media types.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_consumes REST_consumes}
 	 * 	<li><b>Name:</b>  <js>"RestContext.consumes.ls"</js>
 	 * 	<li><b>Data type:</b>  <c>List&lt;String&gt;</c>
@@ -3062,7 +3074,7 @@
 	 * Configuration property:  Use classpath resource caching.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_useClasspathResourceCaching REST_useClasspathResourceCaching}
 	 * 	<li><b>Name:</b>  <js>"RestContext.useClasspathResourceCaching.b"</js>
 	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
@@ -3118,7 +3130,9 @@
 	/**
 	 * Configuration property:  Use stack trace hashes.
 	 *
-	 * @deprecated Use {@link Logging#useStackTraceHashing}
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link Logging#useStackTraceHashing}
+	 * </div>
 	 */
 	@Deprecated
 	public static final String REST_useStackTraceHashes = PREFIX + ".useStackTraceHashes.b";
@@ -3127,7 +3141,7 @@
 	 * Configuration property:  Resource URI authority path.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_uriAuthority REST_uriAuthority}
 	 * 	<li><b>Name:</b>  <js>"RestContext.uriAuthority.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
@@ -3200,7 +3214,7 @@
 	 * Configuration property:  Resource URI context path.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_uriContext REST_uriContext}
 	 * 	<li><b>Name:</b>  <js>"RestContext.uriContext.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
@@ -3266,7 +3280,7 @@
 	 * Configuration property:  URI resolution relativity.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_uriRelativity REST_uriRelativity}
 	 * 	<li><b>Name:</b>  <js>"RestContext.uriRelativity.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
@@ -3330,7 +3344,7 @@
 	 * Configuration property:  URI resolution.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestContext#REST_uriResolution REST_uriResolution}
 	 * 	<li><b>Name:</b>  <js>"RestContext.uriResolution.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
@@ -3393,7 +3407,9 @@
 	/**
 	 * Configuration property:  HTML Widgets.
 	 *
-	 * @deprecated Use {@link HtmlDocSerializer#HTMLDOC_widgets}
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link HtmlDocSerializer#HTMLDOC_widgets}
+	 * </div>
 	 */
 	@Deprecated
 	public static final String REST_widgets = PREFIX + ".widgets.lo";
@@ -4294,7 +4310,7 @@
 	 *
 	 * @param baseClass
 	 * 	Overrides the default class to use for retrieving the classpath resource.
-	 * 	<br>If <jk>null<jk>, uses the REST resource class.
+	 * 	<br>If <jk>null</jk>, uses the REST resource class.
 	 * @param c The class type of the POJO to create.
 	 * @param mediaType The media type of the data in the stream (e.g. <js>"text/json"</js>)
 	 * @param name The resource name (e.g. "htdocs/styles.css").
@@ -4360,6 +4376,10 @@
 	/**
 	 * Returns the logger to use for this resource.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #getCallLogger()}
+	 * </div>
+	 *
 	 * <ul class='seealso'>
 	 * 	<li class='jf'>{@link #REST_logger}
 	 * </ul>
@@ -4367,7 +4387,6 @@
 	 * @return
 	 * 	The logger to use for this resource.
 	 * 	<br>Never <jk>null</jk>.
-	 * @deprecated Use {@link #getCallLogger()}
 	 */
 	@Deprecated
 	public RestLogger getLogger() {
@@ -4554,6 +4573,10 @@
 	/**
 	 * Returns the number of times this exception was thrown based on a hash of its stacktrace.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Not used by new logging API.
+	 * </div>
+	 *
 	 * <ul class='seealso'>
 	 * 	<li class='jf'>{@link RestContext#REST_useStackTraceHashes}
 	 * </ul>
@@ -4562,7 +4585,6 @@
 	 * @return
 	 * 	The number of times this exception was thrown, or <c>0</c> if {@link #REST_useStackTraceHashes}
 	 * 	setting is not enabled.
-	 * @deprecated Not used by new logging API.
 	 */
 	@Deprecated
 	public int getStackTraceOccurrence(Throwable e) {
@@ -4647,12 +4669,15 @@
 	/**
 	 * Returns <jk>true</jk> if debug mode is enabled on this resource.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #getDebug()}
+	 * </div>
+	 *
 	 * <ul class='seealso'>
 	 * 	<li class='jf'>{@link RestContext#REST_debug}
 	 * </ul>
 	 *
 	 * @return <jk>true</jk> if setting is enabled.
-	 * @deprecated Use {@link #getDebug()}.
 	 */
 	@Deprecated
 	@Override
@@ -4891,7 +4916,7 @@
 	 *
 	 * @return
 	 * 	The URI-resolution relativity setting value.
-	 * 	<br>Never <jk>null<jk>.
+	 * 	<br>Never <jk>null</jk>.
 	 */
 	public UriRelativity getUriRelativity() {
 		return uriRelativity;
@@ -4906,7 +4931,7 @@
 	 *
 	 * @return
 	 * 	The URI-resolution setting value.
-	 * 	<br>Never <jk>null<jk>.
+	 * 	<br>Never <jk>null</jk>.
 	 */
 	public UriResolution getUriResolution() {
 		return uriResolution;
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
index e930018..a755bd3 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
@@ -510,6 +510,10 @@
 	/**
 	 * Configuration property:  Allow header URL parameters.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #allowedHeaderParams(String)}
+	 * </div>
+	 *
 	 * <p>
 	 * When enabled, headers such as <js>"Accept"</js> and <js>"Content-Type"</js> to be passed in as URL query
 	 * parameters.
@@ -527,7 +531,6 @@
 	 * 	The new value for this setting.
 	 * 	<br>The default is <jk>true</jk>.
 	 * @return This object (for method chaining).
-	 * @deprecated Use {@link #allowedHeaderParams(String)}
 	 */
 	@Deprecated
 	public RestContextBuilder allowHeaderParams(boolean value) {
@@ -870,7 +873,9 @@
 	/**
 	 * Configuration property:  Default request attributes.
 	 *
-	 * @deprecated Use {@link #reqAttrs(String...)}
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #reqAttrs(String...)}
+	 * </div>
 	 */
 	@SuppressWarnings("javadoc")
 	@Deprecated
@@ -881,7 +886,9 @@
 	/**
 	 * Configuration property:  Default request headers.
 	 *
-	 * @deprecated Use {@link #reqHeaders(String...)}
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #reqHeaders(String...)}
+	 * </div>
 	 */
 	@SuppressWarnings("javadoc")
 	@Deprecated
@@ -920,7 +927,9 @@
 	/**
 	 * Configuration property:  Default request attribute.
 	 *
-	 * @deprecated Use {@link #reqAttr(String, Object)}
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #reqAttr(String, Object)}
+	 * </div>
 	 */
 	@SuppressWarnings("javadoc")
 	@Deprecated
@@ -931,7 +940,9 @@
 	/**
 	 * Configuration property:  Default request headers.
 	 *
-	 * @deprecated Use {@link #reqHeader(String,Object)}
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #reqHeader(String,Object)}
+	 * </div>
 	 */
 	@SuppressWarnings("javadoc")
 	@Deprecated
@@ -942,7 +953,9 @@
 	/**
 	 * Configuration property:  Default response headers.
 	 *
-	 * @deprecated Use {@link #resHeaders(String...)}
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #resHeaders(String...)}
+	 * </div>
 	 */
 	@SuppressWarnings("javadoc")
 	@Deprecated
@@ -953,7 +966,9 @@
 	/**
 	 * Configuration property:  Default response headers.
 	 *
-	 * @deprecated Use {@link #resHeader(String, Object)}
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #resHeader(String, Object)}
+	 * </div>
 	 */
 	@SuppressWarnings("javadoc")
 	@Deprecated
@@ -1070,6 +1085,10 @@
 	/**
 	 * Configuration property:  REST logger.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #callLogger(Class)}
+	 * </div>
+	 *
 	 * <p>
 	 * Specifies the logger to use for logging.
 	 *
@@ -1082,7 +1101,6 @@
 	 * 	<br>The default is {@link BasicRestCallLogger}.
 	 * 	<br>Can be <jk>null</jk> to disable logging.
 	 * @return This object (for method chaining).
-	 * @deprecated Use {@link #callLogger(Class)}
 	 */
 	@Deprecated
 	public RestContextBuilder logger(Class<? extends RestLogger> value) {
@@ -1092,6 +1110,10 @@
 	/**
 	 * Configuration property:  REST logger.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #callLogger(RestCallLogger)}
+	 * </div>
+	 *
 	 * <p>
 	 * Same as {@link #logger(Class)} except input is a pre-constructed instance.
 	 *
@@ -1104,7 +1126,6 @@
 	 * 	<br>The default is {@link BasicRestLogger}.
 	 * 	<br>Can be <jk>null</jk> to disable logging.
 	 * @return This object (for method chaining).
-	 * @deprecated Use {@link #callLogger(RestCallLogger)}
 	 */
 	@Deprecated
 	public RestContextBuilder logger(RestLogger value) {
@@ -1966,7 +1987,7 @@
 	 *
 	 * @param baseClass
 	 * 	Overrides the default class to use for retrieving the classpath resource.
-	 * 	<br>If <jk>null<jk>, uses the REST resource class.
+	 * 	<br>If <jk>null</jk>, uses the REST resource class.
 	 * @param mappingString The static file mapping string.
 	 * @return This object (for method chaining).
 	 * @throws ParseException If mapping string is malformed.
@@ -2011,7 +2032,7 @@
 	 *
 	 * @param baseClass
 	 * 	Overrides the default class to use for retrieving the classpath resource.
-	 * 	<br>If <jk>null<jk>, uses the REST resource class.
+	 * 	<br>If <jk>null</jk>, uses the REST resource class.
 	 * @param path
 	 * 	The mapped URI path.
 	 * 	<br>Leading and trailing slashes are trimmed.
@@ -2319,6 +2340,10 @@
 	/**
 	 * Configuration property:  Use stack trace hashes.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #callLoggerConfig(RestCallLoggerConfig)}
+	 * </div>
+	 *
 	 * <p>
 	 * When enabled, the number of times an exception has occurred will be determined based on stack trace hashsums,
 	 * made available through the {@link RestException#getOccurrence()} method.
@@ -2331,7 +2356,6 @@
 	 * 	The new value for this setting.
 	 * 	<br>The default is <jk>true</jk>.
 	 * @return This object (for method chaining).
-	 * @deprecated Use {@link #callLoggerConfig(RestCallLoggerConfig)}
 	 */
 	@Deprecated
 	public RestContextBuilder useStackTraceHashes(boolean value) {
@@ -2341,6 +2365,10 @@
 	/**
 	 * Configuration property:  HTML Widgets.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link HtmlDocSerializerBuilder#widgets(Class[])}
+	 * </div>
+	 *
 	 * <p>
 	 * Defines widgets that can be used in conjunction with string variables of the form <js>"$W{name}"</js>to quickly
 	 * generate arbitrary replacement text.
@@ -2352,7 +2380,6 @@
 	 * @param values The values to add to this setting.
 	 * @return This object (for method chaining).
 	 *
-	 * @deprecated Use {@link HtmlDocSerializerBuilder#widgets(Class[])}
 	 */
 	@SuppressWarnings("unchecked")
 	@Deprecated
@@ -2363,6 +2390,10 @@
 	/**
 	 * Configuration property:  HTML Widgets.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link HtmlDocSerializerBuilder#widgetsReplace(Class[])}
+	 * </div>
+	 *
 	 * <p>
 	 * Same as {@link #widgets(Class...)} but replaces any previous values.
 	 *
@@ -2372,8 +2403,6 @@
 	 *
 	 * @param values The values to set on this setting.
 	 * @return This object (for method chaining).
-	 *
-	 * @deprecated Use {@link HtmlDocSerializerBuilder#widgetsReplace(Class[])}
 	 */
 	@SuppressWarnings("unchecked")
 	@Deprecated
@@ -2384,6 +2413,10 @@
 	/**
 	 * Configuration property:  HTML Widgets.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link HtmlDocSerializerBuilder#widgets(HtmlWidget[])}
+	 * </div>
+	 *
 	 * <p>
 	 * Same as {@link #widgets(Class...)} except input is pre-constructed instances.
 	 *
@@ -2393,8 +2426,6 @@
 	 *
 	 * @param values The values to add to this setting.
 	 * @return This object (for method chaining).
-	 *
-	 * @deprecated Use {@link HtmlDocSerializerBuilder#widgets(HtmlWidget[])}
 	 */
 	@Deprecated
 	public RestContextBuilder widgets(Widget...values) {
@@ -2404,6 +2435,10 @@
 	/**
 	 * Configuration property:  HTML Widgets.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link HtmlDocSerializerBuilder#widgetsReplace(HtmlWidget[])}
+	 * </div>
+	 *
 	 * <p>
 	 * Same as {@link #widgets(Widget...)} except allows you to overwrite the previous value.
 	 *
@@ -2413,8 +2448,6 @@
 	 *
 	 * @param values The values to add to this setting.
 	 * @return This object (for method chaining).
-	 *
-	 * @deprecated Use {@link HtmlDocSerializerBuilder#widgetsReplace(HtmlWidget[])}
 	 */
 	@Deprecated
 	public RestContextBuilder widgetsReplace(Widget...values) {
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestException.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestException.java
index 795e19d..d07cf18 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestException.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestException.java
@@ -23,11 +23,13 @@
 /**
  * Exception thrown to trigger an error HTTP status.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link HttpException}
+ * </div>
+ *
  * <p>
  * REST methods on subclasses of {@link RestServlet} can throw this exception to trigger an HTTP status other than the
  * automatically-generated <c>404</c>, <c>405</c>, and <c>500</c> statuses.
- *
- * @deprecated Use {@link HttpException}.
  */
 @Deprecated
 public class RestException extends RuntimeException {
@@ -158,7 +160,6 @@
 	 *
 	 * @param occurrence The number of times this exception has occurred.
 	 * @return This object (for method chaining).
-	 * @deprecated Not used by new logging API.
 	 */
 	@Deprecated
 	protected RestException setOccurrence(int occurrence) {
@@ -182,7 +183,6 @@
 	 *
 	 * @return
 	 * 	The occurrence number if {@link RestResource#useStackTraceHashes() @RestResource(useStackTraceHashes)} is enabled, or <c>0</c> otherwise.
-	 * @deprecated Not used by new logging API.
 	 */
 	@Deprecated
 	public int getOccurrence() {
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestLogger.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestLogger.java
index 5bf340b..384a4c6 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestLogger.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestLogger.java
@@ -22,12 +22,14 @@
 /**
  * Logging utility class.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link RestCallLogger}
+ * </div>
+ *
  * <ul class='seealso'>
  * 	<li class='jf'>{@link RestContext#REST_logger}
  * 	<li class='link'>{@doc juneau-rest-server.LoggingAndDebugging}
  * </ul>
- *
- * @deprecated Use {@link RestCallLogger}
  */
 @Deprecated
 public interface RestLogger {
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestMethodContext.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestMethodContext.java
index 933e3a2..95c768f 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestMethodContext.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestMethodContext.java
@@ -69,7 +69,9 @@
 	/**
 	 * Configuration property:  Default request attributes.
 	 *
-	 * @deprecated Use {@link #RESTMETHOD_reqAttrs}
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #RESTMETHOD_reqAttrs}
+	 * </div>
 	 */
 	@Deprecated
 	public static final String RESTMETHOD_attrs = PREFIX + ".reqAttrs.smo";
@@ -78,7 +80,7 @@
 	 * Configuration property:  Client version pattern matcher.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestMethodContext#RESTMETHOD_clientVersion RESTMETHOD_clientVersion}
 	 * 	<li><b>Name:</b>  <js>"RestMethodContext.clientVersion.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
@@ -158,7 +160,7 @@
 	 * Configuration property:  Debug mode.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestMethodContext#RESTMETHOD_debug RESTMETHOD_debug}
 	 * 	<li><b>Name:</b>  <js>"RestMethodContext.debug.s"</js>
 	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.rest.Enablement}
@@ -186,7 +188,7 @@
 	 * Configuration property:  Default form data.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestMethodContext#RESTMETHOD_defaultFormData RESTMETHOD_defaultFormData}
 	 * 	<li><b>Name:</b>  <js>"RestMethodContext.defaultFormData.omo"</js>
 	 * 	<li><b>Data type:</b>  <c>Map&lt;String,Object&gt;</c>
@@ -222,7 +224,7 @@
 	 * Configuration property:  Default query parameters.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestMethodContext#RESTMETHOD_defaultQuery RESTMETHOD_defaultQuery}
 	 * 	<li><b>Name:</b>  <js>"RestMethodContext.defaultQuery.omo"</js>
 	 * 	<li><b>Data type:</b>  <c>Map&lt;String,Object&gt;</c>
@@ -256,7 +258,9 @@
 	/**
 	 * Configuration property:  Default request headers.
 	 *
-	 * @deprecated Use {@link #RESTMETHOD_defaultRequestHeaders}
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #RESTMETHOD_defaultRequestHeaders}
+	 * </div>
 	 */
 	@Deprecated
 	public static final String RESTMETHOD_defaultRequestHeaders = PREFIX + ".reqHeaders.smo";
@@ -265,7 +269,7 @@
 	 * Configuration property:  HTTP method name.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestMethodContext#RESTMETHOD_httpMethod RESTMETHOD_httpMethod}
 	 * 	<li><b>Name:</b>  <js>"RestMethodContext.httpMethod.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
@@ -330,7 +334,7 @@
 	 * Configuration property:  Logging rules.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestMethodContext#RESTMETHOD_callLoggerConfig RESTMETHOD_callLoggerConfig}
 	 * 	<li><b>Name:</b>  <js>"RestContext.logRules.lo"</js>
 	 * 	<li><b>Data type:</b>  <c>{@link org.apache.juneau.rest.RestCallLoggerConfig}</c>
@@ -356,7 +360,7 @@
 	 * Configuration property:  Method-level matchers.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestMethodContext#RESTMETHOD_matchers RESTMETHOD_matchers}
 	 * 	<li><b>Name:</b>  <js>"RestMethodContext.matchers.lo"</js>
 	 * 	<li><b>Data type:</b>  <c>List&lt;{@link org.apache.juneau.rest.RestMatcher}|Class&lt;{@link org.apache.juneau.rest.RestMatcher}&gt;&gt;</c>
@@ -391,7 +395,7 @@
 	 * Configuration property:  Resource method path.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestMethodContext#RESTMETHOD_path RESTMETHOD_path}
 	 * 	<li><b>Name:</b>  <js>"RestMethodContext.path.s"</js>
 	 * 	<li><b>Data type:</b>  <c>String</c>
@@ -424,7 +428,7 @@
 	 * Configuration property:  Priority.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestMethodContext#RESTMETHOD_priority RESTMETHOD_priority}
 	 * 	<li><b>Name:</b>  <js>"RestMethodContext.priority.i"</js>
 	 * 	<li><b>Data type:</b>  <jk>int</jk>
@@ -453,7 +457,7 @@
 	 * Configuration property:  Default request attributes.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestMethodContext#RESTMETHOD_reqAttrs RESTMETHOD_reqAttrs}
 	 * 	<li><b>Name:</b>  <js>"RestMethodContext.reqAttrs.smo"</js>
 	 * 	<li><b>Data type:</b>  <c>Map&lt;String,Object&gt;</c>
@@ -496,7 +500,7 @@
 	 * Configuration property:  Default request headers.
 	 *
 	 * <h5 class='section'>Property:</h5>
-	 * <ul>
+	 * <ul class='spaced-list'>
 	 * 	<li><b>ID:</b>  {@link org.apache.juneau.rest.RestMethodContext#RESTMETHOD_reqHeaders RESTMETHOD_reqHeaders}
 	 * 	<li><b>Name:</b>  <js>"RestMethodContext.reqHeaders.smo"</js>
 	 * 	<li><b>Data type:</b>  <c>Map&lt;String,Object&gt;</c>
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestMethodProperties.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestMethodProperties.java
index f007fff..bf4237d 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestMethodProperties.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestMethodProperties.java
@@ -18,6 +18,10 @@
 /**
  * Encapsulates java-method-level properties.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link RequestAttributes}
+ * </div>
+ *
  * <p>
  * These are properties specified on a REST resource method that extends the properties defined on {@link RestContextProperties}
  * and adds the following:
@@ -28,7 +32,6 @@
  * <ul class='seealso'>
  * 	<li class='link'>{@doc juneau-rest-server.ConfigurableProperties}
  * </ul>
- * @deprecated Use {@link RequestAttributes}
  */
 @SuppressWarnings("serial")
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
index d7d0006..3310a30 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
@@ -243,6 +243,10 @@
 	/**
 	 * Retrieve the properties active for this request.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #getAttributes()}
+	 * </div>
+	 *
 	 * <p>
 	 * This contains all resource and method level properties from the following:
 	 * <ul class='javatree'>
@@ -279,7 +283,6 @@
 	 * </ul>
 	 *
 	 * @return The properties active for this request.
-	 * @deprecated Use {@link #getAttributes()}
 	 */
 	@Deprecated
 	public RequestProperties getProperties() {
@@ -289,10 +292,13 @@
 	/**
 	 * Shortcut for calling <c>getProperties().append(name, value);</c> fluently.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - {@link RequestAttributes#put(String, Object)} or {@link #setAttribute(String, Object)}
+	 * </div>
+	 *
 	 * @param name The property name.
 	 * @param value The property value.
 	 * @return This object (for method chaining).
-	 * @deprecated Use {@link RequestAttributes#put(String, Object)} or {@link #setAttribute(String, Object)}.
 	 */
 	@Deprecated
 	public RestRequest prop(String name, Object value) {
@@ -675,7 +681,7 @@
 	 * Shortcut for calling <c>getFormData().getString(name)</c>.
 	 *
 	 * @param name The form data parameter name.
-	 * @return The form data parameter value, or <jk>null<jk> if not found.
+	 * @return The form data parameter value, or <jk>null</jk> if not found.
 	 */
 	public String getFormData(String name) {
 		return getFormData().getString(name);
@@ -1030,7 +1036,7 @@
 	 * One possible use is if you want to add the same title to the top of all pages by defining a header on a
 	 * common parent class like so:
 	 * <p class='bcode w800'>
-	 * 	htmldoc=<ja>@HtmlDoc</ja>(
+	 *  <ja>@HtmlDocConfig</ja>(
 	 * 		header={
 	 * 			<js>"&lt;h1&gt;$R{siteName}&lt;/h1&gt;"</js>,
 	 * 			<js>"&lt;h2&gt;$R{resourceTitle}&lt;/h2&gt;"</js>
@@ -1581,11 +1587,13 @@
 	/**
 	 * Returns the widgets used for resolving <js>"$W{...}"</js> string variables.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - No replacement.
+	 * </div>
+	 *
 	 * @return
 	 * 	The widgets used for resolving <js>"$W{...}"</js> string variables.
 	 * 	Never <jk>null</jk>.
-	 *
-	 * @deprecated No replacement.
 	 */
 	@Deprecated
 	public Map<String,Widget> getWidgets() {
@@ -1748,6 +1756,10 @@
 	/**
 	 * Logger.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use standard logging APIs
+	 * </div>
+	 *
 	 * <p>
 	 * Shortcut for calling <c>getContext().getLogger()</c>.
 	 *
@@ -1776,8 +1788,6 @@
 	 * @return
 	 * 	The logger associated with the resource context.
 	 * 	<br>Never <jk>null</jk>.
-	 *
-	 * @deprecated Use standard logging APIs.
 	 */
 	@Deprecated
 	public RestCallLogger getLogger() {
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestResponse.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestResponse.java
index a68160c..4ce7c51 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestResponse.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestResponse.java
@@ -205,21 +205,23 @@
 	/**
 	 * Returns a programmatic interface for setting properties for the HTML doc view.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link HtmlDocConfig}
+	 * </div>
+	 *
 	 * <p>
 	 * This is the programmatic equivalent to the {@link RestMethod#htmldoc() @RestMethod(htmldoc)} annotation.
 	 *
 	 * <h5 class='section'>Example:</h5>
 	 * <p class='bcode w800'>
 	 * 	<jc>// Declarative approach.</jc>
-	 * 	<ja>@RestMethod</ja>(
-	 * 		htmldoc=<ja>@HtmlDoc</ja>(
-	 * 			header={
-	 * 				<js>"&lt;p&gt;This is my REST interface&lt;/p&gt;"</js>
-	 * 			},
-	 * 			aside={
-	 * 				<js>"&lt;p&gt;Custom aside content&lt;/p&gt;"</js>
-	 * 			}
-	 * 		)
+	 *  <ja>@HtmlDocConfig</ja>(
+	 * 		header={
+	 * 			<js>"&lt;p&gt;This is my REST interface&lt;/p&gt;"</js>
+	 * 		},
+	 * 		aside={
+	 * 			<js>"&lt;p&gt;Custom aside content&lt;/p&gt;"</js>
+	 * 		}
 	 * 	)
 	 * 	<jk>public</jk> Object doGet(RestResponse res) {
 	 *
@@ -236,8 +238,6 @@
 	 * </ul>
 	 *
 	 * @return A new programmatic interface for setting properties for the HTML doc view.
-	 *
-	 * @deprecated Use {@link HtmlDocConfig}
 	 */
 	@Deprecated
 	public HtmlDocBuilder getHtmlDocBuilder() {
@@ -249,6 +249,10 @@
 	/**
 	 * Retrieve the properties active for this request.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link RestResponse#getAttributes()}
+	 * </div>
+	 *
 	 * <p>
 	 * This contains all resource and method level properties from the following:
 	 * <ul class='javatree'>
@@ -285,7 +289,6 @@
 	 * </ul>
 	 *
 	 * @return The properties active for this request.
-	 * @deprecated Use {@link RestResponse#getAttributes()}.
 	 */
 	@Deprecated
 	public RequestProperties getProperties() {
@@ -295,10 +298,13 @@
 	/**
 	 * Shortcut for calling <c>getProperties().append(name, value);</c> fluently.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #attr(String,Object)}
+	 * </div>
+	 *
 	 * @param name The property name.
 	 * @param value The property value.
 	 * @return This object (for method chaining).
-	 * @deprecated Use {@link #attr(String,Object)}.
 	 */
 	@Deprecated
 	public RestResponse prop(String name, Object value) {
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/HtmlDoc.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/HtmlDoc.java
index 37f5f7f..3d51c87 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/HtmlDoc.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/HtmlDoc.java
@@ -20,6 +20,10 @@
 /**
  * Contains all the configurable annotations for the {@link HtmlDocSerializer}.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link HtmlDocConfig}
+ * </div>
+ *
  * <p>
  * Used with {@link RestResource#htmldoc() @RestResource(htmldoc)} and {@link RestMethod#htmldoc() @RestMethod(htmldoc)}
  * to customize the HTML view of serialized POJOs.
@@ -83,8 +87,6 @@
  * <ul class='seealso'>
  * 	<li class='link'>{@doc juneau-rest-server.HtmlDocAnnotation}
  * </ul>
- *
- * @deprecated Use {@link HtmlDocConfig}
  */
 @Deprecated
 public @interface HtmlDoc {
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/Logging.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/Logging.java
index 0e371f6..548c0cf 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/Logging.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/Logging.java
@@ -67,9 +67,9 @@
 	 * <p>
 	 * The possible values are (case-insensitive):
 	 * <ul>
-	 * 	<li><js>"true</jk> - Disable logging.
-	 * 	<li><js>"false"</jk> (default) - Don't disable logging.
-	 * 	<li><js>"per-request"</jk> - Disable logging if No-Trace is set on the request.
+	 * 	<li><js>"true</js> - Disable logging.
+	 * 	<li><js>"false"</js> (default) - Don't disable logging.
+	 * 	<li><js>"per-request"</js> - Disable logging if No-Trace is set on the request.
 	 * </ul>
 	 *
 	 * <p>
@@ -160,8 +160,8 @@
 	 * <p>
 	 * The possible values are (case-insensitive):
 	 * <ul>
-	 * 	<li><js>"true</jk> - Use stack trace hashing.
-	 * 	<li><js>"false"</jk> (default) - Don't use stack trace hashing.
+	 * 	<li><js>"true</js> - Use stack trace hashing.
+	 * 	<li><js>"false"</js> (default) - Don't use stack trace hashing.
 	 * </ul>
 	 *
 	 * <ul class='notes'>
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/LoggingRule.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/LoggingRule.java
index c075f55..b8f8907 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/LoggingRule.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/LoggingRule.java
@@ -62,8 +62,8 @@
 	 * <p>
 	 * The possible values are (case-insensitive):
 	 * <ul>
-	 * 	<li><js>"true</jk> - Match debug requests only.
-	 * 	<li><js>"false"</jk> - Match any requests.
+	 * 	<li><js>"true</js> - Match debug requests only.
+	 * 	<li><js>"false"</js> - Match any requests.
 	 * </ul>
 	 *
 	 * <ul class='notes'>
@@ -84,9 +84,9 @@
 	 * <p>
 	 * The possible values are (case-insensitive):
 	 * <ul>
-	 * 	<li><js>"true</jk> - Disable logging.
-	 * 	<li><js>"false"</jk> (default) - Don't disable logging.
-	 * 	<li><js>"per-request"</jk> - Disable logging if No-Trace is set on the request.
+	 * 	<li><js>"true</js> - Disable logging.
+	 * 	<li><js>"false"</js> (default) - Don't disable logging.
+	 * 	<li><js>"per-request"</js> - Disable logging if No-Trace is set on the request.
 	 * </ul>
 	 *
 	 * <p>
@@ -166,9 +166,9 @@
 	 * <p>
 	 * The possible values are (case-insensitive):
 	 * <ul>
-	 * 	<li><js>"short</jk> (default) - Just the HTTP method and URL.
-	 * 	<li><js>"medium"</jk> (default) - Also the URL parameters, body size, and request headers.
-	 * 	<li><js>"long"</jk> - Also the request body as UTF-8 and spaced-hex text (debug must be enabled).
+	 * 	<li><js>"short</js> (default) - Just the HTTP method and URL.
+	 * 	<li><js>"medium"</js> (default) - Also the URL parameters, body size, and request headers.
+	 * 	<li><js>"long"</js> - Also the request body as UTF-8 and spaced-hex text (debug must be enabled).
 	 * </ul>
 	 *
 	 * <ul class='notes'>
@@ -189,9 +189,9 @@
 	 * <p>
 	 * The possible values are (case-insensitive):
 	 * <ul>
-	 * 	<li><js>"short</jk> (default) - Just the response code.
-	 * 	<li><js>"medium"</jk> (default) - Also the body size, response headers, and execution time.
-	 * 	<li><js>"long"</jk> - Also the response body as UTF-8 and spaced-hex text (debug must be enabled).
+	 * 	<li><js>"short</js> (default) - Just the response code.
+	 * 	<li><js>"medium"</js> (default) - Also the body size, response headers, and execution time.
+	 * 	<li><js>"long"</js> - Also the response body as UTF-8 and spaced-hex text (debug must be enabled).
 	 * </ul>
 	 *
 	 * <ul class='notes'>
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/ResourceSwagger.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/ResourceSwagger.java
index 05b9096..6eb86a7 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/ResourceSwagger.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/ResourceSwagger.java
@@ -48,7 +48,6 @@
 	 * 			<li>{@link ResourceSwagger#title()} on this class, then any parent classes.
 	 * 			<li>Value defined in Swagger JSON file.
 	 * 			<li>{@link Rest#title()} on this class, then any parent classes.
-	 * 			<li>
 	 * 		</ol>
 	 * 	<li>
 	 * 		Supports {@doc DefaultRestSvlVariables}
@@ -65,7 +64,7 @@
 	 * 	<ja>@Rest</ja>(
 	 * 		swagger=<ja>@ResourceSwagger</ja>(
 	 * 			description={
-	 * 				<js>"This is a sample server Petstore server based on the Petstore sample at Swagger.io."<js>,
+	 * 				<js>"This is a sample server Petstore server based on the Petstore sample at Swagger.io."</js>,
 	 * 				<js>"You can find out more about Swagger at &lt;a class='link' href='http://swagger.io'&gt;http://swagger.io&lt;/a&gt;."</js>
 	 * 			}
 	 * 		)
@@ -83,7 +82,6 @@
 	 * 			<li>{@link ResourceSwagger#description()} on this class, then any parent classes.
 	 * 			<li>Value defined in Swagger JSON file.
 	 * 			<li>{@link Rest#description()} on this class, then any parent classes.
-	 * 			<li>
 	 * 		</ol>
 	 * 	<li>
 	 * 		Supports {@doc DefaultRestSvlVariables}
@@ -118,23 +116,6 @@
 	 * 		)
 	 * 	)
 	 * </p>
-	swagger={
-		"info: {",
-			"contact:{name:'Juneau Developer',email:'dev@juneau.apache.org'},",
-			"license:{name:'Apache 2.0',url:'http://www.apache.org/licenses/LICENSE-2.0.html'},",
-			"version:'2.0',",
-			"termsOfService:'You are on your own.'",
-		"},",
-		"externalDocs:{description:'Apache Juneau',url:'http://juneau.apache.org'}"
-	}
-	swagger=@ResourceSwagger(
-		contact="name:'Juneau Developer',email:'dev@juneau.apache.org'",
-		license="name:'Apache 2.0',url:'http://www.apache.org/licenses/LICENSE-2.0.html'",
-		version="2.0",
-		termsOfService="You are on your own.",
-		externalDocs="description:'Apache Juneau',url:'http://juneau.apache.org'}"
-	)
-	swagger=@ResourceSwagger("$F{PetStoreResource.json}"),
 	 *
 	 * <ul class='notes'>
 	 * 	<li>
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/Rest.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/Rest.java
index a710948..13f6a92 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/Rest.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/Rest.java
@@ -151,8 +151,10 @@
 
 	/**
 	 * Default request attributes.
-	 * 
-	 * @deprecated Use {@link #reqAttrs()}
+	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #reqAttrs()}
+	 * </div>
 	 */
 	@Deprecated
 	String[] attrs() default {};
@@ -298,16 +300,20 @@
 
 	/**
 	 * Default request headers.
-	 * 
-	 * @deprecated Use {@link #reqHeaders()}
+	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #reqHeaders()}
+	 * </div>
 	 */
 	@Deprecated
 	String[] defaultRequestHeaders() default {};
 
 	/**
 	 * Default response headers.
-	 * 
-	 * @deprecated Use {@link #resHeaders()}
+	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #resHeaders()}
+	 * </div>
 	 */
 	@Deprecated
 	String[] defaultResponseHeaders() default {};
@@ -874,7 +880,7 @@
 	 * One possible use is if you want to add the same title to the top of all pages by defining a header on a
 	 * common parent class like so:
 	 * <p class='bcode w800'>
-	 * 	htmldoc=<ja>@HtmlDoc</ja>(
+	 *  <ja>@HtmlDocConfig</ja>(
 	 * 		header={
 	 * 			<js>"&lt;h1&gt;$R{siteName}&lt;/h1&gt;"</js>,
 	 * 			<js>"&lt;h2&gt;$R{resourceTitle}&lt;/h2&gt;"</js>
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestMethod.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestMethod.java
index d177480..f34ca28 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestMethod.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestMethod.java
@@ -39,8 +39,10 @@
 
 	/**
 	 * Default request attributes.
-	 * 
-	 * @deprecated Use {@link #reqAttrs()}
+	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #reqAttrs()}
+	 * </div>
 	 */
 	@Deprecated
 	String[] attrs() default {};
@@ -48,6 +50,10 @@
 	/**
 	 * Sets the bean filters for the serializers and parsers defined on this method.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link BeanConfig#beanFilters()}
+	 * </div>
+	 *
 	 * <p>
 	 * If no value is specified, the bean filters are inherited from the class.
 	 * <br>Otherwise, this value overrides the bean filters defined on the class.
@@ -61,22 +67,24 @@
 	 * <ul class='seealso'>
 	 * 	<li class='jf'>{@link BeanContext#BEAN_beanFilters}
 	 * </ul>
-	 *
-	 * @deprecated Use {@link BeanConfig#beanFilters()}
 	 */
 	@Deprecated Class<?>[] beanFilters() default {};
 
 	/**
 	 * Shortcut for specifying the {@link BeanContext#BEAN_bpi} property on all serializers.
 	 *
-	 * @deprecated Use {@link BeanConfig#bpi()}
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link BeanConfig#bpi()}
+	 * </div>
 	 */
 	@Deprecated String[] bpi() default {};
 
 	/**
 	 * Shortcut for specifying the {@link BeanContext#BEAN_bpx} property on all serializers.
 	 *
-	 * @deprecated Use {@link BeanConfig#bpx()}
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link BeanConfig#bpx()}
+	 * </div>
 	 */
 	@Deprecated String[] bpx() default {};
 
@@ -275,8 +283,10 @@
 
 	/**
 	 * Default request headers.
-	 * 
-	 * @deprecated Use {@link #reqHeaders()}
+	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link #reqHeaders()}
+	 * </div>
 	 */
 	@Deprecated
 	String[] defaultRequestHeaders() default {};
@@ -353,14 +363,16 @@
 	/**
 	 * Provides HTML-doc-specific metadata on this method.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link HtmlDocConfig}
+	 * </div>
+	 *
 	 * <p>
 	 * Information provided here overrides information provided in the servlet-level annotation.
 	 *
 	 * <ul class='seealso'>
 	 * 	<li class='link'>{@doc juneau-rest-server.HtmlDocAnnotation}
 	 * </ul>
-	 *
-	 * @deprecated Use {@link HtmlDocConfig}
 	 */
 	@Deprecated
 	HtmlDoc htmldoc() default @HtmlDoc;
@@ -567,6 +579,10 @@
 	/**
 	 * Sets the POJO swaps for the serializers and parsers defined on this method.
 	 *
+	 * <div class='warn'>
+	 * 	<b>Deprecated</b> - Use {@link BeanConfig#pojoSwaps()}
+	 * </div>
+	 *
 	 * <p>
 	 * If no value is specified, the POJO swaps are inherited from the class.
 	 * <br>Otherwise, this value overrides the POJO swaps defined on the class.
@@ -580,8 +596,6 @@
 	 * <ul class='seealso'>
 	 * 	<li class='jf'>{@link BeanContext#BEAN_pojoSwaps}
 	 * </ul>
-	 *
-	 * @deprecated Use {@link BeanConfig#pojoSwaps()}
 	 */
 	@Deprecated
 	Class<?>[] pojoSwaps() default {};
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestResource.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestResource.java
index 5d48a47..ce9c1da 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestResource.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestResource.java
@@ -21,18 +21,19 @@
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.config.*;
 import org.apache.juneau.encoders.*;
-import org.apache.juneau.html.annotation.*;
 import org.apache.juneau.httppart.*;
 import org.apache.juneau.parser.*;
-import org.apache.juneau.parser.annotation.*;
 import org.apache.juneau.rest.*;
 import org.apache.juneau.serializer.*;
-import org.apache.juneau.serializer.annotation.*;
 import org.apache.juneau.utils.*;
 
 /**
  * Used to denote that a class is a REST resource and to associate metadata on it.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link Rest}
+ * </div>
+ *
  * <p>
  * Usually used on a subclass of {@link RestServlet}, but can be used to annotate any class that you want to expose as
  * a REST resource.
@@ -40,9 +41,8 @@
  * <ul class='seealso'>
  * 	<li class='link'>{@doc juneau-rest-server.Rest}
  * </ul>
- *
- * @deprecated Use {@link Rest}
  */
+@SuppressWarnings("deprecation")
 @Documented
 @Target(TYPE)
 @Retention(RUNTIME)
@@ -178,9 +178,7 @@
 	 * <ul class='seealso'>
 	 * 	<li class='jf'>{@link RestContext#REST_allowHeaderParams}
 	 * </ul>
-	 * @deprecated Use {@link #allowedHeaderParams()}
 	 */
-	@Deprecated
 	String allowHeaderParams() default "";
 
 	/**
@@ -210,10 +208,7 @@
 	 * <ul class='seealso'>
 	 * 	<li class='jf'>{@link BeanContext#BEAN_beanFilters}
 	 * </ul>
-	 *
-	 * @deprecated Use {@link BeanConfig#beanFilters()}
 	 */
-	@Deprecated
 	Class<?>[] beanFilters() default {};
 
 	/**
@@ -496,10 +491,7 @@
 	 * <ul class='seealso'>
 	 * 	<li class='link'>{@doc juneau-rest-server.HtmlDocAnnotation}
 	 * </ul>
-	 *
-	 * @deprecated Use {@link HtmlDocConfig}
 	 */
-	@Deprecated
 	HtmlDoc htmldoc() default @HtmlDoc;
 
 	/**
@@ -523,9 +515,7 @@
 	 * <ul class='seealso'>
 	 * 	<li class='jf'>{@link RestContext#REST_logger}
 	 * </ul>
-	 * @deprecated Use {@link #callLogger()}
 	 */
-	@SuppressWarnings("dep-ann")
 	Class<? extends RestLogger> logger() default RestLogger.Null.class;
 
 	/**
@@ -625,10 +615,7 @@
 	 * <ul class='seealso'>
 	 * 	<li class='jf'>{@link Parser#PARSER_listener}
 	 * </ul>
-	 *
-	 * @deprecated Use {@link ParserConfig#listener()}
 	 */
-	@Deprecated
 	Class<? extends ParserListener> parserListener() default ParserListener.Null.class;
 
 	/**
@@ -814,10 +801,7 @@
 	 * <ul class='seealso'>
 	 * 	<li class='jf'>{@link BeanContext#BEAN_pojoSwaps}
 	 * </ul>
-	 *
-	 * @deprecated {@link BeanConfig#pojoSwaps()}
 	 */
-	@Deprecated
 	Class<?>[] pojoSwaps() default {};
 
 	/**
@@ -972,10 +956,7 @@
 	 * <ul class='seealso'>
 	 * 	<li class='jf'>{@link Serializer#SERIALIZER_listener}
 	 * </ul>
-	 *
-	 * @deprecated Use {@link SerializerConfig#listener()}
 	 */
-	@Deprecated
 	Class<? extends SerializerListener> serializerListener() default SerializerListener.Null.class;
 
 	/**
@@ -1389,10 +1370,7 @@
 	 * <ul class='seealso'>
 	 * 	<li class='jf'>{@link RestContext#REST_useStackTraceHashes}
 	 * </ul>
-	 *
-	 * @deprecated Use {@link Logging#useStackTraceHashing()}
 	 */
-	@Deprecated
 	String useStackTraceHashes() default "";
 
 	/**
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/BadRequest.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/BadRequest.java
index c740fa7..70ec423 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/BadRequest.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/BadRequest.java
@@ -22,10 +22,12 @@
 /**
  * Exception representing an HTTP 400 (Bad Request).
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.exception.BadRequest}
+ * </div>
+ *
  * <p>
  * The server cannot or will not process the request due to an apparent client error (e.g., malformed request syntax, size too large, invalid request message framing, or deceptive request routing).
- *
- * @deprecated Use {@link org.apache.juneau.http.exception.BadRequest}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/Conflict.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/Conflict.java
index 36bcbe3..b0265f1 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/Conflict.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/Conflict.java
@@ -22,10 +22,12 @@
 /**
  * Exception representing an HTTP 409 (Conflict).
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.exception.Conflict}
+ * </div>
+ *
  * <p>
  * Indicates that the request could not be processed because of conflict in the request, such as an edit conflict between multiple simultaneous updates.
- *
- * @deprecated Use {@link org.apache.juneau.http.exception.Conflict}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/ExpectationFailed.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/ExpectationFailed.java
index 087ebfd..27e3577 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/ExpectationFailed.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/ExpectationFailed.java
@@ -22,10 +22,12 @@
 /**
  * Exception representing an HTTP 417 (Expectation Failed).
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.exception.ExpectationFailed}
+ * </div>
+ *
  * <p>
  * The server cannot meet the requirements of the Expect request-header field.
- *
- * @deprecated Use {@link org.apache.juneau.http.exception.ExpectationFailed}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/FailedDependency.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/FailedDependency.java
index e646bfa..0ae9dfa 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/FailedDependency.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/FailedDependency.java
@@ -22,10 +22,12 @@
 /**
  * Exception representing an HTTP 424 (Failed Dependency).
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.exception.FailedDependency}
+ * </div>
+ *
  * <p>
  * The request failed because it depended on another request and that request failed (e.g., a PROPPATCH).
- *
- * @deprecated Use {@link org.apache.juneau.http.exception.FailedDependency}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/Forbidden.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/Forbidden.java
index 1e43801..b0d21f0 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/Forbidden.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/Forbidden.java
@@ -22,11 +22,13 @@
 /**
  * Exception representing an HTTP 403 (Forbidden).
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.exception.Forbidden}
+ * </div>
+ *
  * <p>
  * The request was valid, but the server is refusing action.
  * <br>The user might not have the necessary permissions for a resource, or may need an account of some sort.
- *
- * @deprecated Use {@link org.apache.juneau.http.exception.Forbidden}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/Gone.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/Gone.java
index 8224ac1..80a056a 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/Gone.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/Gone.java
@@ -22,14 +22,16 @@
 /**
  * Exception representing an HTTP 410 ().
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.exception.Gone}
+ * </div>
+ *
  * <p>
  * Indicates that the resource requested is no longer available and will not be available again.
  * <br>This should be used when a resource has been intentionally removed and the resource should be purged.
  * <br>Upon receiving a 410 status code, the client should not request the resource in the future.
  * <br>Clients such as search engines should remove the resource from their indices.
  * <br>Most use cases do not require clients and search engines to purge the resource, and a <js>"404 Not Found"</js> may be used instead.
- *
- * @deprecated Use {@link org.apache.juneau.http.exception.Gone}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/HttpVersionNotSupported.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/HttpVersionNotSupported.java
index 035647c..1d268aa 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/HttpVersionNotSupported.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/HttpVersionNotSupported.java
@@ -22,10 +22,12 @@
 /**
  * Exception representing an HTTP 505 ().
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.exception.HttpVersionNotSupported}
+ * </div>
+ *
  * <p>
  * The server does not support the HTTP protocol version used in the request.
- *
- * @deprecated Use {@link org.apache.juneau.http.exception.HttpVersionNotSupported}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/InsufficientStorage.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/InsufficientStorage.java
index ce6b6a5..e88e93f 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/InsufficientStorage.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/InsufficientStorage.java
@@ -22,10 +22,12 @@
 /**
  * Exception representing an HTTP 507 ().
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.exception.InsufficientStorage}
+ * </div>
+ *
  * <p>
  * The server is unable to store the representation needed to complete the request.
- *
- * @deprecated Use {@link org.apache.juneau.http.exception.InsufficientStorage}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/InternalServerError.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/InternalServerError.java
index 2536d01..6805fae 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/InternalServerError.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/InternalServerError.java
@@ -22,10 +22,12 @@
 /**
  * Exception representing an HTTP 500 (Internal Server Error).
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.exception.InternalServerError}
+ * </div>
+ *
  * <p>
  * A generic error message, given when an unexpected condition was encountered and no more specific message is suitable.
- *
- * @deprecated Use {@link org.apache.juneau.http.exception.InternalServerError}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/LengthRequired.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/LengthRequired.java
index 1fc808a..1efa5a6 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/LengthRequired.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/LengthRequired.java
@@ -22,10 +22,12 @@
 /**
  * Exception representing an HTTP 411 ().
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.exception.LengthRequired}
+ * </div>
+ *
  * <p>
  * The request did not specify the length of its content, which is required by the requested resource.
- *
- * @deprecated Use {@link org.apache.juneau.http.exception.LengthRequired}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/Locked.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/Locked.java
index bc0beb6..ecbb1ad 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/Locked.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/Locked.java
@@ -22,10 +22,12 @@
 /**
  * Exception representing an HTTP 423 (Locked).
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.exception.Locked}
+ * </div>
+ *
  * <p>
  * The resource that is being accessed is locked.
- *
- * @deprecated Use {@link org.apache.juneau.http.exception.Locked}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/LoopDetected.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/LoopDetected.java
index d6fc64b..b24ca3c 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/LoopDetected.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/LoopDetected.java
@@ -22,10 +22,12 @@
 /**
  * Exception representing an HTTP 508 (Loop Detected).
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.exception.LoopDetected}
+ * </div>
+ *
  * <p>
  * The server detected an infinite loop while processing the request (sent in lieu of 208 Already Reported).
- *
- * @deprecated Use {@link org.apache.juneau.http.exception.LoopDetected}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/MethodNotAllowed.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/MethodNotAllowed.java
index ac2c066..b7d7bad 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/MethodNotAllowed.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/MethodNotAllowed.java
@@ -22,10 +22,12 @@
 /**
  * Exception representing an HTTP 405 (Method Not Allowed).
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.exception.MethodNotAllowed}
+ * </div>
+ *
  * <p>
  * A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
- *
- * @deprecated Use {@link org.apache.juneau.http.exception.MethodNotAllowed}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/MisdirectedRequest.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/MisdirectedRequest.java
index eb48ae6..3b8d678 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/MisdirectedRequest.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/MisdirectedRequest.java
@@ -22,10 +22,12 @@
 /**
  * Exception representing an HTTP 421 (Misdirected Request).
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.exception.MisdirectedRequest}
+ * </div>
+ *
  * <p>
  * The request was directed at a server that is not able to produce a response (for example because of connection reuse).
- *
- * @deprecated Use {@link org.apache.juneau.http.exception.MisdirectedRequest}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/NetworkAuthenticationRequired.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/NetworkAuthenticationRequired.java
index a0c3940..4923b1e 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/NetworkAuthenticationRequired.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/NetworkAuthenticationRequired.java
@@ -22,11 +22,13 @@
 /**
  * Exception representing an HTTP 511 (Network Authentication Required).
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.exception.NetworkAuthenticationRequired}
+ * </div>
+ *
  * <p>
  * The client needs to authenticate to gain network access.
  * <br>Intended for use by intercepting proxies used to control access to the network (e.g., "captive portals" used to require agreement to Terms of Service before granting full Internet access via a Wi-Fi hotspot).
- *
- * @deprecated Use {@link org.apache.juneau.http.exception.NetworkAuthenticationRequired}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/NotAcceptable.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/NotAcceptable.java
index a7b1f61..c2501e6 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/NotAcceptable.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/NotAcceptable.java
@@ -22,10 +22,12 @@
 /**
  * Exception representing an HTTP 406 (Not Acceptable).
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.exception.NotAcceptable}
+ * </div>
+ *
  * <br>
  * The requested resource is capable of generating only content not acceptable according to the Accept headers sent in the request.
- *
- * @deprecated Use {@link org.apache.juneau.http.exception.NotAcceptable}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/NotExtended.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/NotExtended.java
index 4b70dea..d5149d2 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/NotExtended.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/NotExtended.java
@@ -22,10 +22,12 @@
 /**
  * Exception representing an HTTP 510 (Not Extended).
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.exception.NotExtended}
+ * </div>
+ *
  * <p>
  * Further extensions to the request are required for the server to fulfill it.
- *
- * @deprecated Use {@link org.apache.juneau.http.exception.NotExtended}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/NotFound.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/NotFound.java
index aaece07..22fe4c4 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/NotFound.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/NotFound.java
@@ -22,11 +22,13 @@
 /**
  * Exception representing an HTTP 404 (Not Found).
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.exception.NotFound}
+ * </div>
+ *
  * <p>
  * The requested resource could not be found but may be available in the future.
  * <br>Subsequent requests by the client are permissible.
- *
- * @deprecated Use {@link org.apache.juneau.http.exception.NotFound}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/NotImplemented.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/NotImplemented.java
index b55b9f5..ed75ef2 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/NotImplemented.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/NotImplemented.java
@@ -22,11 +22,13 @@
 /**
  * Exception representing an HTTP 501 (Not Implemented).
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.exception.NotImplemented}
+ * </div>
+ *
  * <p>
  * The server either does not recognize the request method, or it lacks the ability to fulfill the request.
  * <br>Usually this implies future availability (e.g., a new feature of a web-service API).
- *
- * @deprecated Use {@link org.apache.juneau.http.exception.NotImplemented}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/PayloadTooLarge.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/PayloadTooLarge.java
index 4a1a077..6b4fe82 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/PayloadTooLarge.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/PayloadTooLarge.java
@@ -22,10 +22,12 @@
 /**
  * Exception representing an HTTP 413 (Payload Too Large).
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.exception.PayloadTooLarge}
+ * </div>
+ *
  * <p>
  * The request is larger than the server is willing or able to process.
- *
- * @deprecated Use {@link org.apache.juneau.http.exception.PayloadTooLarge}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/PreconditionFailed.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/PreconditionFailed.java
index b322b46..2f8a1ad 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/PreconditionFailed.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/PreconditionFailed.java
@@ -22,10 +22,12 @@
 /**
  * Exception representing an HTTP 412 (Precondition Failed).
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.exception.PreconditionFailed}
+ * </div>
+ *
  * <p>
  * The server does not meet one of the preconditions that the requester put on the request.
- *
- * @deprecated Use {@link org.apache.juneau.http.exception.PreconditionFailed}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/PreconditionRequired.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/PreconditionRequired.java
index adec191..f6e7349 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/PreconditionRequired.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/PreconditionRequired.java
@@ -22,11 +22,13 @@
 /**
  * Exception representing an HTTP 428 (Precondition Required).
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.exception.PreconditionRequired}
+ * </div>
+ *
  * <p>
  * The origin server requires the request to be conditional.
  * <br>Intended to prevent the 'lost update' problem, where a client GETs a resource's state, modifies it, and PUTs it back to the server, when meanwhile a third party has modified the state on the server, leading to a conflict.
- *
- * @deprecated Use {@link org.apache.juneau.http.exception.PreconditionRequired}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/RangeNotSatisfiable.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/RangeNotSatisfiable.java
index 0abccd9..17b3dec 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/RangeNotSatisfiable.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/RangeNotSatisfiable.java
@@ -22,11 +22,13 @@
 /**
  * Exception representing an HTTP 416 (Range Not Satisfiable).
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.exception.RangeNotSatisfiable}
+ * </div>
+ *
  * <p>
  * The client has asked for a portion of the file (byte serving), but the server cannot supply that portion.
  * <br>For example, if the client asked for a part of the file that lies beyond the end of the file.
- *
- * @deprecated Use {@link org.apache.juneau.http.exception.RangeNotSatisfiable}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/RequestHeaderFieldsTooLarge.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/RequestHeaderFieldsTooLarge.java
index 584dba1..420272c 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/RequestHeaderFieldsTooLarge.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/RequestHeaderFieldsTooLarge.java
@@ -22,10 +22,12 @@
 /**
  * Exception representing an HTTP 431 (Request Header Fields Too Large).
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.exception.RequestHeaderFieldsTooLarge}
+ * </div>
+ *
  * <p>
  * The server is unwilling to process the request because either an individual header field, or all the header fields collectively, are too large.
- *
- * @deprecated Use {@link org.apache.juneau.http.exception.RequestHeaderFieldsTooLarge}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/ServiceUnavailable.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/ServiceUnavailable.java
index 2f0def1..c442733 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/ServiceUnavailable.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/ServiceUnavailable.java
@@ -22,11 +22,13 @@
 /**
  * Exception representing an HTTP 503 (Service Unavailable).
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.exception.ServiceUnavailable}
+ * </div>
+ *
  * <p>
  * The server is currently unavailable (because it is overloaded or down for maintenance).
  * <br>Generally, this is a temporary state.
- *
- * @deprecated Use {@link org.apache.juneau.http.exception.ServiceUnavailable}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/TooManyRequests.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/TooManyRequests.java
index bc1ffc4..007fe7f 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/TooManyRequests.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/TooManyRequests.java
@@ -22,11 +22,13 @@
 /**
  * Exception representing an HTTP 429 (Too Many Requests).
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.exception.TooManyRequests}
+ * </div>
+ *
  * <p>
  * The user has sent too many requests in a given amount of time.
  * <br>Intended for use with rate-limiting schemes.
- *
- * @deprecated Use {@link org.apache.juneau.http.exception.TooManyRequests}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/Unauthorized.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/Unauthorized.java
index 4740351..52ebbb4 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/Unauthorized.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/Unauthorized.java
@@ -22,13 +22,15 @@
 /**
  * Exception representing an HTTP 401 (Unauthorized).
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.exception.Unauthorized}
+ * </div>
+ *
  * <p>
  * Similar to <c>403 Forbidden</c>, but specifically for use when authentication is required and has failed or has not yet been provided.
  * <br>The response must include a WWW-Authenticate header field containing a challenge applicable to the requested resource.
  * <br>401 semantically means "unauthenticated",i.e. the user does not have the necessary credentials.
  * <br>Note: Some sites issue HTTP 401 when an IP address is banned from the website (usually the website domain) and that specific address is refused permission to access a website.
- *
- * @deprecated Use {@link org.apache.juneau.http.exception.Unauthorized}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/UnavailableForLegalReasons.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/UnavailableForLegalReasons.java
index acbe0c2..c9dddfb 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/UnavailableForLegalReasons.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/UnavailableForLegalReasons.java
@@ -22,10 +22,12 @@
 /**
  * Exception representing an HTTP 451 (Unavailable For Legal Reasons).
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.exception.UnavailableForLegalReasons}
+ * </div>
+ *
  * <p>
  * A server operator has received a legal demand to deny access to a resource or to a set of resources that includes the requested resource.
- *
- * @deprecated Use {@link org.apache.juneau.http.exception.UnavailableForLegalReasons}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/UnprocessableEntity.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/UnprocessableEntity.java
index ce0c486..1d7b1be 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/UnprocessableEntity.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/UnprocessableEntity.java
@@ -22,10 +22,12 @@
 /**
  * Exception representing an HTTP 422 (Unprocessable Entity).
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.exception.UnprocessableEntity}
+ * </div>
+ *
  * <p>
  * The request was well-formed but was unable to be followed due to semantic errors.
- *
- * @deprecated Use {@link org.apache.juneau.http.exception.UnprocessableEntity}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/UnsupportedMediaType.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/UnsupportedMediaType.java
index e6d459e..38038b5 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/UnsupportedMediaType.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/UnsupportedMediaType.java
@@ -22,11 +22,13 @@
 /**
  * Exception representing an HTTP 415 (Unsupported Media Type).
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.exception.UnsupportedMediaType}
+ * </div>
+ *
  * <p>
  * The request entity has a media type which the server or resource does not support.
  * <br>For example, the client uploads an image as image/svg+xml, but the server requires that images use a different format.
- *
- * @deprecated Use {@link org.apache.juneau.http.exception.UnsupportedMediaType}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/UpgradeRequired.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/UpgradeRequired.java
index 6e4bbdb..b1c8813 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/UpgradeRequired.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/UpgradeRequired.java
@@ -22,10 +22,12 @@
 /**
  * Exception representing an HTTP 426 (Upgrade Required).
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.exception.UpgradeRequired}
+ * </div>
+ *
  * <p>
  * The client should switch to a different protocol such as TLS/1.0, given in the Upgrade header field.
- *
- * @deprecated Use {@link org.apache.juneau.http.exception.UpgradeRequired}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/UriTooLong.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/UriTooLong.java
index e0ec91e..99476e9 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/UriTooLong.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/UriTooLong.java
@@ -22,11 +22,13 @@
 /**
  * Exception representing an HTTP 414 (URI Too Long).
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.exception.UriTooLong}
+ * </div>
+ *
  * <p>
  * The URI provided was too long for the server to process.
  * <br>Often the result of too much data being encoded as a query-string of a GET request, in which case it should be converted to a POST request.
- *
- * @deprecated Use {@link org.apache.juneau.http.exception.UriTooLong}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/VariantAlsoNegotiates.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/VariantAlsoNegotiates.java
index af609c9..0a9ece2 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/VariantAlsoNegotiates.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/exception/VariantAlsoNegotiates.java
@@ -22,10 +22,12 @@
 /**
  * Exception representing an HTTP 506 (Variant Also Negotiate).
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.exception.VariantAlsoNegotiates}
+ * </div>
+ *
  * <p>
  * Transparent content negotiation for the request results in a circular reference.
- *
- * @deprecated Use {@link org.apache.juneau.http.exception.VariantAlsoNegotiates}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/mock/MockHttpSession.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/mock/MockHttpSession.java
index 09bb510..57566b6 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/mock/MockHttpSession.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/mock/MockHttpSession.java
@@ -20,7 +20,9 @@
 /**
  * An implementation of {@link HttpSession} for mocking purposes.
  *
- * @deprecated Use <c>org.apache.juneau.rest.mock2</c>
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use <c>org.apache.juneau.restmock2</c>
+ * </div>
  */
 @Deprecated
 public class MockHttpSession implements HttpSession {
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/mock/MockRest.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/mock/MockRest.java
index 40b5148..78f5b2e 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/mock/MockRest.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/mock/MockRest.java
@@ -21,6 +21,10 @@
 /**
  * Creates a mocked interface against a REST resource class.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use <c>org.apache.juneau.restmock2</c>
+ * </div>
+ *
  * <p>
  * Allows you to test your REST resource classes without a running servlet container.
  *
@@ -41,15 +45,13 @@
  *  <ja>@Test</ja>
  *  <jk>public void</jk> testEcho() <jk>throws</jk> Exception {
  *  	MockRest
- *  		.<jsf>create</jsf>(MyRest.<jk>class</jk>)
+ *  		.<jsm>create</jsm>(MyRest.<jk>class</jk>)
  *  		.put(<js>"/String"</js>, <js>"'foo'"</js>)
  *  		.execute()
  *  		.assertStatus(200)
  *  		.assertBody(<js>"'foo'"</js>);
  *  }
  * </p>
- *
- * @deprecated Use <c>org.apache.juneau.rest.mock2</c>
  */
 @Deprecated
 public class MockRest implements MockHttpConnection {
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/mock/MockServletRequest.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/mock/MockServletRequest.java
index cbffdb3..575b301 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/mock/MockServletRequest.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/mock/MockServletRequest.java
@@ -31,7 +31,9 @@
 /**
  * An implementation of {@link HttpServletRequest} for mocking purposes.
  *
- * @deprecated Use <c>org.apache.juneau.rest.mock2</c>
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use <c>org.apache.juneau.restmock2</c>
+ * </div>
  */
 @Deprecated
 public class MockServletRequest implements HttpServletRequest, MockHttpRequest {
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/mock/MockServletResponse.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/mock/MockServletResponse.java
index 54ef0be..7aef5e1 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/mock/MockServletResponse.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/mock/MockServletResponse.java
@@ -29,8 +29,10 @@
 /**
  * An implementation of {@link HttpServletResponse} for mocking purposes.
  *
- * @deprecated Use <c>org.apache.juneau.rest.mock2</c>
-*/
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use <c>org.apache.juneau.restmock2</c>
+ * </div>
+ */
 @Deprecated
 public class MockServletResponse implements HttpServletResponse, MockHttpResponse {
 
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/Accepted.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/Accepted.java
index 8faa2a9..564dd18 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/Accepted.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/Accepted.java
@@ -19,11 +19,13 @@
 /**
  * Represents an <c>HTTP 202 Accepted</c> response.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.response.Accepted}
+ * </div>
+ *
  * <p>
  * The request has been accepted for processing, but the processing has not been completed.
  * The request might or might not be eventually acted upon, and may be disallowed when processing occurs.
- *
- * @deprecated Use {@link org.apache.juneau.http.response.Accepted}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/AlreadyReported.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/AlreadyReported.java
index ef5da10..494507a 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/AlreadyReported.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/AlreadyReported.java
@@ -19,10 +19,12 @@
 /**
  * Represents an <c>HTTP 208 Already Reported</c> response.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.response.AlreadyReported}
+ * </div>
+ *
  * <p>
  * The members of a DAV binding have already been enumerated in a preceding part of the (multistatus) response, and are not being included again.
- *
- * @deprecated Use {@link org.apache.juneau.http.response.AlreadyReported}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/Continue.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/Continue.java
index e734c31..da645da 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/Continue.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/Continue.java
@@ -19,14 +19,16 @@
 /**
  * Represents an <c>HTTP 100 Continue</c> response.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.response.Continue}
+ * </div>
+ *
  * <p>
  * The server has received the request headers and the client should proceed to send the request body (in the case of a request for which a body needs to be sent; for example, a POST request).
  * Sending a large request body to a server after a request has been rejected for inappropriate headers would be inefficient.
  * To have a server check the request's headers, a client must send Expect: 100-continue as a header in its initial request and receive a 100 Continue status code in response before sending the body.
  * If the client receives an error code such as 403 (Forbidden) or 405 (Method Not Allowed) then it shouldn't send the request's body.
  * The response 417 Expectation Failed indicates that the request should be repeated without the Expect header as it indicates that the server doesn't support expectations (this is the case, for example, of HTTP/1.0 servers).
- *
- * @deprecated Use {@link org.apache.juneau.http.response.Continue}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/Created.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/Created.java
index 8c09e9e..6059714 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/Created.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/Created.java
@@ -19,10 +19,12 @@
 /**
  * Represents an <c>HTTP 201 Created</c> response.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.response.Created}
+ * </div>
+ *
  * <p>
  * The request has been fulfilled, resulting in the creation of a new resource.
- *
- * @deprecated Use {@link org.apache.juneau.http.response.Created}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/EarlyHints.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/EarlyHints.java
index daca7d6..14983ba 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/EarlyHints.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/EarlyHints.java
@@ -19,10 +19,12 @@
 /**
  * Represents an <c>HTTP 103 Early Hints</c> response.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.response.EarlyHints}
+ * </div>
+ *
  * <p>
  * Used to return some response headers before final HTTP message.
- *
- * @deprecated Use {@link org.apache.juneau.http.response.EarlyHints}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/Found.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/Found.java
index 2691f11..c8836c3 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/Found.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/Found.java
@@ -22,14 +22,16 @@
 /**
  * Represents an <c>HTTP 302 Found</c> response.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.response.Found}
+ * </div>
+ *
  * <p>
  * Tells the client to look at (browse to) another url. 302 has been superseded by 303 and 307.
  * This is an example of industry practice contradicting the standard.
  * The HTTP/1.0 specification (RFC 1945) required the client to perform a temporary redirect (the original describing phrase was "Moved Temporarily"), but popular browsers implemented 302 with the functionality of a 303 See Other.
  * Therefore, HTTP/1.1 added status codes 303 and 307 to distinguish between the two behaviours.
  * However, some Web applications and frameworks use the 302 status code as if it were the 303.
- *
- * @deprecated Use {@link org.apache.juneau.http.response.Found}
  */
 @Response(code=CODE, description=MESSAGE)
 @BeanIgnore
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/HttpResponse.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/HttpResponse.java
index f36a38f..1bbd800 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/HttpResponse.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/HttpResponse.java
@@ -17,10 +17,12 @@
 /**
  * Superclass of all predefined responses in this package.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.response.HttpResponse}
+ * </div>
+ *
  * <p>
  * Consists simply of a simple string message.
- *
- * @deprecated Use {@link org.apache.juneau.http.response.HttpResponse}
  */
 @Response
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/IMUsed.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/IMUsed.java
index ac12e0f..65efad7 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/IMUsed.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/IMUsed.java
@@ -19,10 +19,12 @@
 /**
  * Represents an <c>HTTP 226 IM Used</c> response.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.response.IMUsed}
+ * </div>
+ *
  * <p>
  * The server has fulfilled a request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance.
- *
- * @deprecated Use {@link org.apache.juneau.http.response.IMUsed}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/MovedPermanently.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/MovedPermanently.java
index cb4816b..7ddaf8c 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/MovedPermanently.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/MovedPermanently.java
@@ -22,10 +22,12 @@
 /**
  * Represents an <c>HTTP 301 Moved Permanently</c> response.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.response.MovedPermanently}
+ * </div>
+ *
  * <p>
  * This and all future requests should be directed to the given URI.
- *
- * @deprecated Use {@link org.apache.juneau.http.response.MovedPermanently}
  */
 @Response(code=CODE, description=MESSAGE)
 @BeanIgnore
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/MultiStatus.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/MultiStatus.java
index 193aeb6..551ebef 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/MultiStatus.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/MultiStatus.java
@@ -19,10 +19,12 @@
 /**
  * Represents an <c>HTTP 207 Multi-Status</c> response.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.response.MultiStatus}
+ * </div>
+ *
  * <p>
  * The message body that follows is by default an XML message and can contain a number of separate response codes, depending on how many sub-requests were made.
- *
- * @deprecated Use {@link org.apache.juneau.http.response.MultiStatus}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/MultipleChoices.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/MultipleChoices.java
index e80b956..792d0c4 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/MultipleChoices.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/MultipleChoices.java
@@ -19,11 +19,13 @@
 /**
  * Represents an <c>HTTP 300 Multiple Choices</c> response.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.response.MultipleChoices}
+ * </div>
+ *
  * <p>
  * Indicates multiple options for the resource from which the client may choose (via agent-driven content negotiation).
  * For example, this code could be used to present multiple video format options, to list files with different filename extensions, or to suggest word-sense disambiguation.
- *
- * @deprecated Use {@link org.apache.juneau.http.response.MultipleChoices}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/NoContent.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/NoContent.java
index 059fe9e..5c5f473 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/NoContent.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/NoContent.java
@@ -19,10 +19,12 @@
 /**
  * Represents an <c>HTTP 204 No Content</c> response.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.response.NoContent}
+ * </div>
+ *
  * <p>
  * The server successfully processed the request and is not returning any content.
- *
- * @deprecated Use {@link org.apache.juneau.http.response.NoContent}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/NonAuthoritiveInformation.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/NonAuthoritiveInformation.java
index dc784d2..6624da0 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/NonAuthoritiveInformation.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/NonAuthoritiveInformation.java
@@ -19,10 +19,12 @@
 /**
  * Represents an <c>HTTP 203 Non-Authoritative Information</c> response.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.response.NonAuthoritiveInformation}
+ * </div>
+ *
  * <p>
  * The server is a transforming proxy (e.g. a Web accelerator) that received a 200 OK from its origin, but is returning a modified version of the origin's response.
- *
- * @deprecated Use {@link org.apache.juneau.http.response.NonAuthoritiveInformation}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/NotModified.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/NotModified.java
index 4797941..e77e44d 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/NotModified.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/NotModified.java
@@ -19,11 +19,13 @@
 /**
  * Represents an <c>HTTP 304 Not Modified</c> response.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.response.NotModified}
+ * </div>
+ *
  * <p>
  * Indicates that the resource has not been modified since the version specified by the request headers If-Modified-Since or If-None-Match.
  * In such case, there is no need to retransmit the resource since the client still has a previously-downloaded copy.
- *
- * @deprecated Use {@link org.apache.juneau.http.response.NotModified}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/Ok.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/Ok.java
index 054e57f..e64df3a 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/Ok.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/Ok.java
@@ -19,12 +19,14 @@
 /**
  * Represents an <c>HTTP 200 OK</c> response.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.response.Ok}
+ * </div>
+ *
  * <p>
  * Standard response for successful HTTP requests. The actual response will depend on the request method used.
  * In a GET request, the response will contain an entity corresponding to the requested resource.
  * In a POST request, the response will contain an entity describing or containing the result of the action.
- *
- * @deprecated Use {@link org.apache.juneau.http.response.Ok}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/PartialContent.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/PartialContent.java
index d0afd4c..2d7e789 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/PartialContent.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/PartialContent.java
@@ -19,11 +19,13 @@
 /**
  * Represents an <c>HTTP 206 Partial Content</c> response.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.response.PartialContent}
+ * </div>
+ *
  * <p>
  * The server is delivering only part of the resource (byte serving) due to a range header sent by the client.
  * The range header is used by HTTP clients to enable resuming of interrupted downloads, or split a download into multiple simultaneous streams.
- *
- * @deprecated Use {@link org.apache.juneau.http.response.PartialContent}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/PermanentRedirect.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/PermanentRedirect.java
index 8155b2c..cf94676 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/PermanentRedirect.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/PermanentRedirect.java
@@ -22,11 +22,13 @@
 /**
  * Represents an <c>HTTP 308 Permanent Redirect</c> response.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.response.PermanentRedirect}
+ * </div>
+ *
  * <p>
  * The request and all future requests should be repeated using another URI. 307 and 308 parallel the behaviors of 302 and 301, but do not allow the HTTP method to change.
  * So, for example, submitting a form to a permanently redirected resource may continue smoothly.
- *
- * @deprecated Use {@link org.apache.juneau.http.response.PermanentRedirect}
  */
 @Response(code=CODE, description=MESSAGE)
 @BeanIgnore
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/Processing.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/Processing.java
index 457790a..e43d174 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/Processing.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/Processing.java
@@ -19,12 +19,14 @@
 /**
  * Represents an <c>HTTP 102 Processing</c> response.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.response.Processing}
+ * </div>
+ *
  * <p>
  * A WebDAV request may contain many sub-requests involving file operations, requiring a long time to complete the request.
  * This code indicates that the server has received and is processing the request, but no response is available yet.
  * This prevents the client from timing out and assuming the request was lost.
- *
- * @deprecated Use {@link org.apache.juneau.http.response.Processing}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/ResetContent.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/ResetContent.java
index 7ff7f25..fb36709 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/ResetContent.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/ResetContent.java
@@ -19,11 +19,13 @@
 /**
  * Represents an <c>HTTP 205 Reset Content</c> response.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.response.ResetContent}
+ * </div>
+ *
  * <p>
  * The server successfully processed the request, but is not returning any content.
  * Unlike a 204 response, this response requires that the requester reset the document view.
- *
- * @deprecated Use {@link org.apache.juneau.http.response.ResetContent}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/SeeOther.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/SeeOther.java
index 68828bd..53d2f0d 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/SeeOther.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/SeeOther.java
@@ -24,11 +24,13 @@
 /**
  * Represents an <c>HTTP 303 See Other</c> response.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.response.SeeOther}
+ * </div>
+ *
  * <p>
  * The response to the request can be found under another URI using the GET method.
  * When received in response to a POST (or PUT/DELETE), the client should presume that the server has received the data and should issue a new GET request to the given URI.
- *
- * @deprecated Use {@link org.apache.juneau.http.response.SeeOther}
  */
 @Response(code=CODE, description=MESSAGE)
 @BeanIgnore
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/SwitchingProtocols.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/SwitchingProtocols.java
index ebd4431..166c063 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/SwitchingProtocols.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/SwitchingProtocols.java
@@ -19,10 +19,12 @@
 /**
  * Represents an <c>HTTP 101 Switching Protocols</c> response.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.response.SwitchingProtocols}
+ * </div>
+ *
  * <p>
  * The requester has asked the server to switch protocols and the server has agreed to do so.
- *
- * @deprecated Use {@link org.apache.juneau.http.response.SwitchingProtocols}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/TemporaryRedirect.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/TemporaryRedirect.java
index 9fcaba6..b648817 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/TemporaryRedirect.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/TemporaryRedirect.java
@@ -22,12 +22,14 @@
 /**
  * Represents an <c>HTTP 307 Temporary Redirect</c> response.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.response.TemporaryRedirect}
+ * </div>
+ *
  * <p>
  * In this case, the request should be repeated with another URI; however, future requests should still use the original URI.
  * In contrast to how 302 was historically implemented, the request method is not allowed to be changed when reissuing the original request.
  * For example, a POST request should be repeated using another POST request.
- *
- * @deprecated Use {@link org.apache.juneau.http.response.TemporaryRedirect}
  */
 @Response(code=CODE, description=MESSAGE)
 @BeanIgnore
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/UseProxy.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/UseProxy.java
index 837a601..1f5fe93 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/UseProxy.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/response/UseProxy.java
@@ -19,11 +19,13 @@
 /**
  * Represents an <c>HTTP 305 Use Proxy</c> response.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link org.apache.juneau.http.response.UseProxy}
+ * </div>
+ *
  * <p>
  * The requested resource is available only through a proxy, the address for which is provided in the response.
  * Many HTTP clients (such as Mozilla and Internet Explorer) do not correctly handle responses with this status code, primarily for security reasons.
- *
- * @deprecated Use {@link org.apache.juneau.http.response.UseProxy}
  */
 @Response(code=CODE, description=MESSAGE)
 @Deprecated
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/vars/FileVar.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/vars/FileVar.java
index 8d569d0..8623a64 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/vars/FileVar.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/vars/FileVar.java
@@ -49,10 +49,8 @@
  * <p>
  * Example:
  * <p class='bcode w800'>
- * 	<ja>@Rest</ja>(
- * 		htmldoc=<ja>@HtmlDoc</ja>(
- * 			aside=<js>"$F{resources/MyAsideMessage.html, Oops not found!}"</js>
- * 		)
+ *  <ja>@HtmlDocConfig</ja>(
+ * 		aside=<js>"$F{resources/MyAsideMessage.html, Oops not found!}"</js>
  * 	)
  * </p>
  *
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/vars/WidgetVar.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/vars/WidgetVar.java
index f7d5c6d..9d9b100 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/vars/WidgetVar.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/vars/WidgetVar.java
@@ -23,6 +23,10 @@
 /**
  * HTML widget variable resolver.
  *
+ * <div class='warn'>
+ * 	<b>Deprecated</b> - Use {@link HtmlWidgetVar}
+ * </div>
+ *
  * <p>
  * The format for this var is <js>"$W{widgetName}"</js>.
  *
@@ -38,8 +42,6 @@
  * <ul class='seealso'>
  * 	<li class='link'>{@doc juneau-rest-server.SvlVariables}
  * </ul>
- *
- * @deprecated Use {@link HtmlWidgetVar}
  */
 @Deprecated
 public class WidgetVar extends SimpleVar {
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/ContentTypeMenuItem.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/ContentTypeMenuItem.java
index 334640c..cfea2d4 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/ContentTypeMenuItem.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/ContentTypeMenuItem.java
@@ -35,20 +35,20 @@
  * <p class='bcode w800'>
  * 	<ja>@RestMethod</ja>(
  * 		name=<jsf>GET</jsf>,
- * 		path=<js>"/"</js>,
+ * 		path=<js>"/"</js>
+ * 	)
+ *  <ja>@HtmlDocConfig</ja>(
  * 		widgets={
  * 			ContentTypeMenuItem.<jk>class</jk>,
  * 		},
- * 		htmldoc=<ja>@HtmlDoc</ja>(
- * 			navlinks={
- * 				<js>"up: ..."</js>,
- * 				<js>"options: ..."</js>,
- * 				<js>"$W{QueryMenuItem}"</js>,
- * 				<js>"$W{ContentTypeMenuItem}"</js>,
- * 				<js>"$W{ThemeMenuItem}"</js>,
- * 				<js>"source: ..."</js>
- * 			}
- * 		)
+ * 		navlinks={
+ * 			<js>"up: ..."</js>,
+ * 			<js>"options: ..."</js>,
+ * 			<js>"$W{QueryMenuItem}"</js>,
+ * 			<js>"$W{ContentTypeMenuItem}"</js>,
+ * 			<js>"$W{ThemeMenuItem}"</js>,
+ * 			<js>"source: ..."</js>
+ * 		}
  * 	)
  * 	<jk>public</jk> Collection&lt;Pet&gt; getPets() {
  * </p>
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/PoweredByApache.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/PoweredByApache.java
index b17b811..23c90d7 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/PoweredByApache.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/PoweredByApache.java
@@ -29,13 +29,14 @@
  * 	<ja>@Rest</ja>(
  * 		path=<js>"/"</js>,
  * 		title=<js>"Root resources"</js>,
- * 		description=<js>"Example of a router resource page."</js>,
+ * 		description=<js>"Example of a router resource page."</js>
+ * 	)
+ *  <ja>@HtmlDocConfig</ja>(
  * 		widgets={
  * 			PoweredByApache.<jk>class</jk>
  * 		},
- * 		htmldoc=<ja>@HtmlDoc</ja>(
- * 			footer=<js>"$W{PoweredByApache}"</js>
- * 		)
+ * 		footer=<js>"$W{PoweredByApache}"</js>
+ * 	)
  * </p>
  *
  * <p>
