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 8b718e6..00a736f 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
@@ -158,8 +158,11 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>Config.name</c>
+	 * 	<li><b>Environment variable:</b>  <c>CONFIG_NAME</c>
 	 * 	<li><b>Default:</b>  <js>"Configuration.cfg"</js>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
@@ -180,12 +183,13 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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 ConfigStore}
-	 * 	<li><b>Default:</b>  {@link ConfigFileStore#DEFAULT}
+	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.config.store.ConfigStore}
+	 * 	<li><b>Default:</b>  {@link org.apache.juneau.config.store.ConfigFileStore#DEFAULT}
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link ConfigBuilder#store(ConfigStore)}
+	 * 			<li class='jm'>{@link org.apache.juneau.config.ConfigBuilder#store(ConfigStore)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -200,13 +204,14 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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 WriterSerializer}
-	 * 	<li><b>Default:</b>  {@link SimpleJsonSerializer#DEFAULT}
+	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.serializer.WriterSerializer}
+	 * 	<li><b>Default:</b>  {@link org.apache.juneau.json.SimpleJsonSerializer#DEFAULT}
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link ConfigBuilder#serializer(Class)}
-	 * 			<li class='jm'>{@link ConfigBuilder#serializer(WriterSerializer)}
+	 * 			<li class='jm'>{@link org.apache.juneau.config.ConfigBuilder#serializer(Class)}
+	 * 			<li class='jm'>{@link org.apache.juneau.config.ConfigBuilder#serializer(WriterSerializer)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -221,13 +226,14 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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 ReaderParser}
-	 * 	<li><b>Default:</b>  {@link JsonParser#DEFAULT}
+	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.parser.ReaderParser}
+	 * 	<li><b>Default:</b>  {@link org.apache.juneau.json.JsonParser#DEFAULT}
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link ConfigBuilder#parser(Class)}
-	 * 			<li class='jm'>{@link ConfigBuilder#parser(ReaderParser)}
+	 * 			<li class='jm'>{@link org.apache.juneau.config.ConfigBuilder#parser(Class)}
+	 * 			<li class='jm'>{@link org.apache.juneau.config.ConfigBuilder#parser(ReaderParser)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -242,13 +248,14 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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 ConfigEncoder}
-	 * 	<li><b>Default:</b>  {@link ConfigXorEncoder#INSTANCE}
+	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.config.encode.ConfigEncoder}
+	 * 	<li><b>Default:</b>  {@link org.apache.juneau.config.encode.ConfigXorEncoder#INSTANCE}
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link ConfigBuilder#encoder(Class)}
-	 * 			<li class='jm'>{@link ConfigBuilder#encoder(ConfigEncoder)}
+	 * 			<li class='jm'>{@link org.apache.juneau.config.ConfigBuilder#encoder(Class)}
+	 * 			<li class='jm'>{@link org.apache.juneau.config.ConfigBuilder#encoder(ConfigEncoder)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -263,13 +270,14 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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 VarResolver}
-	 * 	<li><b>Default:</b>  {@link VarResolver#DEFAULT}
+	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.svl.VarResolver}
+	 * 	<li><b>Default:</b>  {@link org.apache.juneau.svl.VarResolver#DEFAULT}
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link ConfigBuilder#varResolver(Class)}
-	 * 			<li class='jm'>{@link ConfigBuilder#varResolver(VarResolver)}
+	 * 			<li class='jm'>{@link org.apache.juneau.config.ConfigBuilder#varResolver(Class)}
+	 * 			<li class='jm'>{@link org.apache.juneau.config.ConfigBuilder#varResolver(VarResolver)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -284,12 +292,15 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Integer</c>
+	 * 	<li><b>Data type:</b>  <jk>int</jk>
+	 * 	<li><b>System property:</b>  <c>Config.binaryLineLength</c>
+	 * 	<li><b>Environment variable:</b>  <c>CONFIG_BINARYLINELENGTH</c>
 	 * 	<li><b>Default:</b>  <c>-1</c>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link ConfigBuilder#binaryLineLength(int)}
+	 * 			<li class='jm'>{@link org.apache.juneau.config.ConfigBuilder#binaryLineLength(int)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -305,12 +316,15 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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 BinaryFormat}
-	 * 	<li><b>Default:</b>  {@link BinaryFormat#BASE64}
+	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.BinaryFormat}
+	 * 	<li><b>System property:</b>  <c>Config.binaryFormat</c>
+	 * 	<li><b>Environment variable:</b>  <c>CONFIG_BINARYFORMAT</c>
+	 * 	<li><b>Default:</b>  {@link org.apache.juneau.BinaryFormat#BASE64}
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link ConfigBuilder#binaryFormat(BinaryFormat)}
+	 * 			<li class='jm'>{@link org.apache.juneau.config.ConfigBuilder#binaryFormat(BinaryFormat)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -333,12 +347,15 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>Config.multiLineValuesOnSeparateLine</c>
+	 * 	<li><b>Environment variable:</b>  <c>CONFIG_MULTILINEVALUESONSEPARATELINE</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link ConfigBuilder#multiLineValuesOnSeparateLines()}
+	 * 			<li class='jm'>{@link org.apache.juneau.config.ConfigBuilder#multiLineValuesOnSeparateLines()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -353,12 +370,15 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>Config.readOnly</c>
+	 * 	<li><b>Environment variable:</b>  <c>CONFIG_READONLY</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link ConfigBuilder#readOnly()}
+	 * 			<li class='jm'>{@link org.apache.juneau.config.ConfigBuilder#readOnly()}
 	 * 		</ul>
 	 * </ul>
 	 *
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 3f2d946..222f357 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
@@ -47,13 +47,16 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>ConfigFileStore.directory</c>
+	 * 	<li><b>Environment variable:</b>  <c>CONFIGFILESTORE_DIRECTORY</c>
 	 * 	<li><b>Default:</b>  <js>"."</js>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link ConfigFileStoreBuilder#directory(String)}
-	 * 			<li class='jm'>{@link ConfigFileStoreBuilder#directory(File)}
+	 * 			<li class='jm'>{@link org.apache.juneau.config.store.ConfigFileStoreBuilder#directory(String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.config.store.ConfigFileStoreBuilder#directory(File)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -68,13 +71,16 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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 Charset}
-	 * 	<li><b>Default:</b>  {@link Charset#defaultCharset()}
+	 * 	<li><b>Data type:</b>  {@link java.nio.charset.Charset}
+	 * 	<li><b>System property:</b>  <c>ConfigFileStore.charset</c>
+	 * 	<li><b>Environment variable:</b>  <c>CONFIGFILESTORE_CHARSET</c>
+	 * 	<li><b>Default:</b>  {@link java.nio.charset.Charset#defaultCharset()}
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link ConfigFileStoreBuilder#charset(String)}
-	 * 			<li class='jm'>{@link ConfigFileStoreBuilder#charset(Charset)}
+	 * 			<li class='jm'>{@link org.apache.juneau.config.store.ConfigFileStoreBuilder#charset(String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.config.store.ConfigFileStoreBuilder#charset(Charset)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -89,12 +95,15 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>ConfigFileStore.useWatcher</c>
+	 * 	<li><b>Environment variable:</b>  <c>CONFIGFILESTORE_USEWATCHER</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link ConfigFileStoreBuilder#useWatcher()}
+	 * 			<li class='jm'>{@link org.apache.juneau.config.store.ConfigFileStoreBuilder#useWatcher()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -113,13 +122,16 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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 WatcherSensitivity}
-	 * 	<li><b>Default:</b>  {@link WatcherSensitivity#MEDIUM}
+	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.config.store.WatcherSensitivity}
+	 * 	<li><b>System property:</b>  <c>ConfigFileStore.watcherSensitivity</c>
+	 * 	<li><b>Environment variable:</b>  <c>CONFIGFILESTORE_WATCHERSENSITIVITY</c>
+	 * 	<li><b>Default:</b>  {@link org.apache.juneau.config.store.WatcherSensitivity#MEDIUM}
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link ConfigFileStoreBuilder#watcherSensitivity(WatcherSensitivity)}
-	 * 			<li class='jm'>{@link ConfigFileStoreBuilder#watcherSensitivity(String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.config.store.ConfigFileStoreBuilder#watcherSensitivity(WatcherSensitivity)}
+	 * 			<li class='jm'>{@link org.apache.juneau.config.store.ConfigFileStoreBuilder#watcherSensitivity(String)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -138,12 +150,15 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>ConfigFileStore.updateOnWrite</c>
+	 * 	<li><b>Environment variable:</b>  <c>CONFIGFILESTORE_UPDATEONWRITE</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link ConfigFileStoreBuilder#updateOnWrite()}
+	 * 			<li class='jm'>{@link org.apache.juneau.config.store.ConfigFileStoreBuilder#updateOnWrite()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -162,12 +177,15 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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 list)
-	 * 	<li><b>Default:</b>  <jk>"cfg"</jk>
+	 * 	<li><b>Data type:</b>  <c>String</c> (comma-delimited)
+	 * 	<li><b>System property:</b>  <c>ConfigFileStore.extensions</c>
+	 * 	<li><b>Environment variable:</b>  <c>CONFIGFILESTORE_EXTENSIONS</c>
+	 * 	<li><b>Default:</b>  <js>"cfg"</js>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link ConfigFileStoreBuilder#extensions(String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.config.store.ConfigFileStoreBuilder#extensions(String)}
 	 * 		</ul>
 	 * </ul>
 	 *
diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/PropertyStoreTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/PropertyStoreTest.java
index 04f8758..0a033b4 100644
--- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/PropertyStoreTest.java
+++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/PropertyStoreTest.java
@@ -1434,94 +1434,161 @@
 
 	@Test
 	public void testStringDefault() {
-		PropertyStore ps = PropertyStore.create().build();
 
 		System.setProperty("A.f1", "foo");
+		PropertyStore ps = PropertyStore.create().build();
 		assertEquals("foo", ps.getProperty("A.f1"));
+
 		System.clearProperty("A.f1");
+		ps = PropertyStore.create().build();
+		assertNull(ps.getProperty("A.f1"));
 	}
 
 	@Test
 	public void testIntegerDefault() {
-		PropertyStore ps = PropertyStore.create().build();
 
 		System.setProperty("A.f1.i", "1");
+		PropertyStore ps = PropertyStore.create().build();
 		assertEquals(1, ps.getProperty("A.f1.i"));
 		assertInstanceOf(Integer.class, ps.getProperty("A.f1.i"));
+
 		System.clearProperty("A.f1.i");
+		System.setProperty("A.f1", "1");
+		ps = PropertyStore.create().build();
+		assertEquals(1, ps.getProperty("A.f1.i"));
+		assertInstanceOf(Integer.class, ps.getProperty("A.f1.i"));
+
+		System.clearProperty("A.f1");
+		assertNull(ps.getProperty("A.f1.i"));
 	}
 
 	@Test
 	public void testObjectDefault() {
-		PropertyStore ps = PropertyStore.create().build();
 
 		System.setProperty("A.f1.o", "123");
+		PropertyStore ps = PropertyStore.create().build();
 		assertEquals("123", ps.getProperty("A.f1.o"));
 		assertInstanceOf(String.class, ps.getProperty("A.f1.o"));
+
 		System.clearProperty("A.f1.o");
+		System.setProperty("A.f1", "123");
+		assertEquals("123", ps.getProperty("A.f1.o"));
+		assertInstanceOf(String.class, ps.getProperty("A.f1.o"));
+
+		System.clearProperty("A.f1");
+		assertNull(ps.getProperty("A.f1.o"));
 	}
 
 	@Test
 	public void testSetStringDefault() {
-		PropertyStore ps = PropertyStore.create().build();
 
 		System.setProperty("A.f1.ss", "['foo','bar']");
+		PropertyStore ps = PropertyStore.create().build();
 		assertObjectEquals("['bar','foo']", ps.getProperty("A.f1.ss"));
+
 		System.clearProperty("A.f1.ss");
+		System.setProperty("A.f1", "['foo','bar']");
+		ps = PropertyStore.create().build();
+		assertObjectEquals("['bar','foo']", ps.getProperty("A.f1.ss"));
+
+		System.clearProperty("A.f1");
+		assertNull(ps.getProperty("A.f1.ss"));
 	}
 
 	@Test
 	public void testSetIntegerDefault() {
-		PropertyStore ps = PropertyStore.create().build();
 
 		System.setProperty("A.f1.si", "['2','1']");
+		PropertyStore ps = PropertyStore.create().build();
 		assertObjectEquals("[1,2]", ps.getProperty("A.f1.si"));
+
 		System.clearProperty("A.f1.si");
+		System.setProperty("A.f1", "['2','1']");
+		ps = PropertyStore.create().build();
+		assertObjectEquals("[1,2]", ps.getProperty("A.f1.si"));
+
+		System.clearProperty("A.f1");
+		assertNull(ps.getProperty("A.f1.si"));
 	}
 
 	@Test
 	public void testListStringDefault() {
-		PropertyStore ps = PropertyStore.create().build();
 
 		System.setProperty("A.f1.ls", "['foo','bar']");
+		PropertyStore ps = PropertyStore.create().build();
 		assertObjectEquals("['foo','bar']", ps.getProperty("A.f1.ls"));
+
 		System.clearProperty("A.f1.ls");
+		System.setProperty("A.f1", "['foo','bar']");
+		ps = PropertyStore.create().build();
+		assertObjectEquals("['foo','bar']", ps.getProperty("A.f1.ls"));
+
+		System.clearProperty("A.f1");
+		assertNull(ps.getProperty("A.f1.ls"));
 	}
 
 	@Test
 	public void testListIntegerDefault() {
-		PropertyStore ps = PropertyStore.create().build();
 
 		System.setProperty("A.f1.li", "['2','1']");
+		PropertyStore ps = PropertyStore.create().build();
 		assertObjectEquals("[2,1]", ps.getProperty("A.f1.li"));
+
 		System.clearProperty("A.f1.li");
+		System.setProperty("A.f1", "['2','1']");
+		ps = PropertyStore.create().build();
+		assertObjectEquals("[2,1]", ps.getProperty("A.f1.li"));
+
+		System.clearProperty("A.f1");
+		assertNull(ps.getProperty("A.f1.li"));
 	}
 
 	@Test
 	public void testMapStringDefault() {
-		PropertyStore ps = PropertyStore.create().build();
 
 		System.setProperty("A.f1.sms", "{foo:'bar',baz:null}");
+		PropertyStore ps = PropertyStore.create().build();
 		assertObjectEquals("{foo:'bar'}", ps.getProperty("A.f1.sms"));
+
 		System.clearProperty("A.f1.sms");
+		System.setProperty("A.f1", "{foo:'bar',baz:null}");
+		ps = PropertyStore.create().build();
+		assertObjectEquals("{foo:'bar'}", ps.getProperty("A.f1.sms"));
+
+		System.clearProperty("A.f1");
+		assertNull(ps.getProperty("A.f1.sms"));
 	}
 
 	@Test
 	public void testMapIntegerDefault() {
-		PropertyStore ps = PropertyStore.create().build();
 
 		System.setProperty("A.f1.smi", "{foo:'123',baz:null}");
+		PropertyStore ps = PropertyStore.create().build();
 		assertObjectEquals("{foo:123}", ps.getProperty("A.f1.smi"));
+
 		System.clearProperty("A.f1.smi");
+		System.setProperty("A.f1", "{foo:'123',baz:null}");
+		ps = PropertyStore.create().build();
+		assertObjectEquals("{foo:123}", ps.getProperty("A.f1.smi"));
+
+		System.clearProperty("A.f1");
+		assertNull(ps.getProperty("A.f1.smi"));
 	}
 
 	@Test
 	public void testMapObjectDefault() {
-		PropertyStore ps = PropertyStore.create().build();
 
 		System.setProperty("A.f1.smo", "{foo:123,bar:'baz',qux:true,quux:null}");
+		PropertyStore ps = PropertyStore.create().build();
 		assertObjectEquals("{bar:'baz',foo:123,qux:true}", ps.getProperty("A.f1.smo"));
+
 		System.clearProperty("A.f1.smo");
+		System.setProperty("A.f1", "{foo:123,bar:'baz',qux:true,quux:null}");
+		ps = PropertyStore.create().build();
+		assertObjectEquals("{bar:'baz',foo:123,qux:true}", ps.getProperty("A.f1.smo"));
+
+		System.clearProperty("A.f1");
+		assertNull(ps.getProperty("A.f1.smo"));
 	}
 
 	//-------------------------------------------------------------------------------------------------------------------
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 37716d2..d57ee42 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
@@ -41,8 +41,11 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Integer</c>
+	 * 	<li><b>Data type:</b>  <jk>int</jk>
+	 * 	<li><b>System property:</b>  <c>SwaggerUI.resolveRefsMaxDepth</c>
+	 * 	<li><b>Environment variable:</b>  <c>SWAGGERUI_RESOLVEREFSMAXDEPTH</c>
 	 * 	<li><b>Default:</b>  <c>1</c>
 	 * 	<li><b>Session property:</b>  <jk>true</jk>
 	 * </ul>
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 9e44860..e45d582 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
@@ -46,22 +46,29 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"Rdf.language.s"</js>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RdfCommon.language</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFCOMMON_LANGUAGE</c>
 	 * 	<li><b>Default:</b>  <js>"RDF/XML-ABBREV"</js>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#language()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RdfSerializerBuilder#language(String)}
-	 * 			<li class='jm'>{@link RdfSerializerBuilder#n3()}
-	 * 			<li class='jm'>{@link RdfSerializerBuilder#ntriple()}
-	 * 			<li class='jm'>{@link RdfSerializerBuilder#turtle()}
-	 * 			<li class='jm'>{@link RdfSerializerBuilder#xml()}
-	 * 			<li class='jm'>{@link RdfSerializerBuilder#xmlabbrev()}
-	 * 			<li class='jm'>{@link RdfParserBuilder#language(String)}
-	 * 			<li class='jm'>{@link RdfParserBuilder#n3()}
-	 * 			<li class='jm'>{@link RdfParserBuilder#ntriple()}
-	 * 			<li class='jm'>{@link RdfParserBuilder#turtle()}
-	 * 			<li class='jm'>{@link RdfParserBuilder#xml()}
+	 * 			<li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#language(String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#n3()}
+	 * 			<li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#ntriple()}
+	 * 			<li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#turtle()}
+	 * 			<li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#xml()}
+	 * 			<li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#xmlabbrev()}
+	 * 			<li class='jm'>{@link org.apache.juneau.jena.RdfParserBuilder#language(String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.jena.RdfParserBuilder#n3()}
+	 * 			<li class='jm'>{@link org.apache.juneau.jena.RdfParserBuilder#ntriple()}
+	 * 			<li class='jm'>{@link org.apache.juneau.jena.RdfParserBuilder#turtle()}
+	 * 			<li class='jm'>{@link org.apache.juneau.jena.RdfParserBuilder#xml()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -105,13 +112,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"Rdf.juneauNs.s"</js>
-	 * 	<li><b>Data type:</b>  {@link Namespace}
+	 * 	<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}
+	 * 	<li><b>System property:</b>  <c>RdfCommon.juneauNs</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFCOMMON_JUNEAUNS</c>
 	 * 	<li><b>Default:</b>  <code>{j:<js>'http://www.apache.org/juneau/'</js>}</code>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#juneauNs()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RdfSerializerBuilder#juneauNs(Namespace)}
-	 * 			<li class='jm'>{@link RdfParserBuilder#juneauNs(Namespace)}
+	 * 			<li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#juneauNs(Namespace)}
+	 * 			<li class='jm'>{@link org.apache.juneau.jena.RdfParserBuilder#juneauNs(Namespace)}
 	 * 		</ul>
 	 * </ul>
 	 */
@@ -122,13 +136,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"Rdf.juneauBpNs.s"</js>
-	 * 	<li><b>Data type:</b>  {@link Namespace}
+	 * 	<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}
+	 * 	<li><b>System property:</b>  <c>RdfCommon.juneauBpNs</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFCOMMON_JUNEAUBPNS</c>
 	 * 	<li><b>Default:</b>  <code>{j:<js>'http://www.apache.org/juneaubp/'</js>}</code>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#juneauBpNs()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RdfSerializerBuilder#juneauBpNs(Namespace)}
-	 * 			<li class='jm'>{@link RdfParserBuilder#juneauBpNs(Namespace)}
+	 * 			<li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#juneauBpNs(Namespace)}
+	 * 			<li class='jm'>{@link org.apache.juneau.jena.RdfParserBuilder#juneauBpNs(Namespace)}
 	 * 		</ul>
 	 * </ul>
 	 */
@@ -139,9 +160,16 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"Rdf.jena.rdfXml.iri-rules.s"</js>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.iri-rules</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_IRI_RULES</c>
 	 * 	<li><b>Default:</b>  <js>"lax"</js>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#arp_iriRules()}
+	 * 		</ul>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -170,9 +198,16 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"Rdf.jena.rdfXml.error-mode.s"</js>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.error-mode</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_ERROR_MODE</c>
 	 * 	<li><b>Default:</b>  <js>"lax"</js>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#arp_errorMode()}
+	 * 		</ul>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -209,9 +244,16 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"Rdf.jena.rdfXml.embedding.b"</js>
-	 * 	<li><b>Data type:</b>  <c>Boolean</c>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.embedding</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_EMBEDDING</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#arp_embedding()}
+	 * 		</ul>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -230,8 +272,11 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"Rdf.jena.rdfXml.ERR_"</js>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.ERR_</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_ERR_</c>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -261,8 +306,11 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"Rdf.jena.rdfXml.WARN_"</js>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.WARN_</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_WARN_</c>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -276,8 +324,11 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"Rdf.jena.rdfXml.IGN_"</js>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.IGN_</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_IGN_</c>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -291,9 +342,16 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"Rdf.jena.rdfXml.xmlbase.s"</js>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.xmlbase</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_XMLBASE</c>
 	 * 	<li><b>Default:</b>  <jk>null</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#rdfxml_xmlBase()}
+	 * 		</ul>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -307,9 +365,16 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"Rdf.jena.rdfXml.longId.b"</js>
-	 * 	<li><b>Data type:</b>  <c>Boolean</c>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.longId</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_LONGID</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#rdfxml_longId()}
+	 * 		</ul>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -324,9 +389,16 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"Rdf.jena.rdfXml.allowBadURIs.b"</js>
-	 * 	<li><b>Data type:</b>  <c>Boolean</c>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.allowBadURIs</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_ALLOWBADURIS</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#rdfxml_allowBadUris()}
+	 * 		</ul>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -340,9 +412,16 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"Rdf.jena.rdfXml.relativeURIs.s"</js>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.relativeURIs</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_RELATIVEURIS</c>
 	 * 	<li><b>Default:</b>  <js>"same-document, absolute, relative, parent"</js>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#rdfxml_relativeUris()}
+	 * 		</ul>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -378,9 +457,16 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"Rdf.jena.rdfXml.showXmlDeclaration.s"</js>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.showXmlDeclaration</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_SHOWXMLDECLARATION</c>
 	 * 	<li><b>Default:</b>  <js>"default"</js>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#rdfxml_showXmlDeclaration()}
+	 * 		</ul>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -404,9 +490,16 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"Rdf.jena.rdfXml.showDoctypeDeclaration.b"</js>
-	 * 	<li><b>Data type:</b>  <c>Boolean</c>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.showDoctypeDeclaration</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_SHOWDOCTYPEDECLARATION</c>
 	 * 	<li><b>Default:</b>  <jk>true</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#rdfxml_showDoctypeDeclaration()}
+	 * 		</ul>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -423,9 +516,16 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"Rdf.jena.rdfXml.tab.i"</js>
-	 * 	<li><b>Data type:</b>  <c>Integer</c>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.tab</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_TAB</c>
 	 * 	<li><b>Default:</b>  <c>2</c>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#rdfxml_tab()}
+	 * 		</ul>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -439,9 +539,16 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"Rdf.jena.rdfXml.attributeQuoteChar.s"</js>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.attributeQuoteChar</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_ATTRIBUTEQUOTECHAR</c>
 	 * 	<li><b>Default:</b>  <js>'"'</js>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#rdfxml_attributeQuoteChar()}
+	 * 		</ul>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -455,9 +562,16 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"Rdf.jena.rdfXml.blockRules.s"</js>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.blockRules</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_BLOCKRULES</c>
 	 * 	<li><b>Default:</b>  <js>""</js>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#rdfxml_blockRules()}
+	 * 		</ul>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -473,9 +587,16 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"Rdf.jena.n3.minGap.i"</js>
-	 * 	<li><b>Data type:</b>  <c>Integer</c>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RdfCommon.jena.n3.minGap</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_N3_MINGAP</c>
 	 * 	<li><b>Default:</b>  <c>1</c>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#n3_minGap()}
+	 * 		</ul>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -489,9 +610,16 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"Rdf.jena.n3.objectLists.b"</js>
-	 * 	<li><b>Data type:</b>  <c>Boolean</c>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RdfCommon.jena.n3.objectLists</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_N3_OBJECTLISTS</c>
 	 * 	<li><b>Default:</b>  <jk>true</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#n3_objectLists()}
+	 * 		</ul>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -505,9 +633,16 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"Rdf.jena.n3.subjectColumn.i"</js>
-	 * 	<li><b>Data type:</b>  <c>Integer</c>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RdfCommon.jena.n3.subjectColumn</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_N3_SUBJECTCOLUMN</c>
 	 * 	<li><b>Default:</b>  indentProperty
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#n3_subjectColumn()}
+	 * 		</ul>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -521,9 +656,16 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"Rdf.jena.n3.propertyColumn.i"</js>
-	 * 	<li><b>Data type:</b>  <c>Integer</c>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RdfCommon.jena.n3.propertyColumn</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_N3_PROPERTYCOLUMN</c>
 	 * 	<li><b>Default:</b>  <c>8</c>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#n3_propertyColumn()}
+	 * 		</ul>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -537,9 +679,16 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"Rdf.jena.n3.indentProperty.i"</js>
-	 * 	<li><b>Data type:</b>  <c>Integer</c>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RdfCommon.jena.n3.indentProperty</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_N3_INDENTPROPERTY</c>
 	 * 	<li><b>Default:</b>  <c>6</c>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#n3_indentProperty()}
+	 * 		</ul>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -553,9 +702,16 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"Rdf.jena.n3.widePropertyLen.i"</js>
-	 * 	<li><b>Data type:</b>  <c>Integer</c>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RdfCommon.jena.n3.widePropertyLen</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_N3_WIDEPROPERTYLEN</c>
 	 * 	<li><b>Default:</b>  <c>20</c>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#n3_widePropertyLen()}
+	 * 		</ul>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -570,9 +726,16 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"Rdf.jena.n3.abbrevBaseURI.b"</js>
-	 * 	<li><b>Data type:</b>  <c>Boolean</c>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RdfCommon.jena.n3.abbrevBaseURI</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_N3_ABBREVBASEURI</c>
 	 * 	<li><b>Default:</b>  <jk>true</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#n3_abbrevBaseUri()}
+	 * 		</ul>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -586,9 +749,16 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"Rdf.jena.n3.usePropertySymbols.b"</js>
-	 * 	<li><b>Data type:</b>  <c>Boolean</c>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RdfCommon.jena.n3.usePropertySymbols</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_N3_USEPROPERTYSYMBOLS</c>
 	 * 	<li><b>Default:</b>  <jk>true</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#n3_usePropertySymbols()}
+	 * 		</ul>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -602,9 +772,16 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"Rdf.jena.n3.useTripleQuotedStrings.b"</js>
-	 * 	<li><b>Data type:</b>  <c>Boolean</c>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RdfCommon.jena.n3.useTripleQuotedStrings</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_N3_USETRIPLEQUOTEDSTRINGS</c>
 	 * 	<li><b>Default:</b>  <jk>true</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#n3_useTripleQuotedStrings()}
+	 * 		</ul>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -618,9 +795,16 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"Rdf.jena.n3.useDoubles.b"</js>
-	 * 	<li><b>Data type:</b>  <c>Boolean</c>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RdfCommon.jena.n3.useDoubles</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_N3_USEDOUBLES</c>
 	 * 	<li><b>Default:</b>  <jk>true</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#n3_useDoubles()}
+	 * 		</ul>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -634,13 +818,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"Rdf.collectionFormat.s"</js>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RdfCommon.collectionFormat</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFCOMMON_COLLECTIONFORMAT</c>
 	 * 	<li><b>Default:</b>  <js>"DEFAULT"</js>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#collectionFormat()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RdfSerializerBuilder#collectionFormat(RdfCollectionFormat)}
-	 * 			<li class='jm'>{@link RdfParserBuilder#collectionFormat(RdfCollectionFormat)}
+	 * 			<li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#collectionFormat(RdfCollectionFormat)}
+	 * 			<li class='jm'>{@link org.apache.juneau.jena.RdfParserBuilder#collectionFormat(RdfCollectionFormat)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -673,15 +864,22 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"Rdf.looseCollections.b"</js>
-	 * 	<li><b>Data type:</b>  <c>Boolean</c>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RdfCommon.looseCollections</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFCOMMON_LOOSECOLLECTIONS</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#looseCollections()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RdfSerializerBuilder#looseCollections(boolean)}
-	 * 			<li class='jm'>{@link RdfSerializerBuilder#looseCollections()}
-	 * 			<li class='jm'>{@link RdfParserBuilder#looseCollections(boolean)}
-	 * 			<li class='jm'>{@link RdfParserBuilder#looseCollections()}
+	 * 			<li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#looseCollections(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#looseCollections()}
+	 * 			<li class='jm'>{@link org.apache.juneau.jena.RdfParserBuilder#looseCollections(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.jena.RdfParserBuilder#looseCollections()}
 	 * 		</ul>
 	 * </ul>
 	 *
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 a2dc6f3..abd5e7e 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
@@ -61,14 +61,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>RdfParser.trimWhitespace</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFPARSER_TRIMWHITESPACE</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#trimWhitespace()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RdfParserBuilder#trimWhitespace(boolean)}
-	 * 			<li class='jm'>{@link RdfParserBuilder#trimWhitespace()}
+	 * 			<li class='jm'>{@link org.apache.juneau.jena.RdfParserBuilder#trimWhitespace(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.jena.RdfParserBuilder#trimWhitespace()}
 	 * 		</ul>
 	 * </ul>
 	 *
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 86fe318..813d481 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
@@ -60,13 +60,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>RdfSerializer.addBeanTypes</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFSERIALIZER_ADDBEANTYPES</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#addBeanTypes()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RdfSerializerBuilder#addBeanTypes(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#addBeanTypes(boolean)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -86,14 +93,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>RdfSerializer.addLiteralTypes</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFSERIALIZER_ADDLITERALTYPES</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#addLiteralTypes()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RdfSerializerBuilder#addLiteralTypes(boolean)}
-	 * 			<li class='jm'>{@link RdfSerializerBuilder#addLiteralTypes()}
+	 * 			<li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#addLiteralTypes(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#addLiteralTypes()}
 	 * 		</ul>
 	 * </ul>
 	 */
@@ -104,14 +118,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>RdfSerializer.addRootProperty</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFSERIALIZER_ADDROOTPROPERTY</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#addRootProperty()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RdfSerializerBuilder#addRootProperty(boolean)}
-	 * 			<li class='jm'>{@link RdfSerializerBuilder#addRootProperty()}
+	 * 			<li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#addRootProperty(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#addRootProperty()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -132,13 +153,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>RdfSerializer.autoDetectNamespaces</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFSERIALIZER_AUTODETECTNAMESPACES</c>
 	 * 	<li><b>Default:</b>  <jk>true</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#autoDetectNamespaces()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RdfSerializerBuilder#autoDetectNamespaces(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#autoDetectNamespaces(boolean)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -157,17 +185,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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;String&gt;</c> (serialized {@link Namespace} objects)
+	 * 	<li><b>Data type:</b>  <c>List&lt;{@link org.apache.juneau.xml.Namespace}&gt;</c>
+	 * 	<li><b>System property:</b>  <c>RdfSerializer.namespaces</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFSERIALIZER_NAMESPACES</c>
 	 * 	<li><b>Default:</b>  empty list
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rdf#namespace()}
+	 * 			<li class='ja'>{@link org.apache.juneau.jena.annotation.Rdf#namespace()}
+	 * 			<li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#namespaces()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RdfSerializerBuilder#namespaces(Namespace...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#namespaces(Namespace...)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -182,12 +214,19 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>Rdf.useXmlNamespaces</c>
+	 * 	<li><b>Environment variable:</b>  <c>RDFSERIALIZER_USEXMLNAMESPACES</c>
 	 * 	<li><b>Default:</b>  <jk>true</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#useXmlNamespaces()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RdfSerializerBuilder#useXmlNamespaces(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#useXmlNamespaces(boolean)}
 	 * 		</ul>
 	 * </ul>
 	 *
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 6aff3ce..a005f8e 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
@@ -156,12 +156,18 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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;Annotation&gt;</c>
+	 * 	<li><b>Data type:</b>  <c>List&lt;{@link java.lang.annotation.Annotation}&gt;</c>
 	 * 	<li><b>Default:</b>  Empty list.
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#annotateBean()}
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#annotateBeanp()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#annotations(Annotation...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#annotations(Annotation...)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -204,13 +210,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>String</c> ({@link Visibility})
+	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.Visibility}
+	 * 	<li><b>System property:</b>  <c>BeanContext.beanClassVisibility</c>
+	 * 	<li><b>Environment variable:</b>  <c>BEANCONTEXT_BEANCLASSVISIBILITY</c>
 	 * 	<li><b>Default:</b>  <js>"PUBLIC"</js>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#beanClassVisibility()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#beanClassVisibility(Visibility)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beanClassVisibility(Visibility)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -245,13 +258,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>String</c> ({@link Visibility})
+	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.Visibility}
+	 * 	<li><b>System property:</b>  <c>BeanContext.beanConstructorVisibility</c>
+	 * 	<li><b>Environment variable:</b>  <c>BEANCONTEXT_BEANCONSTRUCTORVISIBILITY</c>
 	 * 	<li><b>Default:</b>  <js>"PUBLIC"</js>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#beanConstructorVisibility()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#beanConstructorVisibility(Visibility)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beanConstructorVisibility(Visibility)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -286,24 +306,26 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
 	 * 	<li><b>Default:</b>  empty list
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Bean#dictionary()}
-	 * 			<li class='ja'>{@link Beanp#dictionary()}
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.Bean#dictionary()}
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.Beanp#dictionary()}
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#dictionary()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#dictionary(Object...)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#dictionary(Class...)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#dictionaryReplace(Object...)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#dictionaryReplace(Class...)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#dictionaryRemove(Object...)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#dictionaryRemove(Class...)}
-	 * 			<li class='jm'>{@link BeanFilterBuilder#dictionary(Class...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#dictionary(Object...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#dictionary(Class...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#dictionaryReplace(Object...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#dictionaryReplace(Class...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#dictionaryRemove(Object...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#dictionaryRemove(Class...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.transform.BeanFilterBuilder#dictionary(Class...)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -378,13 +400,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>String</c> ({@link Visibility})
+	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.Visibility}
+	 * 	<li><b>System property:</b>  <c>BeanContext.beanFieldVisibility</c>
+	 * 	<li><b>Environment variable:</b>  <c>BEANCONTEXT_BEANFIELDVISIBILITY</c>
 	 * 	<li><b>Default:</b>  <js>"PUBLIC"</js>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#beanFieldVisibility()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#beanFieldVisibility(Visibility)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beanFieldVisibility(Visibility)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -425,18 +454,23 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
 	 * 	<li><b>Default:</b>  empty list
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#beanFilters()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#beanFilters(Object...)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#beanFilters(Class...)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#beanFiltersReplace(Object...)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#beanFiltersReplace(Class...)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#beanFiltersRemove(Object...)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#beanFiltersRemove(Class...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beanFilters(Object...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beanFilters(Class...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beanFiltersReplace(Object...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beanFiltersReplace(Class...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beanFiltersRemove(Object...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beanFiltersRemove(Class...)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -504,14 +538,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>BeanContext.beanMapPutReturnsOldValue</c>
+	 * 	<li><b>Environment variable:</b>  <c>BEANCONTEXT_BEANMAPPUTRETURNSOLDVALUE</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#beanMapPutReturnsOldValue()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#beanMapPutReturnsOldValue(boolean)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#beanMapPutReturnsOldValue()}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beanMapPutReturnsOldValue(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beanMapPutReturnsOldValue()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -550,13 +591,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>String</c> ({@link Visibility})
+	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.Visibility}
+	 * 	<li><b>System property:</b>  <c>BeanContext.beanMethodVisibility</c>
+	 * 	<li><b>Environment variable:</b>  <c>BEANCONTEXT_BEANMETHODVISIBILITY</c>
 	 * 	<li><b>Default:</b>  <js>"PUBLIC"</js>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#beanMethodVisibility()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#beanMethodVisibility(Visibility)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beanMethodVisibility(Visibility)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -591,14 +639,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>BeanContext.beansRequireDefaultConstructor</c>
+	 * 	<li><b>Environment variable:</b>  <c>BEANCONTEXT_BEANSREQUIREDEFAULTCONSTRUCTOR</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#beansRequireDefaultConstructor()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#beansRequireDefaultConstructor(boolean)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#beansRequireDefaultConstructor()}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beansRequireDefaultConstructor(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beansRequireDefaultConstructor()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -632,14 +687,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>BeanContext.beansRequireSerializable</c>
+	 * 	<li><b>Environment variable:</b>  <c>BEANCONTEXT_BEANSREQUIRESERIALIZABLE</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#beansRequireSerializable()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#beansRequireSerializable(boolean)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#beansRequireSerializable()}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beansRequireSerializable(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beansRequireSerializable()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -673,14 +735,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>BeanContext.beansRequireSettersForGetters</c>
+	 * 	<li><b>Environment variable:</b>  <c>BEANCONTEXT_BEANSREQUIRESETTERSFORGETTERS</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#beansRequireSettersForGetters()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#beansRequireSettersForGetters(boolean)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#beansRequireSettersForGetters()}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beansRequireSettersForGetters(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beansRequireSettersForGetters()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -711,13 +780,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>BeanContext.beansRequireSomeProperties</c>
+	 * 	<li><b>Environment variable:</b>  <c>BEANCONTEXT_BEANSREQUIRESOMEPROPERTIES</c>
 	 * 	<li><b>Default:</b>  <jk>true</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#beansRequireSomeProperties()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#beansRequireSomeProperties(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beansRequireSomeProperties(boolean)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -751,17 +827,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>BeanContext.beanTypePropertyName</c>
+	 * 	<li><b>Environment variable:</b>  <c>BEANCONTEXT_BEANTYPEPROPERTYNAME</c>
 	 * 	<li><b>Default:</b>  <js>"_type"</js>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Bean#typePropertyName()}
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.Bean#typePropertyName()}
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#beanTypePropertyName()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#beanTypePropertyName(String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beanTypePropertyName(String)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -795,21 +875,25 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>BeanContext.bpi</c>
+	 * 	<li><b>Environment variable:</b>  <c>BEANCONTEXT_BPI</c>
 	 * 	<li><b>Default:</b>  <c>{}</c>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Bean#bpi()}
-	 * 			<li class='ja'>{@link Beanp#bpi()}
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.Bean#bpi()}
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.Beanp#bpi()}
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#bpi()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#bpi(Class, String)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#bpi(String, String)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#bpi(Map)}
-	 * 			<li class='jm'>{@link BeanFilterBuilder#bpi(String...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#bpi(Class, String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#bpi(String, String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#bpi(Map)}
+	 * 			<li class='jm'>{@link org.apache.juneau.transform.BeanFilterBuilder#bpi(String...)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -857,20 +941,28 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>BeanContext.bpx</c>
+	 * 	<li><b>Environment variable:</b>  <c>BEANCONTEXT_BPX</c>
 	 * 	<li><b>Default:</b>  <c>{}</c>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Bean#bpx()}
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#dictionary()}
+	 * 		</ul>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.Bean#bpx()}
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#bpx()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#bpx(Class, String)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#bpx(String, String)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#bpx(Map)}
-	 * 			<li class='jm'>{@link BeanFilterBuilder#bpx(String...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#bpx(Class, String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#bpx(String, String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#bpx(Map)}
+	 * 			<li class='jm'>{@link org.apache.juneau.transform.BeanFilterBuilder#bpx(String...)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -918,21 +1010,25 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>BeanContext.bpro</c>
+	 * 	<li><b>Environment variable:</b>  <c>BEANCONTEXT_BPRO</c>
 	 * 	<li><b>Default:</b>  <c>{}</c>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Bean#bpro()}
-	 * 			<li class='ja'>{@link Beanp#ro()}
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.Bean#bpro()}
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.Beanp#ro()}
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#bpro()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#bpro(Class, String)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#bpro(String, String)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#bpro(Map)}
-	 * 			<li class='jm'>{@link BeanFilterBuilder#bpro(String...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#bpro(Class, String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#bpro(String, String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#bpro(Map)}
+	 * 			<li class='jm'>{@link org.apache.juneau.transform.BeanFilterBuilder#bpro(String...)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -981,21 +1077,25 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>BeanContext.bpwo</c>
+	 * 	<li><b>Environment variable:</b>  <c>BEANCONTEXT_BPWO</c>
 	 * 	<li><b>Default:</b>  <c>{}</c>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Bean#bpwo()}
-	 * 			<li class='ja'>{@link Beanp#wo()}
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.Bean#bpwo()}
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.Beanp#wo()}
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#bpwo()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#bpwo(Class, String)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#bpwo(String, String)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#bpwo(Map)}
-	 * 			<li class='jm'>{@link BeanFilterBuilder#bpwo(String...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#bpwo(Class, String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#bpwo(String, String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#bpwo(Map)}
+	 * 			<li class='jm'>{@link org.apache.juneau.transform.BeanFilterBuilder#bpwo(String...)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -1044,15 +1144,22 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>BeanContext.debug</c>
+	 * 	<li><b>Environment variable:</b>  <c>BEANCONTEXT_DEBUG</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>true</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#debug()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#debug(boolean)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#debug()}
-	 * 			<li class='jm'>{@link BeanSessionArgs#debug(Boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#debug(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#debug()}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanSessionArgs#debug(Boolean)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -1097,17 +1204,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
 	 * 	<li><b>Default:</b>  <c>{}</c>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Example}
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.Example}
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#example()}
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#examples()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#example(Class,Object)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#example(Class,Object)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -1158,20 +1268,24 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>BeanContext.fluentSetters</c>
+	 * 	<li><b>Environment variable:</b>  <c>BEANCONTEXT_FLUENTSETTERS</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Bean#fluentSetters()}
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.Bean#fluentSetters()}
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#fluentSetters()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#fluentSetters(boolean)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#fluentSetters()}
-	 * 			<li class='jm'>{@link BeanFilterBuilder#fluentSetters(boolean)}
-	 * 			<li class='jm'>{@link BeanFilterBuilder#fluentSetters()}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#fluentSetters(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#fluentSetters()}
+	 * 			<li class='jm'>{@link org.apache.juneau.transform.BeanFilterBuilder#fluentSetters(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.transform.BeanFilterBuilder#fluentSetters()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -1210,14 +1324,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>BeanContext.ignoreInvocationExceptionsOnGetters</c>
+	 * 	<li><b>Environment variable:</b>  <c>BEANCONTEXT_IGNOREINVOCATIONEXCEPTIONONGETTERS</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#ignoreInvocationExceptionsOnGetters()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#ignoreInvocationExceptionsOnGetters(boolean)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#ignoreInvocationExceptionsOnGetters()}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#ignoreInvocationExceptionsOnGetters(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#ignoreInvocationExceptionsOnGetters()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -1248,14 +1369,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>BeanContext.ignoreInvocationExceptionsOnSetters</c>
+	 * 	<li><b>Environment variable:</b>  <c>BEANCONTEXT_IGNOREINVOCATIONEXCEPTIONSONSETTERS</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#ignoreInvocationExceptionsOnSetters()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#ignoreInvocationExceptionsOnSetters(boolean)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#ignoreInvocationExceptionsOnSetters()}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#ignoreInvocationExceptionsOnSetters(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#ignoreInvocationExceptionsOnSetters()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -1286,13 +1414,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>BeanContext.ignorePropertiesWithoutSetters</c>
+	 * 	<li><b>Environment variable:</b>  <c>BEANCONTEXT_IGNOREPROPERTIESWITHOUTSETTERS</c>
 	 * 	<li><b>Default:</b>  <jk>true</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#ignorePropertiesWithoutSetters()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#ignorePropertiesWithoutSetters(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#ignorePropertiesWithoutSetters(boolean)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -1323,14 +1458,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>BeanContext.ignoreUnknownBeanProperties</c>
+	 * 	<li><b>Environment variable:</b>  <c>BEANCONTEXT_IGNOREUNKNOWNBEANPROPERTIES</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#ignoreUnknownBeanProperties()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#ignoreUnknownBeanProperties(boolean)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#ignoreUnknownBeanProperties()}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#ignoreUnknownBeanProperties(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#ignoreUnknownBeanProperties()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -1361,13 +1503,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>BeanContext.ignoreUnknownNullBeanProperties</c>
+	 * 	<li><b>Environment variable:</b>  <c>BEANCONTEXT_IGNOREUNKNOWNNULLBEANPROPERTIES</c>
 	 * 	<li><b>Default:</b>  <jk>true</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#ignoreUnknownNullBeanProperties()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#ignoreUnknownNullBeanProperties(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#ignoreUnknownNullBeanProperties(boolean)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -1398,14 +1547,19 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
 	 * 	<li><b>Default:</b>  empty map
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#implClasses()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#implClasses(Map)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#implClass(Class, Class)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#implClasses(Map)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#implClass(Class, Class)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -1444,14 +1598,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>String</c> ({@link Locale})
-	 * 	<li><b>Default:</b>  <jk>null</jk> (defaults to {@link Locale#getDefault()})
+	 * 	<li><b>Data type:</b>  {@link java.util.Locale}
+	 * 	<li><b>System property:</b>  <c>BeanContext.locale</c>
+	 * 	<li><b>Environment variable:</b>  <c>BEANCONTEXT_LOCALE</c>
+	 * 	<li><b>Default:</b>  <jk>null</jk> (defaults to {@link java.util.Locale#getDefault()})
 	 * 	<li><b>Session property:</b>  <jk>true</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#locale()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#locale(Locale)}
-	 * 			<li class='jm'>{@link BeanSessionArgs#locale(Locale)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#locale(Locale)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanSessionArgs#locale(Locale)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -1487,14 +1648,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>String</c> ({@link MediaType})
+	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.http.MediaType}
+	 * 	<li><b>System property:</b>  <c>BeanContext.mediaType</c>
+	 * 	<li><b>Environment variable:</b>  <c>BEANCONTEXT_MEDIATYPE</c>
 	 * 	<li><b>Default:</b>  <jk>null</jk>
 	 * 	<li><b>Session property:</b>  <jk>true</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#mediaType()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#mediaType(MediaType)}
-	 * 			<li class='jm'>{@link BeanSessionArgs#mediaType(MediaType)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#mediaType(MediaType)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanSessionArgs#mediaType(MediaType)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -1530,22 +1698,24 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
 	 * 	<li><b>Default:</b>  empty set
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link BeanIgnore}
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanIgnore}
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#notBeanClasses()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#notBeanClasses(Class...)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#notBeanClasses(Object...)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#notBeanClassesReplace(Class...)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#notBeanClassesReplace(Object...)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#notBeanClassesRemove(Class...)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#notBeanClassesRemove(Object...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#notBeanClasses(Class...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#notBeanClasses(Object...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#notBeanClassesReplace(Class...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#notBeanClassesReplace(Object...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#notBeanClassesRemove(Class...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#notBeanClassesRemove(Object...)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -1593,8 +1763,11 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>BeanContext.notBeanPackages</c>
+	 * 	<li><b>Environment variable:</b>  <c>BEANCONTEXT_NOTBEANPACKAGES</c>
 	 * 	<li><b>Default:</b>
 	 * 	<ul>
 	 * 		<li><c>java.lang</c>
@@ -1607,14 +1780,18 @@
 	 * 		<li><c>java.util.*</c>
 	 * 	</ul>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#notBeanPackages()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#notBeanPackages(Object...)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#notBeanPackages(String...)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#notBeanPackagesReplace(Object...)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#notBeanPackagesReplace(String...)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#notBeanPackagesRemove(Object...)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#notBeanPackagesRemove(String...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#notBeanPackages(Object...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#notBeanPackages(String...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#notBeanPackagesReplace(Object...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#notBeanPackagesReplace(String...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#notBeanPackagesRemove(Object...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#notBeanPackagesRemove(String...)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -1668,23 +1845,25 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
 	 * 	<li><b>Default:</b>  empty list
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Swap}
-	 * 			<li class='ja'>{@link Swaps}
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.Swap}
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.Swaps}
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#pojoSwaps()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#pojoSwaps(Object...)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#pojoSwaps(Class...)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#pojoSwapsReplace(Object...)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#pojoSwapsReplace(Class...)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#pojoSwapsRemove(Object...)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#pojoSwapsRemove(Class...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#pojoSwaps(Object...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#pojoSwaps(Class...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#pojoSwapsReplace(Object...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#pojoSwapsReplace(Class...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#pojoSwapsRemove(Object...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#pojoSwapsRemove(Class...)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -1784,18 +1963,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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;? <jk>implements</jk> {@link PropertyNamer}&gt;</code>
-	 * 	<li><b>Default:</b>  {@link PropertyNamerDefault}
+	 * 	<li><b>Data type:</b>  <code>Class&lt;{@link org.apache.juneau.PropertyNamer}&gt;</code>
+	 * 	<li><b>Default:</b>  {@link org.apache.juneau.PropertyNamerDefault}
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Bean#propertyNamer()}
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.Bean#propertyNamer()}
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#propertyNamer()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#propertyNamer(Class)}
-	 * 			<li class='jm'>{@link BeanFilterBuilder#propertyNamer(Class)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#propertyNamer(Class)}
+	 * 			<li class='jm'>{@link org.apache.juneau.transform.BeanFilterBuilder#propertyNamer(Class)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -1834,20 +2015,24 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>BeanContext.sortProperties</c>
+	 * 	<li><b>Environment variable:</b>  <c>BEANCONTEXT_SORTPROPERTIES</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Bean#sort()}
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.Bean#sort()}
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#sortProperties()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#sortProperties(boolean)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#sortProperties()}
-	 * 			<li class='jm'>{@link BeanFilterBuilder#sortProperties(boolean)}
-	 * 			<li class='jm'>{@link BeanFilterBuilder#sortProperties()}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#sortProperties(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#sortProperties()}
+	 * 			<li class='jm'>{@link org.apache.juneau.transform.BeanFilterBuilder#sortProperties(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.transform.BeanFilterBuilder#sortProperties()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -1885,14 +2070,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>String</c> ({@link TimeZone})
+	 * 	<li><b>Data type:</b>  {@link java.util.TimeZone}
+	 * 	<li><b>System property:</b>  <c>BeanContext.timeZone</c>
+	 * 	<li><b>Environment variable:</b>  <c>BEANCONTEXT_TIMEZONE</c>
 	 * 	<li><b>Default:</b>  <jk>null</jk>
 	 * 	<li><b>Session property:</b>  <jk>true</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#timeZone()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#timeZone(TimeZone)}
-	 * 			<li class='jm'>{@link BeanSessionArgs#timeZone(TimeZone)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#timeZone(TimeZone)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanSessionArgs#timeZone(TimeZone)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -1928,13 +2120,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>BeanContext.useEnumNames</c>
+	 * 	<li><b>Environment variable:</b>  <c>BEANCONTEXT_USEENUMNAMES</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#useEnumNames()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#useEnumNames()}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#useEnumNames()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -1982,13 +2181,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>BeanContext.useInterfaceProxies</c>
+	 * 	<li><b>Environment variable:</b>  <c>BEANCONTEXT_USEINTERFACEPROXIES</c>
 	 * 	<li><b>Default:</b>  <jk>true</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#useInterfaceProxies()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#useInterfaceProxies(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#useInterfaceProxies(boolean)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -2020,14 +2226,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>BeanContext.useJavaBeanIntrospector</c>
+	 * 	<li><b>Environment variable:</b>  <c>BEANCONTEXT_USEJAVABEANINTROSPECTOR</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#useJavaBeanIntrospector()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanContextBuilder#useJavaBeanIntrospector(boolean)}
-	 * 			<li class='jm'>{@link BeanContextBuilder#useJavaBeanIntrospector()}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#useJavaBeanIntrospector(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanContextBuilder#useJavaBeanIntrospector()}
 	 * 		</ul>
 	 * </ul>
 	 *
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 325834e..e600f78 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
@@ -37,14 +37,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>BeanTraverseContext.detectRecursions</c>
+	 * 	<li><b>Environment variable:</b>  <c>BEANTRAVERSECONTEXT_DETECTRECURSIONS</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#detectRecursions()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanTraverseBuilder#detectRecursions(boolean)}
-	 * 			<li class='jm'>{@link BeanTraverseBuilder#detectRecursions()}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanTraverseBuilder#detectRecursions(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanTraverseBuilder#detectRecursions()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -107,14 +114,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>BeanTraverseContext.ignoreRecursions</c>
+	 * 	<li><b>Environment variable:</b>  <c>BEANTRAVERSECONTEXT_IGNORERECURSIONS</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#ignoreRecursions()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanTraverseBuilder#ignoreRecursions(boolean)}
-	 * 			<li class='jm'>{@link BeanTraverseBuilder#ignoreRecursions()}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanTraverseBuilder#ignoreRecursions(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanTraverseBuilder#ignoreRecursions()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -134,13 +148,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Integer</c>
+	 * 	<li><b>Data type:</b>  <jk>int</jk>
+	 * 	<li><b>System property:</b>  <c>BeanTraverseContext.initialDepth</c>
+	 * 	<li><b>Environment variable:</b>  <c>BEANTRAVERSECONTEXT_INITIALDEPTH</c>
 	 * 	<li><b>Default:</b>  <c>0</c>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#initialDepth()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanTraverseBuilder#initialDepth(int)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanTraverseBuilder#initialDepth(int)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -176,13 +197,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Integer</c>
+	 * 	<li><b>Data type:</b>  <jk>int</jk>
+	 * 	<li><b>System property:</b>  <c>BeanTraverseContext.maxDepth</c>
+	 * 	<li><b>Environment variable:</b>  <c>BEANTRAVERSECONTEXT_MAXDEPTH</c>
 	 * 	<li><b>Default:</b>  <c>100</c>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#maxDepth()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link BeanTraverseBuilder#maxDepth(int)}
+	 * 			<li class='jm'>{@link org.apache.juneau.BeanTraverseBuilder#maxDepth(int)}
 	 * 		</ul>
 	 * </ul>
 	 *
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/PropertyStore.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/PropertyStore.java
index 0e005d8..39b796e 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/PropertyStore.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/PropertyStore.java
@@ -236,21 +236,21 @@
 				return p;
 		}
 
-		String s = System.getProperty(key);
-		if (s != null)
-			return PropertyStoreBuilder.MutableProperty.create(k, s).build();
+		String s = null;
+		String k1 = key, k2 = key.indexOf('.') == -1 ? key : key.substring(0, key.lastIndexOf('.'));
+
+		s = System.getProperty(k1);
+		if (s == null)
+			s = System.getProperty(k2);
 
 		try {
-			String ke = key.replace('.',  '_');
-			s = System.getenv(ke);
-			if (s != null)
-				return PropertyStoreBuilder.MutableProperty.create(k, s).build();
-			s = System.getenv(ke.toUpperCase());
-			if (s != null)
-				return PropertyStoreBuilder.MutableProperty.create(k, s).build();
+			if (s == null)
+				s = System.getenv(k1.replace('.', '_').replace('-', '_').toUpperCase());
+			if (s == null)
+				s = System.getenv(k2.replace('.', '_').replace('-', '_').toUpperCase());
 		} catch (SecurityException e) {}
 
-		return null;
+		return s == null ? null : PropertyStoreBuilder.MutableProperty.create(k, s).build();
 	}
 
 	/**
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 2fe6520..5f5fdb0 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
@@ -87,10 +87,17 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>HtmlDocSerializer.aside</c>
+	 * 	<li><b>Environment variable:</b>  <c>HTMLDOCSERIALIZER_ASIDE</c>
 	 * 	<li><b>Default:</b>  empty list
 	 * 	<li><b>Session property:</b>  <jk>true</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.html.annotation.HtmlDocConfig#aside()}
+	 * 		</ul>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -124,10 +131,17 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>HtmlDocSerializer.footer</c>
+	 * 	<li><b>Environment variable:</b>  <c>HTMLDOCSERIALIZER_FOOTER</c>
 	 * 	<li><b>Default:</b>  empty list
 	 * 	<li><b>Session property:</b>  <jk>true</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.html.annotation.HtmlDocConfig#footer()}
+	 * 		</ul>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -155,10 +169,17 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>HtmlDocSerializer.head</c>
+	 * 	<li><b>Environment variable:</b>  <c>HTMLDOCSERIALIZER_HEAD</c>
 	 * 	<li><b>Default:</b>  empty list
 	 * 	<li><b>Session property:</b>  <jk>true</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.html.annotation.HtmlDocConfig#head()}
+	 * 		</ul>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -194,10 +215,17 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>HtmlDocSerializer.header</c>
+	 * 	<li><b>Environment variable:</b>  <c>HTMLDOCSERIALIZER_HEADER</c>
 	 * 	<li><b>Default:</b>  empty list
 	 * 	<li><b>Session property:</b>  <jk>true</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.html.annotation.HtmlDocConfig#header()}
+	 * 		</ul>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -223,10 +251,17 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>HtmlDocSerializer.nav</c>
+	 * 	<li><b>Environment variable:</b>  <c>HTMLDOCSERIALIZER_NAV</c>
 	 * 	<li><b>Default:</b>  empty list
 	 * 	<li><b>Session property:</b>  <jk>true</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.html.annotation.HtmlDocConfig#nav()}
+	 * 		</ul>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -255,10 +290,17 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>HtmlDocSerializer.navlinks</c>
+	 * 	<li><b>Environment variable:</b>  <c>HTMLDOCSERIALIZER_NAVLINKS</c>
 	 * 	<li><b>Default:</b>  empty list
 	 * 	<li><b>Session property:</b>  <jk>true</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.html.annotation.HtmlDocConfig#navlinks()}
+	 * 		</ul>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -323,10 +365,17 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>HtmlDocSerializer.noResultsMessage</c>
+	 * 	<li><b>Environment variable:</b>  <c>HTMLDOCSERIALIZER_NORESULTSMESSAGE</c>
 	 * 	<li><b>Default:</b>  <js>"&lt;p&gt;no results&lt;/p&gt;"</js>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.html.annotation.HtmlDocConfig#noResultsMessage()}
+	 * 		</ul>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -352,10 +401,17 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>HtmlDocSerializer.nowrap</c>
+	 * 	<li><b>Environment variable:</b>  <c>HTMLDOCSERIALIZER_NOWRAP</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.html.annotation.HtmlDocConfig#nowrap()}
+	 * 		</ul>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -369,10 +425,17 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>HtmlDocSerializer.script</c>
+	 * 	<li><b>Environment variable:</b>  <c>HTMLDOCSERIALIZER_SCRIPT</c>
 	 * 	<li><b>Default:</b>  empty list
 	 * 	<li><b>Session property:</b>  <jk>true</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.html.annotation.HtmlDocConfig#script()}
+	 * 		</ul>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -413,10 +476,17 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>HtmlDocSerializer.style</c>
+	 * 	<li><b>Environment variable:</b>  <c>HTMLDOCSERIALIZER_STYLE</c>
 	 * 	<li><b>Default:</b>  empty list
 	 * 	<li><b>Session property:</b>  <jk>true</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.html.annotation.HtmlDocConfig#style()}
+	 * 		</ul>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -458,10 +528,17 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>HtmlDocSerializer.stylesheet</c>
+	 * 	<li><b>Environment variable:</b>  <c>HTMLDOCSERIALIZER_STYLESHEET</c>
 	 * 	<li><b>Default:</b>  empty list
 	 * 	<li><b>Session property:</b>  <jk>true</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.html.annotation.HtmlDocConfig#stylesheet()}
+	 * 		</ul>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -483,10 +560,15 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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;? <jk>extends</jk> HtmlDocTemplate&gt;</code>
-	 * 	<li><b>Default:</b>  <code>HtmlDocTemplateBasic.<jk>class</jk></code>
+	 * 	<li><b>Data type:</b>  <code>Class&lt;{@link org.apache.juneau.html.HtmlDocTemplate}&gt;</code>
+	 * 	<li><b>Default:</b>  {@link org.apache.juneau.html.BasicHtmlDocTemplate}
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.html.annotation.HtmlDocConfig#template()}
+	 * 		</ul>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -513,13 +595,15 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <code>List&lt;{@link HtmlWidget} | Class&lt;? <jk>extends</jk> {@link HtmlWidget}&gt;&gt;</code>
+	 * 	<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>
 	 * 	<li><b>Default:</b>  empty list
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
 	 * 			<li class='ja'>{@link HtmlDocConfig#widgets()}
+	 * 			<li class='ja'>{@link org.apache.juneau.html.annotation.HtmlDocConfig#widgets()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
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 bc3e869..8db1fbb 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
@@ -138,13 +138,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>HtmlSerializer.addBeanTypes</c>
+	 * 	<li><b>Environment variable:</b>  <c>HTMLSERIALIZER_ADDBEANTYPES</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.html.annotation.HtmlConfig#addBeanTypes()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link HtmlSerializerBuilder#addBeanTypes(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.html.HtmlSerializerBuilder#addBeanTypes(boolean)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -164,18 +171,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>HtmlSerializer.addKeyValueTableHeaders</c>
+	 * 	<li><b>Environment variable:</b>  <c>HTMLSERIALIZER_ADDKEYVALUETABLEHEADERS</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Html#noTableHeaders()}
+	 * 			<li class='ja'>{@link org.apache.juneau.html.annotation.Html#noTableHeaders()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link HtmlSerializerBuilder#addKeyValueTableHeaders(boolean)}
-	 * 			<li class='jm'>{@link HtmlSerializerBuilder#addKeyValueTableHeaders()}
+	 * 			<li class='jm'>{@link org.apache.juneau.html.HtmlSerializerBuilder#addKeyValueTableHeaders(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.html.HtmlSerializerBuilder#addKeyValueTableHeaders()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -235,13 +245,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>HtmlSerializer.detectLinksInStrings</c>
+	 * 	<li><b>Environment variable:</b>  <c>HTMLSERIALIZER_DETECTLINKSINSTRINGS</c>
 	 * 	<li><b>Default:</b>  <jk>true</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.html.annotation.HtmlConfig#detectLinksInStrings()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link HtmlSerializerBuilder#detectLinksInStrings(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.html.HtmlSerializerBuilder#detectLinksInStrings(boolean)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -305,13 +322,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>HtmlSerializer.labelParameter</c>
+	 * 	<li><b>Environment variable:</b>  <c>HTMLSERIALIZER_LABELPARAMETER</c>
 	 * 	<li><b>Default:</b>  <js>"label"</js>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.html.annotation.HtmlConfig#labelParameter()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link HtmlSerializerBuilder#labelParameter(String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.html.HtmlSerializerBuilder#labelParameter(String)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -329,13 +353,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>HtmlSerializer.detectLabelParameters</c>
+	 * 	<li><b>Environment variable:</b>  <c>HTMLSERIALIZER_DETECTLABELPARAMETERS</c>
 	 * 	<li><b>Default:</b>  <jk>true</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.html.annotation.HtmlConfig#detectLabelParameters()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link HtmlSerializerBuilder#detectLabelParameters(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.html.HtmlSerializerBuilder#detectLabelParameters(boolean)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -402,18 +433,22 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>String</c> ({@link AnchorText})
+	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.html.AnchorText}
+	 * 	<li><b>System property:</b>  <c>HtmlSerializer.uriAnchorText</c>
+	 * 	<li><b>Environment variable:</b>  <c>HTMLSERIALIZER_URIANCHORTEXT</c>
 	 * 	<li><b>Default:</b>  <js>"TO_STRING"</js>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Html#anchorText()}
+	 * 			<li class='ja'>{@link org.apache.juneau.html.annotation.Html#anchorText()}
+	 * 			<li class='ja'>{@link org.apache.juneau.html.annotation.HtmlConfig#uriAnchorText()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link HtmlSerializerBuilder#uriAnchorText(AnchorText)}
-	 * 			<li class='jm'>{@link HtmlSerializerBuilder#uriAnchorText(String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.html.HtmlSerializerBuilder#uriAnchorText(AnchorText)}
+	 * 			<li class='jm'>{@link org.apache.juneau.html.HtmlSerializerBuilder#uriAnchorText(String)}
 	 * 		</ul>
 	 * </ul>
 	 *
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 a023bd0..cc2ce8d 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
@@ -116,14 +116,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>JsonParser.validateEnd</c>
+	 * 	<li><b>Environment variable:</b>  <c>JSONPARSER_VALIDATEEND</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.json.annotation.JsonConfig#validateEnd()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link JsonParserBuilder#validateEnd(boolean)}
-	 * 			<li class='jm'>{@link JsonParserBuilder#validateEnd()}
+	 * 			<li class='jm'>{@link org.apache.juneau.json.JsonParserBuilder#validateEnd(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.json.JsonParserBuilder#validateEnd()}
 	 * 		</ul>
 	 * </ul>
 	 *
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 2637868..e0a6dda 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
@@ -102,13 +102,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>JsonSerializer.addBeanTypes</c>
+	 * 	<li><b>Environment variable:</b>  <c>JSONSERIALIZER_ADDBEANTYPES</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.json.annotation.JsonConfig#addBeanTypes()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link JsonSerializerBuilder#addBeanTypes(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.json.JsonSerializerBuilder#addBeanTypes(boolean)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -128,14 +135,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>JsonSerializer.escapeSolidus</c>
+	 * 	<li><b>Environment variable:</b>  <c>JSONSERIALIZER_ESCAPESOLIDUS</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.json.annotation.JsonConfig#escapeSolidus()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link JsonSerializerBuilder#escapeSolidus(boolean)}
-	 * 			<li class='jm'>{@link JsonSerializerBuilder#escapeSolidus()}
+	 * 			<li class='jm'>{@link org.apache.juneau.json.JsonSerializerBuilder#escapeSolidus(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.json.JsonSerializerBuilder#escapeSolidus()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -173,15 +187,22 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>JsonSerializer.simpleMode</c>
+	 * 	<li><b>Environment variable:</b>  <c>JSONSERIALIZER_SIMPLEMODE</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.json.annotation.JsonConfig#simpleMode()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link JsonSerializerBuilder#simple(boolean)}
-	 * 			<li class='jm'>{@link JsonSerializerBuilder#simple()}
-	 * 			<li class='jm'>{@link JsonSerializerBuilder#ssq()}
+	 * 			<li class='jm'>{@link org.apache.juneau.json.JsonSerializerBuilder#simple(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.json.JsonSerializerBuilder#simple()}
+	 * 			<li class='jm'>{@link org.apache.juneau.json.JsonSerializerBuilder#ssq()}
 	 * 		</ul>
 	 * </ul>
 	 *
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 a1d8b2b..15e957f 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
@@ -39,13 +39,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>JsonSchemaGenerator.addDescriptionsTo</c>
+	 * 	<li><b>Environment variable:</b>  <c>JSONSCHEMAGENERATOR_ADDDESCRIPTIONSTO</c>
 	 * 	<li><b>Default:</b>  Empty string.
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jsonschema.annotation.JsonSchemaConfig#addDescriptionsTo()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link JsonSchemaGeneratorBuilder#addDescriptionsTo(String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.jsonschema.JsonSchemaGeneratorBuilder#addDescriptionsTo(String)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -76,13 +83,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>JsonSchemaGenerator.addExamplesTo</c>
+	 * 	<li><b>Environment variable:</b>  <c>JSONSCHEMAGENERATOR_ADDEXAMPLESTO</c>
 	 * 	<li><b>Default:</b>  Empty string.
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jsonschema.annotation.JsonSchemaConfig#addExamplesTo()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link JsonSchemaGeneratorBuilder#addExamplesTo(String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.jsonschema.JsonSchemaGeneratorBuilder#addExamplesTo(String)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -119,13 +133,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>JsonSchemaGenerator.allowNestedDescriptions</c>
+	 * 	<li><b>Environment variable:</b>  <c>JSONSCHEMAGENERATOR_ALLOWNESTEDDESCRIPTIONS</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jsonschema.annotation.JsonSchemaConfig#allowNestedDescriptions()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link JsonSchemaGeneratorBuilder#allowNestedDescriptions()}
+	 * 			<li class='jm'>{@link org.apache.juneau.jsonschema.JsonSchemaGeneratorBuilder#allowNestedDescriptions()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -140,13 +161,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>JsonSchemaGenerator.allowNestedExamples</c>
+	 * 	<li><b>Environment variable:</b>  <c>JSONSCHEMAGENERATOR_ALLOWNESTEDEXAMPLES</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jsonschema.annotation.JsonSchemaConfig#allowNestedExamples()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link JsonSchemaGeneratorBuilder#allowNestedExamples()}
+	 * 			<li class='jm'>{@link org.apache.juneau.jsonschema.JsonSchemaGeneratorBuilder#allowNestedExamples()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -161,14 +189,19 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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 BeanDefMapper}
-	 * 	<li><b>Default:</b>  {@link BasicBeanDefMapper}
+	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.jsonschema.BeanDefMapper}
+	 * 	<li><b>Default:</b>  {@link org.apache.juneau.jsonschema.BasicBeanDefMapper}
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jsonschema.annotation.JsonSchemaConfig#beanDefMapper()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link JsonSchemaGeneratorBuilder#beanDefMapper(Class)}
-	 * 			<li class='jm'>{@link JsonSchemaGeneratorBuilder#beanDefMapper(BeanDefMapper)}
+	 * 			<li class='jm'>{@link org.apache.juneau.jsonschema.JsonSchemaGeneratorBuilder#beanDefMapper(Class)}
+	 * 			<li class='jm'>{@link org.apache.juneau.jsonschema.JsonSchemaGeneratorBuilder#beanDefMapper(BeanDefMapper)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -187,13 +220,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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,ObjectMap&gt;</c>
+	 * 	<li><b>Data type:</b>  <c>Map&lt;String,{@link org.apache.juneau.ObjectMap}&gt;</c>
+	 * 	<li><b>System property:</b>  <c>JsonSchemaGenerator.defaultSchema</c>
+	 * 	<li><b>Environment variable:</b>  <c>JSONSCHEMAGENERATOR_DEFAULTSCHEMA</c>
 	 * 	<li><b>Default:</b>  Empty map.
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jsonschema.annotation.JsonSchemaConfig#defaultSchemas()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link JsonSchemaGeneratorBuilder#defaultSchema(Class,ObjectMap)}
+	 * 			<li class='jm'>{@link org.apache.juneau.jsonschema.JsonSchemaGeneratorBuilder#defaultSchema(Class,ObjectMap)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -210,10 +250,17 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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)
+	 * 	<li><b>System property:</b>  <c>JsonSchemaGenerator.ignoreTypes</c>
+	 * 	<li><b>Environment variable:</b>  <c>JSONSCHEMAGENERATOR_IGNORETYPES</c>
 	 * 	<li><b>Default:</b>  <jk>null</jk>.
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jsonschema.annotation.JsonSchemaConfig#ignoreTypes()}
+	 * 		</ul>
 	 * </ul>
 	 *
 	 * <h5 class='section'>Description:</h5>
@@ -238,12 +285,19 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>JsonSchemaGenerator.useBeanDefs</c>
+	 * 	<li><b>Environment variable:</b>  <c>JSONSCHEMAGENERATOR_USEBEANDEFS</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.jsonschema.annotation.JsonSchemaConfig#useBeanDefs()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link JsonSchemaGeneratorBuilder#useBeanDefs()}
+	 * 			<li class='jm'>{@link org.apache.juneau.jsonschema.JsonSchemaGeneratorBuilder#useBeanDefs()}
 	 * 		</ul>
 	 * </ul>
 	 *
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 36924da..029afc1 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
@@ -42,13 +42,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>MsgPackSerializer.addBeanTypes</c>
+	 * 	<li><b>Environment variable:</b>  <c>MSGPACKSERIALIZER_ADDBEANTYPES</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.msgpack.annotation.MsgPackConfig#addBeanTypes()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link MsgPackSerializerBuilder#addBeanTypes(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.msgpack.MsgPackSerializerBuilder#addBeanTypes(boolean)}
 	 * 		</ul>
 	 * </ul>
 	 *
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 4645a9f..14fa487 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
@@ -40,13 +40,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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 BinaryFormat}
-	 * 	<li><b>Default:</b>  {@link BinaryFormat#HEX}
+	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.BinaryFormat}
+	 * 	<li><b>System property:</b>  <c>InputStreamParser.binaryFormat</c>
+	 * 	<li><b>Environment variable:</b>  <c>INPUTSTREAMFORMAT_BINARYFORMAT</c>
+	 * 	<li><b>Default:</b>  {@link org.apache.juneau.BinaryFormat#HEX}
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.parser.annotation.ParserConfig#binaryFormat()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link InputStreamParserBuilder#binaryFormat(BinaryFormat)}
+	 * 			<li class='jm'>{@link org.apache.juneau.parser.InputStreamParserBuilder#binaryFormat(BinaryFormat)}
 	 * 		</ul>
 	 * </ul>
 	 *
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 e1e6611..c683f7d 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
@@ -130,14 +130,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>Parser.autoCloseStreams</c>
+	 * 	<li><b>Environment variable:</b>  <c>PARSER_AUTOCLOSESTREAMS</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.parser.annotation.ParserConfig#autoCloseStreams()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link ParserBuilder#autoCloseStreams(boolean)}
-	 * 			<li class='jm'>{@link ParserBuilder#autoCloseStreams()}
+	 * 			<li class='jm'>{@link org.apache.juneau.parser.ParserBuilder#autoCloseStreams(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.parser.ParserBuilder#autoCloseStreams()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -173,13 +180,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Integer</c>
+	 * 	<li><b>Data type:</b>  <jk>int</jk>
+	 * 	<li><b>System property:</b>  <c>Parser.debugOutputLines</c>
+	 * 	<li><b>Environment variable:</b>  <c>PARSER_DEBUGOUTPUTLINES</c>
 	 * 	<li><b>Default:</b>  <c>5</c>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.parser.annotation.ParserConfig#debugOutputLines()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link ParserBuilder#debugOutputLines(int)}
+	 * 			<li class='jm'>{@link org.apache.juneau.parser.ParserBuilder#debugOutputLines(int)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -219,13 +233,18 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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;? extends ParserListener&gt;</c>
+	 * 	<li><b>Data type:</b>  <c>Class&lt;{@link org.apache.juneau.parser.ParserListener}&gt;</c>
 	 * 	<li><b>Default:</b>  <jk>null</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.parser.annotation.ParserConfig#listener()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link ParserBuilder#listener(Class)}
+	 * 			<li class='jm'>{@link org.apache.juneau.parser.ParserBuilder#listener(Class)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -282,14 +301,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>Parser.strict</c>
+	 * 	<li><b>Environment variable:</b>  <c>PARSER_STRICT</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.parser.annotation.ParserConfig#strict()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link ParserBuilder#strict(boolean)}
-	 * 			<li class='jm'>{@link ParserBuilder#strict()}
+	 * 			<li class='jm'>{@link org.apache.juneau.parser.ParserBuilder#strict(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.parser.ParserBuilder#strict()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -355,14 +381,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>Parser.trimStrings</c>
+	 * 	<li><b>Environment variable:</b>  <c>PARSER_TRIMSTRINGS</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.parser.annotation.ParserConfig#trimStrings()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link ParserBuilder#trimStrings(boolean)}
-	 * 			<li class='jm'>{@link ParserBuilder#trimStrings()}
+	 * 			<li class='jm'>{@link org.apache.juneau.parser.ParserBuilder#trimStrings(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.parser.ParserBuilder#trimStrings()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -398,14 +431,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>Parser.unbuffered</c>
+	 * 	<li><b>Environment variable:</b>  <c>PARSER_UNBUFFERED</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.parser.annotation.ParserConfig#unbuffered()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link ParserBuilder#unbuffered(boolean)}
-	 * 			<li class='jm'>{@link ParserBuilder#unbuffered()}
+	 * 			<li class='jm'>{@link org.apache.juneau.parser.ParserBuilder#unbuffered(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.parser.ParserBuilder#unbuffered()}
 	 * 		</ul>
 	 * </ul>
 	 *
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 3f0985b..8619d83 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
@@ -43,13 +43,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>ReaderParser.fileCharset</c>
+	 * 	<li><b>Environment variable:</b>  <c>READERPARSER_FILECHARSET</c>
 	 * 	<li><b>Default:</b>  <js>"DEFAULT"</js>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.parser.annotation.ParserConfig#fileCharset()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link ReaderParserBuilder#fileCharset(Charset)}
+	 * 			<li class='jm'>{@link org.apache.juneau.parser.ReaderParserBuilder#fileCharset(Charset)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -88,13 +95,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>ReaderParser.streamCharset</c>
+	 * 	<li><b>Environment variable:</b>  <c>READERPARSER_STREAMCHARSET</c>
 	 * 	<li><b>Default:</b>  <js>"UTF-8"</js>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.parser.annotation.ParserConfig#streamCharset()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link ReaderParserBuilder#streamCharset(Charset)}
+	 * 			<li class='jm'>{@link org.apache.juneau.parser.ReaderParserBuilder#streamCharset(Charset)}
 	 * 		</ul>
 	 * </ul>
 	 *
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 691890e..e905735 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
@@ -32,13 +32,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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 BinaryFormat}
-	 * 	<li><b>Default:</b>  {@link BinaryFormat#HEX}
+	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.BinaryFormat}
+	 * 	<li><b>System property:</b>  <c>OutputStreamSerializer.binaryFormat</c>
+	 * 	<li><b>Environment variable:</b>  <c>OUTPUTSTREAMSERIALIZER_BINARYFORMAT</c>
+	 * 	<li><b>Default:</b>  {@link org.apache.juneau.BinaryFormat#HEX}
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.serializer.annotation.SerializerConfig#binaryFormat()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link OutputStreamSerializerBuilder#binaryFormat(BinaryFormat)}
+	 * 			<li class='jm'>{@link org.apache.juneau.serializer.OutputStreamSerializerBuilder#binaryFormat(BinaryFormat)}
 	 * 		</ul>
 	 * </ul>
 	 *
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 7c77133..872e736 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
@@ -52,14 +52,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>Serializer.addBeanTypes</c>
+	 * 	<li><b>Environment variable:</b>  <c>SERIALIZER_ADDBEANTYPES</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.serializer.annotation.SerializerConfig#addBeanTypes()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link SerializerBuilder#addBeanTypes()}
-	 * 			<li class='jm'>{@link SerializerBuilder#addBeanTypes(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.serializer.SerializerBuilder#addBeanTypes()}
+	 * 			<li class='jm'>{@link org.apache.juneau.serializer.SerializerBuilder#addBeanTypes(boolean)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -112,14 +119,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>Serializer.addRootType</c>
+	 * 	<li><b>Environment variable:</b>  <c>SERIALIZER_ADDROOTTYPE</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.serializer.annotation.SerializerConfig#addRootType()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link SerializerBuilder#addRootType(boolean)}
-	 * 			<li class='jm'>{@link SerializerBuilder#addRootType()}
+	 * 			<li class='jm'>{@link org.apache.juneau.serializer.SerializerBuilder#addRootType(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.serializer.SerializerBuilder#addRootType()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -168,13 +182,18 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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;? extends SerializerListener&gt;</c>
+	 * 	<li><b>Data type:</b>  <c>Class&lt;{@link org.apache.juneau.serializer.SerializerListener}&gt;</c>
 	 * 	<li><b>Default:</b>  <jk>null</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.serializer.annotation.SerializerConfig#listener()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link SerializerBuilder#listener(Class)}
+	 * 			<li class='jm'>{@link org.apache.juneau.serializer.SerializerBuilder#listener(Class)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -231,14 +250,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>Serializer.sortCollections</c>
+	 * 	<li><b>Environment variable:</b>  <c>SERIALIZER_SORTCOLLECTIONS</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.serializer.annotation.SerializerConfig#sortCollections()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link SerializerBuilder#sortCollections(boolean)}
-	 * 			<li class='jm'>{@link SerializerBuilder#sortCollections()}
+	 * 			<li class='jm'>{@link org.apache.juneau.serializer.SerializerBuilder#sortCollections(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.serializer.SerializerBuilder#sortCollections()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -272,14 +298,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>Serializer.sortMaps</c>
+	 * 	<li><b>Environment variable:</b>  <c>SERIALIZER_SORTMAPS</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.serializer.annotation.SerializerConfig#sortMaps()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link SerializerBuilder#sortMaps(boolean)}
-	 * 			<li class='jm'>{@link SerializerBuilder#sortMaps()}
+	 * 			<li class='jm'>{@link org.apache.juneau.serializer.SerializerBuilder#sortMaps(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.serializer.SerializerBuilder#sortMaps()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -313,14 +346,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>Serializer.trimEmptyCollections</c>
+	 * 	<li><b>Environment variable:</b>  <c>SERIALIZER_TRIMEMPTYCOLLECTIONS</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.serializer.annotation.SerializerConfig#trimEmptyCollections()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link SerializerBuilder#trimEmptyCollections(boolean)}
-	 * 			<li class='jm'>{@link SerializerBuilder#trimEmptyCollections()}
+	 * 			<li class='jm'>{@link org.apache.juneau.serializer.SerializerBuilder#trimEmptyCollections(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.serializer.SerializerBuilder#trimEmptyCollections()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -360,14 +400,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>Serializer.trimEmptyMaps</c>
+	 * 	<li><b>Environment variable:</b>  <c>SERIALIZER_TRIMEMPTYMAPS</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.serializer.annotation.SerializerConfig#trimEmptyMaps()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link SerializerBuilder#trimEmptyMaps(boolean)}
-	 * 			<li class='jm'>{@link SerializerBuilder#trimEmptyMaps()}
+	 * 			<li class='jm'>{@link org.apache.juneau.serializer.SerializerBuilder#trimEmptyMaps(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.serializer.SerializerBuilder#trimEmptyMaps()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -404,13 +451,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>Serializer.trimNullProperties</c>
+	 * 	<li><b>Environment variable:</b>  <c>SERIALIZER_TRIMNULLPROPERTIES</c>
 	 * 	<li><b>Default:</b>  <jk>true</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.serializer.annotation.SerializerConfig#trimNullProperties()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link SerializerBuilder#trimNullProperties(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.serializer.SerializerBuilder#trimNullProperties(boolean)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -447,14 +501,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>Serializer.trimStrings</c>
+	 * 	<li><b>Environment variable:</b>  <c>SERIALIZER_TRIMSTRINGS</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.serializer.annotation.SerializerConfig#trimStrings()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link SerializerBuilder#trimStrings(boolean)}
-	 * 			<li class='jm'>{@link SerializerBuilder#trimStrings()}
+	 * 			<li class='jm'>{@link org.apache.juneau.serializer.SerializerBuilder#trimStrings(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.serializer.SerializerBuilder#trimStrings()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -490,14 +551,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>String</c> (JSON object representing a {@link UriContext})
+	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.UriContext}
+	 * 	<li><b>System property:</b>  <c>Serializer.uriContext</c>
+	 * 	<li><b>Environment variable:</b>  <c>SERIALIZER_URICONTEXT</c>
 	 * 	<li><b>Default:</b>  <js>"{}"</js>
 	 * 	<li><b>Session property:</b>  <jk>true</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.serializer.annotation.SerializerConfig#uriContext()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link SerializerBuilder#uriContext(UriContext)}
-	 * 			<li class='jm'>{@link SerializerBuilder#uriContext(String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.serializer.SerializerBuilder#uriContext(UriContext)}
+	 * 			<li class='jm'>{@link org.apache.juneau.serializer.SerializerBuilder#uriContext(String)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -548,14 +616,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>String</c> ({@link UriRelativity})
+	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.UriRelativity}
+	 * 	<li><b>System property:</b>  <c>Serializer.uriRelativity</c>
+	 * 	<li><b>Environment variable:</b>  <c>SERIALIZER_URIRELATIVITY</c>
 	 * 	<li><b>Default:</b>  <js>"RESOURCE"</js>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.serializer.annotation.SerializerConfig#uriRelativity()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link SerializerBuilder#uriRelativity(UriRelativity)}
-	 * 			<li class='jm'>{@link SerializerBuilder#uriRelativity(String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.serializer.SerializerBuilder#uriRelativity(UriRelativity)}
+	 * 			<li class='jm'>{@link org.apache.juneau.serializer.SerializerBuilder#uriRelativity(String)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -599,14 +674,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>String</c> ({@link UriResolution})
+	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.UriResolution}
+	 * 	<li><b>System property:</b>  <c>Serializer.uriResolution</c>
+	 * 	<li><b>Environment variable:</b>  <c>SERIALIZER_URIRESOLUTION</c>
 	 * 	<li><b>Default:</b>  <js>"NONE"</js>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.serializer.annotation.SerializerConfig#uriResolution()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link SerializerBuilder#uriResolution(UriResolution)}
-	 * 			<li class='jm'>{@link SerializerBuilder#uriResolution(String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.serializer.SerializerBuilder#uriResolution(UriResolution)}
+	 * 			<li class='jm'>{@link org.apache.juneau.serializer.SerializerBuilder#uriResolution(String)}
 	 * 		</ul>
 	 * </ul>
 	 *
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 6760c1f..b91bfc2 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
@@ -36,13 +36,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>WriterSerializer.fileCharset</c>
+	 * 	<li><b>Environment variable:</b>  <c>WRITERSERIALIZER_FILECHARSET</c>
 	 * 	<li><b>Default:</b>  <js>"DEFAULT"</js>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.serializer.annotation.SerializerConfig#fileCharset()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link WriterSerializerBuilder#fileCharset(Charset)}
+	 * 			<li class='jm'>{@link org.apache.juneau.serializer.WriterSerializerBuilder#fileCharset(Charset)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -81,13 +88,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Integer</c>
+	 * 	<li><b>Data type:</b>  <jk>int</jk>
+	 * 	<li><b>System property:</b>  <c>WriterSerializer.maxIndent</c>
+	 * 	<li><b>Environment variable:</b>  <c>WRITERSERIALIZER_MAXINDENT</c>
 	 * 	<li><b>Default:</b>  <c>100</c>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.serializer.annotation.SerializerConfig#maxIndent()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link WriterSerializerBuilder#maxIndent(int)}
+	 * 			<li class='jm'>{@link org.apache.juneau.serializer.WriterSerializerBuilder#maxIndent(int)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -120,14 +134,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>WriterSerializer.quoteChar</c>
+	 * 	<li><b>Environment variable:</b>  <c>WRITERSERIALIZER_QUOTECHAR</c>
 	 * 	<li><b>Default:</b>  <js>"\""</js>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.serializer.annotation.SerializerConfig#quoteChar()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link WriterSerializerBuilder#quoteChar(char)}
-	 * 			<li class='jm'>{@link WriterSerializerBuilder#sq()}
+	 * 			<li class='jm'>{@link org.apache.juneau.serializer.WriterSerializerBuilder#quoteChar(char)}
+	 * 			<li class='jm'>{@link org.apache.juneau.serializer.WriterSerializerBuilder#sq()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -160,13 +181,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>WriterSerializer.streamCharset</c>
+	 * 	<li><b>Environment variable:</b>  <c>WRITERSERIALIZER_STREAMCHARSET</c>
 	 * 	<li><b>Default:</b>  <js>"UTF-8"</js>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.serializer.annotation.SerializerConfig#streamCharset()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link WriterSerializerBuilder#streamCharset(Charset)}
+	 * 			<li class='jm'>{@link org.apache.juneau.serializer.WriterSerializerBuilder#streamCharset(Charset)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -202,15 +230,22 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>WriterSerializer.useWhitespace</c>
+	 * 	<li><b>Environment variable:</b>  <c>WRITERSERIALIZER_USEWHITESPACE</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>true</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.serializer.annotation.SerializerConfig#useWhitespace()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link WriterSerializerBuilder#useWhitespace(boolean)}
-	 * 			<li class='jm'>{@link WriterSerializerBuilder#useWhitespace()}
-	 * 			<li class='jm'>{@link WriterSerializerBuilder#ws()}
+	 * 			<li class='jm'>{@link org.apache.juneau.serializer.WriterSerializerBuilder#useWhitespace(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.serializer.WriterSerializerBuilder#useWhitespace()}
+	 * 			<li class='jm'>{@link org.apache.juneau.serializer.WriterSerializerBuilder#ws()}
 	 * 		</ul>
 	 * </ul>
 	 *
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 7a76b6b..9dd55ec 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
@@ -47,12 +47,19 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>SoapXmlSerializer.SOAPAction</c>
+	 * 	<li><b>Environment variable:</b>  <c>SOAPXMLSERIALIZER_SOAPACTION</c>
 	 * 	<li><b>Default:</b>  <js>"http://www.w3.org/2003/05/soap-envelope"</js>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.soap.annotation.SoapXmlConfig#soapAction()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link SoapXmlSerializerBuilder#soapAction(String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.soap.SoapXmlSerializerBuilder#soapAction(String)}
 	 * 		</ul>
 	 * </ul>
 	 */
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 12296de..c375195 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
@@ -20,7 +20,6 @@
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.httppart.*;
 import org.apache.juneau.parser.*;
-import org.apache.juneau.urlencoding.*;
 
 /**
  * Parses UON (a notation for URL-encoded query parameter values) text into POJO models.
@@ -47,14 +46,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
-	 * 	<li><b>Default:</b>  <jk>false</jk> for {@link UonParser}, <jk>true</jk> for {@link UrlEncodingParser}
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>UonParser.decoding</c>
+	 * 	<li><b>Environment variable:</b>  <c>UONPARSER_DECODING</c>
+	 * 	<li><b>Default:</b>  <jk>false</jk> for {@link org.apache.juneau.uon.UonParser}, <jk>true</jk> for {@link org.apache.juneau.urlencoding.UrlEncodingParser}
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.uon.annotation.UonConfig#decoding()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link UonParserBuilder#decoding(boolean)}
-	 * 			<li class='jm'>{@link UonParserBuilder#decoding()}
+	 * 			<li class='jm'>{@link org.apache.juneau.uon.UonParserBuilder#decoding(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.uon.UonParserBuilder#decoding()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -88,14 +94,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>UonParser.validateEnd</c>
+	 * 	<li><b>Environment variable:</b>  <c>UONPARSER_VALIDATEEND</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.uon.annotation.UonConfig#validateEnd()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link UonParserBuilder#validateEnd(boolean)}
-	 * 			<li class='jm'>{@link UonParserBuilder#validateEnd()}
+	 * 			<li class='jm'>{@link org.apache.juneau.uon.UonParserBuilder#validateEnd(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.uon.UonParserBuilder#validateEnd()}
 	 * 		</ul>
 	 * </ul>
 	 *
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 2ba44e4..0acdd86 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
@@ -19,7 +19,6 @@
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.httppart.*;
 import org.apache.juneau.serializer.*;
-import org.apache.juneau.urlencoding.*;
 
 /**
  * Serializes POJO models to UON (a notation for URL-encoded query parameter values).
@@ -132,13 +131,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>UonSerializer.addBeanTypes</c>
+	 * 	<li><b>Environment variable:</b>  <c>UONSERIALIZER_ADDBEANTYPES</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.uon.annotation.UonConfig#addBeanTypes()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link UonSerializerBuilder#addBeanTypes(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.uon.UonSerializerBuilder#addBeanTypes(boolean)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -158,14 +164,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
-	 * 	<li><b>Default:</b>  <jk>false</jk> for {@link UonSerializer}, <jk>true</jk> for {@link UrlEncodingSerializer}
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>UonSerializer.encoding</c>
+	 * 	<li><b>Environment variable:</b>  <c>UONSERIALIZER_ENCODING</c>
+	 * 	<li><b>Default:</b>  <jk>false</jk> for {@link org.apache.juneau.uon.UonSerializer}, <jk>true</jk> for {@link org.apache.juneau.urlencoding.UrlEncodingSerializer}
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.uon.annotation.UonConfig#encoding()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link UonSerializerBuilder#encoding(boolean)}
-	 * 			<li class='jm'>{@link UonSerializerBuilder#encoding()}
+	 * 			<li class='jm'>{@link org.apache.juneau.uon.UonSerializerBuilder#encoding(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.uon.UonSerializerBuilder#encoding()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -207,14 +220,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>String</c> ({@link ParamFormat})
+	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.uon.ParamFormat}
+	 * 	<li><b>System property:</b>  <c>UonSerializer.paramFormat</c>
+	 * 	<li><b>Environment variable:</b>  <c>UONSERIALIZER_PARAMFORMAT</c>
 	 * 	<li><b>Default:</b>  <js>"UON"</js>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.uon.annotation.UonConfig#paramFormat()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link UonSerializerBuilder#paramFormat(ParamFormat)}
-	 * 			<li class='jm'>{@link UonSerializerBuilder#paramFormatPlain()}
+	 * 			<li class='jm'>{@link org.apache.juneau.uon.UonSerializerBuilder#paramFormat(ParamFormat)}
+	 * 			<li class='jm'>{@link org.apache.juneau.uon.UonSerializerBuilder#paramFormatPlain()}
 	 * 		</ul>
 	 * </ul>
 	 *
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 23331b3..565239a 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
@@ -19,7 +19,6 @@
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.uon.*;
-import org.apache.juneau.urlencoding.annotation.*;
 
 /**
  * Parses URL-encoded text into POJO models.
@@ -52,15 +51,22 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>UrlEncodingParser.expandedParams</c>
+	 * 	<li><b>Environment variable:</b>  <c>URLENCODINGPARSER_EXPANDEDPARAMS</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.urlencoding.annotation.UrlEncodingConfig#expandedParams()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link UrlEncodingParserBuilder#expandedParams(boolean)}
-	 * 			<li class='jm'>{@link UrlEncodingParserBuilder#expandedParams()}
-	 * 			<li class='ja'>{@link UrlEncoding#expandedParams()}
+	 * 			<li class='jm'>{@link org.apache.juneau.urlencoding.UrlEncodingParserBuilder#expandedParams(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.urlencoding.UrlEncodingParserBuilder#expandedParams()}
+	 * 			<li class='ja'>{@link org.apache.juneau.urlencoding.annotation.UrlEncoding#expandedParams()}
 	 * 		</ul>
 	 * </ul>
 	 *
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 32ee9b2..b9bbe2c 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
@@ -128,14 +128,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>UrlEncodingSerializer.expandedParams</c>
+	 * 	<li><b>Environment variable:</b>  <c>URLENCODINGSERIALIZER_EXPANDEDPARAMS</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.urlencoding.annotation.UrlEncodingConfig#expandedParams()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link UrlEncodingSerializerBuilder#expandedParams(boolean)}
-	 * 			<li class='jm'>{@link UrlEncodingSerializerBuilder#expandedParams()}
+	 * 			<li class='jm'>{@link org.apache.juneau.urlencoding.UrlEncodingSerializerBuilder#expandedParams(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.urlencoding.UrlEncodingSerializerBuilder#expandedParams()}
 	 * 		</ul>
 	 * </ul>
 	 *
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 abd2a1b..a018d2c 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
@@ -47,13 +47,18 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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;? <jk>extends</jk> {@link XMLEventAllocator}&gt;</code>
+	 * 	<li><b>Data type:</b>  <code>Class&lt;{@link javax.xml.stream.util.XMLEventAllocator}&gt;</code>
 	 * 	<li><b>Default:</b>  <jk>null</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.xml.annotation.XmlConfig#eventAllocator()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link XmlParserBuilder#eventAllocator(XMLEventAllocator)}
+	 * 			<li class='jm'>{@link org.apache.juneau.xml.XmlParserBuilder#eventAllocator(XMLEventAllocator)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -68,14 +73,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>XmlParser.preserveRootElement</c>
+	 * 	<li><b>Environment variable:</b>  <c>XMLPARSER_PRESERVEROOTELEMENT</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.xml.annotation.XmlConfig#preserveRootElement()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link XmlParserBuilder#preserveRootElement(boolean)}
-	 * 			<li class='jm'>{@link XmlParserBuilder#preserveRootElement()}
+	 * 			<li class='jm'>{@link org.apache.juneau.xml.XmlParserBuilder#preserveRootElement(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.xml.XmlParserBuilder#preserveRootElement()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -114,13 +126,18 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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;? <jk>extends</jk> {@link XMLReporter}&gt;</code>
+	 * 	<li><b>Data type:</b>  <code>Class&lt;{@link javax.xml.stream.XMLReporter}&gt;</code>
 	 * 	<li><b>Default:</b>  <jk>null</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.xml.annotation.XmlConfig#reporter()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link XmlParserBuilder#reporter(XMLReporter)}
+	 * 			<li class='jm'>{@link org.apache.juneau.xml.XmlParserBuilder#reporter(XMLReporter)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -140,13 +157,18 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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;? <jk>extends</jk> {@link XMLResolver}&gt;</code>
+	 * 	<li><b>Data type:</b>  <code>Class&lt;{@link javax.xml.stream.XMLResolver}&gt;</code>
 	 * 	<li><b>Default:</b>  <jk>null</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.xml.annotation.XmlConfig#resolver()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link XmlParserBuilder#resolver(XMLResolver)}
+	 * 			<li class='jm'>{@link org.apache.juneau.xml.XmlParserBuilder#resolver(XMLResolver)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -161,14 +183,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>XmlParser.validating</c>
+	 * 	<li><b>Environment variable:</b>  <c>XMLPARSER_VALIDATING</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.xml.annotation.XmlConfig#validating()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link XmlParserBuilder#validating(boolean)}
-	 * 			<li class='jm'>{@link XmlParserBuilder#validating()}
+	 * 			<li class='jm'>{@link org.apache.juneau.xml.XmlParserBuilder#validating(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.xml.XmlParserBuilder#validating()}
 	 * 		</ul>
 	 * </ul>
 	 *
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 f48d2f8..8d14743 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
@@ -127,13 +127,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>XmlSerializer.addBeanTypes</c>
+	 * 	<li><b>Environment variable:</b>  <c>XMLSERIALIZER_ADDBEANTYPES</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.xml.annotation.XmlConfig#addBeanTypes()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link XmlSerializerBuilder#addBeanTypes(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.xml.XmlSerializerBuilder#addBeanTypes(boolean)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -153,14 +160,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>XmlSerializer.addNamespaceUrisToRoot</c>
+	 * 	<li><b>Environment variable:</b>  <c>XMLSERIALIZER_ADDNAMESPACEURISTOROOT</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.xml.annotation.XmlConfig#addNamespaceUrisToRoot()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link XmlSerializerBuilder#addNamespaceUrisToRoot(boolean)}
-	 * 			<li class='jm'>{@link XmlSerializerBuilder#addNamespaceUrisToRoot()}
+	 * 			<li class='jm'>{@link org.apache.juneau.xml.XmlSerializerBuilder#addNamespaceUrisToRoot(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.xml.XmlSerializerBuilder#addNamespaceUrisToRoot()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -182,13 +196,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>XmlSerializer.autoDetectNamespaces</c>
+	 * 	<li><b>Environment variable:</b>  <c>XMLSERIALIZER_AUTODETECTNAMESPACES</c>
 	 * 	<li><b>Default:</b>  <jk>true</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.xml.annotation.XmlConfig#autoDetectNamespaces()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link XmlSerializerBuilder#autoDetectNamespaces(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.xml.XmlSerializerBuilder#autoDetectNamespaces(boolean)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -225,13 +246,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>String</c> ({@link Namespace})
+	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.xml.Namespace}
+	 * 	<li><b>System property:</b>  <c>XmlSerializer.defaultNamespace</c>
+	 * 	<li><b>Environment variable:</b>  <c>XMLSERIALIZER_DEFAULTNAMESPACE</c>
 	 * 	<li><b>Default:</b>  <js>"juneau: http://www.apache.org/2013/Juneau"</js>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.xml.annotation.XmlConfig#defaultNamespace()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link XmlSerializerBuilder#defaultNamespace(String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.xml.XmlSerializerBuilder#defaultNamespace(String)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -250,13 +278,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>XmlSerializer.enableNamespaces</c>
+	 * 	<li><b>Environment variable:</b>  <c>XMLSERIALIZER_ENABLENAMESPACES</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.xml.annotation.XmlConfig#enableNamespaces()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link XmlSerializerBuilder#enableNamespaces(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.xml.XmlSerializerBuilder#enableNamespaces(boolean)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -275,13 +310,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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;String&gt;</c> ({@link Namespace})
+	 * 	<li><b>Data type:</b>  <c>Set&lt;{@link org.apache.juneau.xml.Namespace}&gt;</c>
+	 * 	<li><b>System property:</b>  <c>XmlSerializer.namespaces</c>
+	 * 	<li><b>Environment variable:</b>  <c>XMLSERIALIZER_NAMESPACES</c>
 	 * 	<li><b>Default:</b>  empty set
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.xml.annotation.XmlConfig#defaultNamespace()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link XmlSerializerBuilder#defaultNamespace(String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.xml.XmlSerializerBuilder#defaultNamespace(String)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -300,13 +342,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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 Namespace})
+	 * 	<li><b>Data type:</b>  <c>String</c> ({@link org.apache.juneau.xml.Namespace})
+	 * 	<li><b>System property:</b>  <c>XmlSerializer.xsNamespace</c>
+	 * 	<li><b>Environment variable:</b>  <c>XMLSERIALIZER_XSNAMESPACE</c>
 	 * 	<li><b>Default:</b>  <js>"xs: http://www.w3.org/2001/XMLSchema"</js>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
+	 * 	<li><b>Annotations:</b>
+	 * 		<ul>
+	 * 			<li class='ja'>{@link org.apache.juneau.xml.annotation.XmlConfig#xsNamespace()}
+	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link XmlSerializerBuilder#xsNamespace(Namespace)}
+	 * 			<li class='jm'>{@link org.apache.juneau.xml.XmlSerializerBuilder#xsNamespace(Namespace)}
 	 * 		</ul>
 	 * </ul>
 	 *
diff --git a/juneau-doc/docs/ReleaseNotes/8.1.3.html b/juneau-doc/docs/ReleaseNotes/8.1.3.html
index c8f5748..0426a00 100644
--- a/juneau-doc/docs/ReleaseNotes/8.1.3.html
+++ b/juneau-doc/docs/ReleaseNotes/8.1.3.html
@@ -72,3 +72,9 @@
 		Several convenience methods defined in {@link oajrc.RestClientBuilder} that were deprecated in 8.1.2 have been
 		undeprecated in this release due to user feedback.
 </ul>
+
+<h5 class='topic w800'>juneau-doc</h5>
+<ul class='spaced-list'>
+	<li>
+		New auto-generated glossary of all configurable properties: {@doc Glossaries.ConfigurablePropertiesGlossary}
+</ul>
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/08.ClassMethodAnnotations.html b/juneau-doc/docs/Topics/02.juneau-marshall/08.ClassMethodAnnotations.html
index 4264d4e..743e305 100644
--- a/juneau-doc/docs/Topics/02.juneau-marshall/08.ClassMethodAnnotations.html
+++ b/juneau-doc/docs/Topics/02.juneau-marshall/08.ClassMethodAnnotations.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{new} Class/Method Annotations
+{todo} Class/Method Annotations
 
 <p>
 	TODO
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/08.ObjectMap.html b/juneau-doc/docs/Topics/02.juneau-marshall/09.ObjectMap.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/08.ObjectMap.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/09.ObjectMap.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/09.Groups.html b/juneau-doc/docs/Topics/02.juneau-marshall/10.Groups.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/09.Groups.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/10.Groups.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/10.ContextsBuildersSessionsPropertyStores.html b/juneau-doc/docs/Topics/02.juneau-marshall/11.ContextsBuildersSessionsPropertyStores.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/10.ContextsBuildersSessionsPropertyStores.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/11.ContextsBuildersSessionsPropertyStores.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/01.PojoSwaps.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/01.PojoSwaps.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/01.PojoSwaps.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/01.PojoSwaps.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/02.DefaultPojoSwaps.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/02.DefaultPojoSwaps.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/02.DefaultPojoSwaps.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/02.DefaultPojoSwaps.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/03.AutoPojoSwaps.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/03.AutoPojoSwaps.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/03.AutoPojoSwaps.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/03.AutoPojoSwaps.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/04.PerMediaTypePojoSwaps.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/04.PerMediaTypePojoSwaps.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/04.PerMediaTypePojoSwaps.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/04.PerMediaTypePojoSwaps.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/05.OneWayPojoSwaps.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/05.OneWayPojoSwaps.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/05.OneWayPojoSwaps.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/05.OneWayPojoSwaps.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/06.SwapAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/06.SwapAnnotation.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/06.SwapAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/06.SwapAnnotation.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/07.TemplatedSwaps.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/07.TemplatedSwaps.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/07.TemplatedSwaps.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/07.TemplatedSwaps.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/08.SurrogateClasses.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/08.SurrogateClasses.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/08.SurrogateClasses.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/08.SurrogateClasses.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/09.BeanAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/09.BeanAnnotation.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/09.BeanAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/09.BeanAnnotation.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/10.BeanpAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/10.BeanpAnnotation.html
similarity index 99%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/10.BeanpAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/10.BeanpAnnotation.html
index 22805fe..08673e2 100644
--- a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/10.BeanpAnnotation.html
+++ b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/10.BeanpAnnotation.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{updated} @Beanp Annotation
+@Beanp Annotation
 
 <p>
 	The {@link oaj.annotation.Beanp @Beanp} annotation is used to tailor how 
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/11.BeancAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/11.BeancAnnotation.html
similarity index 98%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/11.BeancAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/11.BeancAnnotation.html
index a33d10d..4c9ae29 100644
--- a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/11.BeancAnnotation.html
+++ b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/11.BeancAnnotation.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{updated} @BeancAnnotation
+@Beanc Annotation
 
 <p>
 	The {@link oaj.annotation.Beanc @Beanc} annotation is used to 
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/12.BeanIgnoreAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/12.BeanIgnoreAnnotation.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/12.BeanIgnoreAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/12.BeanIgnoreAnnotation.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/13.NamePropertyAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/13.NamePropertyAnnotation.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/13.NamePropertyAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/13.NamePropertyAnnotation.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/14.ParentPropertyAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/14.ParentPropertyAnnotation.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/14.ParentPropertyAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/14.ParentPropertyAnnotation.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/15.PojoBuilders.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/15.PojoBuilders.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/15.PojoBuilders.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/15.PojoBuilders.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/16.BeanFilters.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/16.BeanFilters.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/16.BeanFilters.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/16.BeanFilters.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/17.InterfaceFilters.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/17.InterfaceFilters.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/17.InterfaceFilters.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/17.InterfaceFilters.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/18.StopClasses.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/18.StopClasses.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/18.StopClasses.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/18.StopClasses.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/19.BypassSerialization.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/19.BypassSerialization.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/19.BypassSerialization.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/12.Transforms/19.BypassSerialization.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/12.BeanDictionaries.html b/juneau-doc/docs/Topics/02.juneau-marshall/13.BeanDictionaries.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/12.BeanDictionaries.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/13.BeanDictionaries.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/12.BeanDictionaries/01.BeanSubTypes.html b/juneau-doc/docs/Topics/02.juneau-marshall/13.BeanDictionaries/01.BeanSubTypes.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/12.BeanDictionaries/01.BeanSubTypes.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/13.BeanDictionaries/01.BeanSubTypes.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/13.VirtualBeans.html b/juneau-doc/docs/Topics/02.juneau-marshall/14.VirtualBeans.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/13.VirtualBeans.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/14.VirtualBeans.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/14.Recursion.html b/juneau-doc/docs/Topics/02.juneau-marshall/15.Recursion.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/14.Recursion.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/15.Recursion.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/15.ParsingIntoGenericModels.html b/juneau-doc/docs/Topics/02.juneau-marshall/16.ParsingIntoGenericModels.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/15.ParsingIntoGenericModels.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/16.ParsingIntoGenericModels.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/16.ReadingContinuousStreams.html b/juneau-doc/docs/Topics/02.juneau-marshall/17.ReadingContinuousStreams.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/16.ReadingContinuousStreams.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/17.ReadingContinuousStreams.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/17.URIs.html b/juneau-doc/docs/Topics/02.juneau-marshall/18.URIs.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/17.URIs.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/18.URIs.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/18.JacksonComparison.html b/juneau-doc/docs/Topics/02.juneau-marshall/19.JacksonComparison.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/18.JacksonComparison.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/19.JacksonComparison.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/19.PojoCategories.html b/juneau-doc/docs/Topics/02.juneau-marshall/20.PojoCategories.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/19.PojoCategories.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/20.PojoCategories.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/20.JsonDetails.html b/juneau-doc/docs/Topics/02.juneau-marshall/21.JsonDetails.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/20.JsonDetails.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/21.JsonDetails.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/20.JsonDetails/01.Methodology.html b/juneau-doc/docs/Topics/02.juneau-marshall/21.JsonDetails/01.Methodology.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/20.JsonDetails/01.Methodology.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/21.JsonDetails/01.Methodology.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/20.JsonDetails/02.Serializers.html b/juneau-doc/docs/Topics/02.juneau-marshall/21.JsonDetails/02.Serializers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/20.JsonDetails/02.Serializers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/21.JsonDetails/02.Serializers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/20.JsonDetails/03.SimplifiedJson.html b/juneau-doc/docs/Topics/02.juneau-marshall/21.JsonDetails/03.SimplifiedJson.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/20.JsonDetails/03.SimplifiedJson.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/21.JsonDetails/03.SimplifiedJson.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/20.JsonDetails/04.Parsers.html b/juneau-doc/docs/Topics/02.juneau-marshall/21.JsonDetails/04.Parsers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/20.JsonDetails/04.Parsers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/21.JsonDetails/04.Parsers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/20.JsonDetails/05.JsonAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/21.JsonDetails/05.JsonAnnotation.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/20.JsonDetails/05.JsonAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/21.JsonDetails/05.JsonAnnotation.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/20.JsonDetails/06.JsonSchema.html b/juneau-doc/docs/Topics/02.juneau-marshall/21.JsonDetails/06.JsonSchema.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/20.JsonDetails/06.JsonSchema.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/21.JsonDetails/06.JsonSchema.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails.html b/juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/01.Methodology.html b/juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails/01.Methodology.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/01.Methodology.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails/01.Methodology.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/02.Serializers.html b/juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails/02.Serializers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/02.Serializers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails/02.Serializers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/03.Parsers.html b/juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails/03.Parsers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/03.Parsers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails/03.Parsers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/04.BeanTypeNameAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails/04.BeanTypeNameAnnotation.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/04.BeanTypeNameAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails/04.BeanTypeNameAnnotation.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/05.XmlChildNameAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails/05.XmlChildNameAnnotation.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/05.XmlChildNameAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails/05.XmlChildNameAnnotation.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/06.XmlFormatAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails/06.XmlFormatAnnotation.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/06.XmlFormatAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails/06.XmlFormatAnnotation.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/07.Namespaces.html b/juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails/07.Namespaces.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/07.Namespaces.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails/07.Namespaces.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/08.XmlSchema.html b/juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails/08.XmlSchema.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/08.XmlSchema.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/22.XmlDetails/08.XmlSchema.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails.html b/juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/01.Methodology.html b/juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/01.Methodology.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/01.Methodology.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/01.Methodology.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/02.Serializers.html b/juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/02.Serializers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/02.Serializers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/02.Serializers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/03.Parsers.html b/juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/03.Parsers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/03.Parsers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/03.Parsers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/04.HtmlAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/04.HtmlAnnotation.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/04.HtmlAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/04.HtmlAnnotation.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/05.HtmlRenderAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/05.HtmlRenderAnnotation.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/05.HtmlRenderAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/05.HtmlRenderAnnotation.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/06.HtmlDocSerializer.html b/juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/06.HtmlDocSerializer.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/06.HtmlDocSerializer.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/06.HtmlDocSerializer.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/07.BasicHtmlDocTemplate.html b/juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/07.BasicHtmlDocTemplate.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/07.BasicHtmlDocTemplate.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/07.BasicHtmlDocTemplate.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/08.CustomTemplates.html b/juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/08.CustomTemplates.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/08.CustomTemplates.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/08.CustomTemplates.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/09.HtmlSchema.html b/juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/09.HtmlSchema.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/22.HtmlDetails/09.HtmlSchema.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/23.HtmlDetails/09.HtmlSchema.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/23.UonDetails.html b/juneau-doc/docs/Topics/02.juneau-marshall/24.UonDetails.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/23.UonDetails.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/24.UonDetails.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/23.UonDetails/01.Methodology.html b/juneau-doc/docs/Topics/02.juneau-marshall/24.UonDetails/01.Methodology.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/23.UonDetails/01.Methodology.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/24.UonDetails/01.Methodology.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/23.UonDetails/02.Serializers.html b/juneau-doc/docs/Topics/02.juneau-marshall/24.UonDetails/02.Serializers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/23.UonDetails/02.Serializers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/24.UonDetails/02.Serializers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/23.UonDetails/03.Parsers.html b/juneau-doc/docs/Topics/02.juneau-marshall/24.UonDetails/03.Parsers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/23.UonDetails/03.Parsers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/24.UonDetails/03.Parsers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/24.UrlEncodingDetails.html b/juneau-doc/docs/Topics/02.juneau-marshall/25.UrlEncodingDetails.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/24.UrlEncodingDetails.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/25.UrlEncodingDetails.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/24.UrlEncodingDetails/01.Methodology.html b/juneau-doc/docs/Topics/02.juneau-marshall/25.UrlEncodingDetails/01.Methodology.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/24.UrlEncodingDetails/01.Methodology.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/25.UrlEncodingDetails/01.Methodology.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/24.UrlEncodingDetails/02.Serializers.html b/juneau-doc/docs/Topics/02.juneau-marshall/25.UrlEncodingDetails/02.Serializers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/24.UrlEncodingDetails/02.Serializers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/25.UrlEncodingDetails/02.Serializers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/24.UrlEncodingDetails/03.Parsers.html b/juneau-doc/docs/Topics/02.juneau-marshall/25.UrlEncodingDetails/03.Parsers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/24.UrlEncodingDetails/03.Parsers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/25.UrlEncodingDetails/03.Parsers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/24.UrlEncodingDetails/04.UrlEncodingAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/25.UrlEncodingDetails/04.UrlEncodingAnnotation.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/24.UrlEncodingDetails/04.UrlEncodingAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/25.UrlEncodingDetails/04.UrlEncodingAnnotation.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/25.MsgPackDetails.html b/juneau-doc/docs/Topics/02.juneau-marshall/26.MsgPackDetails.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/25.MsgPackDetails.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/26.MsgPackDetails.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/25.MsgPackDetails/01.Serializers.html b/juneau-doc/docs/Topics/02.juneau-marshall/26.MsgPackDetails/01.Serializers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/25.MsgPackDetails/01.Serializers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/26.MsgPackDetails/01.Serializers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/25.MsgPackDetails/02.Parsers.html b/juneau-doc/docs/Topics/02.juneau-marshall/26.MsgPackDetails/02.Parsers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/25.MsgPackDetails/02.Parsers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/26.MsgPackDetails/02.Parsers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/26.OpenApiDetails.html b/juneau-doc/docs/Topics/02.juneau-marshall/27.OpenApiDetails.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/26.OpenApiDetails.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/27.OpenApiDetails.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/26.OpenApiDetails/01.Methodology.html b/juneau-doc/docs/Topics/02.juneau-marshall/27.OpenApiDetails/01.Methodology.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/26.OpenApiDetails/01.Methodology.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/27.OpenApiDetails/01.Methodology.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/26.OpenApiDetails/02.Serializers.html b/juneau-doc/docs/Topics/02.juneau-marshall/27.OpenApiDetails/02.Serializers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/26.OpenApiDetails/02.Serializers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/27.OpenApiDetails/02.Serializers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/26.OpenApiDetails/03.Parsers.html b/juneau-doc/docs/Topics/02.juneau-marshall/27.OpenApiDetails/03.Parsers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/26.OpenApiDetails/03.Parsers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/27.OpenApiDetails/03.Parsers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/27.SimpleVariableLanguage.html b/juneau-doc/docs/Topics/02.juneau-marshall/28.SimpleVariableLanguage.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/27.SimpleVariableLanguage.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/28.SimpleVariableLanguage.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/27.SimpleVariableLanguage/01.SvlVariables.html b/juneau-doc/docs/Topics/02.juneau-marshall/28.SimpleVariableLanguage/01.SvlVariables.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/27.SimpleVariableLanguage/01.SvlVariables.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/28.SimpleVariableLanguage/01.SvlVariables.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/27.SimpleVariableLanguage/02.VarResolvers.html b/juneau-doc/docs/Topics/02.juneau-marshall/28.SimpleVariableLanguage/02.VarResolvers.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/27.SimpleVariableLanguage/02.VarResolvers.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/28.SimpleVariableLanguage/02.VarResolvers.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/27.SimpleVariableLanguage/03.DefaultVarResolver.html b/juneau-doc/docs/Topics/02.juneau-marshall/28.SimpleVariableLanguage/03.DefaultVarResolver.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/27.SimpleVariableLanguage/03.DefaultVarResolver.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/28.SimpleVariableLanguage/03.DefaultVarResolver.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/27.SimpleVariableLanguage/04.OtherNotes.html b/juneau-doc/docs/Topics/02.juneau-marshall/28.SimpleVariableLanguage/04.OtherNotes.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/27.SimpleVariableLanguage/04.OtherNotes.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/28.SimpleVariableLanguage/04.OtherNotes.html
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/28.BestPractices.html b/juneau-doc/docs/Topics/02.juneau-marshall/29.BestPractices.html
similarity index 100%
rename from juneau-doc/docs/Topics/02.juneau-marshall/28.BestPractices.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/29.BestPractices.html
diff --git a/juneau-doc/docs/Topics/06.juneau-rest-server/04.Rest.html b/juneau-doc/docs/Topics/06.juneau-rest-server/04.Rest.html
index b37a60d..2429e74 100644
--- a/juneau-doc/docs/Topics/06.juneau-rest-server/04.Rest.html
+++ b/juneau-doc/docs/Topics/06.juneau-rest-server/04.Rest.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{updated} @Rest
+@Rest
 
 <p>
 	The {@link oajr.annotation.Rest @Rest} annotation is the primary way of defining
diff --git a/juneau-doc/docs/Topics/06.juneau-rest-server/04.Rest/02.RestPath.html b/juneau-doc/docs/Topics/06.juneau-rest-server/04.Rest/02.RestPath.html
index 06e306f..0b29f31 100644
--- a/juneau-doc/docs/Topics/06.juneau-rest-server/04.Rest/02.RestPath.html
+++ b/juneau-doc/docs/Topics/06.juneau-rest-server/04.Rest/02.RestPath.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{updated} @Rest(path)
+@Rest(path)
 
 <p>
 	The {@link oajr.annotation.RestResource#path() @RestResource(path)} annotation is used in the following situations:
diff --git a/juneau-doc/docs/Topics/09.juneau-rest-client/01.RestProxies/01.Remote.html b/juneau-doc/docs/Topics/09.juneau-rest-client/01.RestProxies/01.Remote.html
index 2b64c85..b00b38b 100644
--- a/juneau-doc/docs/Topics/09.juneau-rest-client/01.RestProxies/01.Remote.html
+++ b/juneau-doc/docs/Topics/09.juneau-rest-client/01.RestProxies/01.Remote.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{updated} @Remote
+@Remote
 
 <p>
 	The {@link oaj.http.remote.Remote @Remote} annotation is used on your interface class
diff --git a/juneau-doc/docs/Topics/10.juneau-rest-mock/02.MockRemoteResource.html b/juneau-doc/docs/Topics/10.juneau-rest-mock/02.MockRemote.html
similarity index 99%
rename from juneau-doc/docs/Topics/10.juneau-rest-mock/02.MockRemoteResource.html
rename to juneau-doc/docs/Topics/10.juneau-rest-mock/02.MockRemote.html
index f9c1a07..16e246d 100644
--- a/juneau-doc/docs/Topics/10.juneau-rest-mock/02.MockRemoteResource.html
+++ b/juneau-doc/docs/Topics/10.juneau-rest-mock/02.MockRemote.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{updated} MockRemote
+MockRemote
 
 <p>
 	The {@link oajr.mock2.MockRemote} class is used for serverless unit testing of {@link oaj.http.remote.Remote @Remote}-annotated
diff --git a/juneau-doc/docs/Topics/11.juneau-microservice-core.html b/juneau-doc/docs/Topics/11.juneau-microservice-core.html
index 0fca4dd..5ba9773 100644
--- a/juneau-doc/docs/Topics/11.juneau-microservice-core.html
+++ b/juneau-doc/docs/Topics/11.juneau-microservice-core.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{updated} juneau-microservice-core
+juneau-microservice-core
 
 <div class='warn'>
 	The Juneau Microservice libraries are likely to be removed in Juneau 9.0 due to the popularity of the Spring Boot
diff --git a/juneau-doc/docs/Topics/12.juneau-microservice-jetty.html b/juneau-doc/docs/Topics/12.juneau-microservice-jetty.html
index b01cbca..9d62977 100644
--- a/juneau-doc/docs/Topics/12.juneau-microservice-jetty.html
+++ b/juneau-doc/docs/Topics/12.juneau-microservice-jetty.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{updated} juneau-microservice-jetty
+juneau-microservice-jetty
 
 <div class='warn'>
 	The Juneau Microservice libraries are likely to be removed in Juneau 9.0 due to the popularity of the Spring Boot
diff --git a/juneau-doc/docs/Topics/13.my-jetty-microservice.html b/juneau-doc/docs/Topics/13.my-jetty-microservice.html
index 7baf0e5..e8eed55 100644
--- a/juneau-doc/docs/Topics/13.my-jetty-microservice.html
+++ b/juneau-doc/docs/Topics/13.my-jetty-microservice.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{updated} my-jetty-microservice
+my-jetty-microservice
 
 <div class='warn'>
 	The Juneau Microservice libraries are likely to be removed in Juneau 9.0 due to the popularity of the Spring Boot
diff --git a/juneau-doc/docs/Topics/17.juneau-examples-rest-jetty.html b/juneau-doc/docs/Topics/17.juneau-examples-rest-jetty.html
index 1c36ae3..eff256c 100644
--- a/juneau-doc/docs/Topics/17.juneau-examples-rest-jetty.html
+++ b/juneau-doc/docs/Topics/17.juneau-examples-rest-jetty.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{updated} juneau-examples-rest-jetty
+juneau-examples-rest-jetty
 
 <div class='warn'>
 	The Juneau Microservice libraries are likely to be removed in Juneau 9.0 due to the popularity of the Spring Boot
diff --git a/juneau-doc/docs/Topics/19.Security.html b/juneau-doc/docs/Topics/19.Glossaries.html
similarity index 78%
rename from juneau-doc/docs/Topics/19.Security.html
rename to juneau-doc/docs/Topics/19.Glossaries.html
index 214f1da..3163765 100644
--- a/juneau-doc/docs/Topics/19.Security.html
+++ b/juneau-doc/docs/Topics/19.Glossaries.html
@@ -13,12 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-Security Best-Practices
+{new} Glossaries
 
 <p>
-	Security is always an ongoing concern in any library.  
-	If you discover any security vulnerabilities in this code, please refer to the instructions found here:
 </p>
-<ul class='spaced-list'>
-	<li class='extlink'>{@doc http://www.apache.org/security SECURITY}
-</ul>
diff --git a/juneau-doc/docs/Topics/19.Glossaries/01.ConfigurablePropertiesGlossary.html b/juneau-doc/docs/Topics/19.Glossaries/01.ConfigurablePropertiesGlossary.html
new file mode 100644
index 0000000..03002c8
--- /dev/null
+++ b/juneau-doc/docs/Topics/19.Glossaries/01.ConfigurablePropertiesGlossary.html
@@ -0,0 +1,1483 @@
+<!--
+/***************************************************************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *  
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations under the License.
+ ***************************************************************************************************************************/
+ -->
+
+{new} Configurable Properties Glossary
+
+<p>
+	The following is a list of all properties defined throughout Juneau:
+</p>
+<table class='styled w1000'>
+	<tr>
+		<th>Context</th><th>ID</th><th style='min-width:250px'>Description</th><th>Data type</th>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.BeanContext}</td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_annotations BEAN_annotations}</td>
+		<td>Annotations.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;{@link java.lang.annotation.Annotation}&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_beanClassVisibility BEAN_beanClassVisibility}</td>
+		<td>Minimum bean class visibility.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.Visibility}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_beanConstructorVisibility BEAN_beanConstructorVisibility}</td>
+		<td>Minimum bean constructor visibility.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.Visibility}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_beanDictionary BEAN_beanDictionary}</td>
+		<td>Bean dictionary.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;Class&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_beanFieldVisibility BEAN_beanFieldVisibility}</td>
+		<td>Minimum bean field visibility.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.Visibility}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_beanFilters BEAN_beanFilters}</td>
+		<td>Bean filters.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;Class&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_beanMapPutReturnsOldValue BEAN_beanMapPutReturnsOldValue}</td>
+		<td>BeanMap.put() returns old property value.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_beanMethodVisibility BEAN_beanMethodVisibility}</td>
+		<td>Minimum bean method visibility.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.Visibility}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_beanTypePropertyName BEAN_beanTypePropertyName}</td>
+		<td>Bean type property name.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_beansRequireDefaultConstructor BEAN_beansRequireDefaultConstructor}</td>
+		<td>Beans require no-arg constructors.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_beansRequireSerializable BEAN_beansRequireSerializable}</td>
+		<td>Beans require Serializable interface.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_beansRequireSettersForGetters BEAN_beansRequireSettersForGetters}</td>
+		<td>Beans require setters for getters.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_beansRequireSomeProperties BEAN_beansRequireSomeProperties}</td>
+		<td>Beans require at least one property.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_bpi BEAN_bpi}</td>
+		<td>Bean property includes.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_bpro BEAN_bpro}</td>
+		<td>Read-only bean properties.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_bpwo BEAN_bpwo}</td>
+		<td>Write-only bean properties.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_bpx BEAN_bpx}</td>
+		<td>Bean property excludes.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_debug BEAN_debug}</td>
+		<td>Debug mode.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_examples BEAN_examples}</td>
+		<td>POJO examples.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,Object&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_fluentSetters BEAN_fluentSetters}</td>
+		<td>Find fluent setters.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_ignoreInvocationExceptionsOnGetters BEAN_ignoreInvocationExceptionsOnGetters}</td>
+		<td>Ignore invocation errors on getters.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_ignoreInvocationExceptionsOnSetters BEAN_ignoreInvocationExceptionsOnSetters}</td>
+		<td>Ignore invocation errors on setters.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_ignorePropertiesWithoutSetters BEAN_ignorePropertiesWithoutSetters}</td>
+		<td>Ignore properties without setters.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_ignoreUnknownBeanProperties BEAN_ignoreUnknownBeanProperties}</td>
+		<td>Ignore unknown properties.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_ignoreUnknownNullBeanProperties BEAN_ignoreUnknownNullBeanProperties}</td>
+		<td>Ignore unknown properties with null values.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_implClasses BEAN_implClasses}</td>
+		<td>Implementation classes.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,Class&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_locale BEAN_locale}</td>
+		<td>Locale.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link java.util.Locale}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_mediaType BEAN_mediaType}</td>
+		<td>Media type.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.http.MediaType}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_notBeanClasses BEAN_notBeanClasses}</td>
+		<td>Bean class exclusions.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Set&lt;Class&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_notBeanPackages BEAN_notBeanPackages}</td>
+		<td>Bean package exclusions.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Set&lt;String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_pojoSwaps BEAN_pojoSwaps}</td>
+		<td>POJO swaps.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;Object&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_propertyNamer BEAN_propertyNamer}</td>
+		<td>Bean property namer.</td>
+		<td style='max-width:250px;overflow:hidden'><code>Class&lt;{@link org.apache.juneau.PropertyNamer}&gt;</code></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_sortProperties BEAN_sortProperties}</td>
+		<td>Sort bean properties.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_timeZone BEAN_timeZone}</td>
+		<td>Time zone.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link java.util.TimeZone}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_useEnumNames BEAN_useEnumNames}</td>
+		<td>Use enum names.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_useInterfaceProxies BEAN_useInterfaceProxies}</td>
+		<td>Use interface proxies.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_useJavaBeanIntrospector BEAN_useJavaBeanIntrospector}</td>
+		<td>Use Java Introspector.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.BeanTraverseContext}</td>
+		<td>{@link org.apache.juneau.BeanTraverseContext#BEANTRAVERSE_detectRecursions BEANTRAVERSE_detectRecursions}</td>
+		<td>Automatically detect POJO recursions.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanTraverseContext#BEANTRAVERSE_ignoreRecursions BEANTRAVERSE_ignoreRecursions}</td>
+		<td>Ignore recursion errors.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanTraverseContext#BEANTRAVERSE_initialDepth BEANTRAVERSE_initialDepth}</td>
+		<td>Initial depth.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>int</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanTraverseContext#BEANTRAVERSE_maxDepth BEANTRAVERSE_maxDepth}</td>
+		<td>Max traversal depth.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>int</jk></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.config.Config}</td>
+		<td>{@link org.apache.juneau.config.Config#CONFIG_binaryFormat CONFIG_binaryFormat}</td>
+		<td>Binary value format.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.BinaryFormat}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.config.Config#CONFIG_binaryLineLength CONFIG_binaryLineLength}</td>
+		<td>Binary value line length.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>int</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.config.Config#CONFIG_encoder CONFIG_encoder}</td>
+		<td>Value encoder.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.config.encode.ConfigEncoder}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.config.Config#CONFIG_multiLineValuesOnSeparateLines CONFIG_multiLineValuesOnSeparateLines}</td>
+		<td>Multi-line values should always be on separate lines.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.config.Config#CONFIG_name CONFIG_name}</td>
+		<td>Configuration name.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.config.Config#CONFIG_parser CONFIG_parser}</td>
+		<td>POJO parser.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.parser.ReaderParser}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.config.Config#CONFIG_readOnly CONFIG_readOnly}</td>
+		<td>Read-only.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.config.Config#CONFIG_serializer CONFIG_serializer}</td>
+		<td>POJO serializer.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.serializer.WriterSerializer}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.config.Config#CONFIG_store CONFIG_store}</td>
+		<td>Configuration store.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.config.store.ConfigStore}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.config.Config#CONFIG_varResolver CONFIG_varResolver}</td>
+		<td>SVL variable resolver.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.svl.VarResolver}</td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.config.store.ConfigFileStore}</td>
+		<td>{@link org.apache.juneau.config.store.ConfigFileStore#FILESTORE_charset FILESTORE_charset}</td>
+		<td>Charset.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link java.nio.charset.Charset}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.config.store.ConfigFileStore#FILESTORE_directory FILESTORE_directory}</td>
+		<td>Local file system directory.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.config.store.ConfigFileStore#FILESTORE_extensions FILESTORE_extensions}</td>
+		<td>File extensions.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c> (comma-delimited)</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.config.store.ConfigFileStore#FILESTORE_updateOnWrite FILESTORE_updateOnWrite}</td>
+		<td>Update-on-write.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.config.store.ConfigFileStore#FILESTORE_useWatcher FILESTORE_useWatcher}</td>
+		<td>Use watcher.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.config.store.ConfigFileStore#FILESTORE_watcherSensitivity FILESTORE_watcherSensitivity}</td>
+		<td>Watcher sensitivity.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.config.store.WatcherSensitivity}</td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.html.HtmlDocSerializer}</td>
+		<td>{@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_aside HTMLDOC_aside}</td>
+		<td>Aside section contents.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_footer HTMLDOC_footer}</td>
+		<td>Footer section contents.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_head HTMLDOC_head}</td>
+		<td>Additional head section content.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_header HTMLDOC_header}</td>
+		<td>Header section contents.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_nav HTMLDOC_nav}</td>
+		<td>Nav section contents.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_navlinks HTMLDOC_navlinks}</td>
+		<td>Page navigation links.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_noResultsMessage HTMLDOC_noResultsMessage}</td>
+		<td>No-results message.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_nowrap HTMLDOC_nowrap}</td>
+		<td>Prevent word wrap on page.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_script HTMLDOC_script}</td>
+		<td>Javascript code.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_style HTMLDOC_style}</td>
+		<td>CSS style code.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_stylesheet HTMLDOC_stylesheet}</td>
+		<td>Stylesheet import URLs.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_template HTMLDOC_template}</td>
+		<td>HTML document template.</td>
+		<td style='max-width:250px;overflow:hidden'><code>Class&lt;{@link org.apache.juneau.html.HtmlDocTemplate}&gt;</code></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_widgets HTMLDOC_widgets}</td>
+		<td>HTML Widgets.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;{@link org.apache.juneau.html.HtmlWidget}|Class&lt;{@link org.apache.juneau.html.HtmlWidget}&gt;&gt;</c></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.html.HtmlSerializer}</td>
+		<td>{@link org.apache.juneau.html.HtmlSerializer#HTML_addBeanTypes HTML_addBeanTypes}</td>
+		<td>Add <js>"_type"</js> properties when needed.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.html.HtmlSerializer#HTML_addKeyValueTableHeaders HTML_addKeyValueTableHeaders}</td>
+		<td>Add key/value headers on bean/map tables.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.html.HtmlSerializer#HTML_detectLabelParameters HTML_detectLabelParameters}</td>
+		<td>Look for link labels in URIs.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.html.HtmlSerializer#HTML_detectLinksInStrings HTML_detectLinksInStrings}</td>
+		<td>Look for URLs in {@link String Strings}.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.html.HtmlSerializer#HTML_labelParameter HTML_labelParameter}</td>
+		<td>Link label parameter name.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.html.HtmlSerializer#HTML_uriAnchorText HTML_uriAnchorText}</td>
+		<td>Anchor text source.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.html.AnchorText}</td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.parser.InputStreamParser}</td>
+		<td>{@link org.apache.juneau.parser.InputStreamParser#ISPARSER_binaryFormat ISPARSER_binaryFormat}</td>
+		<td>Binary input format.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.BinaryFormat}</td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.json.JsonParser}</td>
+		<td>{@link org.apache.juneau.json.JsonParser#JSON_validateEnd JSON_validateEnd}</td>
+		<td>Validate end.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.jsonschema.JsonSchemaGenerator}</td>
+		<td>{@link org.apache.juneau.jsonschema.JsonSchemaGenerator#JSONSCHEMA_addDescriptionsTo JSONSCHEMA_addDescriptionsTo}</td>
+		<td>Add descriptions to types.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jsonschema.JsonSchemaGenerator#JSONSCHEMA_addExamplesTo JSONSCHEMA_addExamplesTo}</td>
+		<td>Add examples.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jsonschema.JsonSchemaGenerator#JSONSCHEMA_allowNestedDescriptions JSONSCHEMA_allowNestedDescriptions}</td>
+		<td>Allow nested descriptions.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jsonschema.JsonSchemaGenerator#JSONSCHEMA_allowNestedExamples JSONSCHEMA_allowNestedExamples}</td>
+		<td>Allow nested examples.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jsonschema.JsonSchemaGenerator#JSONSCHEMA_beanDefMapper JSONSCHEMA_beanDefMapper}</td>
+		<td>Bean schema definition mapper.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.jsonschema.BeanDefMapper}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jsonschema.JsonSchemaGenerator#JSONSCHEMA_defaultSchemas JSONSCHEMA_defaultSchemas}</td>
+		<td>Default schemas.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,{@link org.apache.juneau.ObjectMap}&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jsonschema.JsonSchemaGenerator#JSONSCHEMA_ignoreTypes JSONSCHEMA_ignoreTypes}</td>
+		<td>Ignore types from schema definitions.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c> (comma-delimited)</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jsonschema.JsonSchemaGenerator#JSONSCHEMA_useBeanDefs JSONSCHEMA_useBeanDefs}</td>
+		<td>Use bean definitions.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.json.JsonSerializer}</td>
+		<td>{@link org.apache.juneau.json.JsonSerializer#JSON_addBeanTypes JSON_addBeanTypes}</td>
+		<td>Add <js>"_type"</js> properties when needed.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.json.JsonSerializer#JSON_escapeSolidus JSON_escapeSolidus}</td>
+		<td>Prefix solidus <js>'/'</js> characters with escapes.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.json.JsonSerializer#JSON_simpleMode JSON_simpleMode}</td>
+		<td>Simple JSON mode.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.msgpack.MsgPackSerializer}</td>
+		<td>{@link org.apache.juneau.msgpack.MsgPackSerializer#MSGPACK_addBeanTypes MSGPACK_addBeanTypes}</td>
+		<td>Add <js>"_type"</js> properties when needed.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.serializer.OutputStreamSerializer}</td>
+		<td>{@link org.apache.juneau.serializer.OutputStreamSerializer#OSSERIALIZER_binaryFormat OSSERIALIZER_binaryFormat}</td>
+		<td>Binary output format.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.BinaryFormat}</td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.parser.Parser}</td>
+		<td>{@link org.apache.juneau.parser.Parser#PARSER_autoCloseStreams PARSER_autoCloseStreams}</td>
+		<td>Auto-close streams.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.parser.Parser#PARSER_debugOutputLines PARSER_debugOutputLines}</td>
+		<td>Debug output lines.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>int</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.parser.Parser#PARSER_listener PARSER_listener}</td>
+		<td>Parser listener.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Class&lt;{@link org.apache.juneau.parser.ParserListener}&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.parser.Parser#PARSER_strict PARSER_strict}</td>
+		<td>Strict mode.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.parser.Parser#PARSER_trimStrings PARSER_trimStrings}</td>
+		<td>Trim parsed strings.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.parser.Parser#PARSER_unbuffered PARSER_unbuffered}</td>
+		<td>Unbuffered.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.jena.RdfCommon}</td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_collectionFormat RDF_collectionFormat}</td>
+		<td>RDF format for representing collections and arrays.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_n3_abbrevBaseUri RDF_n3_abbrevBaseUri}</td>
+		<td>N3/Turtle property: <c>abbrevBaseURI</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_n3_indentProperty RDF_n3_indentProperty}</td>
+		<td>N3/Turtle property: <c>indentProperty</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>int</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_n3_minGap RDF_n3_minGap}</td>
+		<td>N3/Turtle property: <c>minGap</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>int</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_n3_objectLists RDF_n3_objectLists}</td>
+		<td>N3/Turtle property: <c>objectLists</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_n3_propertyColumn RDF_n3_propertyColumn}</td>
+		<td>N3/Turtle property: <c>propertyColumn</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>int</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_n3_subjectColumn RDF_n3_subjectColumn}</td>
+		<td>N3/Turtle property: <c>subjectColumn</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>int</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_n3_useDoubles RDF_n3_useDoubles}</td>
+		<td>N3/Turtle property: <c>useDoubles</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_n3_usePropertySymbols RDF_n3_usePropertySymbols}</td>
+		<td>N3/Turtle property: <c>usePropertySymbols</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_n3_useTripleQuotedStrings RDF_n3_useTripleQuotedStrings}</td>
+		<td>N3/Turtle property: <c>useTripleQuotedStrings</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_n3_widePropertyLen RDF_n3_widePropertyLen}</td>
+		<td>N3/Turtle property: <c>widePropertyLen</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>int</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_arp_err_ RDF_arp_err_}</td>
+		<td>RDF/XML ARP property: <c>ERR_xxx</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_arp_ign_ RDF_arp_ign_}</td>
+		<td></td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_arp_warn_ RDF_arp_warn_}</td>
+		<td>RDF/XML ARP property: <c>WARN_xxx</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_allowBadUris RDF_rdfxml_allowBadUris}</td>
+		<td>RDF/XML property: <c>allowBadURIs</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_attributeQuoteChar RDF_rdfxml_attributeQuoteChar}</td>
+		<td>RDF/XML property: <c>attributeQuoteChar</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Character</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_blockRules RDF_rdfxml_blockRules}</td>
+		<td>RDF/XML property: <c>blockRules</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_arp_embedding RDF_arp_embedding}</td>
+		<td>RDF/XML ARP property: <c>embedding</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_arp_errorMode RDF_arp_errorMode}</td>
+		<td>RDF/XML ARP property: <c>error-mode</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_arp_iriRules RDF_arp_iriRules}</td>
+		<td>RDF/XML property: <c>iri_rules</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_longId RDF_rdfxml_longId}</td>
+		<td>RDF/XML property: <c>longId</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_relativeUris RDF_rdfxml_relativeUris}</td>
+		<td>RDF/XML property: <c>relativeURIs</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_showDoctypeDeclaration RDF_rdfxml_showDoctypeDeclaration}</td>
+		<td>RDF/XML property: <c>showDoctypeDeclaration</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_showXmlDeclaration RDF_rdfxml_showXmlDeclaration}</td>
+		<td>RDF/XML property: <c>showXmlDeclaration</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_tab RDF_rdfxml_tab}</td>
+		<td>RDF/XML property: <c>tab</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>int</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_xmlBase RDF_rdfxml_xmlBase}</td>
+		<td>RDF/XML property: <c>xmlbase</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_juneauBpNs RDF_juneauBpNs}</td>
+		<td>Default XML namespace for bean properties.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.xml.Namespace}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_juneauNs RDF_juneauNs}</td>
+		<td>XML namespace for Juneau properties.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.xml.Namespace}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_language RDF_language}</td>
+		<td>RDF language.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_looseCollections RDF_looseCollections}</td>
+		<td>Collections should be serialized and parsed as loose collections.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.jena.RdfParser}</td>
+		<td>{@link org.apache.juneau.jena.RdfParser#RDF_trimWhitespace RDF_trimWhitespace}</td>
+		<td>Trim whitespace from text elements.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.jena.RdfSerializer}</td>
+		<td>{@link org.apache.juneau.jena.RdfSerializer#RDF_useXmlNamespaces RDF_useXmlNamespaces}</td>
+		<td>Reuse XML namespaces when RDF namespaces not specified.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfSerializer#RDF_addBeanTypes RDF_addBeanTypes}</td>
+		<td>Add <js>"_type"</js> properties when needed.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfSerializer#RDF_addLiteralTypes RDF_addLiteralTypes}</td>
+		<td>Add XSI data types to non-<c>String</c> literals.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfSerializer#RDF_addRootProperty RDF_addRootProperty}</td>
+		<td>Add RDF root identifier property to root node.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfSerializer#RDF_autoDetectNamespaces RDF_autoDetectNamespaces}</td>
+		<td>Auto-detect namespace usage.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfSerializer#RDF_namespaces RDF_namespaces}</td>
+		<td>Default namespaces.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;{@link org.apache.juneau.xml.Namespace}&gt;</c></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.parser.ReaderParser}</td>
+		<td>{@link org.apache.juneau.parser.ReaderParser#RPARSER_fileCharset RPARSER_fileCharset}</td>
+		<td>File charset.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.parser.ReaderParser#RPARSER_streamCharset RPARSER_streamCharset}</td>
+		<td>Input stream charset.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.rest.client.RestClient}</td>
+		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_debug RESTCLIENT_debug}</td>
+		<td>Debug.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_executorService RESTCLIENT_executorService}</td>
+		<td>Executor service.</td>
+		<td style='max-width:250px;overflow:hidden'><ul><li><c>Class&lt;{@link java.util.concurrent.ExecutorService}&gt;</c><li>{@link java.util.concurrent.ExecutorService}</ul></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_executorServiceShutdownOnClose RESTCLIENT_executorServiceShutdownOnClose}</td>
+		<td>Shut down executor service on close.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_interceptors RESTCLIENT_interceptors}</td>
+		<td>Call interceptors.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;Class&lt;{@link org.apache.juneau.rest.client.RestCallInterceptor}&gt;|{@link org.apache.juneau.rest.client.RestCallInterceptor}&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_keepHttpClientOpen RESTCLIENT_keepHttpClientOpen}</td>
+		<td>Keep HttpClient open.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_parser RESTCLIENT_parser}</td>
+		<td>Parser.</td>
+		<td style='max-width:250px;overflow:hidden'><ul><li><c>Class&lt;{@link org.apache.juneau.parser.Parser}&gt;</c><li>{@link org.apache.juneau.parser.Parser}</ul></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_partParser RESTCLIENT_partParser}</td>
+		<td>Part parser.</td>
+		<td style='max-width:250px;overflow:hidden'><ul><li><c>Class&lt;{@link org.apache.juneau.httppart.HttpPartParser}&gt;</c><li>{@link org.apache.juneau.httppart.HttpPartParser}</ul></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_partSerializer RESTCLIENT_partSerializer}</td>
+		<td>Part serializer.</td>
+		<td style='max-width:250px;overflow:hidden'><ul><li><c>Class&lt;{@link org.apache.juneau.httppart.HttpPartSerializer}&gt;</c><li>{@link org.apache.juneau.httppart.HttpPartSerializer}</ul></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_query RESTCLIENT_query}</td>
+		<td>Request query parameters.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_headers RESTCLIENT_headers}</td>
+		<td>Request headers.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_retries RESTCLIENT_retries}</td>
+		<td>Number of retries to attempt.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>int</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_retryInterval RESTCLIENT_retryInterval}</td>
+		<td>The time in milliseconds between retry attempts.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>int</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_retryOn RESTCLIENT_retryOn}</td>
+		<td>Retry-on determination object.</td>
+		<td style='max-width:250px;overflow:hidden'><ul><li><c>Class&lt;{@link org.apache.juneau.rest.client.RetryOn}&gt;</c><li>{@link org.apache.juneau.rest.client.RetryOn}</ul></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_rootUri RESTCLIENT_rootUri}</td>
+		<td>Root URI.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_serializer RESTCLIENT_serializer}</td>
+		<td>Serializer.</td>
+		<td style='max-width:250px;overflow:hidden'><ul><li><c>Class&lt;{@link org.apache.juneau.serializer.Serializer}&gt;</c><li>{@link org.apache.juneau.serializer.Serializer}</ul></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.rest.RestContext}</td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_allowBodyParam REST_allowBodyParam}</td>
+		<td>Allow body URL parameter.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_allowedHeaderParams REST_allowedHeaderParams}</td>
+		<td>Allowed header URL parameters.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c> (comma-delimited)</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_allowedMethodHeaders REST_allowedMethodHeaders}</td>
+		<td>Allowed method headers.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c> (comma-delimited)</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_allowedMethodParams REST_allowedMethodParams}</td>
+		<td>Allowed method URL parameters.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c> (comma-delimited)</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_callHandler REST_callHandler}</td>
+		<td>REST call handler.</td>
+		<td style='max-width:250px;overflow:hidden'><ul><li>{@link org.apache.juneau.rest.RestCallHandler}<li><c>Class&lt;{@link org.apache.juneau.rest.RestCallHandler}&gt;</c></ul></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_callLogger REST_callLogger}</td>
+		<td>REST call logger.</td>
+		<td style='max-width:250px;overflow:hidden'><ul><li>{@link org.apache.juneau.rest.RestCallLogger}<li><c>Class&lt;{@link org.apache.juneau.rest.RestCallLogger}&gt;</c></ul></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_callLoggerConfig REST_callLoggerConfig}</td>
+		<td>REST call logging rules.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.rest.RestCallLoggerConfig}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_children REST_children}</td>
+		<td>Children.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;Class|Object|{@link org.apache.juneau.rest.RestChild}&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_classpathResourceFinder REST_classpathResourceFinder}</td>
+		<td>Classpath resource finder.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.utils.ClasspathResourceFinder}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_clientVersionHeader REST_clientVersionHeader}</td>
+		<td>Client version header.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_consumes REST_consumes}</td>
+		<td>Supported content media types.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_converters REST_converters}</td>
+		<td>Class-level response converters.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;{@link org.apache.juneau.rest.RestConverter}|Class&lt;{@link org.apache.juneau.rest.RestConverter}&gt;&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_debug REST_debug}</td>
+		<td>Debug mode.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.rest.Enablement}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_defaultCharset REST_defaultCharset}</td>
+		<td>Default character encoding.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_encoders REST_encoders}</td>
+		<td>Compression encoders.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;{@link org.apache.juneau.encoders.Encoder}|Class&lt;{@link org.apache.juneau.encoders.Encoder}&gt;&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_guards REST_guards}</td>
+		<td>Class-level guards.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;{@link org.apache.juneau.rest.RestGuard}|Class&lt;{@link org.apache.juneau.rest.RestGuard}&gt;&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_infoProvider REST_infoProvider}</td>
+		<td>REST info provider.</td>
+		<td style='max-width:250px;overflow:hidden'><ul><li>{@link org.apache.juneau.rest.RestInfoProvider}<li><c>Class&lt;{@link org.apache.juneau.rest.RestInfoProvider}&gt;</c></ul></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_maxInput REST_maxInput}</td>
+		<td>The maximum allowed input size (in bytes) on HTTP requests.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_messages REST_messages}</td>
+		<td>Messages.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;{@link org.apache.juneau.rest.MessageBundleLocation}&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_mimeTypes REST_mimeTypes}</td>
+		<td>MIME types.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Set&lt;String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_paramResolvers REST_paramResolvers}</td>
+		<td>Java method parameter resolvers.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;{@link org.apache.juneau.rest.RestMethodParam}|Class&lt;{@link org.apache.juneau.rest.RestMethodParam}&gt;&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_parsers REST_parsers}</td>
+		<td>Parsers.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;{@link org.apache.juneau.parser.Parser}|Class&lt;{@link org.apache.juneau.parser.Parser}&gt;&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_partParser REST_partParser}</td>
+		<td>HTTP part parser.</td>
+		<td style='max-width:250px;overflow:hidden'><c>{@link org.apache.juneau.httppart.HttpPartParser}|Class&lt;{@link org.apache.juneau.httppart.HttpPartParser}&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_partSerializer REST_partSerializer}</td>
+		<td>HTTP part serializer.</td>
+		<td style='max-width:250px;overflow:hidden'><ul><li>{@link org.apache.juneau.httppart.HttpPartSerializer}<li><c>Class&lt;{@link org.apache.juneau.httppart.HttpPartSerializer}&gt;</c></ul></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_path REST_path}</td>
+		<td>Resource path.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_produces REST_produces}</td>
+		<td>Supported accept media types.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_properties REST_properties}</td>
+		<td>Properties.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_renderResponseStackTraces REST_renderResponseStackTraces}</td>
+		<td>Render response stack traces in responses.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_reqAttrs REST_reqAttrs}</td>
+		<td>Default request attributes.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,Object&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_reqHeaders REST_reqHeaders}</td>
+		<td>Default request headers.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_resHeaders REST_resHeaders}</td>
+		<td>Default response headers.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_resourceResolver REST_resourceResolver}</td>
+		<td>REST resource resolver.</td>
+		<td style='max-width:250px;overflow:hidden'><ul><li>{@link org.apache.juneau.rest.RestResourceResolver}<li><c>Class&lt;{@link org.apache.juneau.rest.RestResourceResolver}&gt;</c></ul></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_responseHandlers REST_responseHandlers}</td>
+		<td>Response handlers.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;{@link org.apache.juneau.rest.ResponseHandler}|Class&lt;{@link org.apache.juneau.rest.ResponseHandler}&gt;&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_roleGuard REST_roleGuard}</td>
+		<td>Role guard.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Set&lt;String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_rolesDeclared REST_rolesDeclared}</td>
+		<td>Declared roles.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Set&lt;String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_serializers REST_serializers}</td>
+		<td>Serializers.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;{@link org.apache.juneau.serializer.Serializer}|Class&lt;{@link org.apache.juneau.serializer.Serializer}&gt;&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_staticFileResponseHeaders REST_staticFileResponseHeaders}</td>
+		<td>Static file response headers.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_staticFiles REST_staticFiles}</td>
+		<td>Static file mappings.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;{@link org.apache.juneau.rest.StaticFileMapping}&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_uriAuthority REST_uriAuthority}</td>
+		<td>Resource URI authority path.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_uriContext REST_uriContext}</td>
+		<td>Resource URI context path.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_uriRelativity REST_uriRelativity}</td>
+		<td>URI resolution relativity.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_uriResolution REST_uriResolution}</td>
+		<td>URI resolution.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_useClasspathResourceCaching REST_useClasspathResourceCaching}</td>
+		<td>Use classpath resource caching.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.rest.RestMethodContext}</td>
+		<td>{@link org.apache.juneau.rest.RestMethodContext#RESTMETHOD_callLoggerConfig RESTMETHOD_callLoggerConfig}</td>
+		<td>Logging rules.</td>
+		<td style='max-width:250px;overflow:hidden'><c>{@link org.apache.juneau.rest.RestCallLoggerConfig}</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestMethodContext#RESTMETHOD_clientVersion RESTMETHOD_clientVersion}</td>
+		<td>Client version pattern matcher.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestMethodContext#RESTMETHOD_debug RESTMETHOD_debug}</td>
+		<td>Debug mode.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link Enablement}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestMethodContext#RESTMETHOD_defaultFormData RESTMETHOD_defaultFormData}</td>
+		<td>Default form data.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,Object&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestMethodContext#RESTMETHOD_defaultQuery RESTMETHOD_defaultQuery}</td>
+		<td>Default query parameters.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,Object&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestMethodContext#RESTMETHOD_httpMethod RESTMETHOD_httpMethod}</td>
+		<td>HTTP method name.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestMethodContext#RESTMETHOD_matchers RESTMETHOD_matchers}</td>
+		<td>Method-level matchers.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;{@link org.apache.juneau.rest.RestMatcher}|Class&lt;{@link org.apache.juneau.rest.RestMatcher}&gt;&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestMethodContext#RESTMETHOD_path RESTMETHOD_path}</td>
+		<td>Resource method path.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestMethodContext#RESTMETHOD_priority RESTMETHOD_priority}</td>
+		<td>Priority.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>int</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestMethodContext#RESTMETHOD_reqAttrs RESTMETHOD_reqAttrs}</td>
+		<td>Default request attributes.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,Object&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestMethodContext#RESTMETHOD_reqHeaders RESTMETHOD_reqHeaders}</td>
+		<td>Default request headers.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,Object&gt;</c></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.serializer.Serializer}</td>
+		<td>{@link org.apache.juneau.serializer.Serializer#SERIALIZER_addBeanTypes SERIALIZER_addBeanTypes}</td>
+		<td>Add <js>"_type"</js> properties when needed.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.serializer.Serializer#SERIALIZER_addRootType SERIALIZER_addRootType}</td>
+		<td>Add type attribute to root nodes.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.serializer.Serializer#SERIALIZER_listener SERIALIZER_listener}</td>
+		<td>Serializer listener.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Class&lt;{@link org.apache.juneau.serializer.SerializerListener}&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.serializer.Serializer#SERIALIZER_sortCollections SERIALIZER_sortCollections}</td>
+		<td>Sort arrays and collections alphabetically.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.serializer.Serializer#SERIALIZER_sortMaps SERIALIZER_sortMaps}</td>
+		<td>Sort maps alphabetically.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.serializer.Serializer#SERIALIZER_trimEmptyCollections SERIALIZER_trimEmptyCollections}</td>
+		<td>Trim empty lists and arrays.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.serializer.Serializer#SERIALIZER_trimEmptyMaps SERIALIZER_trimEmptyMaps}</td>
+		<td>Trim empty maps.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.serializer.Serializer#SERIALIZER_trimNullProperties SERIALIZER_trimNullProperties}</td>
+		<td>Trim null bean property values.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.serializer.Serializer#SERIALIZER_trimStrings SERIALIZER_trimStrings}</td>
+		<td>Trim strings.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.serializer.Serializer#SERIALIZER_uriContext SERIALIZER_uriContext}</td>
+		<td>URI context bean.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.UriContext}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.serializer.Serializer#SERIALIZER_uriRelativity SERIALIZER_uriRelativity}</td>
+		<td>URI relativity.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.UriRelativity}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.serializer.Serializer#SERIALIZER_uriResolution SERIALIZER_uriResolution}</td>
+		<td>URI resolution.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.UriResolution}</td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.soap.SoapXmlSerializer}</td>
+		<td>{@link org.apache.juneau.soap.SoapXmlSerializer#SOAPXML_SOAPAction SOAPXML_SOAPAction}</td>
+		<td>The <c>SOAPAction</c> HTTP header value to set on responses.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.dto.swagger.ui.SwaggerUI}</td>
+		<td>{@link org.apache.juneau.dto.swagger.ui.SwaggerUI#SWAGGERUI_resolveRefsMaxDepth SWAGGERUI_resolveRefsMaxDepth}</td>
+		<td>Resolve <c>$ref</c> references in schema up to the specified depth.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>int</jk></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.uon.UonParser}</td>
+		<td>{@link org.apache.juneau.uon.UonParser#UON_decoding UON_decoding}</td>
+		<td>Decode <js>"%xx"</js> sequences.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.uon.UonParser#UON_validateEnd UON_validateEnd}</td>
+		<td>Validate end.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.uon.UonSerializer}</td>
+		<td>{@link org.apache.juneau.uon.UonSerializer#UON_addBeanTypes UON_addBeanTypes}</td>
+		<td>Add <js>"_type"</js> properties when needed.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.uon.UonSerializer#UON_encoding UON_encoding}</td>
+		<td>Encode non-valid URI characters.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.uon.UonSerializer#UON_paramFormat UON_paramFormat}</td>
+		<td>Format to use for query/form-data/header values.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.uon.ParamFormat}</td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.urlencoding.UrlEncodingParser}</td>
+		<td>{@link org.apache.juneau.urlencoding.UrlEncodingParser#URLENC_expandedParams URLENC_expandedParams}</td>
+		<td>Parser bean property collections/arrays as separate key/value pairs.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.urlencoding.UrlEncodingSerializer}</td>
+		<td>{@link org.apache.juneau.urlencoding.UrlEncodingSerializer#URLENC_expandedParams URLENC_expandedParams}</td>
+		<td>Serialize bean property collections/arrays as separate key/value pairs.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.serializer.WriterSerializer}</td>
+		<td>{@link org.apache.juneau.serializer.WriterSerializer#WSERIALIZER_fileCharset WSERIALIZER_fileCharset}</td>
+		<td>File charset.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.serializer.WriterSerializer#WSERIALIZER_maxIndent WSERIALIZER_maxIndent}</td>
+		<td>Maximum indentation.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>int</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.serializer.WriterSerializer#WSERIALIZER_quoteChar WSERIALIZER_quoteChar}</td>
+		<td>Quote character.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.serializer.WriterSerializer#WSERIALIZER_streamCharset WSERIALIZER_streamCharset}</td>
+		<td>Output stream charset.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.serializer.WriterSerializer#WSERIALIZER_useWhitespace WSERIALIZER_useWhitespace}</td>
+		<td>Use whitespace.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.xml.XmlParser}</td>
+		<td>{@link org.apache.juneau.xml.XmlParser#XML_eventAllocator XML_eventAllocator}</td>
+		<td>XML event allocator.</td>
+		<td style='max-width:250px;overflow:hidden'><code>Class&lt;{@link javax.xml.stream.util.XMLEventAllocator}&gt;</code></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.xml.XmlParser#XML_preserveRootElement XML_preserveRootElement}</td>
+		<td>Preserve root element during generalized parsing.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.xml.XmlParser#XML_reporter XML_reporter}</td>
+		<td>XML reporter.</td>
+		<td style='max-width:250px;overflow:hidden'><code>Class&lt;{@link javax.xml.stream.XMLReporter}&gt;</code></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.xml.XmlParser#XML_resolver XML_resolver}</td>
+		<td>XML resolver.</td>
+		<td style='max-width:250px;overflow:hidden'><code>Class&lt;{@link javax.xml.stream.XMLResolver}&gt;</code></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.xml.XmlParser#XML_validating XML_validating}</td>
+		<td>Enable validation.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.xml.XmlSerializer}</td>
+		<td>{@link org.apache.juneau.xml.XmlSerializer#XML_addBeanTypes XML_addBeanTypes}</td>
+		<td>Add <js>"_type"</js> properties when needed.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.xml.XmlSerializer#XML_addNamespaceUrisToRoot XML_addNamespaceUrisToRoot}</td>
+		<td>Add namespace URLs to the root element.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.xml.XmlSerializer#XML_autoDetectNamespaces XML_autoDetectNamespaces}</td>
+		<td>Auto-detect namespace usage.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.xml.XmlSerializer#XML_defaultNamespace XML_defaultNamespace}</td>
+		<td>Default namespace.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.xml.Namespace}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.xml.XmlSerializer#XML_enableNamespaces XML_enableNamespaces}</td>
+		<td>Enable support for XML namespaces.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.xml.XmlSerializer#XML_namespaces XML_namespaces}</td>
+		<td>Default namespaces.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Set&lt;{@link org.apache.juneau.xml.Namespace}&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.xml.XmlSerializer#XML_xsNamespace XML_xsNamespace}</td>
+		<td>XMLSchema namespace.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c> ({@link org.apache.juneau.xml.Namespace})</td>
+	</tr>
+</table>
diff --git a/juneau-doc/docs/Topics/19.Security/01.juneau-marshall.html b/juneau-doc/docs/Topics/19.Security/01.juneau-marshall.html
deleted file mode 100644
index 6644cda..0000000
--- a/juneau-doc/docs/Topics/19.Security/01.juneau-marshall.html
+++ /dev/null
@@ -1,89 +0,0 @@
-<!--
-/***************************************************************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *  
- *  http://www.apache.org/licenses/LICENSE-2.0
- *  
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations under the License.
- ***************************************************************************************************************************/
- -->
-
-juneau-marshall
-
-<h5 class='topic'>Demarshalling vulnerabilities</h5>
-<p>
-	One common security vulnerability is the ability to create arbitrary Java object instances through crafted
-	user input.  For example, support for constructing POJOs based on an input attribute defining a 
-	fully-qualified class name like <js>"{class:'com.foo.MyBean',...}"</js>
-</p>
-<p>
-	Fortunately, Juneau does not support an open-ended <js>"class</js> attribute.  
-	As a rule, it should not be possible to create arbitrary POJOs by any of the parsers.
-	The demarshalled object types are inferred via reflection of the class objects passed in through the parser 
-	method (e.g. <c>JsonParser.<jsf>DEFAULT</jsf>.parse(input, MyBean.<jk>class</jk>)</c>).
-	As long as the <c>Class</c> object passed into this method is not constructed from user-generated input,
-	it should be free from demarshalling vulnerabilities.   
-</p> 
-<p>
-	The following example shows a potential vector that circumvents the restriction above:
-</p>
-<p class='bpcode w800'>
-	<jc>// Don't do this!</jc>
-	Class c = Class.<jsf>forName</jsf>(someUserInputString);
-	JsonParser.<jsf>DEFAULT</jsf>.parse(input, c);  <jc>// Oops!  Security hole!</jc>
-</p>
-<p>
-	Juneau does support something similar to a <js>"class"</js> attribute that allows you to define the
-	POJO type at runtime.
-	This is the <js>"type"</js> attribute.
-	The difference is that it's not possible to specify fully-qualified class names in <js>"type"</js> attributes,
-	and instead can only specify type keys defined through bean dictionaries. 
-	Instead of serializing the fully-qualified class names in the output, we instead serialize type
-	names that represent those POJO types.
-	i.e. instead of <js>"class='com.foo.MyBean'"</js>, we instead serialize <js>"type='MyBeanIdentifier'"</js>.
-	Since bean types are defined at compile time, it's impossible to instantiate arbitrary POJOs.
-</p>
-<p>
-	POJO types of generalized input are also inferred through swaps.
-	Again, since the POJO types are hardcoded at compile time, these should not be subject to demarshalling
-	vulnerabilities.  However, it is possible to circumvent this through your swap implementation as shown
-	below: 	
-</p>
-<p class='bpcode w800'>
-	<jc>// Don't do this!</jc>
-	<jk>public class</jk> MyInsecureSwap <jk>extends</jk> PojoSwap&lt;ObjectMap,Object&gt; {
-		<jk>public</jk> Object swap(BeanSession session, ObjectMap input) <jk>throws</jk> Exception {
-			<jc>// Security hole!</jc>
-			<jk>return</jk> Class.<jsf>forName</jsf>(input.getString(<js>"class"</js>)).newInstance();
-		}
-	}
-</p>
-<p>
-	Note that the {@link oaj.jso.JsoParser}, a thin layer of the Juneau Parser API written on 
-	top of plain-old Java Object Serialization which itself is vulnerable to demarshalling issues.  
-	Due to this, the JSO parser is not included in any of the default REST servlet implementations. 
-	Be especially careful when using this parser, particularly if you want to use it for handing 
-	<c>application/x-java-serialized-object</c> input through REST servlets. 
-</p>
-<p>
-	All other parsers (JSON, URL-Encoding, MessagePack, etc...) work the same way in determining POJO types, so
-	should be safe from demarshalling vulnerabilities.  
-</p>
-
-<h5 class='topic'>Dependent libraries</h5>
-<p>
-	When accessing security vulnerabilities of any library, dependent libraries must also be taken into account:
-</p>
-<ul>
-	<li>The JSON, HTML, MsgPack, URL-Encoding, and UON parsers are written from scratch and do not rely on
-		any other parsing technologies.
-	<li>The XML and HTML parsers uses the built-in Java StAX parser.
-		This *should* be free from vulnerabilities.    
-	<li>The RDF parsers rely on Apache Jena 2.7.1.  
-		As of <c>7.0.1</c>, no known security vulnerabilities exist that affect Juneau at this time.
-</ul>
diff --git a/juneau-doc/docs/Topics/19.Security/02.juneau-svl.html b/juneau-doc/docs/Topics/19.Security/02.juneau-svl.html
deleted file mode 100644
index 4a833f3..0000000
--- a/juneau-doc/docs/Topics/19.Security/02.juneau-svl.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!--
-/***************************************************************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *  
- *  http://www.apache.org/licenses/LICENSE-2.0
- *  
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations under the License.
- ***************************************************************************************************************************/
- -->
-
-juneau-svl
-
-<p>
-	Care must be used when defining new {@link oaj.svl.Var Vars} using the SVL API since mistakes 
-	could potentially expose system properties, environment variables, or even file system files.
-</p>
-<p>
-	For recap, the SVL support allows you to embed variables of the form <js>"$X{key}"</js> inside strings that
-	get resolved to other strings.  The resolved strings themselves can also contain variables that also
-	get recursively resolved.  
-</p>
-<p>
-	An example of a potential security hole is shown below that could potentially expose any file on a file
-	system through a REST request:
-</p>
-<p class='bpcode w800'>
-	<jk>public</jk> String doUnsafeGet(RestRequest req) {
-		<jc>// Security hole!</jc>
-		<jk>return</jk> req.getVarResolver().resolve(<js>"$RQ{foo}"</js>);
-	}
-</p>
-<p>
-	This code is simply echoing the value of the <c>foo</c> query parameter.
-	Now say for example that a bad actor passes in the query string <js>"foo=$F{/some/file/on/file/system}"</js>.
-	The <c>$F</c> variable allows you to resolve the contents of files using SVL, and is provided
-	by default using the built-in variable resolver returned by the <c>RestRequest</c> object.
-	You've potentially just exposed the contents of that file through your REST interface.
-</p>
-<p>
-	In reality, the above security hole does not exist because of the following restrictions:
-</p>
-<ul class='spaced-list'>
-	<li>
-		<c>Vars</c> have two methods {@link oaj.svl.Var#allowNested()} and 
-		{@link oaj.svl.Var#allowRecurse()} that can be overridden to prevent recursive processing
-		of string variables.  These are both <jk>false</jk> for the <c>$R</c> variable, so the <c>$F</c>
-		variable in the result will never get processed and instead be treated as plain text. 
-	<li>
-		The <c>$F</c> variable only allows you to retrieve files within the JVM starting directory. 
-</ul>
-<p>
-	Even though the built-in Juneau variables are safe, special care is needed when defining your own custom
-	variables.  If your variable resolves user input in any way, it's HIGHLY recommended that you override the
-	{@link oaj.svl.Var#allowNested()} and {@link oaj.svl.Var#allowRecurse()} 
-	methods to prevent recursive handling of variables.
-</p>
diff --git a/juneau-doc/docs/Topics/19.Security/03.juneau-rest-server.html b/juneau-doc/docs/Topics/19.Security/03.juneau-rest-server.html
deleted file mode 100644
index 2d15a79..0000000
--- a/juneau-doc/docs/Topics/19.Security/03.juneau-rest-server.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!--
-/***************************************************************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *  
- *  http://www.apache.org/licenses/LICENSE-2.0
- *  
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations under the License.
- ***************************************************************************************************************************/
- -->
-
-juneau-rest-server
-
-<p>
-	Denial of service attacks can be alleviated through the {@link oajr.annotation.Rest#maxInput() maxInput()}
-	setting.  Arbitrarily-large input will trigger an exception before causing out-of-memory errors.
-	The default value for this setting is 100MB.  
-</p>
-<p>
-	Since the parsers do not use intermediate DOMs and instead parse directly into Java objects,  
-	deeply nested data structures will almost always trigger stack overflow errors long before memory consumption
-	becomes an issue.  However, this is NOT true of the RDF parsers that use an intermediate DOM.  If parsing 
-	RDF, you may want to consider lowering the max-input value above.
-</p>
diff --git a/juneau-doc/src/main/java/org/apache/juneau/doc/internal/ConfigPropsGenerator.java b/juneau-doc/src/main/java/org/apache/juneau/doc/internal/ConfigPropsGenerator.java
new file mode 100644
index 0000000..2996109
--- /dev/null
+++ b/juneau-doc/src/main/java/org/apache/juneau/doc/internal/ConfigPropsGenerator.java
@@ -0,0 +1,189 @@
+// ***************************************************************************************************************************
+// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *
+// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *
+// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance            *
+// * with the License.  You may obtain a copy of the License at                                                              *
+// *                                                                                                                         *
+// *  http://www.apache.org/licenses/LICENSE-2.0                                                                             *
+// *                                                                                                                         *
+// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *
+// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *
+// * specific language governing permissions and limitations under the License.                                              *
+// ***************************************************************************************************************************
+package org.apache.juneau.doc.internal;
+
+import java.io.*;
+import java.util.*;
+/**
+ * Utility for generating the configuration property glossary page.
+ */
+public class ConfigPropsGenerator {
+
+	private static final Map<String,PropertyInfo> ENTRIES = new TreeMap<>();
+
+	/**
+	 * Entry point.
+	 *
+	 * @param args Not used
+	 */
+	public static void main(String[] args) {
+		try {
+			System.out.println("<table class='styled w1000'>");
+			System.out.println("\t<tr>");
+			System.out.println("\t\t<th>Context</th><th>ID</th><th style='min-width:250px'>Description</th><th>Data type</th>");
+			System.out.println("\t</tr>");
+			for (String s : "juneau-core/juneau-config,juneau-core/juneau-dto,juneau-core/juneau-marshall,juneau-core/juneau-marshall-rdf,juneau-rest/juneau-rest-client,juneau-rest/juneau-rest-server".split(","))
+				process(new File("../" + s + "/src/main/java"));
+			String processing = "xxx";
+			for (PropertyInfo pi : ENTRIES.values()) {
+				if (pi.file.equals(processing))
+					pi.context = "";
+				processing = pi.file;
+			}
+			ENTRIES.values().stream().forEach(x->x.out());
+			System.out.println("</table>");
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	private static final String
+		PROPERTY = "Configuration property:",
+		ID = "<li><b>ID:</b>",
+		NAME = "<li><b>Name:</b>",
+		DATA_TYPE = "<li><b>Data type:</b>",
+		SYSTEM_PROPERTY = "<li><b>System property:</b>",
+		ENVIRONMENT_VARIABLE = "<li><b>Environment variable:</b>",
+		DEFAULT = "<li><b>Default:</b>",
+		METHODS = "<li><b>Methods:</b>",
+		ANNOTATIONS = "<li><b>Annotations:</b>"
+
+	;
+
+	private static void process(File f) throws Exception {
+		for (File f2 : f.listFiles()) {
+			if (f2.isDirectory()) {
+				process(f2);
+			} else if (f2.isFile() && f2.getName().endsWith(".java")) {
+				String contents = IOUtils.read(f2);
+				if (contents.contains("<h5 class='section'>Property:</h5>")) {
+					List<String> javadocs = IOUtils.findJavadocs(contents);
+					for (String jd : javadocs) {
+						if (jd.contains("<h5 class='section'>Property:</h5>")) {
+							PropertyInfo pi = new PropertyInfo(f2);
+							int x = 0;
+							for (String line : jd.split("\n")) {
+								if (line.contains(PROPERTY)) {
+									pi.description(line.substring(line.indexOf(PROPERTY) + PROPERTY.length()).trim());
+								} else {
+									if (line.contains(ID)) {
+										pi.id(line.substring(line.indexOf(ID) + ID.length()).trim());
+										x = 1;
+									} else if (line.contains(NAME)) {
+										pi.name(line.substring(line.indexOf(NAME) + NAME.length()).trim());
+										x = 2;
+									} else if (line.contains(DATA_TYPE)) {
+										pi.dataType(line.substring(line.indexOf(DATA_TYPE) + DATA_TYPE.length()).trim());
+										x = 3;
+									} else if (line.contains(SYSTEM_PROPERTY)) {
+										pi.systemProperty(line.substring(line.indexOf(SYSTEM_PROPERTY) + SYSTEM_PROPERTY.length()).trim());
+										x = 4;
+									} else if (line.contains(ENVIRONMENT_VARIABLE)) {
+										pi.envVar(line.substring(line.indexOf(ENVIRONMENT_VARIABLE) + ENVIRONMENT_VARIABLE.length()).trim());
+										x = 5;
+									} else if (line.contains(DEFAULT)) {
+										pi.def(line.substring(line.indexOf(DEFAULT) + DEFAULT.length()).trim());
+										x = 6;
+									} else if (line.contains(METHODS)) {
+										pi.def(line.substring(line.indexOf(METHODS) + METHODS.length()).trim());
+										x = 7;
+									} else if (line.contains(ANNOTATIONS)) {
+										pi.def(line.substring(line.indexOf(ANNOTATIONS) + ANNOTATIONS.length()).trim());
+										x = 8;
+									} else if (line.contains("* </ul>") || line.contains("<li><b>")) {
+										x = 0;
+									} else if (x != 0) {
+										if (x == 1)
+											pi.id(line.substring(line.indexOf('*')+1).trim());
+										else if (x == 2)
+											pi.name(line.substring(line.indexOf('*')+1).trim());
+										else if (x == 3)
+											pi.dataType(line.substring(line.indexOf('*')+1).trim());
+										else if (x == 4)
+											pi.systemProperty(line.substring(line.indexOf('*')+1).trim());
+										else if (x == 5)
+											pi.envVar(line.substring(line.indexOf('*')+1).trim());
+										else if (x == 6)
+											pi.def(line.substring(line.indexOf('*')+1).trim());
+										else if (x == 7)
+											pi.methods(line.substring(line.indexOf('*')+1).trim());
+										else if (x == 8)
+											pi.annotations(line.substring(line.indexOf('*')+1).trim());
+									}
+								}
+							}
+							ENTRIES.put(f2.getName() + "/" + pi.name, pi);
+/*
+ * 	 * 	<li><b>Data type:</b>
+	 * 		<ul>
+	 * 			<li><c>List&lt;{@link org.apache.juneau.html.HtmlWidget}&gt;</c>
+	 * 			<li><c>Class&lt;? <jk>extends</jk> {@link org.apache.juneau.html.HtmlWidget}&gt;&gt;</c>
+	 * 		</ul>
+	 * 	<li><b>Default:</b>  empty list
+
+ */
+
+						}
+					}
+				}
+			}
+		}
+	}
+
+	static class PropertyInfo {
+		String file="", context="", id="", name="", description="", dataType="", systemProperty="", envVar="", def="", methods="", annotations="";
+
+		public PropertyInfo(File f) {
+			String path = f.getAbsolutePath();
+			path = path.substring(path.indexOf("org/apache")).replace(".java","").replace('/','.');
+			context = "{@link " + path + "}";
+			file = f.getName();
+		}
+
+		public void id(String s) {
+			this.id += s;
+		}
+		public void name(String s) {
+			this.name += s;
+		}
+		public void description(String s) {
+			this.description += s;
+		}
+		public void dataType(String s) {
+			this.dataType += s;
+		}
+		public void systemProperty(String s) {
+			this.systemProperty += s;
+		}
+		public void envVar(String s) {
+			this.envVar += s;
+		}
+		public void def(String s) {
+			this.def += s;
+		}
+		public void methods(String s) {
+			this.methods += s;
+		}
+		public void annotations(String s) {
+			this.annotations += s;
+		}
+		public void out() {
+			System.out.println("\t<tr>");
+			System.out.println("\t\t<td>" + context + "</td>");
+			System.out.println("\t\t<td>" + id + "</td>");
+			System.out.println("\t\t<td>" + description + "</td>");
+			System.out.println("\t\t<td style='max-width:250px;overflow:hidden'>" + dataType + "</td>");
+			System.out.println("\t</tr>");
+		}
+	}
+}
diff --git a/juneau-doc/src/main/java/org/apache/juneau/doc/internal/IOUtils.java b/juneau-doc/src/main/java/org/apache/juneau/doc/internal/IOUtils.java
index a408e70..99f492f 100644
--- a/juneau-doc/src/main/java/org/apache/juneau/doc/internal/IOUtils.java
+++ b/juneau-doc/src/main/java/org/apache/juneau/doc/internal/IOUtils.java
@@ -14,6 +14,8 @@
 
 import java.io.*;
 import java.nio.file.*;
+import java.util.*;
+import java.util.regex.*;
 
 /**
  * Various I/O related utility methods.
@@ -26,6 +28,17 @@
 		return new String(encoded, "UTF-8");
 	}
 
+	private static final Pattern JDOC_PATTERN = Pattern.compile("(?s)\\/\\*\\*.*?\\*\\/");
+
+	public static List<String> findJavadocs(String contents) {
+		List<String> l = new ArrayList<>();
+		Matcher m = JDOC_PATTERN.matcher(contents);
+		while (m.find()) {
+			l.add(m.group());
+		}
+		return l;
+	}
+
 	public static String read(File f) throws IOException {
 		return readFile(f.getAbsolutePath());
 	}
diff --git a/juneau-doc/src/main/javadoc/overview.html b/juneau-doc/src/main/javadoc/overview.html
index a01e5d1..134e6c0 100644
--- a/juneau-doc/src/main/javadoc/overview.html
+++ b/juneau-doc/src/main/javadoc/overview.html
@@ -175,13 +175,14 @@
 		<li><p class=''><a class='doclink' href='#juneau-marshall.Marshalls'>Marshalls</a></p>
 		<li><p class=''><a class='doclink' href='#juneau-marshall.HttpPartSerializers'>HTTP Part Serializers</a></p>
 		<li><p class=''><a class='doclink' href='#juneau-marshall.HttpPartParsers'>HTTP Part Parsers</a></p>
-		<li><p class=''><a class='doclink' href='#juneau-marshall.ConfigurableProperties'>Configurable Properties</a></p>
+		<li><p class='updated'><a class='doclink' href='#juneau-marshall.ConfigurableProperties'>Configurable Properties</a></p>
 		<ol>
 			<li><p class=''><a class='doclink' href='#juneau-marshall.ConfigurableProperties.Common'>Common Serializer Properties</a></p>
 			<li><p class=''><a class='doclink' href='#juneau-marshall.ConfigurableProperties.CommonSerializer'>Common Serializer Properties</a></p>
 			<li><p class='update'><a class='doclink' href='#juneau-marshall.ConfigurableProperties.CommonParser'>Common Parser Properties</a></p>
 		</ol>
 		<li><p class=''><a class='doclink' href='#juneau-marshall.ConfigurableAnnotations'>Configurable Annotations</a></p>
+		<li><p class='todo'><a class='doclink' href='#juneau-marshall.ClassMethodAnnotations'>Class/Method Annotations</a></p>
 		<li><p class=''><a class='doclink' href='#juneau-marshall.ObjectMap'>ObjectMap and ObjectList</a></p>
 		<li><p class=''><a class='doclink' href='#juneau-marshall.Groups'>SerializerGroups and ParserGroups</a></p>
 		<li><p class=''><a class='doclink' href='#juneau-marshall.ContextsBuildersSessionsPropertyStores'>Contexts, Builders, Sessions, and PropertyStores</a></p>
@@ -196,8 +197,8 @@
 			<li><p class=''><a class='doclink' href='#juneau-marshall.Transforms.TemplatedSwaps'>Templated Swaps</a></p>
 			<li><p class=''><a class='doclink' href='#juneau-marshall.Transforms.SurrogateClasses'>Surrogate Classes</a></p>
 			<li><p class=''><a class='doclink' href='#juneau-marshall.Transforms.BeanAnnotation'>@Bean Annotation</a></p>
-			<li><p class='updated'><a class='doclink' href='#juneau-marshall.Transforms.BeanpAnnotation'>@Beanp Annotation</a></p>
-			<li><p class='updated'><a class='doclink' href='#juneau-marshall.Transforms.BeancAnnotation'>@BeancAnnotation</a></p>
+			<li><p class=''><a class='doclink' href='#juneau-marshall.Transforms.BeanpAnnotation'>@Beanp Annotation</a></p>
+			<li><p class=''><a class='doclink' href='#juneau-marshall.Transforms.BeancAnnotation'>@Beanc Annotation</a></p>
 			<li><p class=''><a class='doclink' href='#juneau-marshall.Transforms.BeanIgnoreAnnotation'>@BeanIgnore Annotation</a></p>
 			<li><p class=''><a class='doclink' href='#juneau-marshall.Transforms.NamePropertyAnnotation'>@NameProperty Annotation</a></p>
 			<li><p class=''><a class='doclink' href='#juneau-marshall.Transforms.ParentPropertyAnnotation'>@ParentProperty Annotation</a></p>
@@ -360,10 +361,10 @@
 			<li><p class=''><a class='doclink' href='#juneau-rest-server.Instantiation.ResourceResolvers'>Resource Resolvers</a></p>
 			<li><p class=''><a class='doclink' href='#juneau-rest-server.Instantiation.LifecycleHooks'>Lifecycle Hooks</a></p>
 		</ol>
-		<li><p class='updated'><a class='doclink' href='#juneau-rest-server.Rest'>@Rest</a></p>
+		<li><p class=''><a class='doclink' href='#juneau-rest-server.Rest'>@Rest</a></p>
 		<ol>
 			<li><p class=''><a class='doclink' href='#juneau-rest-server.Rest.AnnotationInheritance'>Annotation Inheritance</a></p>
-			<li><p class='updated'><a class='doclink' href='#juneau-rest-server.Rest.RestPath'>@Rest(path)</a></p>
+			<li><p class=''><a class='doclink' href='#juneau-rest-server.Rest.RestPath'>@Rest(path)</a></p>
 		</ol>
 		<li><p class=''><a class='doclink' href='#juneau-rest-server.RestContext'>RestContext</a></p>
 		<li><p class=''><a class='doclink' href='#juneau-rest-server.RestMethod'>@RestMethod</a></p>
@@ -469,7 +470,7 @@
 	<ol>
 		<li><p class=''><a class='doclink' href='#juneau-rest-client.RestProxies'>REST Proxies</a></p>
 		<ol>
-			<li><p class='updated'><a class='doclink' href='#juneau-rest-client.RestProxies.Remote'>@Remote</a></p>
+			<li><p class=''><a class='doclink' href='#juneau-rest-client.RestProxies.Remote'>@Remote</a></p>
 			<li><p class=''><a class='doclink' href='#juneau-rest-client.RestProxies.RemoteMethod'>@RemoteMethod</a></p>
 			<li><p class=''><a class='doclink' href='#juneau-rest-client.RestProxies.Body'>@Body</a></p>
 			<li><p class=''><a class='doclink' href='#juneau-rest-client.RestProxies.FormData'>@FormData</a></p>
@@ -497,9 +498,9 @@
 	<li><p class='toc2'><a class='doclink' href='#juneau-rest-mock'>juneau-rest-mock</a></p>
 	<ol>
 		<li><p class=''><a class='doclink' href='#juneau-rest-mock.MockRest'>MockRest</a></p>
-		<li><p class='updated'><a class='doclink' href='#juneau-rest-mock.MockRemote'>MockRemote</a></p>
+		<li><p class=''><a class='doclink' href='#juneau-rest-mock.MockRemote'>MockRemote</a></p>
 	</ol>
-	<li><p class='updated'><a class='doclink' href='#juneau-microservice-core'>juneau-microservice-core</a></p>
+	<li><p class='toc2'><a class='doclink' href='#juneau-microservice-core'>juneau-microservice-core</a></p>
 	<ol>
 		<li><p class=''><a class='doclink' href='#juneau-microservice-core.Overview'>Microservice Overview</a></p>
 		<li><p class=''><a class='doclink' href='#juneau-microservice-core.LifecycleMethods'>Lifecycle Methods</a></p>
@@ -512,7 +513,7 @@
 		<li><p class=''><a class='doclink' href='#juneau-microservice-core.Logging'>Logging</a></p>
 		<li><p class=''><a class='doclink' href='#juneau-microservice-core.Listeners'>Listeners</a></p>
 	</ol>
-	<li><p class='updated'><a class='doclink' href='#juneau-microservice-jetty'>juneau-microservice-jetty</a></p>
+	<li><p class='toc2'><a class='doclink' href='#juneau-microservice-jetty'>juneau-microservice-jetty</a></p>
 	<ol>
 		<li><p class=''><a class='doclink' href='#juneau-microservice-jetty.Overview'>Overview</a></p>
 		<li><p class=''><a class='doclink' href='#juneau-microservice-jetty.LifecycleMethods'>Lifecycle Methods</a></p>
@@ -523,7 +524,7 @@
 		<li><p class=''><a class='doclink' href='#juneau-microservice-jetty.UiCustomization'>UI Customization</a></p>
 		<li><p class=''><a class='doclink' href='#juneau-microservice-jetty.Extending'>Extending JettyMicroservice</a></p>
 	</ol>
-	<li><p class='updated'><a class='doclink' href='#my-jetty-microservice'>my-jetty-microservice</a></p>
+	<li><p class='toc2'><a class='doclink' href='#my-jetty-microservice'>my-jetty-microservice</a></p>
 	<ol>
 		<li><p class=''><a class='doclink' href='#my-jetty-microservice.Installing'>Installing in Eclipse</a></p>
 		<li><p class=''><a class='doclink' href='#my-jetty-microservice.Running'>Running in Eclipse</a></p>
@@ -548,7 +549,7 @@
 		<li><p class=''><a class='doclink' href='#juneau-examples-rest.ConfigResource'>ConfigResource</a></p>
 		<li><p class=''><a class='doclink' href='#juneau-examples-rest.LogsResource'>LogsResource</a></p>
 	</ol>
-	<li><p class='updated'><a class='doclink' href='#juneau-examples-rest-jetty'>juneau-examples-rest-jetty</a></p>
+	<li><p class='toc2'><a class='doclink' href='#juneau-examples-rest-jetty'>juneau-examples-rest-jetty</a></p>
 	<ol>
 		<li><p class=''><a class='doclink' href='#juneau-examples-rest-jetty.Installing'>Installing in Eclipse</a></p>
 		<li><p class=''><a class='doclink' href='#juneau-examples-rest-jetty.Running'>Running in Eclipse</a></p>
@@ -561,6 +562,10 @@
 		<li><p class=''><a class='doclink' href='#juneau-examples-rest-springboot.Building'>Building and Running from Command-Line</a></p>
 		<li><p class=''><a class='doclink' href='#juneau-examples-rest-springboot.DeployingToHeroku'>Deploying to Heroku</a></p>
 	</ol>
+	<li><p class='new'><a class='doclink' href='#Glossaries'>Glossaries</a></p>
+	<ol>
+		<li><p class='new'><a class='doclink' href='#Glossaries.ConfigurablePropertiesGlossary'>Configurable Properties Glossary</a></p>
+	</ol>
 	<li><p class='toc2'><a class='doclink' href='#Security'>Security Best-Practices</a></p>
 	<ol>
 		<li><p class=''><a class='doclink' href='#Security.juneau-marshall'>juneau-marshall</a></p>
@@ -1433,7 +1438,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.ConfigurableProperties' id='juneau-marshall.ConfigurableProperties'>2.6 - Configurable Properties</a></h3>
+<h3 class='topic updated' onclick='toggle(this)'><a href='#juneau-marshall.ConfigurableProperties' id='juneau-marshall.ConfigurableProperties'>2.6 - Configurable Properties</a></h3>
 <div class='topic'><!-- START: 2.6 - juneau-marshall.ConfigurableProperties -->
 <p>
 	Serializers and parsers have a wide variety of configurable properties.  They all extend from the 
@@ -1498,11 +1503,16 @@
 <p class='bpcode w800'>
 	<jc>// Clone and customize an existing serializer.</jc>
 	WriterSerializer s = SimpleJsonSerializer.<jsf>DEFAULT</jsf>
-
 		.builder()  <jc>// Create a new builder with copied settings.</jc>
 		.quoteChar(<js>'"'</js>)  <jc>// Use a different quote character.</jc>
 		.build();
 </p>
+<p>
+	Configurable properties can be set globally using either system properties or environment variables.
+	<br>For example, the <jsf>WSERIALIZER_useWhitespace</jsf> variable resolves to the string <js>"WriterSerializer.useWhitespace.b"</js>.
+	This setting can be enabled by setting the system property <js>"WriterSerializer.useWhitespace"</js> or environment
+	variables <js>"WriterSerializer_useWhitespace"</js> or <js>"WRITERSERIALIZER_USEWHITESPACE"</js> to <js>"true"</js>.
+</p>
 
 <!-- ==================================================================================================== -->
 
@@ -1711,8 +1721,17 @@
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.ObjectMap' id='juneau-marshall.ObjectMap'>2.8 - ObjectMap and ObjectList</a></h3>
-<div class='topic'><!-- START: 2.8 - juneau-marshall.ObjectMap -->
+<h3 class='topic todo' onclick='toggle(this)'><a href='#juneau-marshall.ClassMethodAnnotations' id='juneau-marshall.ClassMethodAnnotations'>2.8 - Class/Method Annotations</a></h3>
+<div class='topic'><!-- START: 2.8 - juneau-marshall.ClassMethodAnnotations -->
+<p>
+	TODO
+</p>
+</div><!-- END: 2.8 - juneau-marshall.ClassMethodAnnotations -->
+
+<!-- ==================================================================================================== -->
+
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.ObjectMap' id='juneau-marshall.ObjectMap'>2.9 - ObjectMap and ObjectList</a></h3>
+<div class='topic'><!-- START: 2.9 - juneau-marshall.ObjectMap -->
 <p>
 	The {@link org.apache.juneau.ObjectMap} and {@link org.apache.juneau.ObjectList} classes are generic Java 
 	representations of JSON objects and arrays.  
@@ -1819,12 +1838,12 @@
 	As a general rule, if you do not specify a target type during parsing, or if the target type cannot be 
 	determined through reflection, the parsers automatically generate <l>ObjectMaps</l> and <l>ObjectLists</l>.
 </div>
-</div><!-- END: 2.8 - juneau-marshall.ObjectMap -->
+</div><!-- END: 2.9 - juneau-marshall.ObjectMap -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Groups' id='juneau-marshall.Groups'>2.9 - SerializerGroups and ParserGroups</a></h3>
-<div class='topic'><!-- START: 2.9 - juneau-marshall.Groups -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Groups' id='juneau-marshall.Groups'>2.10 - SerializerGroups and ParserGroups</a></h3>
+<div class='topic'><!-- START: 2.10 - juneau-marshall.Groups -->
 <p>
 	Above the serializers and parsers are the {@link org.apache.juneau.serializer.SerializerGroup} and 
 	{@link org.apache.juneau.parser.ParserGroup} classes.
@@ -1856,12 +1875,12 @@
 	to provide annotated REST servlets that automatically negotiate the HTTP media types and allow the developer
 	to work with requests and responses as POJOs.
 </p>
-</div><!-- END: 2.9 - juneau-marshall.Groups -->
+</div><!-- END: 2.10 - juneau-marshall.Groups -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.ContextsBuildersSessionsPropertyStores' id='juneau-marshall.ContextsBuildersSessionsPropertyStores'>2.10 - Contexts, Builders, Sessions, and PropertyStores</a></h3>
-<div class='topic'><!-- START: 2.10 - juneau-marshall.ContextsBuildersSessionsPropertyStores -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.ContextsBuildersSessionsPropertyStores' id='juneau-marshall.ContextsBuildersSessionsPropertyStores'>2.11 - Contexts, Builders, Sessions, and PropertyStores</a></h3>
+<div class='topic'><!-- START: 2.11 - juneau-marshall.ContextsBuildersSessionsPropertyStores -->
 <p>
 	All the serializers, parsers, and REST server/client classes use the following design pattern:
 </p>
@@ -1996,12 +2015,12 @@
 	Refer to the {@link org.apache.juneau.PropertyStore} javadoc for a detailed explaination on how
 	property stores work.
 </p>
-</div><!-- END: 2.10 - juneau-marshall.ContextsBuildersSessionsPropertyStores -->
+</div><!-- END: 2.11 - juneau-marshall.ContextsBuildersSessionsPropertyStores -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms' id='juneau-marshall.Transforms'>2.11 - Transforms</a></h3>
-<div class='topic'><!-- START: 2.11 - juneau-marshall.Transforms -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms' id='juneau-marshall.Transforms'>2.12 - Transforms</a></h3>
+<div class='topic'><!-- START: 2.12 - juneau-marshall.Transforms -->
 <p>
 	By default, the Juneau framework can serialize and parse a wide variety of POJOs out-of-the-box.  
 	However, two special classes are provided tailor how certain Java objects are handled by the framework.
@@ -2061,8 +2080,8 @@
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.PojoSwaps' id='juneau-marshall.Transforms.PojoSwaps'>2.11.1 - PojoSwaps</a></h4>
-<div class='topic'><!-- START: 2.11.1 - juneau-marshall.Transforms.PojoSwaps -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.PojoSwaps' id='juneau-marshall.Transforms.PojoSwaps'>2.12.1 - PojoSwaps</a></h4>
+<div class='topic'><!-- START: 2.12.1 - juneau-marshall.Transforms.PojoSwaps -->
 <p>
 	{@link org.apache.juneau.transform.PojoSwap PojoSwaps} are a critical component of Juneau.
 	They allow the serializers and parsers to handle Java objects that wouldn't normally be serializable.
@@ -2156,12 +2175,12 @@
 	json = s.serialize(bytes2d);		<jc>// Produces "['AQID','BAUG',null]"</jc>
 	bytes2d = p.parse(json, <jk>byte</jk>[][].<jk>class</jk>);		<jc>// Reproduces {{1,2,3},{4,5,6},null}</jc>
 </p>
-</div><!-- END: 2.11.1 - juneau-marshall.Transforms.PojoSwaps -->
+</div><!-- END: 2.12.1 - juneau-marshall.Transforms.PojoSwaps -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.DefaultPojoSwaps' id='juneau-marshall.Transforms.DefaultPojoSwaps'>2.11.2 - Default PojoSwaps</a></h4>
-<div class='topic'><!-- START: 2.11.2 - juneau-marshall.Transforms.DefaultPojoSwaps -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.DefaultPojoSwaps' id='juneau-marshall.Transforms.DefaultPojoSwaps'>2.12.2 - Default PojoSwaps</a></h4>
+<div class='topic'><!-- START: 2.12.2 - juneau-marshall.Transforms.DefaultPojoSwaps -->
 <p>
 	By default, all serializers and parsers have built in <c>PojoSwaps</c> defined for the following common data types:
 </p>
@@ -2264,12 +2283,12 @@
 		</ul>
 	</li>
 </ul>
-</div><!-- END: 2.11.2 - juneau-marshall.Transforms.DefaultPojoSwaps -->
+</div><!-- END: 2.12.2 - juneau-marshall.Transforms.DefaultPojoSwaps -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.AutoPojoSwaps' id='juneau-marshall.Transforms.AutoPojoSwaps'>2.11.3 - Auto-detected POJO swaps</a></h4>
-<div class='topic'><!-- START: 2.11.3 - juneau-marshall.Transforms.AutoPojoSwaps -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.AutoPojoSwaps' id='juneau-marshall.Transforms.AutoPojoSwaps'>2.12.3 - Auto-detected POJO swaps</a></h4>
+<div class='topic'><!-- START: 2.12.3 - juneau-marshall.Transforms.AutoPojoSwaps -->
 <p>
 	Various methods can be defined on a class directly to affect how it gets serialized.
 	This can often be simpler than using <c>PojoSwaps</c>.
@@ -2423,12 +2442,12 @@
 		}
 	}
 </p>
-</div><!-- END: 2.11.3 - juneau-marshall.Transforms.AutoPojoSwaps -->
+</div><!-- END: 2.12.3 - juneau-marshall.Transforms.AutoPojoSwaps -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.PerMediaTypePojoSwaps' id='juneau-marshall.Transforms.PerMediaTypePojoSwaps'>2.11.4 - Per-media-type PojoSwaps</a></h4>
-<div class='topic'><!-- START: 2.11.4 - juneau-marshall.Transforms.PerMediaTypePojoSwaps -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.PerMediaTypePojoSwaps' id='juneau-marshall.Transforms.PerMediaTypePojoSwaps'>2.12.4 - Per-media-type PojoSwaps</a></h4>
+<div class='topic'><!-- START: 2.12.4 - juneau-marshall.Transforms.PerMediaTypePojoSwaps -->
 <p>
 	Swaps can also be defined per-media-type.		
 </p>
@@ -2523,12 +2542,12 @@
 	<ja>@Swap</ja>(mediaTypes=<js>"&#42;/*"</js>)
 	<jk>public static class</jk> MyOtherSwap <jk>extends</jk> PojoSwap&lt;MyPojo,String&gt; {...}
 </p>
-</div><!-- END: 2.11.4 - juneau-marshall.Transforms.PerMediaTypePojoSwaps -->
+</div><!-- END: 2.12.4 - juneau-marshall.Transforms.PerMediaTypePojoSwaps -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.OneWayPojoSwaps' id='juneau-marshall.Transforms.OneWayPojoSwaps'>2.11.5 - One-way PojoSwaps</a></h4>
-<div class='topic'><!-- START: 2.11.5 - juneau-marshall.Transforms.OneWayPojoSwaps -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.OneWayPojoSwaps' id='juneau-marshall.Transforms.OneWayPojoSwaps'>2.12.5 - One-way PojoSwaps</a></h4>
+<div class='topic'><!-- START: 2.12.5 - juneau-marshall.Transforms.OneWayPojoSwaps -->
 <p>
 	In the previous sections, we defined two-way swaps, meaning swaps where the original objects could be 
 	reconstructing during parsing. 
@@ -2575,12 +2594,12 @@
 	ReaderParser p = JsonParser.<jsm>create</jsm>().pojoSwaps(IteratorSwap.<jk>class</jk>).build();
 	i = p.parse(s, Iterator.<jk>class</jk>);		<jc>// Throws ParseException!!!</jc>
 </p>
-</div><!-- END: 2.11.5 - juneau-marshall.Transforms.OneWayPojoSwaps -->
+</div><!-- END: 2.12.5 - juneau-marshall.Transforms.OneWayPojoSwaps -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.SwapAnnotation' id='juneau-marshall.Transforms.SwapAnnotation'>2.11.6 - @Swap Annotation</a></h4>
-<div class='topic'><!-- START: 2.11.6 - juneau-marshall.Transforms.SwapAnnotation -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.SwapAnnotation' id='juneau-marshall.Transforms.SwapAnnotation'>2.12.6 - @Swap Annotation</a></h4>
+<div class='topic'><!-- START: 2.12.6 - juneau-marshall.Transforms.SwapAnnotation -->
 <p>
 	{@link org.apache.juneau.annotation.Swap @Swap} can be used to associate a swap class using an 
 	annotation.
@@ -2668,12 +2687,12 @@
 		}
 	}
 </p>
-</div><!-- END: 2.11.6 - juneau-marshall.Transforms.SwapAnnotation -->
+</div><!-- END: 2.12.6 - juneau-marshall.Transforms.SwapAnnotation -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.TemplatedSwaps' id='juneau-marshall.Transforms.TemplatedSwaps'>2.11.7 - Templated Swaps</a></h4>
-<div class='topic'><!-- START: 2.11.7 - juneau-marshall.Transforms.TemplatedSwaps -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.TemplatedSwaps' id='juneau-marshall.Transforms.TemplatedSwaps'>2.12.7 - Templated Swaps</a></h4>
+<div class='topic'><!-- START: 2.12.7 - juneau-marshall.Transforms.TemplatedSwaps -->
 <p>
 	The {@link org.apache.juneau.annotation.Swap#template() @Swap(template)} annotation allows you to associate
 	arbitrary contextual strings with swaps.
@@ -2707,12 +2726,12 @@
 		}
 	}
 </p>
-</div><!-- END: 2.11.7 - juneau-marshall.Transforms.TemplatedSwaps -->
+</div><!-- END: 2.12.7 - juneau-marshall.Transforms.TemplatedSwaps -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.SurrogateClasses' id='juneau-marshall.Transforms.SurrogateClasses'>2.11.8 - Surrogate Classes</a></h4>
-<div class='topic'><!-- START: 2.11.8 - juneau-marshall.Transforms.SurrogateClasses -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.SurrogateClasses' id='juneau-marshall.Transforms.SurrogateClasses'>2.12.8 - Surrogate Classes</a></h4>
+<div class='topic'><!-- START: 2.12.8 - juneau-marshall.Transforms.SurrogateClasses -->
 <p>
 <p>
 	Surrogate classes are very similar in concept to <c>PojoSwaps</c> except they're simpler to define.
@@ -2776,12 +2795,12 @@
 <ul class='seealso'>
 	<li class='jic'>{@link org.apache.juneau.transform.Surrogate}
 </ul>
-</div><!-- END: 2.11.8 - juneau-marshall.Transforms.SurrogateClasses -->
+</div><!-- END: 2.12.8 - juneau-marshall.Transforms.SurrogateClasses -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.BeanAnnotation' id='juneau-marshall.Transforms.BeanAnnotation'>2.11.9 - @Bean Annotation</a></h4>
-<div class='topic'><!-- START: 2.11.9 - juneau-marshall.Transforms.BeanAnnotation -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.BeanAnnotation' id='juneau-marshall.Transforms.BeanAnnotation'>2.12.9 - @Bean Annotation</a></h4>
+<div class='topic'><!-- START: 2.12.9 - juneau-marshall.Transforms.BeanAnnotation -->
 <p>
 	The {@link org.apache.juneau.annotation.Bean @Bean} annotation is used to tailor how beans are 
 	interpreted by the framework.
@@ -2914,12 +2933,12 @@
 		}
 	}	
 </p>
-</div><!-- END: 2.11.9 - juneau-marshall.Transforms.BeanAnnotation -->
+</div><!-- END: 2.12.9 - juneau-marshall.Transforms.BeanAnnotation -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic updated' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.BeanpAnnotation' id='juneau-marshall.Transforms.BeanpAnnotation'>2.11.10 - @Beanp Annotation</a></h4>
-<div class='topic'><!-- START: 2.11.10 - juneau-marshall.Transforms.BeanpAnnotation -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.BeanpAnnotation' id='juneau-marshall.Transforms.BeanpAnnotation'>2.12.10 - @Beanp Annotation</a></h4>
+<div class='topic'><!-- START: 2.12.10 - juneau-marshall.Transforms.BeanpAnnotation -->
 <p>
 	The {@link org.apache.juneau.annotation.Beanp @Beanp} annotation is used to tailor how 
 	individual bean properties are interpreted by the framework.
@@ -3111,12 +3130,12 @@
 	<ja>@Beanp</ja>(format=<js>"$%.2f"</js>)
 	<jk>public float</jk> <jf>price</jf>;
 </p>
-</div><!-- END: 2.11.10 - juneau-marshall.Transforms.BeanpAnnotation -->
+</div><!-- END: 2.12.10 - juneau-marshall.Transforms.BeanpAnnotation -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic updated' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.BeancAnnotation' id='juneau-marshall.Transforms.BeancAnnotation'>2.11.11 - @BeancAnnotation</a></h4>
-<div class='topic'><!-- START: 2.11.11 - juneau-marshall.Transforms.BeancAnnotation -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.BeancAnnotation' id='juneau-marshall.Transforms.BeancAnnotation'>2.12.11 - @Beanc Annotation</a></h4>
+<div class='topic'><!-- START: 2.12.11 - juneau-marshall.Transforms.BeancAnnotation -->
 <p>
 	The {@link org.apache.juneau.annotation.Beanc @Beanc} annotation is used to 
 	map constructor arguments to property names on bean with read-only properties.
@@ -3174,12 +3193,12 @@
 	If neither <c><ja>@Beanc</ja>(properties)</c> or <ja>@Name</ja> is used to identify the bean property names, 
 	we will try to use the parameter names if they are available in the bytecode.
 </p>
-</div><!-- END: 2.11.11 - juneau-marshall.Transforms.BeancAnnotation -->
+</div><!-- END: 2.12.11 - juneau-marshall.Transforms.BeancAnnotation -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.BeanIgnoreAnnotation' id='juneau-marshall.Transforms.BeanIgnoreAnnotation'>2.11.12 - @BeanIgnore Annotation</a></h4>
-<div class='topic'><!-- START: 2.11.12 - juneau-marshall.Transforms.BeanIgnoreAnnotation -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.BeanIgnoreAnnotation' id='juneau-marshall.Transforms.BeanIgnoreAnnotation'>2.12.12 - @BeanIgnore Annotation</a></h4>
+<div class='topic'><!-- START: 2.12.12 - juneau-marshall.Transforms.BeanIgnoreAnnotation -->
 <p>
 	The {@link org.apache.juneau.annotation.BeanIgnore @BeanIgnore} annotation is used to
 	ignore classes, fields, and methods from being interpreted as beans or bean components.
@@ -3207,12 +3226,12 @@
 		<jk>public</jk> String getBar() {...}
 	}
 </p>
-</div><!-- END: 2.11.12 - juneau-marshall.Transforms.BeanIgnoreAnnotation -->
+</div><!-- END: 2.12.12 - juneau-marshall.Transforms.BeanIgnoreAnnotation -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.NamePropertyAnnotation' id='juneau-marshall.Transforms.NamePropertyAnnotation'>2.11.13 - @NameProperty Annotation</a></h4>
-<div class='topic'><!-- START: 2.11.13 - juneau-marshall.Transforms.NamePropertyAnnotation -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.NamePropertyAnnotation' id='juneau-marshall.Transforms.NamePropertyAnnotation'>2.12.13 - @NameProperty Annotation</a></h4>
+<div class='topic'><!-- START: 2.12.13 - juneau-marshall.Transforms.NamePropertyAnnotation -->
 <p>
 	The {@link org.apache.juneau.annotation.NameProperty @NameProperty} annotation is used to
 	identify a setter as a method for setting the name of a POJO as it's known by its parent object.
@@ -3239,12 +3258,12 @@
 		<jk>public char</jk> <jf>sex</jf>;
 	}
 </p>
-</div><!-- END: 2.11.13 - juneau-marshall.Transforms.NamePropertyAnnotation -->
+</div><!-- END: 2.12.13 - juneau-marshall.Transforms.NamePropertyAnnotation -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.ParentPropertyAnnotation' id='juneau-marshall.Transforms.ParentPropertyAnnotation'>2.11.14 - @ParentProperty Annotation</a></h4>
-<div class='topic'><!-- START: 2.11.14 - juneau-marshall.Transforms.ParentPropertyAnnotation -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.ParentPropertyAnnotation' id='juneau-marshall.Transforms.ParentPropertyAnnotation'>2.12.14 - @ParentProperty Annotation</a></h4>
+<div class='topic'><!-- START: 2.12.14 - juneau-marshall.Transforms.ParentPropertyAnnotation -->
 <p>
 	The {@link org.apache.juneau.annotation.ParentProperty @ParentProperty} annotation is used to
 	identify a setter as a method for adding a parent reference to a child object.
@@ -3270,12 +3289,12 @@
 <p>
 	Parsers will automatically set this field for you in the child beans.
 </p>
-</div><!-- END: 2.11.14 - juneau-marshall.Transforms.ParentPropertyAnnotation -->
+</div><!-- END: 2.12.14 - juneau-marshall.Transforms.ParentPropertyAnnotation -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.PojoBuilders' id='juneau-marshall.Transforms.PojoBuilders'>2.11.15 - POJO Builders</a></h4>
-<div class='topic'><!-- START: 2.11.15 - juneau-marshall.Transforms.PojoBuilders -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.PojoBuilders' id='juneau-marshall.Transforms.PojoBuilders'>2.12.15 - POJO Builders</a></h4>
+<div class='topic'><!-- START: 2.12.15 - juneau-marshall.Transforms.PojoBuilders -->
 <p>
 	Juneau parsers can use builders to instantiate POJOs.
 	This is useful in cases where you want to create beans with read-only properties.
@@ -3384,12 +3403,12 @@
 	<li class='ja'>{@link org.apache.juneau.annotation.Builder}
 	<li class='jic'>{@link org.apache.juneau.transform.Builder}
 </ul>
-</div><!-- END: 2.11.15 - juneau-marshall.Transforms.PojoBuilders -->
+</div><!-- END: 2.12.15 - juneau-marshall.Transforms.PojoBuilders -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.BeanFilters' id='juneau-marshall.Transforms.BeanFilters'>2.11.16 - BeanFilter Class</a></h4>
-<div class='topic'><!-- START: 2.11.16 - juneau-marshall.Transforms.BeanFilters -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.BeanFilters' id='juneau-marshall.Transforms.BeanFilters'>2.12.16 - BeanFilter Class</a></h4>
+<div class='topic'><!-- START: 2.12.16 - juneau-marshall.Transforms.BeanFilters -->
 <p>
 	The {@link org.apache.juneau.transform.BeanFilter} class is the programmatic equivalent to the
 	{@link org.apache.juneau.annotation.Bean @Bean} annotation.
@@ -3473,12 +3492,12 @@
 		.beanFilters(AddressInterface.<jk>class</jk>)
 		.build();
 </p>
-</div><!-- END: 2.11.16 - juneau-marshall.Transforms.BeanFilters -->
+</div><!-- END: 2.12.16 - juneau-marshall.Transforms.BeanFilters -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.InterfaceFilters' id='juneau-marshall.Transforms.InterfaceFilters'>2.11.17 - Interface Filters</a></h4>
-<div class='topic'><!-- START: 2.11.17 - juneau-marshall.Transforms.InterfaceFilters -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.InterfaceFilters' id='juneau-marshall.Transforms.InterfaceFilters'>2.12.17 - Interface Filters</a></h4>
+<div class='topic'><!-- START: 2.12.17 - juneau-marshall.Transforms.InterfaceFilters -->
 <p>
 	Occasionally, you may want to limit bean properties to only those defined on a parent class or interface.  
 	This is accomplished through interface filters.
@@ -3577,12 +3596,12 @@
 		<jk>public</jk> String getFoo() {...};
 	}
 </p>
-</div><!-- END: 2.11.17 - juneau-marshall.Transforms.InterfaceFilters -->
+</div><!-- END: 2.12.17 - juneau-marshall.Transforms.InterfaceFilters -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.StopClasses' id='juneau-marshall.Transforms.StopClasses'>2.11.18 - Stop Classes</a></h4>
-<div class='topic'><!-- START: 2.11.18 - juneau-marshall.Transforms.StopClasses -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.StopClasses' id='juneau-marshall.Transforms.StopClasses'>2.12.18 - Stop Classes</a></h4>
+<div class='topic'><!-- START: 2.12.18 - juneau-marshall.Transforms.StopClasses -->
 <p>
 	Whereas interface filters limit properties defined on child classes, stop filters 
 	do the opposite and limit properties defined on parent classes.
@@ -3619,12 +3638,12 @@
 	<jc>// Serializes property 'p3', but NOT 'p1' or 'p2'.</jc>
 	String json = JsonSerializer.<jsf>DEFAULT</jsf>.serialize(<jk>new</jk> C3());
 </p>
-</div><!-- END: 2.11.18 - juneau-marshall.Transforms.StopClasses -->
+</div><!-- END: 2.12.18 - juneau-marshall.Transforms.StopClasses -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.BypassSerialization' id='juneau-marshall.Transforms.BypassSerialization'>2.11.19 - Bypass Serialization using Readers and InputStreams</a></h4>
-<div class='topic'><!-- START: 2.11.19 - juneau-marshall.Transforms.BypassSerialization -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Transforms.BypassSerialization' id='juneau-marshall.Transforms.BypassSerialization'>2.12.19 - Bypass Serialization using Readers and InputStreams</a></h4>
+<div class='topic'><!-- START: 2.12.19 - juneau-marshall.Transforms.BypassSerialization -->
 <p>
 	Juneau serializers treat instances of <c>Readers</c> and <c>InputStreams</c> special by 
 	simply serializing their contents directly to the output stream or writer.
@@ -3671,13 +3690,13 @@
 	This is due to the fact that the RDF serializers use a DOM for serialization, so we don't have
 	access to the underlying stream.
 </div>
-</div><!-- END: 2.11.19 - juneau-marshall.Transforms.BypassSerialization -->
-</div><!-- END: 2.11 - juneau-marshall.Transforms -->
+</div><!-- END: 2.12.19 - juneau-marshall.Transforms.BypassSerialization -->
+</div><!-- END: 2.12 - juneau-marshall.Transforms -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.BeanDictionaries' id='juneau-marshall.BeanDictionaries'>2.12 - Bean Names and Dictionaries</a></h3>
-<div class='topic'><!-- START: 2.12 - juneau-marshall.BeanDictionaries -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.BeanDictionaries' id='juneau-marshall.BeanDictionaries'>2.13 - Bean Names and Dictionaries</a></h3>
+<div class='topic'><!-- START: 2.13 - juneau-marshall.BeanDictionaries -->
 <p>
 	While parsing into beans, Juneau attempts to determine the class types of bean properties through 
 	reflection on the bean property getter or setter.
@@ -3834,8 +3853,8 @@
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.BeanDictionaries.BeanSubTypes' id='juneau-marshall.BeanDictionaries.BeanSubTypes'>2.12.1 - Bean Subtypes</a></h4>
-<div class='topic'><!-- START: 2.12.1 - juneau-marshall.BeanDictionaries.BeanSubTypes -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.BeanDictionaries.BeanSubTypes' id='juneau-marshall.BeanDictionaries.BeanSubTypes'>2.13.1 - Bean Subtypes</a></h4>
+<div class='topic'><!-- START: 2.13.1 - juneau-marshall.BeanDictionaries.BeanSubTypes -->
 <p>
 	In addition to the bean type name support described above, simplified support is provided
 	for bean subtypes.
@@ -3890,13 +3909,13 @@
 	A a = p.parse(r, A.<jk>class</jk>);
 	<jsm>assertTrue</jsm>(a <jk>instanceof</jk> A1);
 </p>
-</div><!-- END: 2.12.1 - juneau-marshall.BeanDictionaries.BeanSubTypes -->
-</div><!-- END: 2.12 - juneau-marshall.BeanDictionaries -->
+</div><!-- END: 2.13.1 - juneau-marshall.BeanDictionaries.BeanSubTypes -->
+</div><!-- END: 2.13 - juneau-marshall.BeanDictionaries -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.VirtualBeans' id='juneau-marshall.VirtualBeans'>2.13 - Virtual Beans</a></h3>
-<div class='topic'><!-- START: 2.13 - juneau-marshall.VirtualBeans -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.VirtualBeans' id='juneau-marshall.VirtualBeans'>2.14 - Virtual Beans</a></h3>
+<div class='topic'><!-- START: 2.14 - juneau-marshall.VirtualBeans -->
 <p>
 	The {@link org.apache.juneau.BeanContext#BEAN_useInterfaceProxies} setting (enabled by default) allows
 	the Juneau parsers to parse content into virtual beans (bean interfaces without implementation classes).
@@ -3944,12 +3963,12 @@
 <p class='bpcode w800'>
 	Address address = BeanContext.<jsf>DEFAULT</jsf>.createSession().newBean(Address.<jk>class</jk>);
 </p>
-</div><!-- END: 2.13 - juneau-marshall.VirtualBeans -->
+</div><!-- END: 2.14 - juneau-marshall.VirtualBeans -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Recursion' id='juneau-marshall.Recursion'>2.14 - Non-Tree Models and Recursion Detection</a></h3>
-<div class='topic'><!-- START: 2.14 - juneau-marshall.Recursion -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.Recursion' id='juneau-marshall.Recursion'>2.15 - Non-Tree Models and Recursion Detection</a></h3>
+<div class='topic'><!-- START: 2.15 - juneau-marshall.Recursion -->
 <p>
 	The Juneau Serializer API is designed to be used against POJO tree structures. 
 	It expects that there not be loops in the POJO model (e.g. children with references to parents, etc...).
@@ -4013,12 +4032,12 @@
 	Recursion detection introduces a performance penalty of around 20%.
 	For this reason the setting is disabled by default.
 </p>
-</div><!-- END: 2.14 - juneau-marshall.Recursion -->
+</div><!-- END: 2.15 - juneau-marshall.Recursion -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.ParsingIntoGenericModels' id='juneau-marshall.ParsingIntoGenericModels'>2.15 - Parsing into Generic Models</a></h3>
-<div class='topic'><!-- START: 2.15 - juneau-marshall.ParsingIntoGenericModels -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.ParsingIntoGenericModels' id='juneau-marshall.ParsingIntoGenericModels'>2.16 - Parsing into Generic Models</a></h3>
+<div class='topic'><!-- START: 2.16 - juneau-marshall.ParsingIntoGenericModels -->
 <p>
 	The Juneau parsers are not limited to parsing back into the original bean classes.
 	If the bean classes are not available on the parsing side, the parser can also be used to 
@@ -4128,12 +4147,12 @@
 	As a general rule, parsing into beans is often more efficient than parsing into generic models.
 	And working with beans is often less error prone than working with generic models.
 </p>
-</div><!-- END: 2.15 - juneau-marshall.ParsingIntoGenericModels -->
+</div><!-- END: 2.16 - juneau-marshall.ParsingIntoGenericModels -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.ReadingContinuousStreams' id='juneau-marshall.ReadingContinuousStreams'>2.16 - Reading Continuous Streams</a></h3>
-<div class='topic'><!-- START: 2.16 - juneau-marshall.ReadingContinuousStreams -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.ReadingContinuousStreams' id='juneau-marshall.ReadingContinuousStreams'>2.17 - Reading Continuous Streams</a></h3>
+<div class='topic'><!-- START: 2.17 - juneau-marshall.ReadingContinuousStreams -->
 <p>
 	The following parsers can be configured to read continuous streams of objects from the same input stream:
 </p>
@@ -4180,12 +4199,12 @@
 	The {@link org.apache.juneau.msgpack.MsgPackParser} class doesn't use any internal buffering to begin with, so it can be used with
 	continuous streams without any special properties.
 </p>
-</div><!-- END: 2.16 - juneau-marshall.ReadingContinuousStreams -->
+</div><!-- END: 2.17 - juneau-marshall.ReadingContinuousStreams -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.URIs' id='juneau-marshall.URIs'>2.17 - URIs</a></h3>
-<div class='topic'><!-- START: 2.17 - juneau-marshall.URIs -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.URIs' id='juneau-marshall.URIs'>2.18 - URIs</a></h3>
+<div class='topic'><!-- START: 2.18 - juneau-marshall.URIs -->
 <p>
 	Juneau serializers have sophisticated support for transforming relative URIs to absolute form.
 </p>
@@ -4323,12 +4342,12 @@
 		}
 	}
 </p>
-</div><!-- END: 2.17 - juneau-marshall.URIs -->
+</div><!-- END: 2.18 - juneau-marshall.URIs -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.JacksonComparison' id='juneau-marshall.JacksonComparison'>2.18 - Comparison with Jackson</a></h3>
-<div class='topic'><!-- START: 2.18 - juneau-marshall.JacksonComparison -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.JacksonComparison' id='juneau-marshall.JacksonComparison'>2.19 - Comparison with Jackson</a></h3>
+<div class='topic'><!-- START: 2.19 - juneau-marshall.JacksonComparison -->
 <p>
 	Juneau was developed independently from Jackson, but shares many of the same features and capabilities.
 	Whereas Jackson was created to work primarily with JSON, Juneau was created to work for multiple languages.
@@ -4436,12 +4455,12 @@
 		</td>
 	</tr>
 </table>
-</div><!-- END: 2.18 - juneau-marshall.JacksonComparison -->
+</div><!-- END: 2.19 - juneau-marshall.JacksonComparison -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.PojoCategories' id='juneau-marshall.PojoCategories'>2.19 - POJO Categories</a></h3>
-<div class='topic'><!-- START: 2.19 - juneau-marshall.PojoCategories -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.PojoCategories' id='juneau-marshall.PojoCategories'>2.20 - POJO Categories</a></h3>
+<div class='topic'><!-- START: 2.20 - juneau-marshall.PojoCategories -->
 <p>
 	The following chart shows POJOs categorized into groups and whether they can be serialized or parsed:
 </p>
@@ -4771,12 +4790,12 @@
 <p>
 	POJOs are considered convertible from X if any of the reverse of above are true.
 </p>
-</div><!-- END: 2.19 - juneau-marshall.PojoCategories -->
+</div><!-- END: 2.20 - juneau-marshall.PojoCategories -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails' id='juneau-marshall.JsonDetails'>2.20 - JSON Details</a></h3>
-<div class='topic'><!-- START: 2.20 - juneau-marshall.JsonDetails -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails' id='juneau-marshall.JsonDetails'>2.21 - JSON Details</a></h3>
+<div class='topic'><!-- START: 2.21 - juneau-marshall.JsonDetails -->
 <p>
 	Juneau supports converting arbitrary POJOs to and from JSON using ultra-efficient serializers and parsers.
 	The JSON serializer converts POJOs directly to JSON without the need for intermediate DOM objects using a 
@@ -4858,8 +4877,8 @@
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.Methodology' id='juneau-marshall.JsonDetails.Methodology'>2.20.1 - JSON Methodology</a></h4>
-<div class='topic'><!-- START: 2.20.1 - juneau-marshall.JsonDetails.Methodology -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.Methodology' id='juneau-marshall.JsonDetails.Methodology'>2.21.1 - JSON Methodology</a></h4>
+<div class='topic'><!-- START: 2.21.1 - juneau-marshall.JsonDetails.Methodology -->
 <p>
 	The JSON data type produced depends on the Java object type being serialized.
 </p>
@@ -4930,12 +4949,12 @@
 	<c>Calendar</c> object to ISO8601 strings, or <c><jk>byte</jk>[]</c> arrays to Base-64 
 	encoded strings.
 </p>
-</div><!-- END: 2.20.1 - juneau-marshall.JsonDetails.Methodology -->
+</div><!-- END: 2.21.1 - juneau-marshall.JsonDetails.Methodology -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.Serializers' id='juneau-marshall.JsonDetails.Serializers'>2.20.2 - JSON Serializers</a></h4>
-<div class='topic'><!-- START: 2.20.2 - juneau-marshall.JsonDetails.Serializers -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.Serializers' id='juneau-marshall.JsonDetails.Serializers'>2.21.2 - JSON Serializers</a></h4>
+<div class='topic'><!-- START: 2.21.2 - juneau-marshall.JsonDetails.Serializers -->
 <p>
 	The {@link org.apache.juneau.json.JsonSerializer} class is used to serialize POJOs into JSON.
 </p>	
@@ -4967,12 +4986,12 @@
 		<li class='jf'>{@link org.apache.juneau.json.SimpleJsonSerializer#DEFAULT_READABLE DEFAULT_READABLE}
 	</ul>
 </ul>
-</div><!-- END: 2.20.2 - juneau-marshall.JsonDetails.Serializers -->
+</div><!-- END: 2.21.2 - juneau-marshall.JsonDetails.Serializers -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.SimplifiedJson' id='juneau-marshall.JsonDetails.SimplifiedJson'>2.20.3 - Simplified JSON</a></h4>
-<div class='topic'><!-- START: 2.20.3 - juneau-marshall.JsonDetails.SimplifiedJson -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.SimplifiedJson' id='juneau-marshall.JsonDetails.SimplifiedJson'>2.21.3 - Simplified JSON</a></h4>
+<div class='topic'><!-- START: 2.21.3 - juneau-marshall.JsonDetails.SimplifiedJson -->
 <p>
 	The {@link org.apache.juneau.json.SimpleJsonSerializer} class can be used to serialized POJOs into Simplified JSON notation.
 </p>
@@ -5028,12 +5047,12 @@
 <ul class='seealso'>
 	<li class='jf'>{@link org.apache.juneau.json.JsonSerializer#JSON_simpleMode}
 </ul>
-</div><!-- END: 2.20.3 - juneau-marshall.JsonDetails.SimplifiedJson -->
+</div><!-- END: 2.21.3 - juneau-marshall.JsonDetails.SimplifiedJson -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.Parsers' id='juneau-marshall.JsonDetails.Parsers'>2.20.4 - JSON Parsers</a></h4>
-<div class='topic'><!-- START: 2.20.4 - juneau-marshall.JsonDetails.Parsers -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.Parsers' id='juneau-marshall.JsonDetails.Parsers'>2.21.4 - JSON Parsers</a></h4>
+<div class='topic'><!-- START: 2.21.4 - juneau-marshall.JsonDetails.Parsers -->
 <p>
 	The {@link org.apache.juneau.json.JsonParser} class is used to parse JSON into POJOs.
 </p>	
@@ -5073,12 +5092,12 @@
 	<li>
 		Concatenated strings. 
 </ul>
-</div><!-- END: 2.20.4 - juneau-marshall.JsonDetails.Parsers -->
+</div><!-- END: 2.21.4 - juneau-marshall.JsonDetails.Parsers -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.JsonAnnotation' id='juneau-marshall.JsonDetails.JsonAnnotation'>2.20.5 - @Json Annotation</a></h4>
-<div class='topic'><!-- START: 2.20.5 - juneau-marshall.JsonDetails.JsonAnnotation -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.JsonAnnotation' id='juneau-marshall.JsonDetails.JsonAnnotation'>2.21.5 - @Json Annotation</a></h4>
+<div class='topic'><!-- START: 2.21.5 - juneau-marshall.JsonDetails.JsonAnnotation -->
 <p>
 	The {@link org.apache.juneau.json.annotation.Json @Json} annotation
 	is used to override the behavior of {@link org.apache.juneau.json.JsonSerializer} on individual bean classes or properties.
@@ -5126,12 +5145,12 @@
 		</td>
 	</tr>
 </table>
-</div><!-- END: 2.20.5 - juneau-marshall.JsonDetails.JsonAnnotation -->
+</div><!-- END: 2.21.5 - juneau-marshall.JsonDetails.JsonAnnotation -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.JsonSchema' id='juneau-marshall.JsonDetails.JsonSchema'>2.20.6 - JSON-Schema Support</a></h4>
-<div class='topic'><!-- START: 2.20.6 - juneau-marshall.JsonDetails.JsonSchema -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.JsonDetails.JsonSchema' id='juneau-marshall.JsonDetails.JsonSchema'>2.21.6 - JSON-Schema Support</a></h4>
+<div class='topic'><!-- START: 2.21.6 - juneau-marshall.JsonDetails.JsonSchema -->
 <p>
 	Juneau provides the {@link org.apache.juneau.json.JsonSchemaSerializer} class for generating JSON-Schema 
 	documents that describe the output generated by the {@link org.apache.juneau.json.JsonSerializer} class.
@@ -5223,13 +5242,13 @@
 		}
 	}
 </p>
-</div><!-- END: 2.20.6 - juneau-marshall.JsonDetails.JsonSchema -->
-</div><!-- END: 2.20 - juneau-marshall.JsonDetails -->
+</div><!-- END: 2.21.6 - juneau-marshall.JsonDetails.JsonSchema -->
+</div><!-- END: 2.21 - juneau-marshall.JsonDetails -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails' id='juneau-marshall.XmlDetails'>2.21 - XML Details</a></h3>
-<div class='topic'><!-- START: 2.21 - juneau-marshall.XmlDetails -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails' id='juneau-marshall.XmlDetails'>2.22 - XML Details</a></h3>
+<div class='topic'><!-- START: 2.22 - juneau-marshall.XmlDetails -->
 <p>
 	Juneau supports converting arbitrary POJOs to and from XML using ultra-efficient serializers and parsers.
 	The XML serializer converts POJOs directly to XML without the need for intermediate DOM objects.
@@ -5306,8 +5325,8 @@
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.Methodology' id='juneau-marshall.XmlDetails.Methodology'>2.21.1 - XML Methodology</a></h4>
-<div class='topic'><!-- START: 2.21.1 - juneau-marshall.XmlDetails.Methodology -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.Methodology' id='juneau-marshall.XmlDetails.Methodology'>2.22.1 - XML Methodology</a></h4>
+<div class='topic'><!-- START: 2.22.1 - juneau-marshall.XmlDetails.Methodology -->
 <p>
 	The following examples show how different data types are represented in XML.
 	They mirror how the data structures are represented in JSON.
@@ -5709,12 +5728,12 @@
 		</xt></td>
 	</tr>
 </table>
-</div><!-- END: 2.21.1 - juneau-marshall.XmlDetails.Methodology -->
+</div><!-- END: 2.22.1 - juneau-marshall.XmlDetails.Methodology -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.Serializers' id='juneau-marshall.XmlDetails.Serializers'>2.21.2 - XML Serializers</a></h4>
-<div class='topic'><!-- START: 2.21.2 - juneau-marshall.XmlDetails.Serializers -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.Serializers' id='juneau-marshall.XmlDetails.Serializers'>2.22.2 - XML Serializers</a></h4>
+<div class='topic'><!-- START: 2.22.2 - juneau-marshall.XmlDetails.Serializers -->
 <p>
 	The {@link org.apache.juneau.xml.XmlSerializer} class is used to serialize POJOs into XML.
 </p>	
@@ -5755,12 +5774,12 @@
 		<li class='jf'>{@link org.apache.juneau.xml.XmlSerializer#DEFAULT_XS_NAMESPACE DEFAULT_XS_NAMESPACE}				
 	</ul>
 </ul>
-</div><!-- END: 2.21.2 - juneau-marshall.XmlDetails.Serializers -->
+</div><!-- END: 2.22.2 - juneau-marshall.XmlDetails.Serializers -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.Parsers' id='juneau-marshall.XmlDetails.Parsers'>2.21.3 - XML Parsers</a></h4>
-<div class='topic'><!-- START: 2.21.3 - juneau-marshall.XmlDetails.Parsers -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.Parsers' id='juneau-marshall.XmlDetails.Parsers'>2.22.3 - XML Parsers</a></h4>
+<div class='topic'><!-- START: 2.22.3 - juneau-marshall.XmlDetails.Parsers -->
 <p>
 	The {@link org.apache.juneau.xml.XmlParser} class is used to parse XML into POJOs.
 </p>	
@@ -5788,12 +5807,12 @@
 		<li class='jf'>{@link org.apache.juneau.xml.XmlParser#DEFAULT DEFAULT}
 	</ul>
 </ul>
-</div><!-- END: 2.21.3 - juneau-marshall.XmlDetails.Parsers -->
+</div><!-- END: 2.22.3 - juneau-marshall.XmlDetails.Parsers -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.BeanTypeNameAnnotation' id='juneau-marshall.XmlDetails.BeanTypeNameAnnotation'>2.21.4 - @Bean(typeName) Annotation</a></h4>
-<div class='topic'><!-- START: 2.21.4 - juneau-marshall.XmlDetails.BeanTypeNameAnnotation -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.BeanTypeNameAnnotation' id='juneau-marshall.XmlDetails.BeanTypeNameAnnotation'>2.22.4 - @Bean(typeName) Annotation</a></h4>
+<div class='topic'><!-- START: 2.22.4 - juneau-marshall.XmlDetails.BeanTypeNameAnnotation -->
 <p>
 	The {@link org.apache.juneau.annotation.Bean#typeName() @Bean(typeName)} annotation can be used to 
 	override the Juneau default name on bean elements. 
@@ -6272,12 +6291,12 @@
 	{@link javax.xml.stream.XMLInputFactory#IS_REPLACING_ENTITY_REFERENCES} setting in Java
 	forced us to make some hard design decisions that may not be the most elegant.
 </p>
-</div><!-- END: 2.21.4 - juneau-marshall.XmlDetails.BeanTypeNameAnnotation -->
+</div><!-- END: 2.22.4 - juneau-marshall.XmlDetails.BeanTypeNameAnnotation -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.XmlChildNameAnnotation' id='juneau-marshall.XmlDetails.XmlChildNameAnnotation'>2.21.5 - @Xml(childName) Annotation</a></h4>
-<div class='topic'><!-- START: 2.21.5 - juneau-marshall.XmlDetails.XmlChildNameAnnotation -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.XmlChildNameAnnotation' id='juneau-marshall.XmlDetails.XmlChildNameAnnotation'>2.22.5 - @Xml(childName) Annotation</a></h4>
+<div class='topic'><!-- START: 2.22.5 - juneau-marshall.XmlDetails.XmlChildNameAnnotation -->
 <p>
 	The {@link org.apache.juneau.xml.annotation.Xml#childName() @Xml(childName)} annotation can be used to 
 	specify the name of XML child elements for bean properties of type collection or array.
@@ -6361,12 +6380,12 @@
 		</xt></td>
 	</tr>
 </table>
-</div><!-- END: 2.21.5 - juneau-marshall.XmlDetails.XmlChildNameAnnotation -->
+</div><!-- END: 2.22.5 - juneau-marshall.XmlDetails.XmlChildNameAnnotation -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.XmlFormatAnnotation' id='juneau-marshall.XmlDetails.XmlFormatAnnotation'>2.21.6 - @Xml(format) Annotation</a></h4>
-<div class='topic'><!-- START: 2.21.6 - juneau-marshall.XmlDetails.XmlFormatAnnotation -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.XmlFormatAnnotation' id='juneau-marshall.XmlDetails.XmlFormatAnnotation'>2.22.6 - @Xml(format) Annotation</a></h4>
+<div class='topic'><!-- START: 2.22.6 - juneau-marshall.XmlDetails.XmlFormatAnnotation -->
 <p>
 	The {@link org.apache.juneau.xml.annotation.Xml#format() @Xml(format)} annotation can be used to tweak 
 	the XML format of a POJO.
@@ -7074,12 +7093,12 @@
 		</xt></td>
 	</tr>
 </table>
-</div><!-- END: 2.21.6 - juneau-marshall.XmlDetails.XmlFormatAnnotation -->
+</div><!-- END: 2.22.6 - juneau-marshall.XmlDetails.XmlFormatAnnotation -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.Namespaces' id='juneau-marshall.XmlDetails.Namespaces'>2.21.7 - Namespaces</a></h4>
-<div class='topic'><!-- START: 2.21.7 - juneau-marshall.XmlDetails.Namespaces -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.Namespaces' id='juneau-marshall.XmlDetails.Namespaces'>2.22.7 - Namespaces</a></h4>
+<div class='topic'><!-- START: 2.22.7 - juneau-marshall.XmlDetails.Namespaces -->
 <p>
 	Let's go back to the example of our original <c>Person</c> bean class, but add some namespace annotations:
 </p>
@@ -7245,12 +7264,12 @@
 		.namespaces(<js>"{per:'http://www.apache.org/person/'}"</js>)
 		.build();
 </p>
-</div><!-- END: 2.21.7 - juneau-marshall.XmlDetails.Namespaces -->
+</div><!-- END: 2.22.7 - juneau-marshall.XmlDetails.Namespaces -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.XmlSchema' id='juneau-marshall.XmlDetails.XmlSchema'>2.21.8 - XML-Schema Support</a></h4>
-<div class='topic'><!-- START: 2.21.8 - juneau-marshall.XmlDetails.XmlSchema -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.XmlDetails.XmlSchema' id='juneau-marshall.XmlDetails.XmlSchema'>2.22.8 - XML-Schema Support</a></h4>
+<div class='topic'><!-- START: 2.22.8 - juneau-marshall.XmlDetails.XmlSchema -->
 <p>
 	Juneau provides the {@link org.apache.juneau.xmlschema.XmlSchemaSerializer} class for generating XML-Schema 
 	documents that describe the output generated by the {@link org.apache.juneau.xml.XmlSerializer} class.
@@ -7503,13 +7522,13 @@
 	#getValidator(SerializerSession,Object)} method is provided to create a 
 	{@link javax.xml.validation.Validator} using the input from the serialize method.
 </p>
-</div><!-- END: 2.21.8 - juneau-marshall.XmlDetails.XmlSchema -->
-</div><!-- END: 2.21 - juneau-marshall.XmlDetails -->
+</div><!-- END: 2.22.8 - juneau-marshall.XmlDetails.XmlSchema -->
+</div><!-- END: 2.22 - juneau-marshall.XmlDetails -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails' id='juneau-marshall.HtmlDetails'>2.22 - HTML Details</a></h3>
-<div class='topic'><!-- START: 2.22 - juneau-marshall.HtmlDetails -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails' id='juneau-marshall.HtmlDetails'>2.23 - HTML Details</a></h3>
+<div class='topic'><!-- START: 2.23 - juneau-marshall.HtmlDetails -->
 <p>
 	Juneau supports converting arbitrary POJOs to and from HTML.
 	Built on top of the existing XML parser, it also uses a STaX parser and creates POJOs directly without intermediate DOM objects.
@@ -7520,8 +7539,8 @@
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.Methodology' id='juneau-marshall.HtmlDetails.Methodology'>2.22.1 - HTML Methodology</a></h4>
-<div class='topic'><!-- START: 2.22.1 - juneau-marshall.HtmlDetails.Methodology -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.Methodology' id='juneau-marshall.HtmlDetails.Methodology'>2.23.1 - HTML Methodology</a></h4>
+<div class='topic'><!-- START: 2.23.1 - juneau-marshall.HtmlDetails.Methodology -->
 <p>
 	The following examples show how different data types are represented in HTML.
 	They mirror how the data structures are represented in JSON.
@@ -8029,12 +8048,12 @@
 		</xt></td>
 	</tr>
 </table>
-</div><!-- END: 2.22.1 - juneau-marshall.HtmlDetails.Methodology -->
+</div><!-- END: 2.23.1 - juneau-marshall.HtmlDetails.Methodology -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.Serializers' id='juneau-marshall.HtmlDetails.Serializers'>2.22.2 - HTML Serializers</a></h4>
-<div class='topic'><!-- START: 2.22.2 - juneau-marshall.HtmlDetails.Serializers -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.Serializers' id='juneau-marshall.HtmlDetails.Serializers'>2.23.2 - HTML Serializers</a></h4>
+<div class='topic'><!-- START: 2.23.2 - juneau-marshall.HtmlDetails.Serializers -->
 <p>
 	The {@link org.apache.juneau.html.HtmlSerializer} class is used to serialize POJOs into HTML.
 </p>	
@@ -8088,12 +8107,12 @@
 		<li class='jf'>{@link org.apache.juneau.html.HtmlDocSerializer#DEFAULT }
 	</ul>
 </ul>
-</div><!-- END: 2.22.2 - juneau-marshall.HtmlDetails.Serializers -->
+</div><!-- END: 2.23.2 - juneau-marshall.HtmlDetails.Serializers -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.Parsers' id='juneau-marshall.HtmlDetails.Parsers'>2.22.3 - HTML Parsers</a></h4>
-<div class='topic'><!-- START: 2.22.3 - juneau-marshall.HtmlDetails.Parsers -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.Parsers' id='juneau-marshall.HtmlDetails.Parsers'>2.23.3 - HTML Parsers</a></h4>
+<div class='topic'><!-- START: 2.23.3 - juneau-marshall.HtmlDetails.Parsers -->
 <p>
 	The {@link org.apache.juneau.html.HtmlParser} class is used to parse HTML into POJOs.
 	They can also parse the contents produced by {@link org.apache.juneau.html.HtmlDocSerializer}.
@@ -8114,12 +8133,12 @@
 		<li class='jf'>{@link org.apache.juneau.html.HtmlParser#DEFAULT DEFAULT}
 	</ul>
 </ul>
-</div><!-- END: 2.22.3 - juneau-marshall.HtmlDetails.Parsers -->
+</div><!-- END: 2.23.3 - juneau-marshall.HtmlDetails.Parsers -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.HtmlAnnotation' id='juneau-marshall.HtmlDetails.HtmlAnnotation'>2.22.4 - @Html Annotation</a></h4>
-<div class='topic'><!-- START: 2.22.4 - juneau-marshall.HtmlDetails.HtmlAnnotation -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.HtmlAnnotation' id='juneau-marshall.HtmlDetails.HtmlAnnotation'>2.23.4 - @Html Annotation</a></h4>
+<div class='topic'><!-- START: 2.23.4 - juneau-marshall.HtmlDetails.HtmlAnnotation -->
 <p>
 	The {@link org.apache.juneau.html.annotation.Html @Html} annotation can be used to customize how POJOs are serialized to HTML on a per-class/field/method basis.
 </p>
@@ -8175,12 +8194,12 @@
 <p>
 	The {@link org.apache.juneau.html.annotation.Html#noTables @Html(noTables)} annotation is used to force beans to be serialized as trees instead of tables
 </p>
-</div><!-- END: 2.22.4 - juneau-marshall.HtmlDetails.HtmlAnnotation -->
+</div><!-- END: 2.23.4 - juneau-marshall.HtmlDetails.HtmlAnnotation -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.HtmlRenderAnnotation' id='juneau-marshall.HtmlDetails.HtmlRenderAnnotation'>2.22.5 - @Html(render) Annotation</a></h4>
-<div class='topic'><!-- START: 2.22.5 - juneau-marshall.HtmlDetails.HtmlRenderAnnotation -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.HtmlRenderAnnotation' id='juneau-marshall.HtmlDetails.HtmlRenderAnnotation'>2.23.5 - @Html(render) Annotation</a></h4>
+<div class='topic'><!-- START: 2.23.5 - juneau-marshall.HtmlDetails.HtmlRenderAnnotation -->
 <p>
 	The {@link org.apache.juneau.html.annotation.Html#render @Html(render)} annotation allows for custom rendering of bean property values when serialized as HTML. 
 	Using this class, you can alter the CSS style and HTML content of the bean property.
@@ -8282,12 +8301,12 @@
 		}
 	}
 </p>
-</div><!-- END: 2.22.5 - juneau-marshall.HtmlDetails.HtmlRenderAnnotation -->
+</div><!-- END: 2.23.5 - juneau-marshall.HtmlDetails.HtmlRenderAnnotation -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.HtmlDocSerializer' id='juneau-marshall.HtmlDetails.HtmlDocSerializer'>2.22.6 - HtmlDocSerializer</a></h4>
-<div class='topic'><!-- START: 2.22.6 - juneau-marshall.HtmlDetails.HtmlDocSerializer -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.HtmlDocSerializer' id='juneau-marshall.HtmlDetails.HtmlDocSerializer'>2.23.6 - HtmlDocSerializer</a></h4>
+<div class='topic'><!-- START: 2.23.6 - juneau-marshall.HtmlDetails.HtmlDocSerializer -->
 <p>
 	{@link org.apache.juneau.html.HtmlDocSerializer} is an extension of {@link org.apache.juneau.html.HtmlSerializer}
 	that wraps serialized POJOs in a complete HTML document. 
@@ -8339,12 +8358,12 @@
 	a template for the HTML page being generated.
 	The default template is described next.
 </p>
-</div><!-- END: 2.22.6 - juneau-marshall.HtmlDetails.HtmlDocSerializer -->
+</div><!-- END: 2.23.6 - juneau-marshall.HtmlDetails.HtmlDocSerializer -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.BasicHtmlDocTemplate' id='juneau-marshall.HtmlDetails.BasicHtmlDocTemplate'>2.22.7 - BasicHtmlDocTemplate</a></h4>
-<div class='topic'><!-- START: 2.22.7 - juneau-marshall.HtmlDetails.BasicHtmlDocTemplate -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.BasicHtmlDocTemplate' id='juneau-marshall.HtmlDetails.BasicHtmlDocTemplate'>2.23.7 - BasicHtmlDocTemplate</a></h4>
+<div class='topic'><!-- START: 2.23.7 - juneau-marshall.HtmlDetails.BasicHtmlDocTemplate -->
 <p>
 	The {@link org.apache.juneau.html.BasicHtmlDocTemplate} class defines a default template for HTML documents
 	created by {@link org.apache.juneau.html.HtmlDocSerializer}.
@@ -8378,12 +8397,12 @@
 		&lt;/body&gt;
 	&lt;/html&gt;</xt>
 </p>
-</div><!-- END: 2.22.7 - juneau-marshall.HtmlDetails.BasicHtmlDocTemplate -->
+</div><!-- END: 2.23.7 - juneau-marshall.HtmlDetails.BasicHtmlDocTemplate -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.CustomTemplates' id='juneau-marshall.HtmlDetails.CustomTemplates'>2.22.8 - Custom Templates</a></h4>
-<div class='topic'><!-- START: 2.22.8 - juneau-marshall.HtmlDetails.CustomTemplates -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.CustomTemplates' id='juneau-marshall.HtmlDetails.CustomTemplates'>2.23.8 - Custom Templates</a></h4>
+<div class='topic'><!-- START: 2.23.8 - juneau-marshall.HtmlDetails.CustomTemplates -->
 <p>
 	Custom page templates can be created by implementing the {@link org.apache.juneau.html.HtmlDocTemplate}
 	interface and associating it with your {@link org.apache.juneau.html.HtmlDocSerializer} using the {@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_template HTMLDOC_template}
@@ -8398,12 +8417,12 @@
 <p>
 	The interface implementation is open-ended allowing you to define the contents of the page any way you wish.
 </p>
-</div><!-- END: 2.22.8 - juneau-marshall.HtmlDetails.CustomTemplates -->
+</div><!-- END: 2.23.8 - juneau-marshall.HtmlDetails.CustomTemplates -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.HtmlSchema' id='juneau-marshall.HtmlDetails.HtmlSchema'>2.22.9 - HTML-Schema Support</a></h4>
-<div class='topic'><!-- START: 2.22.9 - juneau-marshall.HtmlDetails.HtmlSchema -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.HtmlDetails.HtmlSchema' id='juneau-marshall.HtmlDetails.HtmlSchema'>2.23.9 - HTML-Schema Support</a></h4>
+<div class='topic'><!-- START: 2.23.9 - juneau-marshall.HtmlDetails.HtmlSchema -->
 <p>
 	The {@link org.apache.juneau.html.HtmlSchemaSerializer} class is the HTML-equivalent to the
 	{@link org.apache.juneau.json.JsonSchemaSerializer} class.
@@ -8582,13 +8601,13 @@
 		</td>
 	</tr>
 </table>
-</div><!-- END: 2.22.9 - juneau-marshall.HtmlDetails.HtmlSchema -->
-</div><!-- END: 2.22 - juneau-marshall.HtmlDetails -->
+</div><!-- END: 2.23.9 - juneau-marshall.HtmlDetails.HtmlSchema -->
+</div><!-- END: 2.23 - juneau-marshall.HtmlDetails -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UonDetails' id='juneau-marshall.UonDetails'>2.23 - UON Details</a></h3>
-<div class='topic'><!-- START: 2.23 - juneau-marshall.UonDetails -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UonDetails' id='juneau-marshall.UonDetails'>2.24 - UON Details</a></h3>
+<div class='topic'><!-- START: 2.24 - juneau-marshall.UonDetails -->
 <p>
 	Juneau supports converting arbitrary POJOs to and from UON strings using ultra-efficient serializers 
 	and parsers.
@@ -8660,8 +8679,8 @@
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UonDetails.Methodology' id='juneau-marshall.UonDetails.Methodology'>2.23.1 - UON Methodology</a></h4>
-<div class='topic'><!-- START: 2.23.1 - juneau-marshall.UonDetails.Methodology -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UonDetails.Methodology' id='juneau-marshall.UonDetails.Methodology'>2.24.1 - UON Methodology</a></h4>
+<div class='topic'><!-- START: 2.24.1 - juneau-marshall.UonDetails.Methodology -->
 <h5 class='figure'>General methodology:</h5>
 <table class='styled w800' style='border-collapse:collapse'>
 	<tr><th>Java type</th><th>JSON equivalent</th><th>UON</th></tr>
@@ -8719,12 +8738,12 @@
 <p>
 	Refer to the <a href='doc-files/rfc_uon.txt'>UON specification</a> for a complete set of syntax rules.		
 </p>
-</div><!-- END: 2.23.1 - juneau-marshall.UonDetails.Methodology -->
+</div><!-- END: 2.24.1 - juneau-marshall.UonDetails.Methodology -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UonDetails.Serializers' id='juneau-marshall.UonDetails.Serializers'>2.23.2 - UON Serializers</a></h4>
-<div class='topic'><!-- START: 2.23.2 - juneau-marshall.UonDetails.Serializers -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UonDetails.Serializers' id='juneau-marshall.UonDetails.Serializers'>2.24.2 - UON Serializers</a></h4>
+<div class='topic'><!-- START: 2.24.2 - juneau-marshall.UonDetails.Serializers -->
 <p>
 	The {@link org.apache.juneau.uon.UonSerializer} class is used to serialize POJOs into UON.
 </p>	
@@ -8752,12 +8771,12 @@
 		<li class='jf'>{@link org.apache.juneau.uon.UonSerializer#DEFAULT_READABLE DEFAULT_READABLE}
 	</ul>
 </ul>
-</div><!-- END: 2.23.2 - juneau-marshall.UonDetails.Serializers -->
+</div><!-- END: 2.24.2 - juneau-marshall.UonDetails.Serializers -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UonDetails.Parsers' id='juneau-marshall.UonDetails.Parsers'>2.23.3 - UON Parsers</a></h4>
-<div class='topic'><!-- START: 2.23.3 - juneau-marshall.UonDetails.Parsers -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UonDetails.Parsers' id='juneau-marshall.UonDetails.Parsers'>2.24.3 - UON Parsers</a></h4>
+<div class='topic'><!-- START: 2.24.3 - juneau-marshall.UonDetails.Parsers -->
 <p>
 	The {@link org.apache.juneau.uon.UonParser} class is used to parse UON into POJOs.
 </p>	
@@ -8783,13 +8802,13 @@
 		<li class='jf'>{@link org.apache.juneau.uon.UonParser#DEFAULT_DECODING DEFAULT_DECODING}			
 	</ul>
 </ul>
-</div><!-- END: 2.23.3 - juneau-marshall.UonDetails.Parsers -->
-</div><!-- END: 2.23 - juneau-marshall.UonDetails -->
+</div><!-- END: 2.24.3 - juneau-marshall.UonDetails.Parsers -->
+</div><!-- END: 2.24 - juneau-marshall.UonDetails -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UrlEncodingDetails' id='juneau-marshall.UrlEncodingDetails'>2.24 - URL-Encoding Details</a></h3>
-<div class='topic'><!-- START: 2.24 - juneau-marshall.UrlEncodingDetails -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UrlEncodingDetails' id='juneau-marshall.UrlEncodingDetails'>2.25 - URL-Encoding Details</a></h3>
+<div class='topic'><!-- START: 2.25 - juneau-marshall.UrlEncodingDetails -->
 <p>
 	Juneau supports converting arbitrary POJOs to and from URL-encoded strings using ultra-efficient serializers 
 	and parsers.
@@ -8859,8 +8878,8 @@
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UrlEncodingDetails.Methodology' id='juneau-marshall.UrlEncodingDetails.Methodology'>2.24.1 - URL-Encoding Methodology</a></h4>
-<div class='topic'><!-- START: 2.24.1 - juneau-marshall.UrlEncodingDetails.Methodology -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UrlEncodingDetails.Methodology' id='juneau-marshall.UrlEncodingDetails.Methodology'>2.25.1 - URL-Encoding Methodology</a></h4>
+<div class='topic'><!-- START: 2.25.1 - juneau-marshall.UrlEncodingDetails.Methodology -->
 <h5 class='figure'>General methodology:</h5>
 <table class='styled w800' style='border-collapse:collapse'>
 	<tr><th>Java type</th><th>JSON equivalent</th><th>UON</th></tr>
@@ -8918,12 +8937,12 @@
 <p>
 	Refer to the <a href='doc-files/rfc_uon.txt'>UON specification</a> for a complete set of syntax rules.		
 </p>
-</div><!-- END: 2.24.1 - juneau-marshall.UrlEncodingDetails.Methodology -->
+</div><!-- END: 2.25.1 - juneau-marshall.UrlEncodingDetails.Methodology -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UrlEncodingDetails.Serializers' id='juneau-marshall.UrlEncodingDetails.Serializers'>2.24.2 - URL-Encoding Serializers</a></h4>
-<div class='topic'><!-- START: 2.24.2 - juneau-marshall.UrlEncodingDetails.Serializers -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UrlEncodingDetails.Serializers' id='juneau-marshall.UrlEncodingDetails.Serializers'>2.25.2 - URL-Encoding Serializers</a></h4>
+<div class='topic'><!-- START: 2.25.2 - juneau-marshall.UrlEncodingDetails.Serializers -->
 <p>
 	The {@link org.apache.juneau.urlencoding.UrlEncodingSerializer} class is used to serialize POJOs into URL-Encoding.
 </p>	
@@ -8951,12 +8970,12 @@
 		
 	</ul>
 </ul>
-</div><!-- END: 2.24.2 - juneau-marshall.UrlEncodingDetails.Serializers -->
+</div><!-- END: 2.25.2 - juneau-marshall.UrlEncodingDetails.Serializers -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UrlEncodingDetails.Parsers' id='juneau-marshall.UrlEncodingDetails.Parsers'>2.24.3 - URL-Encoding Parsers</a></h4>
-<div class='topic'><!-- START: 2.24.3 - juneau-marshall.UrlEncodingDetails.Parsers -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UrlEncodingDetails.Parsers' id='juneau-marshall.UrlEncodingDetails.Parsers'>2.25.3 - URL-Encoding Parsers</a></h4>
+<div class='topic'><!-- START: 2.25.3 - juneau-marshall.UrlEncodingDetails.Parsers -->
 <p>
 	The {@link org.apache.juneau.urlencoding.UrlEncodingParser} class is used to parse URL-Encoding into POJOs.
 </p>	
@@ -8980,12 +8999,12 @@
 		<li class='jf'>{@link org.apache.juneau.urlencoding.UrlEncodingParser#DEFAULT DEFAULT}
 	</ul>
 </ul>
-</div><!-- END: 2.24.3 - juneau-marshall.UrlEncodingDetails.Parsers -->
+</div><!-- END: 2.25.3 - juneau-marshall.UrlEncodingDetails.Parsers -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UrlEncodingDetails.UrlEncodingAnnotation' id='juneau-marshall.UrlEncodingDetails.UrlEncodingAnnotation'>2.24.4 - @UrlEncoding Annotation</a></h4>
-<div class='topic'><!-- START: 2.24.4 - juneau-marshall.UrlEncodingDetails.UrlEncodingAnnotation -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.UrlEncodingDetails.UrlEncodingAnnotation' id='juneau-marshall.UrlEncodingDetails.UrlEncodingAnnotation'>2.25.4 - @UrlEncoding Annotation</a></h4>
+<div class='topic'><!-- START: 2.25.4 - juneau-marshall.UrlEncodingDetails.UrlEncodingAnnotation -->
 <p>
 	The {@link org.apache.juneau.urlencoding.annotation.UrlEncoding @UrlEncoding} annotation
 	is used to override the behavior of {@link org.apache.juneau.urlencoding.UrlEncodingSerializer} on individual bean classes or properties.
@@ -9002,13 +9021,13 @@
 	It's identical in behavior to using the {@link org.apache.juneau.urlencoding.UrlEncodingSerializer#URLENC_expandedParams}
 	and {@link org.apache.juneau.urlencoding.UrlEncodingParser#URLENC_expandedParams} properties, but applies to only individual bean properties.
 </p>
-</div><!-- END: 2.24.4 - juneau-marshall.UrlEncodingDetails.UrlEncodingAnnotation -->
-</div><!-- END: 2.24 - juneau-marshall.UrlEncodingDetails -->
+</div><!-- END: 2.25.4 - juneau-marshall.UrlEncodingDetails.UrlEncodingAnnotation -->
+</div><!-- END: 2.25 - juneau-marshall.UrlEncodingDetails -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.MsgPackDetails' id='juneau-marshall.MsgPackDetails'>2.25 - MessagePack Details</a></h3>
-<div class='topic'><!-- START: 2.25 - juneau-marshall.MsgPackDetails -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.MsgPackDetails' id='juneau-marshall.MsgPackDetails'>2.26 - MessagePack Details</a></h3>
+<div class='topic'><!-- START: 2.26 - juneau-marshall.MsgPackDetails -->
 <p>
 	Juneau supports converting arbitrary POJOs to and from MessagePack using ultra-efficient serializers 
 	and parsers.
@@ -9020,8 +9039,8 @@
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.MsgPackDetails.Serializers' id='juneau-marshall.MsgPackDetails.Serializers'>2.25.1 - MessagePack Serializers</a></h4>
-<div class='topic'><!-- START: 2.25.1 - juneau-marshall.MsgPackDetails.Serializers -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.MsgPackDetails.Serializers' id='juneau-marshall.MsgPackDetails.Serializers'>2.26.1 - MessagePack Serializers</a></h4>
+<div class='topic'><!-- START: 2.26.1 - juneau-marshall.MsgPackDetails.Serializers -->
 <p>
 	The {@link org.apache.juneau.msgpack.MsgPackSerializer} class is used to serialize POJOs into MessagePack.
 </p>	
@@ -9046,12 +9065,12 @@
 		
 	</ul>
 </ul>
-</div><!-- END: 2.25.1 - juneau-marshall.MsgPackDetails.Serializers -->
+</div><!-- END: 2.26.1 - juneau-marshall.MsgPackDetails.Serializers -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.MsgPackDetails.Parsers' id='juneau-marshall.MsgPackDetails.Parsers'>2.25.2 - MessagePack Parsers</a></h4>
-<div class='topic'><!-- START: 2.25.2 - juneau-marshall.MsgPackDetails.Parsers -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.MsgPackDetails.Parsers' id='juneau-marshall.MsgPackDetails.Parsers'>2.26.2 - MessagePack Parsers</a></h4>
+<div class='topic'><!-- START: 2.26.2 - juneau-marshall.MsgPackDetails.Parsers -->
 <p>
 	The {@link org.apache.juneau.msgpack.MsgPackParser} class is used to parse MessagePack into POJOs.
 </p>	
@@ -9071,13 +9090,13 @@
 		<li class='jf'>{@link org.apache.juneau.msgpack.MsgPackParser#DEFAULT DEFAULT}
 	</ul>
 </ul>
-</div><!-- END: 2.25.2 - juneau-marshall.MsgPackDetails.Parsers -->
-</div><!-- END: 2.25 - juneau-marshall.MsgPackDetails -->
+</div><!-- END: 2.26.2 - juneau-marshall.MsgPackDetails.Parsers -->
+</div><!-- END: 2.26 - juneau-marshall.MsgPackDetails -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.OpenApiDetails' id='juneau-marshall.OpenApiDetails'>2.26 - OpenAPI Details</a></h3>
-<div class='topic'><!-- START: 2.26 - juneau-marshall.OpenApiDetails -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.OpenApiDetails' id='juneau-marshall.OpenApiDetails'>2.27 - OpenAPI Details</a></h3>
+<div class='topic'><!-- START: 2.27 - juneau-marshall.OpenApiDetails -->
 <p>
 	Juneau supports converting arbitrary POJOs to and from strings using OpenAPI-based schema rules. 
 </p>
@@ -9111,8 +9130,8 @@
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.OpenApiDetails.Methodology' id='juneau-marshall.OpenApiDetails.Methodology'>2.26.1 - OpenAPI Methodology</a></h4>
-<div class='topic'><!-- START: 2.26.1 - juneau-marshall.OpenApiDetails.Methodology -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.OpenApiDetails.Methodology' id='juneau-marshall.OpenApiDetails.Methodology'>2.27.1 - OpenAPI Methodology</a></h4>
+<div class='topic'><!-- START: 2.27.1 - juneau-marshall.OpenApiDetails.Methodology -->
 <p>
 	Unlike the other Juneau serializers and parsers that convert input and output directly to-and-from POJOs,
 	the OpenAPI serializers and parsers use intermediate objects based on the <c>type</c> and <c>format</c>
@@ -9253,12 +9272,12 @@
 <p>
 	The next sections go more into depth on serializing and parsing various POJO types.
 </p>
-</div><!-- END: 2.26.1 - juneau-marshall.OpenApiDetails.Methodology -->
+</div><!-- END: 2.27.1 - juneau-marshall.OpenApiDetails.Methodology -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.OpenApiDetails.Serializers' id='juneau-marshall.OpenApiDetails.Serializers'>2.26.2 - OpenAPI Serializers</a></h4>
-<div class='topic'><!-- START: 2.26.2 - juneau-marshall.OpenApiDetails.Serializers -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.OpenApiDetails.Serializers' id='juneau-marshall.OpenApiDetails.Serializers'>2.27.2 - OpenAPI Serializers</a></h4>
+<div class='topic'><!-- START: 2.27.2 - juneau-marshall.OpenApiDetails.Serializers -->
 <p>
 	The {@link org.apache.juneau.oapi.OpenApiSerializer} class is used to convert POJOs to HTTP parts.
 </p>
@@ -9691,12 +9710,12 @@
 		However, you will get <c>SerializeExceptions</c> if you attempt an impossible conversion.
 		(e.g. trying to serialize the string "foo" as a boolean). 
 </ul>
-</div><!-- END: 2.26.2 - juneau-marshall.OpenApiDetails.Serializers -->
+</div><!-- END: 2.27.2 - juneau-marshall.OpenApiDetails.Serializers -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.OpenApiDetails.Parsers' id='juneau-marshall.OpenApiDetails.Parsers'>2.26.3 - OpenAPI Parsers</a></h4>
-<div class='topic'><!-- START: 2.26.3 - juneau-marshall.OpenApiDetails.Parsers -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.OpenApiDetails.Parsers' id='juneau-marshall.OpenApiDetails.Parsers'>2.27.3 - OpenAPI Parsers</a></h4>
+<div class='topic'><!-- START: 2.27.3 - juneau-marshall.OpenApiDetails.Parsers -->
 <p>
 	The {@link org.apache.juneau.oapi.OpenApiParser} class is used to convert HTTP parts back into POJOs.
 </p>
@@ -10028,13 +10047,13 @@
 		However, you will get <c>ParseExceptions</c> if you attempt an impossible conversion.
 		(e.g. trying to parse the string "foo" into a boolean). 
 </ul>
-</div><!-- END: 2.26.3 - juneau-marshall.OpenApiDetails.Parsers -->
-</div><!-- END: 2.26 - juneau-marshall.OpenApiDetails -->
+</div><!-- END: 2.27.3 - juneau-marshall.OpenApiDetails.Parsers -->
+</div><!-- END: 2.27 - juneau-marshall.OpenApiDetails -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.SimpleVariableLanguage' id='juneau-marshall.SimpleVariableLanguage'>2.27 - Simple Variable Language</a></h3>
-<div class='topic'><!-- START: 2.27 - juneau-marshall.SimpleVariableLanguage -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.SimpleVariableLanguage' id='juneau-marshall.SimpleVariableLanguage'>2.28 - Simple Variable Language</a></h3>
+<div class='topic'><!-- START: 2.28 - juneau-marshall.SimpleVariableLanguage -->
 <p>
 	The <l>org.apache.juneau.svl</l> packages defines an API for a language called <l>Simple Variable Language</l>.
 	In a nutshell, Simple Variable Language (or SVL) is text that contains variables of the form <js>"$varName{varKey}"</js>.
@@ -10087,8 +10106,8 @@
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.SimpleVariableLanguage.SvlVariables' id='juneau-marshall.SimpleVariableLanguage.SvlVariables'>2.27.1 - SVL Variables</a></h4>
-<div class='topic'><!-- START: 2.27.1 - juneau-marshall.SimpleVariableLanguage.SvlVariables -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.SimpleVariableLanguage.SvlVariables' id='juneau-marshall.SimpleVariableLanguage.SvlVariables'>2.28.1 - SVL Variables</a></h4>
+<div class='topic'><!-- START: 2.28.1 - juneau-marshall.SimpleVariableLanguage.SvlVariables -->
 <p>
 	Variables are defined through the {@link org.apache.juneau.svl.Var} API.
 	The API comes with several predefined variables and is easily extensible.
@@ -10278,12 +10297,12 @@
 		<td class='code'>$W{name}</td>
 	</tr>
 </table>
-</div><!-- END: 2.27.1 - juneau-marshall.SimpleVariableLanguage.SvlVariables -->
+</div><!-- END: 2.28.1 - juneau-marshall.SimpleVariableLanguage.SvlVariables -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.SimpleVariableLanguage.VarResolvers' id='juneau-marshall.SimpleVariableLanguage.VarResolvers'>2.27.2 - VarResolvers and VarResolverSessions</a></h4>
-<div class='topic'><!-- START: 2.27.2 - juneau-marshall.SimpleVariableLanguage.VarResolvers -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.SimpleVariableLanguage.VarResolvers' id='juneau-marshall.SimpleVariableLanguage.VarResolvers'>2.28.2 - VarResolvers and VarResolverSessions</a></h4>
+<div class='topic'><!-- START: 2.28.2 - juneau-marshall.SimpleVariableLanguage.VarResolvers -->
 <p>
 	The main class for performing variable resolution is {@link org.apache.juneau.svl.VarResolver}.
 	Two methods are provided for resolving variables:
@@ -10340,12 +10359,12 @@
 		.vars(ConfigVar.<jk>class</jk>, ArgsVar.<jk>class</jk>)
 		.build();
 </p>
-</div><!-- END: 2.27.2 - juneau-marshall.SimpleVariableLanguage.VarResolvers -->
+</div><!-- END: 2.28.2 - juneau-marshall.SimpleVariableLanguage.VarResolvers -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.SimpleVariableLanguage.DefaultVarResolver' id='juneau-marshall.SimpleVariableLanguage.DefaultVarResolver'>2.27.3 - VarResolver.DEFAULT</a></h4>
-<div class='topic'><!-- START: 2.27.3 - juneau-marshall.SimpleVariableLanguage.DefaultVarResolver -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.SimpleVariableLanguage.DefaultVarResolver' id='juneau-marshall.SimpleVariableLanguage.DefaultVarResolver'>2.28.3 - VarResolver.DEFAULT</a></h4>
+<div class='topic'><!-- START: 2.28.3 - juneau-marshall.SimpleVariableLanguage.DefaultVarResolver -->
 <p>
 	{@link org.apache.juneau.svl.VarResolver#DEFAULT} is a reusable variable resolver with default support for the following variables:
 </p>
@@ -10366,12 +10385,12 @@
 	<li><c>$LN{arg[,delimiter]}</c> - {@link org.apache.juneau.svl.vars.LenVar}
 	<li><c>$ST{arg,start[,end]}</c> - {@link org.apache.juneau.svl.vars.SubstringVar}
 </ul>
-</div><!-- END: 2.27.3 - juneau-marshall.SimpleVariableLanguage.DefaultVarResolver -->
+</div><!-- END: 2.28.3 - juneau-marshall.SimpleVariableLanguage.DefaultVarResolver -->
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.SimpleVariableLanguage.OtherNotes' id='juneau-marshall.SimpleVariableLanguage.OtherNotes'>2.27.4 - Other Notes</a></h4>
-<div class='topic'><!-- START: 2.27.4 - juneau-marshall.SimpleVariableLanguage.OtherNotes -->
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.SimpleVariableLanguage.OtherNotes' id='juneau-marshall.SimpleVariableLanguage.OtherNotes'>2.28.4 - Other Notes</a></h4>
+<div class='topic'><!-- START: 2.28.4 - juneau-marshall.SimpleVariableLanguage.OtherNotes -->
 <ul class='spaced-list'>
 	<li>
 		The escape character <js>'\'</js> can be used when necessary to escape the following characters: 
@@ -10387,13 +10406,13 @@
 		<br>For example, calling the resolve method on a string that doesn't contain variables (e.g. 
 		<c>resolver.resolve(<js>"foobar"</js>)</c>) will simply be a no-op and return the same string.
 </ul>
-</div><!-- END: 2.27.4 - juneau-marshall.SimpleVariableLanguage.OtherNotes -->
-</div><!-- END: 2.27 - juneau-marshall.SimpleVariableLanguage -->
+</div><!-- END: 2.28.4 - juneau-marshall.SimpleVariableLanguage.OtherNotes -->
+</div><!-- END: 2.28 - juneau-marshall.SimpleVariableLanguage -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.BestPractices' id='juneau-marshall.BestPractices'>2.28 - Best Practices</a></h3>
-<div class='topic'><!-- START: 2.28 - juneau-marshall.BestPractices -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-marshall.BestPractices' id='juneau-marshall.BestPractices'>2.29 - Best Practices</a></h3>
+<div class='topic'><!-- START: 2.29 - juneau-marshall.BestPractices -->
 <ol class='spaced-list'>
 	<li>
 		Reuse instances of serializers and parsers whenever possible.
@@ -10417,7 +10436,7 @@
 		take in {@link java.lang.Class} or {@link java.lang.Object} parameters, since the latter methods involve 
 		hash lookups to resolve to {@link org.apache.juneau.ClassMeta} parameters.
 </ol>
-</div><!-- END: 2.28 - juneau-marshall.BestPractices -->
+</div><!-- END: 2.29 - juneau-marshall.BestPractices -->
 </div><!-- END: 2 - juneau-marshall -->
 
 <!-- ==================================================================================================== -->
@@ -14118,7 +14137,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic updated' onclick='toggle(this)'><a href='#juneau-rest-server.Rest' id='juneau-rest-server.Rest'>6.4 - @Rest</a></h3>
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-rest-server.Rest' id='juneau-rest-server.Rest'>6.4 - @Rest</a></h3>
 <div class='topic'><!-- START: 6.4 - juneau-rest-server.Rest -->
 <p>
 	The {@link org.apache.juneau.rest.annotation.Rest @Rest} annotation is the primary way of defining
@@ -14200,7 +14219,7 @@
 		</td>
 	</tr>
 	<tr>
-		<td>{@link org.apache.juneau.rest.annotation.Rest#defaultRequestHeaders() defaultRequestHeaders()}</td>
+		<td>{@link org.apache.juneau.rest.annotation.Rest#reqHeaders() reqHeaders()}</td>
 		<td>
 			Headers on child are combined with those on parent class.
 			<br>Headers are applied parent-to-child in the order they appear in the annotation.
@@ -14208,7 +14227,7 @@
 		</td>
 	</tr>
 	<tr>
-		<td>{@link org.apache.juneau.rest.annotation.Rest#defaultResponseHeaders() defaultResponseHeaders()}</td>
+		<td>{@link org.apache.juneau.rest.annotation.Rest#resHeaders() resHeaders()}</td>
 		<td>
 			Headers on child are combined with those on parent class.
 			<br>Headers are applied parent-to-child in the order they appear in the annotation.
@@ -14257,7 +14276,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic updated' onclick='toggle(this)'><a href='#juneau-rest-server.Rest.RestPath' id='juneau-rest-server.Rest.RestPath'>6.4.2 - @Rest(path)</a></h4>
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-rest-server.Rest.RestPath' id='juneau-rest-server.Rest.RestPath'>6.4.2 - @Rest(path)</a></h4>
 <div class='topic'><!-- START: 6.4.2 - juneau-rest-server.Rest.RestPath -->
 <p>
 	The {@link org.apache.juneau.rest.annotation.RestResource#path() @RestResource(path)} annotation is used in the following situations:
@@ -21358,10 +21377,10 @@
 </p>
 <ul class='javatree'>
 	<li class='ja'>
-		{@link org.apache.juneau.rest.annotation.Rest#defaultRequestHeaders() Rest(defaultRequestHeaders)} 
+		{@link org.apache.juneau.rest.annotation.Rest#reqHeaders() Rest(reqHeaders)} 
 		<br>Defines default headers on request when the client doesn't specify them.
 	<li class='ja'>
-		{@link org.apache.juneau.rest.annotation.Rest#defaultResponseHeaders() Rest(defaultResponseHeaders)}
+		{@link org.apache.juneau.rest.annotation.Rest#resHeaders() Rest(resHeaders)}
 		<br>Appends the specified headers if they weren't already set programmatically.	
 </ul>		
 
@@ -21371,10 +21390,10 @@
 	<ja>@Rest</ja>(
 
 		<jc>// Assume "text/json" Accept value when Accept not specified</jc>
-		defaultRequestHeaders={<js>"Accept: text/json"</js>},
+		reqHeaders={<js>"Accept: text/json"</js>},
 
 		<jc>// Add a version header attribute to all responses</jc>
-		defaultResponseHeaders={<js>"X-Version: 1.0"</js>}
+		resHeaders={<js>"X-Version: 1.0"</js>}
 	)
 	<jk>public</jk> MyRestServlet <jk>extends</jk> BasicRestServlet {
 		...
@@ -21388,9 +21407,9 @@
 		{@link org.apache.juneau.rest.RestContextBuilder}
 		<ul>
 			<li class='jm'>
-				{@link org.apache.juneau.rest.RestContextBuilder#defaultRequestHeaders(String[])}
+				{@link org.apache.juneau.rest.RestContextBuilder#reqHeaders(String[])}
 			<li class='jm'>
-				{@link org.apache.juneau.rest.RestContextBuilder#defaultResponseHeaders(String[])}
+				{@link org.apache.juneau.rest.RestContextBuilder#resHeaders(String[])}
 		</ul>
 	</li>
 </ul>
@@ -22747,7 +22766,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h4 class='topic updated' onclick='toggle(this)'><a href='#juneau-rest-client.RestProxies.Remote' id='juneau-rest-client.RestProxies.Remote'>9.1.1 - @Remote</a></h4>
+<h4 class='topic ' onclick='toggle(this)'><a href='#juneau-rest-client.RestProxies.Remote' id='juneau-rest-client.RestProxies.Remote'>9.1.1 - @Remote</a></h4>
 <div class='topic'><!-- START: 9.1.1 - juneau-rest-client.RestProxies.Remote -->
 <p>
 	The {@link org.apache.juneau.http.remote.Remote @Remote} annotation is used on your interface class
@@ -24695,7 +24714,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic updated' onclick='toggle(this)'><a href='#juneau-rest-mock.MockRemote' id='juneau-rest-mock.MockRemote'>10.2 - MockRemote</a></h3>
+<h3 class='topic ' onclick='toggle(this)'><a href='#juneau-rest-mock.MockRemote' id='juneau-rest-mock.MockRemote'>10.2 - MockRemote</a></h3>
 <div class='topic'><!-- START: 10.2 - juneau-rest-mock.MockRemote -->
 <p>
 	The {@link org.apache.juneau.rest.mock2.MockRemote} class is used for serverless unit testing of {@link org.apache.juneau.http.remote.Remote @Remote}-annotated
@@ -24776,7 +24795,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h2 class='topic updated' onclick='toggle(this)'><a href='#juneau-microservice-core' id='juneau-microservice-core'>11 - juneau-microservice-core</a></h2>
+<h2 class='topic ' onclick='toggle(this)'><a href='#juneau-microservice-core' id='juneau-microservice-core'>11 - juneau-microservice-core</a></h2>
 <div class='topic'><!-- START: 11 - juneau-microservice-core -->
 <div class='warn'>
 	The Juneau Microservice libraries are likely to be removed in Juneau 9.0 due to the popularity of the Spring Boot
@@ -25607,7 +25626,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h2 class='topic updated' onclick='toggle(this)'><a href='#juneau-microservice-jetty' id='juneau-microservice-jetty'>12 - juneau-microservice-jetty</a></h2>
+<h2 class='topic ' onclick='toggle(this)'><a href='#juneau-microservice-jetty' id='juneau-microservice-jetty'>12 - juneau-microservice-jetty</a></h2>
 <div class='topic'><!-- START: 12 - juneau-microservice-jetty -->
 <div class='warn'>
 	The Juneau Microservice libraries are likely to be removed in Juneau 9.0 due to the popularity of the Spring Boot
@@ -26439,7 +26458,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h2 class='topic updated' onclick='toggle(this)'><a href='#my-jetty-microservice' id='my-jetty-microservice'>13 - my-jetty-microservice</a></h2>
+<h2 class='topic ' onclick='toggle(this)'><a href='#my-jetty-microservice' id='my-jetty-microservice'>13 - my-jetty-microservice</a></h2>
 <div class='topic'><!-- START: 13 - my-jetty-microservice -->
 <div class='warn'>
 	The Juneau Microservice libraries are likely to be removed in Juneau 9.0 due to the popularity of the Spring Boot
@@ -27763,7 +27782,7 @@
 
 <!-- ==================================================================================================== -->
 
-<h2 class='topic updated' onclick='toggle(this)'><a href='#juneau-examples-rest-jetty' id='juneau-examples-rest-jetty'>17 - juneau-examples-rest-jetty</a></h2>
+<h2 class='topic ' onclick='toggle(this)'><a href='#juneau-examples-rest-jetty' id='juneau-examples-rest-jetty'>17 - juneau-examples-rest-jetty</a></h2>
 <div class='topic'><!-- START: 17 - juneau-examples-rest-jetty -->
 <div class='warn'>
 	The Juneau Microservice libraries are likely to be removed in Juneau 9.0 due to the popularity of the Spring Boot
@@ -28532,8 +28551,1488 @@
 
 <!-- ==================================================================================================== -->
 
-<h2 class='topic ' onclick='toggle(this)'><a href='#Security' id='Security'>19 - Security Best-Practices</a></h2>
-<div class='topic'><!-- START: 19 - Security -->
+<h2 class='topic new' onclick='toggle(this)'><a href='#Glossaries' id='Glossaries'>19 - Glossaries</a></h2>
+<div class='topic'><!-- START: 19 - Glossaries -->
+<p>
+</p>
+
+<!-- ==================================================================================================== -->
+
+<h3 class='topic new' onclick='toggle(this)'><a href='#Glossaries.ConfigurablePropertiesGlossary' id='Glossaries.ConfigurablePropertiesGlossary'>19.1 - Configurable Properties Glossary</a></h3>
+<div class='topic'><!-- START: 19.1 - Glossaries.ConfigurablePropertiesGlossary -->
+<p>
+	The following is a list of all properties defined throughout Juneau:
+</p>
+<table class='styled w1000'>
+	<tr>
+		<th>Context</th><th>ID</th><th style='min-width:250px'>Description</th><th>Data type</th>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.BeanContext}</td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_annotations BEAN_annotations}</td>
+		<td>Annotations.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;{@link java.lang.annotation.Annotation}&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_beanClassVisibility BEAN_beanClassVisibility}</td>
+		<td>Minimum bean class visibility.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.Visibility}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_beanConstructorVisibility BEAN_beanConstructorVisibility}</td>
+		<td>Minimum bean constructor visibility.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.Visibility}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_beanDictionary BEAN_beanDictionary}</td>
+		<td>Bean dictionary.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;Class&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_beanFieldVisibility BEAN_beanFieldVisibility}</td>
+		<td>Minimum bean field visibility.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.Visibility}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_beanFilters BEAN_beanFilters}</td>
+		<td>Bean filters.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;Class&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_beanMapPutReturnsOldValue BEAN_beanMapPutReturnsOldValue}</td>
+		<td>BeanMap.put() returns old property value.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_beanMethodVisibility BEAN_beanMethodVisibility}</td>
+		<td>Minimum bean method visibility.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.Visibility}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_beanTypePropertyName BEAN_beanTypePropertyName}</td>
+		<td>Bean type property name.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_beansRequireDefaultConstructor BEAN_beansRequireDefaultConstructor}</td>
+		<td>Beans require no-arg constructors.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_beansRequireSerializable BEAN_beansRequireSerializable}</td>
+		<td>Beans require Serializable interface.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_beansRequireSettersForGetters BEAN_beansRequireSettersForGetters}</td>
+		<td>Beans require setters for getters.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_beansRequireSomeProperties BEAN_beansRequireSomeProperties}</td>
+		<td>Beans require at least one property.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_bpi BEAN_bpi}</td>
+		<td>Bean property includes.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_bpro BEAN_bpro}</td>
+		<td>Read-only bean properties.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_bpwo BEAN_bpwo}</td>
+		<td>Write-only bean properties.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_bpx BEAN_bpx}</td>
+		<td>Bean property excludes.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_debug BEAN_debug}</td>
+		<td>Debug mode.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_examples BEAN_examples}</td>
+		<td>POJO examples.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,Object&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_fluentSetters BEAN_fluentSetters}</td>
+		<td>Find fluent setters.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_ignoreInvocationExceptionsOnGetters BEAN_ignoreInvocationExceptionsOnGetters}</td>
+		<td>Ignore invocation errors on getters.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_ignoreInvocationExceptionsOnSetters BEAN_ignoreInvocationExceptionsOnSetters}</td>
+		<td>Ignore invocation errors on setters.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_ignorePropertiesWithoutSetters BEAN_ignorePropertiesWithoutSetters}</td>
+		<td>Ignore properties without setters.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_ignoreUnknownBeanProperties BEAN_ignoreUnknownBeanProperties}</td>
+		<td>Ignore unknown properties.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_ignoreUnknownNullBeanProperties BEAN_ignoreUnknownNullBeanProperties}</td>
+		<td>Ignore unknown properties with null values.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_implClasses BEAN_implClasses}</td>
+		<td>Implementation classes.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,Class&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_locale BEAN_locale}</td>
+		<td>Locale.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link java.util.Locale}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_mediaType BEAN_mediaType}</td>
+		<td>Media type.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.http.MediaType}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_notBeanClasses BEAN_notBeanClasses}</td>
+		<td>Bean class exclusions.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Set&lt;Class&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_notBeanPackages BEAN_notBeanPackages}</td>
+		<td>Bean package exclusions.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Set&lt;String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_pojoSwaps BEAN_pojoSwaps}</td>
+		<td>POJO swaps.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;Object&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_propertyNamer BEAN_propertyNamer}</td>
+		<td>Bean property namer.</td>
+		<td style='max-width:250px;overflow:hidden'><code>Class&lt;{@link org.apache.juneau.PropertyNamer}&gt;</code></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_sortProperties BEAN_sortProperties}</td>
+		<td>Sort bean properties.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_timeZone BEAN_timeZone}</td>
+		<td>Time zone.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link java.util.TimeZone}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_useEnumNames BEAN_useEnumNames}</td>
+		<td>Use enum names.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_useInterfaceProxies BEAN_useInterfaceProxies}</td>
+		<td>Use interface proxies.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanContext#BEAN_useJavaBeanIntrospector BEAN_useJavaBeanIntrospector}</td>
+		<td>Use Java Introspector.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.BeanTraverseContext}</td>
+		<td>{@link org.apache.juneau.BeanTraverseContext#BEANTRAVERSE_detectRecursions BEANTRAVERSE_detectRecursions}</td>
+		<td>Automatically detect POJO recursions.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanTraverseContext#BEANTRAVERSE_ignoreRecursions BEANTRAVERSE_ignoreRecursions}</td>
+		<td>Ignore recursion errors.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanTraverseContext#BEANTRAVERSE_initialDepth BEANTRAVERSE_initialDepth}</td>
+		<td>Initial depth.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>int</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.BeanTraverseContext#BEANTRAVERSE_maxDepth BEANTRAVERSE_maxDepth}</td>
+		<td>Max traversal depth.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>int</jk></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.config.Config}</td>
+		<td>{@link org.apache.juneau.config.Config#CONFIG_binaryFormat CONFIG_binaryFormat}</td>
+		<td>Binary value format.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.BinaryFormat}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.config.Config#CONFIG_binaryLineLength CONFIG_binaryLineLength}</td>
+		<td>Binary value line length.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>int</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.config.Config#CONFIG_encoder CONFIG_encoder}</td>
+		<td>Value encoder.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.config.encode.ConfigEncoder}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.config.Config#CONFIG_multiLineValuesOnSeparateLines CONFIG_multiLineValuesOnSeparateLines}</td>
+		<td>Multi-line values should always be on separate lines.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.config.Config#CONFIG_name CONFIG_name}</td>
+		<td>Configuration name.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.config.Config#CONFIG_parser CONFIG_parser}</td>
+		<td>POJO parser.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.parser.ReaderParser}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.config.Config#CONFIG_readOnly CONFIG_readOnly}</td>
+		<td>Read-only.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.config.Config#CONFIG_serializer CONFIG_serializer}</td>
+		<td>POJO serializer.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.serializer.WriterSerializer}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.config.Config#CONFIG_store CONFIG_store}</td>
+		<td>Configuration store.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.config.store.ConfigStore}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.config.Config#CONFIG_varResolver CONFIG_varResolver}</td>
+		<td>SVL variable resolver.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.svl.VarResolver}</td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.config.store.ConfigFileStore}</td>
+		<td>{@link org.apache.juneau.config.store.ConfigFileStore#FILESTORE_charset FILESTORE_charset}</td>
+		<td>Charset.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link java.nio.charset.Charset}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.config.store.ConfigFileStore#FILESTORE_directory FILESTORE_directory}</td>
+		<td>Local file system directory.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.config.store.ConfigFileStore#FILESTORE_extensions FILESTORE_extensions}</td>
+		<td>File extensions.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c> (comma-delimited)</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.config.store.ConfigFileStore#FILESTORE_updateOnWrite FILESTORE_updateOnWrite}</td>
+		<td>Update-on-write.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.config.store.ConfigFileStore#FILESTORE_useWatcher FILESTORE_useWatcher}</td>
+		<td>Use watcher.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.config.store.ConfigFileStore#FILESTORE_watcherSensitivity FILESTORE_watcherSensitivity}</td>
+		<td>Watcher sensitivity.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.config.store.WatcherSensitivity}</td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.html.HtmlDocSerializer}</td>
+		<td>{@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_aside HTMLDOC_aside}</td>
+		<td>Aside section contents.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_footer HTMLDOC_footer}</td>
+		<td>Footer section contents.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_head HTMLDOC_head}</td>
+		<td>Additional head section content.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_header HTMLDOC_header}</td>
+		<td>Header section contents.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_nav HTMLDOC_nav}</td>
+		<td>Nav section contents.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_navlinks HTMLDOC_navlinks}</td>
+		<td>Page navigation links.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_noResultsMessage HTMLDOC_noResultsMessage}</td>
+		<td>No-results message.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_nowrap HTMLDOC_nowrap}</td>
+		<td>Prevent word wrap on page.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_script HTMLDOC_script}</td>
+		<td>Javascript code.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_style HTMLDOC_style}</td>
+		<td>CSS style code.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_stylesheet HTMLDOC_stylesheet}</td>
+		<td>Stylesheet import URLs.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_template HTMLDOC_template}</td>
+		<td>HTML document template.</td>
+		<td style='max-width:250px;overflow:hidden'><code>Class&lt;{@link org.apache.juneau.html.HtmlDocTemplate}&gt;</code></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.html.HtmlDocSerializer#HTMLDOC_widgets HTMLDOC_widgets}</td>
+		<td>HTML Widgets.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;{@link org.apache.juneau.html.HtmlWidget}|Class&lt;{@link org.apache.juneau.html.HtmlWidget}&gt;&gt;</c></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.html.HtmlSerializer}</td>
+		<td>{@link org.apache.juneau.html.HtmlSerializer#HTML_addBeanTypes HTML_addBeanTypes}</td>
+		<td>Add <js>"_type"</js> properties when needed.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.html.HtmlSerializer#HTML_addKeyValueTableHeaders HTML_addKeyValueTableHeaders}</td>
+		<td>Add key/value headers on bean/map tables.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.html.HtmlSerializer#HTML_detectLabelParameters HTML_detectLabelParameters}</td>
+		<td>Look for link labels in URIs.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.html.HtmlSerializer#HTML_detectLinksInStrings HTML_detectLinksInStrings}</td>
+		<td>Look for URLs in {@link String Strings}.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.html.HtmlSerializer#HTML_labelParameter HTML_labelParameter}</td>
+		<td>Link label parameter name.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.html.HtmlSerializer#HTML_uriAnchorText HTML_uriAnchorText}</td>
+		<td>Anchor text source.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.html.AnchorText}</td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.parser.InputStreamParser}</td>
+		<td>{@link org.apache.juneau.parser.InputStreamParser#ISPARSER_binaryFormat ISPARSER_binaryFormat}</td>
+		<td>Binary input format.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.BinaryFormat}</td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.json.JsonParser}</td>
+		<td>{@link org.apache.juneau.json.JsonParser#JSON_validateEnd JSON_validateEnd}</td>
+		<td>Validate end.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.jsonschema.JsonSchemaGenerator}</td>
+		<td>{@link org.apache.juneau.jsonschema.JsonSchemaGenerator#JSONSCHEMA_addDescriptionsTo JSONSCHEMA_addDescriptionsTo}</td>
+		<td>Add descriptions to types.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jsonschema.JsonSchemaGenerator#JSONSCHEMA_addExamplesTo JSONSCHEMA_addExamplesTo}</td>
+		<td>Add examples.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jsonschema.JsonSchemaGenerator#JSONSCHEMA_allowNestedDescriptions JSONSCHEMA_allowNestedDescriptions}</td>
+		<td>Allow nested descriptions.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jsonschema.JsonSchemaGenerator#JSONSCHEMA_allowNestedExamples JSONSCHEMA_allowNestedExamples}</td>
+		<td>Allow nested examples.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jsonschema.JsonSchemaGenerator#JSONSCHEMA_beanDefMapper JSONSCHEMA_beanDefMapper}</td>
+		<td>Bean schema definition mapper.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.jsonschema.BeanDefMapper}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jsonschema.JsonSchemaGenerator#JSONSCHEMA_defaultSchemas JSONSCHEMA_defaultSchemas}</td>
+		<td>Default schemas.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,{@link org.apache.juneau.ObjectMap}&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jsonschema.JsonSchemaGenerator#JSONSCHEMA_ignoreTypes JSONSCHEMA_ignoreTypes}</td>
+		<td>Ignore types from schema definitions.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c> (comma-delimited)</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jsonschema.JsonSchemaGenerator#JSONSCHEMA_useBeanDefs JSONSCHEMA_useBeanDefs}</td>
+		<td>Use bean definitions.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.json.JsonSerializer}</td>
+		<td>{@link org.apache.juneau.json.JsonSerializer#JSON_addBeanTypes JSON_addBeanTypes}</td>
+		<td>Add <js>"_type"</js> properties when needed.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.json.JsonSerializer#JSON_escapeSolidus JSON_escapeSolidus}</td>
+		<td>Prefix solidus <js>'/'</js> characters with escapes.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.json.JsonSerializer#JSON_simpleMode JSON_simpleMode}</td>
+		<td>Simple JSON mode.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.msgpack.MsgPackSerializer}</td>
+		<td>{@link org.apache.juneau.msgpack.MsgPackSerializer#MSGPACK_addBeanTypes MSGPACK_addBeanTypes}</td>
+		<td>Add <js>"_type"</js> properties when needed.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.serializer.OutputStreamSerializer}</td>
+		<td>{@link org.apache.juneau.serializer.OutputStreamSerializer#OSSERIALIZER_binaryFormat OSSERIALIZER_binaryFormat}</td>
+		<td>Binary output format.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.BinaryFormat}</td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.parser.Parser}</td>
+		<td>{@link org.apache.juneau.parser.Parser#PARSER_autoCloseStreams PARSER_autoCloseStreams}</td>
+		<td>Auto-close streams.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.parser.Parser#PARSER_debugOutputLines PARSER_debugOutputLines}</td>
+		<td>Debug output lines.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>int</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.parser.Parser#PARSER_listener PARSER_listener}</td>
+		<td>Parser listener.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Class&lt;{@link org.apache.juneau.parser.ParserListener}&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.parser.Parser#PARSER_strict PARSER_strict}</td>
+		<td>Strict mode.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.parser.Parser#PARSER_trimStrings PARSER_trimStrings}</td>
+		<td>Trim parsed strings.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.parser.Parser#PARSER_unbuffered PARSER_unbuffered}</td>
+		<td>Unbuffered.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.jena.RdfCommon}</td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_collectionFormat RDF_collectionFormat}</td>
+		<td>RDF format for representing collections and arrays.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_n3_abbrevBaseUri RDF_n3_abbrevBaseUri}</td>
+		<td>N3/Turtle property: <c>abbrevBaseURI</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_n3_indentProperty RDF_n3_indentProperty}</td>
+		<td>N3/Turtle property: <c>indentProperty</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>int</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_n3_minGap RDF_n3_minGap}</td>
+		<td>N3/Turtle property: <c>minGap</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>int</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_n3_objectLists RDF_n3_objectLists}</td>
+		<td>N3/Turtle property: <c>objectLists</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_n3_propertyColumn RDF_n3_propertyColumn}</td>
+		<td>N3/Turtle property: <c>propertyColumn</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>int</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_n3_subjectColumn RDF_n3_subjectColumn}</td>
+		<td>N3/Turtle property: <c>subjectColumn</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>int</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_n3_useDoubles RDF_n3_useDoubles}</td>
+		<td>N3/Turtle property: <c>useDoubles</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_n3_usePropertySymbols RDF_n3_usePropertySymbols}</td>
+		<td>N3/Turtle property: <c>usePropertySymbols</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_n3_useTripleQuotedStrings RDF_n3_useTripleQuotedStrings}</td>
+		<td>N3/Turtle property: <c>useTripleQuotedStrings</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_n3_widePropertyLen RDF_n3_widePropertyLen}</td>
+		<td>N3/Turtle property: <c>widePropertyLen</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>int</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_arp_err_ RDF_arp_err_}</td>
+		<td>RDF/XML ARP property: <c>ERR_xxx</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_arp_ign_ RDF_arp_ign_}</td>
+		<td></td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_arp_warn_ RDF_arp_warn_}</td>
+		<td>RDF/XML ARP property: <c>WARN_xxx</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_allowBadUris RDF_rdfxml_allowBadUris}</td>
+		<td>RDF/XML property: <c>allowBadURIs</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_attributeQuoteChar RDF_rdfxml_attributeQuoteChar}</td>
+		<td>RDF/XML property: <c>attributeQuoteChar</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Character</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_blockRules RDF_rdfxml_blockRules}</td>
+		<td>RDF/XML property: <c>blockRules</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_arp_embedding RDF_arp_embedding}</td>
+		<td>RDF/XML ARP property: <c>embedding</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_arp_errorMode RDF_arp_errorMode}</td>
+		<td>RDF/XML ARP property: <c>error-mode</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_arp_iriRules RDF_arp_iriRules}</td>
+		<td>RDF/XML property: <c>iri_rules</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_longId RDF_rdfxml_longId}</td>
+		<td>RDF/XML property: <c>longId</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_relativeUris RDF_rdfxml_relativeUris}</td>
+		<td>RDF/XML property: <c>relativeURIs</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_showDoctypeDeclaration RDF_rdfxml_showDoctypeDeclaration}</td>
+		<td>RDF/XML property: <c>showDoctypeDeclaration</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_showXmlDeclaration RDF_rdfxml_showXmlDeclaration}</td>
+		<td>RDF/XML property: <c>showXmlDeclaration</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_tab RDF_rdfxml_tab}</td>
+		<td>RDF/XML property: <c>tab</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>int</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_xmlBase RDF_rdfxml_xmlBase}</td>
+		<td>RDF/XML property: <c>xmlbase</c>.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_juneauBpNs RDF_juneauBpNs}</td>
+		<td>Default XML namespace for bean properties.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.xml.Namespace}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_juneauNs RDF_juneauNs}</td>
+		<td>XML namespace for Juneau properties.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.xml.Namespace}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_language RDF_language}</td>
+		<td>RDF language.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfCommon#RDF_looseCollections RDF_looseCollections}</td>
+		<td>Collections should be serialized and parsed as loose collections.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.jena.RdfParser}</td>
+		<td>{@link org.apache.juneau.jena.RdfParser#RDF_trimWhitespace RDF_trimWhitespace}</td>
+		<td>Trim whitespace from text elements.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.jena.RdfSerializer}</td>
+		<td>{@link org.apache.juneau.jena.RdfSerializer#RDF_useXmlNamespaces RDF_useXmlNamespaces}</td>
+		<td>Reuse XML namespaces when RDF namespaces not specified.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfSerializer#RDF_addBeanTypes RDF_addBeanTypes}</td>
+		<td>Add <js>"_type"</js> properties when needed.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfSerializer#RDF_addLiteralTypes RDF_addLiteralTypes}</td>
+		<td>Add XSI data types to non-<c>String</c> literals.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfSerializer#RDF_addRootProperty RDF_addRootProperty}</td>
+		<td>Add RDF root identifier property to root node.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfSerializer#RDF_autoDetectNamespaces RDF_autoDetectNamespaces}</td>
+		<td>Auto-detect namespace usage.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.jena.RdfSerializer#RDF_namespaces RDF_namespaces}</td>
+		<td>Default namespaces.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;{@link org.apache.juneau.xml.Namespace}&gt;</c></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.parser.ReaderParser}</td>
+		<td>{@link org.apache.juneau.parser.ReaderParser#RPARSER_fileCharset RPARSER_fileCharset}</td>
+		<td>File charset.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.parser.ReaderParser#RPARSER_streamCharset RPARSER_streamCharset}</td>
+		<td>Input stream charset.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.rest.client.RestClient}</td>
+		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_debug RESTCLIENT_debug}</td>
+		<td>Debug.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_executorService RESTCLIENT_executorService}</td>
+		<td>Executor service.</td>
+		<td style='max-width:250px;overflow:hidden'><ul><li><c>Class&lt;{@link java.util.concurrent.ExecutorService}&gt;</c><li>{@link java.util.concurrent.ExecutorService}</ul></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_executorServiceShutdownOnClose RESTCLIENT_executorServiceShutdownOnClose}</td>
+		<td>Shut down executor service on close.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_interceptors RESTCLIENT_interceptors}</td>
+		<td>Call interceptors.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;Class&lt;{@link org.apache.juneau.rest.client.RestCallInterceptor}&gt;|{@link org.apache.juneau.rest.client.RestCallInterceptor}&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_keepHttpClientOpen RESTCLIENT_keepHttpClientOpen}</td>
+		<td>Keep HttpClient open.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_parser RESTCLIENT_parser}</td>
+		<td>Parser.</td>
+		<td style='max-width:250px;overflow:hidden'><ul><li><c>Class&lt;{@link org.apache.juneau.parser.Parser}&gt;</c><li>{@link org.apache.juneau.parser.Parser}</ul></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_partParser RESTCLIENT_partParser}</td>
+		<td>Part parser.</td>
+		<td style='max-width:250px;overflow:hidden'><ul><li><c>Class&lt;{@link org.apache.juneau.httppart.HttpPartParser}&gt;</c><li>{@link org.apache.juneau.httppart.HttpPartParser}</ul></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_partSerializer RESTCLIENT_partSerializer}</td>
+		<td>Part serializer.</td>
+		<td style='max-width:250px;overflow:hidden'><ul><li><c>Class&lt;{@link org.apache.juneau.httppart.HttpPartSerializer}&gt;</c><li>{@link org.apache.juneau.httppart.HttpPartSerializer}</ul></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_query RESTCLIENT_query}</td>
+		<td>Request query parameters.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_headers RESTCLIENT_headers}</td>
+		<td>Request headers.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_retries RESTCLIENT_retries}</td>
+		<td>Number of retries to attempt.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>int</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_retryInterval RESTCLIENT_retryInterval}</td>
+		<td>The time in milliseconds between retry attempts.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>int</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_retryOn RESTCLIENT_retryOn}</td>
+		<td>Retry-on determination object.</td>
+		<td style='max-width:250px;overflow:hidden'><ul><li><c>Class&lt;{@link org.apache.juneau.rest.client.RetryOn}&gt;</c><li>{@link org.apache.juneau.rest.client.RetryOn}</ul></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_rootUri RESTCLIENT_rootUri}</td>
+		<td>Root URI.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.client.RestClient#RESTCLIENT_serializer RESTCLIENT_serializer}</td>
+		<td>Serializer.</td>
+		<td style='max-width:250px;overflow:hidden'><ul><li><c>Class&lt;{@link org.apache.juneau.serializer.Serializer}&gt;</c><li>{@link org.apache.juneau.serializer.Serializer}</ul></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.rest.RestContext}</td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_allowBodyParam REST_allowBodyParam}</td>
+		<td>Allow body URL parameter.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_allowedHeaderParams REST_allowedHeaderParams}</td>
+		<td>Allowed header URL parameters.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c> (comma-delimited)</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_allowedMethodHeaders REST_allowedMethodHeaders}</td>
+		<td>Allowed method headers.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c> (comma-delimited)</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_allowedMethodParams REST_allowedMethodParams}</td>
+		<td>Allowed method URL parameters.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c> (comma-delimited)</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_callHandler REST_callHandler}</td>
+		<td>REST call handler.</td>
+		<td style='max-width:250px;overflow:hidden'><ul><li>{@link org.apache.juneau.rest.RestCallHandler}<li><c>Class&lt;{@link org.apache.juneau.rest.RestCallHandler}&gt;</c></ul></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_callLogger REST_callLogger}</td>
+		<td>REST call logger.</td>
+		<td style='max-width:250px;overflow:hidden'><ul><li>{@link org.apache.juneau.rest.RestCallLogger}<li><c>Class&lt;{@link org.apache.juneau.rest.RestCallLogger}&gt;</c></ul></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_callLoggerConfig REST_callLoggerConfig}</td>
+		<td>REST call logging rules.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.rest.RestCallLoggerConfig}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_children REST_children}</td>
+		<td>Children.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;Class|Object|{@link org.apache.juneau.rest.RestChild}&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_classpathResourceFinder REST_classpathResourceFinder}</td>
+		<td>Classpath resource finder.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.utils.ClasspathResourceFinder}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_clientVersionHeader REST_clientVersionHeader}</td>
+		<td>Client version header.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_consumes REST_consumes}</td>
+		<td>Supported content media types.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_converters REST_converters}</td>
+		<td>Class-level response converters.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;{@link org.apache.juneau.rest.RestConverter}|Class&lt;{@link org.apache.juneau.rest.RestConverter}&gt;&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_debug REST_debug}</td>
+		<td>Debug mode.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.rest.Enablement}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_defaultCharset REST_defaultCharset}</td>
+		<td>Default character encoding.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_encoders REST_encoders}</td>
+		<td>Compression encoders.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;{@link org.apache.juneau.encoders.Encoder}|Class&lt;{@link org.apache.juneau.encoders.Encoder}&gt;&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_guards REST_guards}</td>
+		<td>Class-level guards.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;{@link org.apache.juneau.rest.RestGuard}|Class&lt;{@link org.apache.juneau.rest.RestGuard}&gt;&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_infoProvider REST_infoProvider}</td>
+		<td>REST info provider.</td>
+		<td style='max-width:250px;overflow:hidden'><ul><li>{@link org.apache.juneau.rest.RestInfoProvider}<li><c>Class&lt;{@link org.apache.juneau.rest.RestInfoProvider}&gt;</c></ul></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_maxInput REST_maxInput}</td>
+		<td>The maximum allowed input size (in bytes) on HTTP requests.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_messages REST_messages}</td>
+		<td>Messages.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;{@link org.apache.juneau.rest.MessageBundleLocation}&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_mimeTypes REST_mimeTypes}</td>
+		<td>MIME types.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Set&lt;String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_paramResolvers REST_paramResolvers}</td>
+		<td>Java method parameter resolvers.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;{@link org.apache.juneau.rest.RestMethodParam}|Class&lt;{@link org.apache.juneau.rest.RestMethodParam}&gt;&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_parsers REST_parsers}</td>
+		<td>Parsers.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;{@link org.apache.juneau.parser.Parser}|Class&lt;{@link org.apache.juneau.parser.Parser}&gt;&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_partParser REST_partParser}</td>
+		<td>HTTP part parser.</td>
+		<td style='max-width:250px;overflow:hidden'><c>{@link org.apache.juneau.httppart.HttpPartParser}|Class&lt;{@link org.apache.juneau.httppart.HttpPartParser}&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_partSerializer REST_partSerializer}</td>
+		<td>HTTP part serializer.</td>
+		<td style='max-width:250px;overflow:hidden'><ul><li>{@link org.apache.juneau.httppart.HttpPartSerializer}<li><c>Class&lt;{@link org.apache.juneau.httppart.HttpPartSerializer}&gt;</c></ul></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_path REST_path}</td>
+		<td>Resource path.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_produces REST_produces}</td>
+		<td>Supported accept media types.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_properties REST_properties}</td>
+		<td>Properties.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_renderResponseStackTraces REST_renderResponseStackTraces}</td>
+		<td>Render response stack traces in responses.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_reqAttrs REST_reqAttrs}</td>
+		<td>Default request attributes.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,Object&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_reqHeaders REST_reqHeaders}</td>
+		<td>Default request headers.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_resHeaders REST_resHeaders}</td>
+		<td>Default response headers.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_resourceResolver REST_resourceResolver}</td>
+		<td>REST resource resolver.</td>
+		<td style='max-width:250px;overflow:hidden'><ul><li>{@link org.apache.juneau.rest.RestResourceResolver}<li><c>Class&lt;{@link org.apache.juneau.rest.RestResourceResolver}&gt;</c></ul></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_responseHandlers REST_responseHandlers}</td>
+		<td>Response handlers.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;{@link org.apache.juneau.rest.ResponseHandler}|Class&lt;{@link org.apache.juneau.rest.ResponseHandler}&gt;&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_roleGuard REST_roleGuard}</td>
+		<td>Role guard.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Set&lt;String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_rolesDeclared REST_rolesDeclared}</td>
+		<td>Declared roles.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Set&lt;String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_serializers REST_serializers}</td>
+		<td>Serializers.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;{@link org.apache.juneau.serializer.Serializer}|Class&lt;{@link org.apache.juneau.serializer.Serializer}&gt;&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_staticFileResponseHeaders REST_staticFileResponseHeaders}</td>
+		<td>Static file response headers.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,String&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_staticFiles REST_staticFiles}</td>
+		<td>Static file mappings.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;{@link org.apache.juneau.rest.StaticFileMapping}&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_uriAuthority REST_uriAuthority}</td>
+		<td>Resource URI authority path.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_uriContext REST_uriContext}</td>
+		<td>Resource URI context path.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_uriRelativity REST_uriRelativity}</td>
+		<td>URI resolution relativity.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_uriResolution REST_uriResolution}</td>
+		<td>URI resolution.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestContext#REST_useClasspathResourceCaching REST_useClasspathResourceCaching}</td>
+		<td>Use classpath resource caching.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.rest.RestMethodContext}</td>
+		<td>{@link org.apache.juneau.rest.RestMethodContext#RESTMETHOD_callLoggerConfig RESTMETHOD_callLoggerConfig}</td>
+		<td>Logging rules.</td>
+		<td style='max-width:250px;overflow:hidden'><c>{@link org.apache.juneau.rest.RestCallLoggerConfig}</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestMethodContext#RESTMETHOD_clientVersion RESTMETHOD_clientVersion}</td>
+		<td>Client version pattern matcher.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestMethodContext#RESTMETHOD_debug RESTMETHOD_debug}</td>
+		<td>Debug mode.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link Enablement}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestMethodContext#RESTMETHOD_defaultFormData RESTMETHOD_defaultFormData}</td>
+		<td>Default form data.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,Object&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestMethodContext#RESTMETHOD_defaultQuery RESTMETHOD_defaultQuery}</td>
+		<td>Default query parameters.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,Object&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestMethodContext#RESTMETHOD_httpMethod RESTMETHOD_httpMethod}</td>
+		<td>HTTP method name.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestMethodContext#RESTMETHOD_matchers RESTMETHOD_matchers}</td>
+		<td>Method-level matchers.</td>
+		<td style='max-width:250px;overflow:hidden'><c>List&lt;{@link org.apache.juneau.rest.RestMatcher}|Class&lt;{@link org.apache.juneau.rest.RestMatcher}&gt;&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestMethodContext#RESTMETHOD_path RESTMETHOD_path}</td>
+		<td>Resource method path.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestMethodContext#RESTMETHOD_priority RESTMETHOD_priority}</td>
+		<td>Priority.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>int</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestMethodContext#RESTMETHOD_reqAttrs RESTMETHOD_reqAttrs}</td>
+		<td>Default request attributes.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,Object&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.rest.RestMethodContext#RESTMETHOD_reqHeaders RESTMETHOD_reqHeaders}</td>
+		<td>Default request headers.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Map&lt;String,Object&gt;</c></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.serializer.Serializer}</td>
+		<td>{@link org.apache.juneau.serializer.Serializer#SERIALIZER_addBeanTypes SERIALIZER_addBeanTypes}</td>
+		<td>Add <js>"_type"</js> properties when needed.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.serializer.Serializer#SERIALIZER_addRootType SERIALIZER_addRootType}</td>
+		<td>Add type attribute to root nodes.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.serializer.Serializer#SERIALIZER_listener SERIALIZER_listener}</td>
+		<td>Serializer listener.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Class&lt;{@link org.apache.juneau.serializer.SerializerListener}&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.serializer.Serializer#SERIALIZER_sortCollections SERIALIZER_sortCollections}</td>
+		<td>Sort arrays and collections alphabetically.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.serializer.Serializer#SERIALIZER_sortMaps SERIALIZER_sortMaps}</td>
+		<td>Sort maps alphabetically.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.serializer.Serializer#SERIALIZER_trimEmptyCollections SERIALIZER_trimEmptyCollections}</td>
+		<td>Trim empty lists and arrays.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.serializer.Serializer#SERIALIZER_trimEmptyMaps SERIALIZER_trimEmptyMaps}</td>
+		<td>Trim empty maps.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.serializer.Serializer#SERIALIZER_trimNullProperties SERIALIZER_trimNullProperties}</td>
+		<td>Trim null bean property values.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.serializer.Serializer#SERIALIZER_trimStrings SERIALIZER_trimStrings}</td>
+		<td>Trim strings.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.serializer.Serializer#SERIALIZER_uriContext SERIALIZER_uriContext}</td>
+		<td>URI context bean.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.UriContext}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.serializer.Serializer#SERIALIZER_uriRelativity SERIALIZER_uriRelativity}</td>
+		<td>URI relativity.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.UriRelativity}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.serializer.Serializer#SERIALIZER_uriResolution SERIALIZER_uriResolution}</td>
+		<td>URI resolution.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.UriResolution}</td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.soap.SoapXmlSerializer}</td>
+		<td>{@link org.apache.juneau.soap.SoapXmlSerializer#SOAPXML_SOAPAction SOAPXML_SOAPAction}</td>
+		<td>The <c>SOAPAction</c> HTTP header value to set on responses.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.dto.swagger.ui.SwaggerUI}</td>
+		<td>{@link org.apache.juneau.dto.swagger.ui.SwaggerUI#SWAGGERUI_resolveRefsMaxDepth SWAGGERUI_resolveRefsMaxDepth}</td>
+		<td>Resolve <c>$ref</c> references in schema up to the specified depth.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>int</jk></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.uon.UonParser}</td>
+		<td>{@link org.apache.juneau.uon.UonParser#UON_decoding UON_decoding}</td>
+		<td>Decode <js>"%xx"</js> sequences.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.uon.UonParser#UON_validateEnd UON_validateEnd}</td>
+		<td>Validate end.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.uon.UonSerializer}</td>
+		<td>{@link org.apache.juneau.uon.UonSerializer#UON_addBeanTypes UON_addBeanTypes}</td>
+		<td>Add <js>"_type"</js> properties when needed.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.uon.UonSerializer#UON_encoding UON_encoding}</td>
+		<td>Encode non-valid URI characters.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.uon.UonSerializer#UON_paramFormat UON_paramFormat}</td>
+		<td>Format to use for query/form-data/header values.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.uon.ParamFormat}</td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.urlencoding.UrlEncodingParser}</td>
+		<td>{@link org.apache.juneau.urlencoding.UrlEncodingParser#URLENC_expandedParams URLENC_expandedParams}</td>
+		<td>Parser bean property collections/arrays as separate key/value pairs.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.urlencoding.UrlEncodingSerializer}</td>
+		<td>{@link org.apache.juneau.urlencoding.UrlEncodingSerializer#URLENC_expandedParams URLENC_expandedParams}</td>
+		<td>Serialize bean property collections/arrays as separate key/value pairs.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.serializer.WriterSerializer}</td>
+		<td>{@link org.apache.juneau.serializer.WriterSerializer#WSERIALIZER_fileCharset WSERIALIZER_fileCharset}</td>
+		<td>File charset.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.serializer.WriterSerializer#WSERIALIZER_maxIndent WSERIALIZER_maxIndent}</td>
+		<td>Maximum indentation.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>int</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.serializer.WriterSerializer#WSERIALIZER_quoteChar WSERIALIZER_quoteChar}</td>
+		<td>Quote character.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.serializer.WriterSerializer#WSERIALIZER_streamCharset WSERIALIZER_streamCharset}</td>
+		<td>Output stream charset.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.serializer.WriterSerializer#WSERIALIZER_useWhitespace WSERIALIZER_useWhitespace}</td>
+		<td>Use whitespace.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.xml.XmlParser}</td>
+		<td>{@link org.apache.juneau.xml.XmlParser#XML_eventAllocator XML_eventAllocator}</td>
+		<td>XML event allocator.</td>
+		<td style='max-width:250px;overflow:hidden'><code>Class&lt;{@link javax.xml.stream.util.XMLEventAllocator}&gt;</code></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.xml.XmlParser#XML_preserveRootElement XML_preserveRootElement}</td>
+		<td>Preserve root element during generalized parsing.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.xml.XmlParser#XML_reporter XML_reporter}</td>
+		<td>XML reporter.</td>
+		<td style='max-width:250px;overflow:hidden'><code>Class&lt;{@link javax.xml.stream.XMLReporter}&gt;</code></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.xml.XmlParser#XML_resolver XML_resolver}</td>
+		<td>XML resolver.</td>
+		<td style='max-width:250px;overflow:hidden'><code>Class&lt;{@link javax.xml.stream.XMLResolver}&gt;</code></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.xml.XmlParser#XML_validating XML_validating}</td>
+		<td>Enable validation.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td>{@link org.apache.juneau.xml.XmlSerializer}</td>
+		<td>{@link org.apache.juneau.xml.XmlSerializer#XML_addBeanTypes XML_addBeanTypes}</td>
+		<td>Add <js>"_type"</js> properties when needed.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.xml.XmlSerializer#XML_addNamespaceUrisToRoot XML_addNamespaceUrisToRoot}</td>
+		<td>Add namespace URLs to the root element.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.xml.XmlSerializer#XML_autoDetectNamespaces XML_autoDetectNamespaces}</td>
+		<td>Auto-detect namespace usage.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.xml.XmlSerializer#XML_defaultNamespace XML_defaultNamespace}</td>
+		<td>Default namespace.</td>
+		<td style='max-width:250px;overflow:hidden'>{@link org.apache.juneau.xml.Namespace}</td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.xml.XmlSerializer#XML_enableNamespaces XML_enableNamespaces}</td>
+		<td>Enable support for XML namespaces.</td>
+		<td style='max-width:250px;overflow:hidden'><jk>boolean</jk></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.xml.XmlSerializer#XML_namespaces XML_namespaces}</td>
+		<td>Default namespaces.</td>
+		<td style='max-width:250px;overflow:hidden'><c>Set&lt;{@link org.apache.juneau.xml.Namespace}&gt;</c></td>
+	</tr>
+	<tr>
+		<td></td>
+		<td>{@link org.apache.juneau.xml.XmlSerializer#XML_xsNamespace XML_xsNamespace}</td>
+		<td>XMLSchema namespace.</td>
+		<td style='max-width:250px;overflow:hidden'><c>String</c> ({@link org.apache.juneau.xml.Namespace})</td>
+	</tr>
+</table>
+</div><!-- END: 19.1 - Glossaries.ConfigurablePropertiesGlossary -->
+</div><!-- END: 19 - Glossaries -->
+
+<!-- ==================================================================================================== -->
+
+<h2 class='topic ' onclick='toggle(this)'><a href='#Security' id='Security'>20 - Security Best-Practices</a></h2>
+<div class='topic'><!-- START: 20 - Security -->
 <p>
 	Security is always an ongoing concern in any library.  
 	If you discover any security vulnerabilities in this code, please refer to the instructions found here:
@@ -28544,8 +30043,8 @@
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic ' onclick='toggle(this)'><a href='#Security.juneau-marshall' id='Security.juneau-marshall'>19.1 - juneau-marshall</a></h3>
-<div class='topic'><!-- START: 19.1 - Security.juneau-marshall -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#Security.juneau-marshall' id='Security.juneau-marshall'>20.1 - juneau-marshall</a></h3>
+<div class='topic'><!-- START: 20.1 - Security.juneau-marshall -->
 <h5 class='topic'>Demarshalling vulnerabilities</h5>
 <p>
 	One common security vulnerability is the ability to create arbitrary Java object instances through crafted
@@ -28618,12 +30117,12 @@
 	<li>The RDF parsers rely on Apache Jena 2.7.1.  
 		As of <c>7.0.1</c>, no known security vulnerabilities exist that affect Juneau at this time.
 </ul>
-</div><!-- END: 19.1 - Security.juneau-marshall -->
+</div><!-- END: 20.1 - Security.juneau-marshall -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic ' onclick='toggle(this)'><a href='#Security.juneau-svl' id='Security.juneau-svl'>19.2 - juneau-svl</a></h3>
-<div class='topic'><!-- START: 19.2 - Security.juneau-svl -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#Security.juneau-svl' id='Security.juneau-svl'>20.2 - juneau-svl</a></h3>
+<div class='topic'><!-- START: 20.2 - Security.juneau-svl -->
 <p>
 	Care must be used when defining new {@link org.apache.juneau.svl.Var Vars} using the SVL API since mistakes 
 	could potentially expose system properties, environment variables, or even file system files.
@@ -28668,12 +30167,12 @@
 	{@link org.apache.juneau.svl.Var#allowNested()} and {@link org.apache.juneau.svl.Var#allowRecurse()} 
 	methods to prevent recursive handling of variables.
 </p>
-</div><!-- END: 19.2 - Security.juneau-svl -->
+</div><!-- END: 20.2 - Security.juneau-svl -->
 
 <!-- ==================================================================================================== -->
 
-<h3 class='topic ' onclick='toggle(this)'><a href='#Security.juneau-rest-server' id='Security.juneau-rest-server'>19.3 - juneau-rest-server</a></h3>
-<div class='topic'><!-- START: 19.3 - Security.juneau-rest-server -->
+<h3 class='topic ' onclick='toggle(this)'><a href='#Security.juneau-rest-server' id='Security.juneau-rest-server'>20.3 - juneau-rest-server</a></h3>
+<div class='topic'><!-- START: 20.3 - Security.juneau-rest-server -->
 <p>
 	Denial of service attacks can be alleviated through the {@link org.apache.juneau.rest.annotation.Rest#maxInput() maxInput()}
 	setting.  Arbitrarily-large input will trigger an exception before causing out-of-memory errors.
@@ -28685,8 +30184,8 @@
 	becomes an issue.  However, this is NOT true of the RDF parsers that use an intermediate DOM.  If parsing 
 	RDF, you may want to consider lowering the max-input value above.
 </p>
-</div><!-- END: 19.3 - Security.juneau-rest-server -->
-</div><!-- END: 19 - Security -->
+</div><!-- END: 20.3 - Security.juneau-rest-server -->
+</div><!-- END: 20 - Security -->
 
 
 <h2 class='topic' onclick='toggle(this)'><a href='#ReleaseNotes' id='ReleaseNotes'>Release Notes</a></h2>
@@ -28771,6 +30270,7 @@
 <li><p><a class='doclink' href='{OVERVIEW_URL}#8.1.0'>8.1.0 (Aug 21, 2019)</a></p>
 <li><p><a class='doclink' href='{OVERVIEW_URL}#8.1.1'>8.1.1 (Sept 20, 2019)</a></p>
 <li><p><a class='doclink' href='{OVERVIEW_URL}#8.1.2'>8.1.2 (TBD)</a></p>
+<li><p><a class='doclink' href='{OVERVIEW_URL}#8.1.3'>8.1.3 (TBD)</a></p>
 </ul>
 
 	
@@ -29235,7 +30735,7 @@
 	<li>New <dc>@RestResource.defaultRequestHeaders</dc> and <dc>@RestResource.defaultResponseHeaders</dc> annotations.</li>
 	<li>New {@link org.apache.juneau.rest.annotation.RestMethod#serializers() @RestMethod(serializers)} and {@link org.apache.juneau.rest.annotation.RestMethod#parsers() @RestMethod(parsers)} annotations.</li>
 	<li>New {@link org.apache.juneau.rest.annotation.RestMethod#properties() @RestMethod(properties)} annotation.</li>
-	<li>New {@link org.apache.juneau.rest.annotation.RestMethod#defaultRequestHeaders() @RestMethod(defaultRequestHeaders)} annotation.</li>
+	<li>New <dc>@RestMethod(defaultRequestHeaders)</dc> annotation.</li>
 	<li>New {@link org.apache.juneau.rest.annotation.RestMethod#matchers() @RestMethod(matchers)} annotation and {@link org.apache.juneau.rest.RestMatcher} class.</li>
 	<li><c>Readers</c> and <c>InputStreams</c> can be specified on <dc>@Content</dc> annotated parameters.</li>
 	<li>New <dc>@HasParam</dc> annotation.</li>
@@ -33905,8 +35405,8 @@
 			<li>{@link org.apache.juneau.rest.RestContext#REST_converters REST_converters}
 			<li>{@link org.apache.juneau.rest.RestContext#REST_guards REST_guards}
 			<li>{@link org.apache.juneau.rest.RestContext#REST_responseHandlers REST_responseHandlers}
-			<li>{@link org.apache.juneau.rest.RestContext#REST_defaultRequestHeaders REST_defaultRequestHeaders}
-			<li>{@link org.apache.juneau.rest.RestContext#REST_defaultResponseHeaders REST_defaultResponseHeaders}
+			<li><dc>REST_defaultRequestHeaders</dc>
+			<li><dc>REST_defaultResponseHeaders</dc>
 			<li>{@link org.apache.juneau.rest.RestContext#REST_produces REST_produces}
 			<li>{@link org.apache.juneau.rest.RestContext#REST_consumes REST_consumes}
 			<li>{@link org.apache.juneau.rest.RestContext#REST_clientVersionHeader REST_clientVersionHeader}
@@ -35106,12 +36606,12 @@
 			<li class='jc'>{@link org.apache.juneau.rest.RequestAttributes}
 			<li class='jc'>{@link org.apache.juneau.rest.RestContext}
 			<ul>
-				<li class='jf'>{@link org.apache.juneau.rest.RestContext#REST_attrs REST_attrs}
+				<li class='jf'><dc>REST_attrs</dc>
 			</ul>
 			<li class='jc'>{@link org.apache.juneau.rest.RestContextBuilder}
 			<ul>
-				<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#attrs(String...) attrs(String...)}
-				<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#attr(String,Object) attr(String,Object)}
+				<li class='jm'><dc>attrs(String...)</dc>
+				<li class='jm'><dc>attr(String,Object)</dc>
 			</ul>
 			<li class='jc'>{@link org.apache.juneau.rest.RestMethodContext}
 			<ul>
@@ -35127,7 +36627,7 @@
 				<li class='jm'>{@link org.apache.juneau.rest.RestResponse#attr(String,Object) attr(String,Object)}
 			</ul>
 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Attr}
-			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#attrs()}
+			<li class='ja'><dc>RestMethod#attrs()</dc>
 			<li class='ja'><dc>RestResource.attrs()</dc>
 		</ul>
 		<br>This deprecates the following APIs:
@@ -35409,5 +36909,68 @@
 </ul>
 </div><!-- END: 8.1.2 -->
 
+<!-- ==================================================================================================== -->
+
+<h3 class='topic' onclick='toggle(this)'><a href='#8.1.3' id='8.1.3'>8.1.3 (TBD)</a></h3>
+<div class='topic'><!-- START: 8.1.3 -->
+<p>
+	Juneau 8.1.3 is a minor release.
+</p>
+
+<h5 class='topic w800'>juneau-marshall</h5>
+<ul class='spaced-list'>
+	<li>
+		Better representation of nulls for XML and HTML content properties.
+		<br>Old:  <js>"&lt;myBean&gt;&lt;null&gt;&lt;/myBean&gt;"</js>
+		<br>New:  <js>"&lt;myBean nil='true'&gt;&lt;/myBean&gt;"</js>
+	<li>
+		Configurable properties such as {@link org.apache.juneau.BeanContext#BEAN_debug} can now be set globally by either
+		system properties or environment variables.
+		<br>For <jsf>BEAN_debug</jsf> which resolves to <js>"BEAN_debug"</js>, you can use either the system
+		property <js>"BeanContext.debug.b"</js> or environment variables <js>"BeanContext_debug_b"</js> or 
+		<js>"BEANCONTEXT_DEBUG_B"</js>.
+</ul>
+
+<h5 class='topic w800'>juneau-rest-server</h5>
+<ul class='spaced-list'>
+	<li> 
+		Fixed bug in {@link org.apache.juneau.rest.BasicRestCallHandler} where if you have the following REST methods...
+		<p class='bpcode w800'>
+	<ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/foo"</js>)
+	<ja>@RestMethod</ja>(name=<js>"*"</js>, path=<js>"/bar"</js>)
+		</p>
+		...and you tried to make a GET request to /bar, you'd erroneously get a 404 error instead of matching the 2nd method.
+	<li> 
+		Fixed an issue involving using Juneau REST with Spring Security.  When Spring Security cannot authenticate a 
+		request, it sets the URL on the request to <js>"/error"</js> with a 401 status.  When Juneau then processes
+		this request, it cannot find that mapping and changes the status to 404 which messes with HTTP clients.
+		<br>Solution was to add a default no-op error method to the {@link org.apache.juneau.rest.BasicRestConfig} (and implementers):
+		<p class='bpcode w800'>
+	<ja>@RestMethod</ja>(name=<js>"*"</js>, path=<js>"/error"</js>)
+	<jk>public void</jk> error() {}
+		</p>
+	<li>
+		Fixed a bug where <c><ja>@RestResource</ja>(debug=<js>"true"</js>)</c> wouldn't log requests if a 
+		<ja>@RestMethod</ja>-annotated method was not matched.
+	<li>
+		Renamed the following annotations:
+		<ul>
+			<li><ja>@Rest(attrs)</ja> --&gt; {@link org.apache.juneau.rest.annotation.Rest#reqAttrs() @Rest(reqAttrs)}
+			<li><ja>@Rest(defaultRequestHeaders)</ja> --&gt; {@link org.apache.juneau.rest.annotation.Rest#reqHeaders() @Rest(reqHeaders)}
+			<li><ja>@Rest(defaultResponseHeaders)</ja> --&gt; {@link org.apache.juneau.rest.annotation.Rest#resHeaders() @Rest(resHeaders)}
+			<li><ja>@RestMethod(attrs)</ja> --&gt; {@link org.apache.juneau.rest.annotation.RestMethod#reqAttrs() @RestMethod(reqAttrs)}
+			<li><ja>@RestMethod(defaultRequestHeaders)</ja> --&gt; {@link org.apache.juneau.rest.annotation.RestMethod#reqHeaders() @RestMethod(reqHeaders)}
+		</ul>
+		
+</ul>
+
+<h5 class='topic w800'>juneau-rest-client</h5>
+<ul class='spaced-list'>
+	<li>
+		Several convenience methods defined in {@link org.apache.juneau.rest.client.RestClientBuilder} that were deprecated in 8.1.2 have been
+		undeprecated in this release due to user feedback.
+</ul>
+</div><!-- END: 8.1.3 -->
+
 </div>
 </body>								
diff --git a/juneau-doc/src/main/javadoc/resources/docs.txt b/juneau-doc/src/main/javadoc/resources/docs.txt
index 73c2fce..ea85f50 100644
--- a/juneau-doc/src/main/javadoc/resources/docs.txt
+++ b/juneau-doc/src/main/javadoc/resources/docs.txt
@@ -3,6 +3,8 @@
 DefaultRestSvlVariables = #DefaultRestSvlVariables, Default REST SVL Variables
 DefaultSvlVariables = #juneau-marshall.SimpleVariableLanguage.DefaultVarResolver, Default SVL Variables
 GFM = https://help.github.com/articles/github-flavored-markdown, GFM syntax
+Glossaries = #Glossaries, Overview > Glossaries
+Glossaries.ConfigurablePropertiesGlossary = #Glossaries.ConfigurablePropertiesGlossary, Overview > Glossaries > Configurable Properties Glossary
 HTML5 =  https://www.w3.org/TR/html5, html5
 HTML5.document-metadata =  https://www.w3.org/TR/html5/document-metadata.html, document-metadata.html
 HTML5.dom =  https://www.w3.org/TR/html5/dom.html, dom.html
@@ -129,6 +131,7 @@
 juneau-marshall.BeanDictionaries = #juneau-marshall.BeanDictionaries, Overview > juneau-marshall > Bean Names and Dictionaries
 juneau-marshall.BeanDictionaries.BeanSubTypes = #juneau-marshall.BeanDictionaries.BeanSubTypes, Overview > juneau-marshall > Bean Names and Dictionaries > Bean Subtypes
 juneau-marshall.BestPractices = #juneau-marshall.BestPractices, Overview > juneau-marshall > Best Practices
+juneau-marshall.ClassMethodAnnotations = #juneau-marshall.ClassMethodAnnotations, Overview > juneau-marshall > Class/Method Annotations
 juneau-marshall.ConfigurableAnnotations = #juneau-marshall.ConfigurableAnnotations, Overview > juneau-marshall > Configurable Annotations
 juneau-marshall.ConfigurableProperties = #juneau-marshall.ConfigurableProperties, Overview > juneau-marshall > Configurable Properties
 juneau-marshall.ConfigurableProperties.Common = #juneau-marshall.ConfigurableProperties.Common, Overview > juneau-marshall > Configurable Properties > Common Serializer Properties
@@ -181,7 +184,7 @@
 juneau-marshall.Transforms.BeanAnnotation = #juneau-marshall.Transforms.BeanAnnotation, Overview > juneau-marshall > Transforms > @Bean Annotation
 juneau-marshall.Transforms.BeanFilters = #juneau-marshall.Transforms.BeanFilters, Overview > juneau-marshall > Transforms > BeanFilter Class
 juneau-marshall.Transforms.BeanIgnoreAnnotation = #juneau-marshall.Transforms.BeanIgnoreAnnotation, Overview > juneau-marshall > Transforms > @BeanIgnore Annotation
-juneau-marshall.Transforms.BeancAnnotation = #juneau-marshall.Transforms.BeancAnnotation, Overview > juneau-marshall > Transforms > @BeancAnnotation
+juneau-marshall.Transforms.BeancAnnotation = #juneau-marshall.Transforms.BeancAnnotation, Overview > juneau-marshall > Transforms > @Beanc Annotation
 juneau-marshall.Transforms.BeanpAnnotation = #juneau-marshall.Transforms.BeanpAnnotation, Overview > juneau-marshall > Transforms > @Beanp Annotation
 juneau-marshall.Transforms.BypassSerialization = #juneau-marshall.Transforms.BypassSerialization, Overview > juneau-marshall > Transforms > Bypass Serialization using Readers and InputStreams
 juneau-marshall.Transforms.DefaultPojoSwaps = #juneau-marshall.Transforms.DefaultPojoSwaps, Overview > juneau-marshall > Transforms > Default PojoSwaps
diff --git a/juneau-doc/src/main/javadoc/resources/fragments/rntoc.html b/juneau-doc/src/main/javadoc/resources/fragments/rntoc.html
index b4d5375..13e177e 100644
--- a/juneau-doc/src/main/javadoc/resources/fragments/rntoc.html
+++ b/juneau-doc/src/main/javadoc/resources/fragments/rntoc.html
@@ -90,4 +90,5 @@
 <li><p><a class='doclink' href='{OVERVIEW_URL}#8.1.0'>8.1.0 (Aug 21, 2019)</a></p>
 <li><p><a class='doclink' href='{OVERVIEW_URL}#8.1.1'>8.1.1 (Sept 20, 2019)</a></p>
 <li><p><a class='doclink' href='{OVERVIEW_URL}#8.1.2'>8.1.2 (TBD)</a></p>
+<li><p><a class='doclink' href='{OVERVIEW_URL}#8.1.3'>8.1.3 (TBD)</a></p>
 </ul>
diff --git a/juneau-doc/src/main/javadoc/resources/fragments/toc.html b/juneau-doc/src/main/javadoc/resources/fragments/toc.html
index 5c8d125..baf9766 100644
--- a/juneau-doc/src/main/javadoc/resources/fragments/toc.html
+++ b/juneau-doc/src/main/javadoc/resources/fragments/toc.html
@@ -25,13 +25,14 @@
 		<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.Marshalls'>Marshalls</a></p>
 		<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.HttpPartSerializers'>HTTP Part Serializers</a></p>
 		<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.HttpPartParsers'>HTTP Part Parsers</a></p>
-		<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.ConfigurableProperties'>Configurable Properties</a></p>
+		<li><p class='updated'><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.ConfigurableProperties'>Configurable Properties</a></p>
 		<ol>
 			<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.ConfigurableProperties.Common'>Common Serializer Properties</a></p>
 			<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.ConfigurableProperties.CommonSerializer'>Common Serializer Properties</a></p>
 			<li><p class='update'><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.ConfigurableProperties.CommonParser'>Common Parser Properties</a></p>
 		</ol>
 		<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.ConfigurableAnnotations'>Configurable Annotations</a></p>
+		<li><p class='todo'><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.ClassMethodAnnotations'>Class/Method Annotations</a></p>
 		<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.ObjectMap'>ObjectMap and ObjectList</a></p>
 		<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.Groups'>SerializerGroups and ParserGroups</a></p>
 		<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.ContextsBuildersSessionsPropertyStores'>Contexts, Builders, Sessions, and PropertyStores</a></p>
@@ -46,8 +47,8 @@
 			<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.Transforms.TemplatedSwaps'>Templated Swaps</a></p>
 			<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.Transforms.SurrogateClasses'>Surrogate Classes</a></p>
 			<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.Transforms.BeanAnnotation'>@Bean Annotation</a></p>
-			<li><p class='updated'><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.Transforms.BeanpAnnotation'>@Beanp Annotation</a></p>
-			<li><p class='updated'><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.Transforms.BeancAnnotation'>@BeancAnnotation</a></p>
+			<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.Transforms.BeanpAnnotation'>@Beanp Annotation</a></p>
+			<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.Transforms.BeancAnnotation'>@Beanc Annotation</a></p>
 			<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.Transforms.BeanIgnoreAnnotation'>@BeanIgnore Annotation</a></p>
 			<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.Transforms.NamePropertyAnnotation'>@NameProperty Annotation</a></p>
 			<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.Transforms.ParentPropertyAnnotation'>@ParentProperty Annotation</a></p>
@@ -210,10 +211,10 @@
 			<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-server.Instantiation.ResourceResolvers'>Resource Resolvers</a></p>
 			<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-server.Instantiation.LifecycleHooks'>Lifecycle Hooks</a></p>
 		</ol>
-		<li><p class='updated'><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-server.Rest'>@Rest</a></p>
+		<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-server.Rest'>@Rest</a></p>
 		<ol>
 			<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-server.Rest.AnnotationInheritance'>Annotation Inheritance</a></p>
-			<li><p class='updated'><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-server.Rest.RestPath'>@Rest(path)</a></p>
+			<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-server.Rest.RestPath'>@Rest(path)</a></p>
 		</ol>
 		<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-server.RestContext'>RestContext</a></p>
 		<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-server.RestMethod'>@RestMethod</a></p>
@@ -319,7 +320,7 @@
 	<ol>
 		<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.RestProxies'>REST Proxies</a></p>
 		<ol>
-			<li><p class='updated'><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.RestProxies.Remote'>@Remote</a></p>
+			<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.RestProxies.Remote'>@Remote</a></p>
 			<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.RestProxies.RemoteMethod'>@RemoteMethod</a></p>
 			<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.RestProxies.Body'>@Body</a></p>
 			<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-client.RestProxies.FormData'>@FormData</a></p>
@@ -347,9 +348,9 @@
 	<li><p class='toc2'><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-mock'>juneau-rest-mock</a></p>
 	<ol>
 		<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-mock.MockRest'>MockRest</a></p>
-		<li><p class='updated'><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-mock.MockRemote'>MockRemote</a></p>
+		<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-rest-mock.MockRemote'>MockRemote</a></p>
 	</ol>
-	<li><p class='updated'><a class='doclink' href='{OVERVIEW_URL}#juneau-microservice-core'>juneau-microservice-core</a></p>
+	<li><p class='toc2'><a class='doclink' href='{OVERVIEW_URL}#juneau-microservice-core'>juneau-microservice-core</a></p>
 	<ol>
 		<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-microservice-core.Overview'>Microservice Overview</a></p>
 		<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-microservice-core.LifecycleMethods'>Lifecycle Methods</a></p>
@@ -362,7 +363,7 @@
 		<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-microservice-core.Logging'>Logging</a></p>
 		<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-microservice-core.Listeners'>Listeners</a></p>
 	</ol>
-	<li><p class='updated'><a class='doclink' href='{OVERVIEW_URL}#juneau-microservice-jetty'>juneau-microservice-jetty</a></p>
+	<li><p class='toc2'><a class='doclink' href='{OVERVIEW_URL}#juneau-microservice-jetty'>juneau-microservice-jetty</a></p>
 	<ol>
 		<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-microservice-jetty.Overview'>Overview</a></p>
 		<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-microservice-jetty.LifecycleMethods'>Lifecycle Methods</a></p>
@@ -373,7 +374,7 @@
 		<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-microservice-jetty.UiCustomization'>UI Customization</a></p>
 		<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-microservice-jetty.Extending'>Extending JettyMicroservice</a></p>
 	</ol>
-	<li><p class='updated'><a class='doclink' href='{OVERVIEW_URL}#my-jetty-microservice'>my-jetty-microservice</a></p>
+	<li><p class='toc2'><a class='doclink' href='{OVERVIEW_URL}#my-jetty-microservice'>my-jetty-microservice</a></p>
 	<ol>
 		<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#my-jetty-microservice.Installing'>Installing in Eclipse</a></p>
 		<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#my-jetty-microservice.Running'>Running in Eclipse</a></p>
@@ -398,7 +399,7 @@
 		<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-examples-rest.ConfigResource'>ConfigResource</a></p>
 		<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-examples-rest.LogsResource'>LogsResource</a></p>
 	</ol>
-	<li><p class='updated'><a class='doclink' href='{OVERVIEW_URL}#juneau-examples-rest-jetty'>juneau-examples-rest-jetty</a></p>
+	<li><p class='toc2'><a class='doclink' href='{OVERVIEW_URL}#juneau-examples-rest-jetty'>juneau-examples-rest-jetty</a></p>
 	<ol>
 		<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-examples-rest-jetty.Installing'>Installing in Eclipse</a></p>
 		<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-examples-rest-jetty.Running'>Running in Eclipse</a></p>
@@ -411,6 +412,10 @@
 		<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-examples-rest-springboot.Building'>Building and Running from Command-Line</a></p>
 		<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-examples-rest-springboot.DeployingToHeroku'>Deploying to Heroku</a></p>
 	</ol>
+	<li><p class='new'><a class='doclink' href='{OVERVIEW_URL}#Glossaries'>Glossaries</a></p>
+	<ol>
+		<li><p class='new'><a class='doclink' href='{OVERVIEW_URL}#Glossaries.ConfigurablePropertiesGlossary'>Configurable Properties Glossary</a></p>
+	</ol>
 	<li><p class='toc2'><a class='doclink' href='{OVERVIEW_URL}#Security'>Security Best-Practices</a></p>
 	<ol>
 		<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#Security.juneau-marshall'>juneau-marshall</a></p>
diff --git a/juneau-doc/src/main/javadoc/resources/juneau-doc.css b/juneau-doc/src/main/javadoc/resources/juneau-doc.css
index 6236e11..5cd5cd4 100755
--- a/juneau-doc/src/main/javadoc/resources/juneau-doc.css
+++ b/juneau-doc/src/main/javadoc/resources/juneau-doc.css
@@ -65,7 +65,7 @@
 
 table.styled th { background-color: #dee3e9; border: 1px solid #9eadc0; padding: 3px 10px 3px 10px; }
 table.styled td { padding: 3px; }
-table.styled ul { padding: 0px 10px; }
+table.styled ul { padding: 0px 10px; margin: 0px; }
 table.styled tr:nth-child(1) { background-color: #dee3e9; }
 table.styled tr:nth-child(2n+2) { background-color: #eeeeef; }
 table.styled tr:nth-child(2n+3) { background-color: white; }
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 dfbc5c4..0ffb144 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
@@ -85,12 +85,15 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>RestClient.debug</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTCLIENT_DEBUG</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestClientBuilder#debug()}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.client.RestClientBuilder#debug()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -105,12 +108,17 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <code>Class&lt;? <jk>implements</jk> ExecutorService&gt;</code> or {@link ExecutorService}.
+	 * 	<li><b>Data type:</b>
+	 * 		<ul>
+	 * 			<li><c>Class&lt;{@link java.util.concurrent.ExecutorService}&gt;</c>
+	 * 			<li>{@link java.util.concurrent.ExecutorService}
+	 * 		</ul>
 	 * 	<li><b>Default:</b>  <jk>null</jk>.
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestClientBuilder#executorService(ExecutorService, boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.client.RestClientBuilder#executorService(ExecutorService, boolean)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -138,12 +146,15 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>RestClient.executorServiceShutdownOnClose</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTCLIENT_EXECUTORSERVICESHUTDOWNONCLOSE</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestClientBuilder#executorService(ExecutorService, boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.client.RestClientBuilder#executorService(ExecutorService, boolean)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -158,12 +169,15 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"RestClient.requestHeader.sms"</js>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RestClient.requestHeaders</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTCLIENT_REQUESTHEADERS</c>
 	 * 	<li><b>Default:</b>  empty map
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestClientBuilder#header(String, Object)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.client.RestClientBuilder#header(String, Object)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -178,12 +192,13 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <code>List&lt;Class&lt;? <jk>implements</jk> RestCallInterceptor&gt; | RestCallInterceptor&gt;</code>
+	 * 	<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>
 	 * 	<li><b>Default:</b>  empty list.
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestClientBuilder#interceptors(RestCallInterceptor...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.client.RestClientBuilder#interceptors(RestCallInterceptor...)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -203,12 +218,15 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>RestClient.keepHttpClientOpen</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTCLIENT_KEEPHTTPCLIENTOPEN</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestClientBuilder#keepHttpClientOpen(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.client.RestClientBuilder#keepHttpClientOpen(boolean)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -223,13 +241,18 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <code>Class&lt;? <jk>extends</jk> Parser&gt;</code> or {@link Parser}.
-	 * 	<li><b>Default:</b>  {@link JsonParser};
+	 * 	<li><b>Data type:</b>
+	 * 		<ul>
+	 * 			<li><c>Class&lt;{@link org.apache.juneau.parser.Parser}&gt;</c>
+	 * 			<li>{@link org.apache.juneau.parser.Parser}
+	 * 		</ul>
+	 * 	<li><b>Default:</b>  {@link org.apache.juneau.json.JsonParser};
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestClientBuilder#parser(Class)}
-	 * 			<li class='jm'>{@link RestClientBuilder#parser(Parser)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.client.RestClientBuilder#parser(Class)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.client.RestClientBuilder#parser(Parser)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -244,13 +267,18 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <code>Class&lt;? <jk>implements</jk> HttpPartParser&gt;</code> or {@link HttpPartParser}.
-	 * 	<li><b>Default:</b>  {@link OpenApiParser};
+	 * 	<li><b>Data type:</b>
+	 * 		<ul>
+	 * 			<li><c>Class&lt;{@link org.apache.juneau.httppart.HttpPartParser}&gt;</c>
+	 * 			<li>{@link org.apache.juneau.httppart.HttpPartParser}
+	 * 		</ul>
+	 * 	<li><b>Default:</b>  {@link org.apache.juneau.oapi.OpenApiParser};
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestClientBuilder#partParser(Class)}
-	 * 			<li class='jm'>{@link RestClientBuilder#partParser(HttpPartParser)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.client.RestClientBuilder#partParser(Class)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.client.RestClientBuilder#partParser(HttpPartParser)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -265,13 +293,18 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <code>Class&lt;? <jk>implements</jk> HttpPartSerializer&gt;</code> or {@link HttpPartSerializer}.
-	 * 	<li><b>Default:</b>  {@link OpenApiSerializer};
+	 * 	<li><b>Data type:</b>
+	 * 		<ul>
+	 * 			<li><c>Class&lt;{@link org.apache.juneau.httppart.HttpPartSerializer}&gt;</c>
+	 * 			<li>{@link org.apache.juneau.httppart.HttpPartSerializer}
+	 * 		</ul>
+	 * 	<li><b>Default:</b>  {@link org.apache.juneau.oapi.OpenApiSerializer};
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestClientBuilder#partSerializer(Class)}
-	 * 			<li class='jm'>{@link RestClientBuilder#partSerializer(HttpPartSerializer)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.client.RestClientBuilder#partSerializer(Class)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.client.RestClientBuilder#partSerializer(HttpPartSerializer)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -286,12 +319,15 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RestClient.query</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTCLIENT_QUERY</c>
 	 * 	<li><b>Default:</b>  empty map
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestClientBuilder#query(String, Object)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.client.RestClientBuilder#query(String, Object)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -306,12 +342,15 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Integer</c>
+	 * 	<li><b>Data type:</b>  <jk>int</jk>
+	 * 	<li><b>System property:</b>  <c>RestClient.retries</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTCLIENT_RETRIES</c>
 	 * 	<li><b>Default:</b>  <c>1</c>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestClientBuilder#retryable(int, int, RetryOn)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.client.RestClientBuilder#retryable(int, int, RetryOn)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -326,12 +365,15 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Integer</c>
+	 * 	<li><b>Data type:</b>  <jk>int</jk>
+	 * 	<li><b>System property:</b>  <c>RestClient.retryInterval</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTCLIENT_RETRYINTERVAL</c>
 	 * 	<li><b>Default:</b>  <c>-1</c>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestClientBuilder#retryable(int, int, RetryOn)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.client.RestClientBuilder#retryable(int, int, RetryOn)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -347,12 +389,17 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Class&lt;? extends {@link RetryOn}</c> or {@link RetryOn}
-	 * 	<li><b>Default:</b>  {@link RetryOn#DEFAULT}
+	 * 	<li><b>Data type:</b>
+	 * 		<ul>
+	 * 			<li><c>Class&lt;{@link org.apache.juneau.rest.client.RetryOn}&gt;</c>
+	 * 			<li>{@link org.apache.juneau.rest.client.RetryOn}
+	 * 		</ul>
+	 * 	<li><b>Default:</b>  {@link org.apache.juneau.rest.client.RetryOn#DEFAULT}
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestClientBuilder#retryable(int, int, RetryOn)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.client.RestClientBuilder#retryable(int, int, RetryOn)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -367,12 +414,15 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RestClient.rootUri</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTCLIENT_ROOTURI</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestClientBuilder#rootUrl(Object)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.client.RestClientBuilder#rootUrl(Object)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -390,13 +440,18 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <code>Class&lt;? <jk>extends</jk> Serializer&gt;</code> or {@link Serializer}.
-	 * 	<li><b>Default:</b>  {@link JsonSerializer};
+	 * 	<li><b>Data type:</b>
+	 * 		<ul>
+	 * 			<li><c>Class&lt;{@link org.apache.juneau.serializer.Serializer}&gt;</c>
+	 * 			<li>{@link org.apache.juneau.serializer.Serializer}
+	 * 		</ul>
+	 * 	<li><b>Default:</b>  {@link org.apache.juneau.json.JsonSerializer};
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestClientBuilder#serializer(Class)}
-	 * 			<li class='jm'>{@link RestClientBuilder#serializer(Serializer)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.client.RestClientBuilder#serializer(Class)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.client.RestClientBuilder#serializer(Serializer)}
 	 * 		</ul>
 	 * </ul>
 	 *
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 d0f7463..fa7b931 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
@@ -64,7 +64,6 @@
 import org.apache.juneau.rest.reshandlers.*;
 import org.apache.juneau.rest.util.*;
 import org.apache.juneau.rest.vars.*;
-import org.apache.juneau.rest.widget.*;
 import org.apache.juneau.serializer.*;
 import org.apache.juneau.soap.*;
 import org.apache.juneau.svl.*;
@@ -95,17 +94,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>RestContext.allowBodyParam</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTCONTEXT_ALLOWBODYPARAM</c>
 	 * 	<li><b>Default:</b>  <jk>true</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#allowBodyParam()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#allowBodyParam()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#allowBodyParam(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#allowBodyParam(boolean)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -157,17 +159,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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 list)
+	 * 	<li><b>Data type:</b>  <c>String</c> (comma-delimited)
+	 * 	<li><b>System property:</b>  <c>RestContext.allowedHeaderParams</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTCONTEXT_ALLOWHEADERPARAMS</c>
 	 * 	<li><b>Default:</b>  <js>"Accept,Content-Type"</js>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#allowedHeaderParams()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#allowedHeaderParams()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#allowedHeaderParams(String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#allowedHeaderParams(String)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -224,17 +229,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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 list)
+	 * 	<li><b>Data type:</b>  <c>String</c> (comma-delimited)
+	 * 	<li><b>System property:</b>  <c>RestContext.allowedMethodHeaders</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTCONTEXT_ALLOWEDMETHODHEADERS</c>
 	 * 	<li><b>Default:</b>  empty string
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#allowedMethodHeaders()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#allowedMethodHeaders()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#allowedMethodHeaders(String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#allowedMethodHeaders(String)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -288,17 +296,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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 list)
+	 * 	<li><b>Data type:</b>  <c>String</c> (comma-delimited)
+	 * 	<li><b>System property:</b>  <c>RestContext.allowedMethodParams</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTCONTEXT_ALLOWEDMETHODPARAMS</c>
 	 * 	<li><b>Default:</b>  <js>"HEAD,OPTIONS"</js>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#allowedMethodParams()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#allowedMethodParams()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#allowedMethodParams(String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#allowedMethodParams(String)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -361,62 +372,6 @@
 	/**
 	 * Configuration property:  Allow header URL parameters.
 	 *
-	 * <h5 class='section'>Property:</h5>
-	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"RestContext.allowHeaderParams.b"</js>
-	 * 	<li><b>Data type:</b>  <c>Boolean</c>
-	 * 	<li><b>Default:</b>  <jk>true</jk>
-	 * 	<li><b>Session property:</b>  <jk>false</jk>
-	 * 	<li><b>Annotations:</b>
-	 * 		<ul>
-	 * 			<li class='ja'>{@link RestResource#allowHeaderParams()}
-	 * 		</ul>
-	 * 	<li><b>Methods:</b>
-	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#allowHeaderParams(boolean)}
-	 * 		</ul>
-	 * </ul>
-	 *
-	 * <h5 class='section'>Description:</h5>
-	 * <p>
-	 * When enabled, headers such as <js>"Accept"</js> and <js>"Content-Type"</js> to be passed in as URL query
-	 * parameters.
-	 * <br>
-	 * For example:
-	 * <p class='bcode w800'>
-	 *  ?Accept=text/json&amp;Content-Type=text/json
-	 * </p>
-	 *
-	 * <h5 class='section'>Example:</h5>
-	 * <p class='bcode w800'>
-	 * 	<jc>// Option #1 - Defined via annotation resolving to a config file setting with default value.</jc>
-	 * 	<ja>@Rest</ja>(allowMethodParams=<js>"$C{REST/allowHeaderParams,false}"</js>)
-	 * 	<jk>public class</jk> MyResource {
-	 *
-	 * 		<jc>// Option #2 - Defined via builder passed in through resource constructor.</jc>
-	 * 		<jk>public</jk> MyResource(RestContextBuilder builder) <jk>throws</jk> Exception {
-	 *
-	 * 			<jc>// Using method on builder.</jc>
-	 * 			builder.allowHeaderParams(<jk>false</jk>);
-	 *
-	 * 			<jc>// Same, but using property.</jc>
-	 * 			builder.set(<jsf>REST_allowHeaderParams</jsf>, <jk>false</jk>);
-	 * 		}
-	 *
-	 * 		<jc>// Option #3 - Defined via builder passed in through init method.</jc>
-	 * 		<ja>@RestHook</ja>(<jsf>INIT</jsf>)
-	 * 		<jk>public void</jk> init(RestContextBuilder builder) <jk>throws</jk> Exception {
-	 * 			builder.allowHeaderParams(<jk>false</jk>);
-	 * 		}
-	 * 	}
-	 * </p>
-	 *
-	 * <ul class='notes'>
-	 * 	<li>
-	 * 		Header names are case-insensitive.
-	 * 	<li>
-	 * 		Useful for debugging REST interface using only a browser.
-	 * </ul>
 	 * @deprecated Use {@link #REST_allowedHeaderParams}
 	 */
 	@Deprecated
@@ -427,18 +382,23 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  {@link RestCallHandler} | <code>Class&lt;? <jk>extends</jk> {@link RestCallHandler}&gt;</code>
-	 * 	<li><b>Default:</b>  {@link BasicRestCallHandler}
+	 * 	<li><b>Data type:</b>
+	 * 		<ul>
+	 * 			<li>{@link org.apache.juneau.rest.RestCallHandler}
+	 * 			<li><c>Class&lt;{@link org.apache.juneau.rest.RestCallHandler}&gt;</c>
+	 * 		</ul>
+	 * 	<li><b>Default:</b>  {@link org.apache.juneau.rest.BasicRestCallHandler}
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#callHandler()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#callHandler()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#callHandler(Class)}
-	 * 			<li class='jm'>{@link RestContextBuilder#callHandler(RestCallHandler)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#callHandler(Class)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#callHandler(RestCallHandler)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -516,18 +476,23 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <code>{@link RestCallLogger} | Class&lt;? <jk>extends</jk> {@link RestCallLogger}&gt;</code>
-	 * 	<li><b>Default:</b>  {@link BasicRestCallLogger}
+	 * 	<li><b>Data type:</b>
+	 * 		<ul>
+	 * 			<li>{@link org.apache.juneau.rest.RestCallLogger}
+	 * 			<li><c>Class&lt;{@link org.apache.juneau.rest.RestCallLogger}&gt;</c>
+	 * 		</ul>
+	 * 	<li><b>Default:</b>  {@link org.apache.juneau.rest.BasicRestCallLogger}
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#callLogger()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#callLogger()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#callLogger(Class)}
-	 * 			<li class='jm'>{@link RestContextBuilder#callLogger(RestCallLogger)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#callLogger(Class)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#callLogger(RestCallLogger)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -579,17 +544,18 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>RestCallLoggerConfig</c>
-	 * 	<li><b>Default:</b>  {@link RestCallLoggerConfig#DEFAULT}
+	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.rest.RestCallLoggerConfig}
+	 * 	<li><b>Default:</b>  {@link org.apache.juneau.rest.RestCallLoggerConfig#DEFAULT}
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#logging()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#logging()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#callLoggerConfig(RestCallLoggerConfig)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#callLoggerConfig(RestCallLoggerConfig)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -655,19 +621,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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 RestChild}&gt;</c>
+	 * 	<li><b>Data type:</b>  <c>List&lt;Class|Object|{@link org.apache.juneau.rest.RestChild}&gt;</c>
 	 * 	<li><b>Default:</b>  empty list
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#children()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#children()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#child(String,Object)}
-	 * 			<li class='jm'>{@link RestContextBuilder#children(Class...)}
-	 * 			<li class='jm'>{@link RestContextBuilder#children(Object...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#child(String,Object)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#children(Class...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#children(Object...)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -766,18 +733,19 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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 ClasspathResourceFinder}
-	 * 	<li><b>Default:</b>  {@link ClasspathResourceFinderBasic}
+	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.utils.ClasspathResourceFinder}
+	 * 	<li><b>Default:</b>  {@link org.apache.juneau.utils.ClasspathResourceFinderBasic}
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#classpathResourceFinder()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#classpathResourceFinder()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#classpathResourceFinder(Class)}
-	 * 			<li class='jm'>{@link RestContextBuilder#classpathResourceFinder(ClasspathResourceFinder)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#classpathResourceFinder(Class)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#classpathResourceFinder(ClasspathResourceFinder)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -867,17 +835,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RestContext.clientVersionHeader</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTCONTEXT_CLIENTVERSIONHEADER</c>
 	 * 	<li><b>Default:</b>  <js>"X-Client-Version"</js>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#clientVersionHeader()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#clientVersionHeader()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#clientVersionHeader(String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#clientVersionHeader(String)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -940,19 +911,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <code>List&lt;{@link RestConverter} | Class&lt;? <jk>extends</jk> {@link RestConverter}&gt;&gt;</code>
+	 * 	<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>
 	 * 	<li><b>Default:</b>  empty list
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#converters()}
-	 * 			<li class='ja'>{@link RestMethod#converters()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#converters()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#converters()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#converters(Class...)}
-	 * 			<li class='jm'>{@link RestContextBuilder#converters(RestConverter...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#converters(Class...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#converters(RestConverter...)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -1032,17 +1004,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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 Enablement}
-	 * 	<li><b>Default:</b>  {@link Enablement#FALSE}
+	 * 	<li><b>Data type:</b>  {@link org.apache.juneau.rest.Enablement}
+	 * 	<li><b>System property:</b>  <c>RestContext.debug</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTCONTEXT_DEBUG</c>
+	 * 	<li><b>Default:</b>  {@link org.apache.juneau.rest.Enablement#FALSE}
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#debug()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#debug()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#debug(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#debug(boolean)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -1061,19 +1036,22 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RestContext.defaultCharset</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTCONTEXT_DEFAULTCHARSET</c>
 	 * 	<li><b>Default:</b>  <js>"utf-8"</js>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#defaultCharset()}
-	 * 			<li class='ja'>{@link RestMethod#defaultCharset()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#defaultCharset()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#defaultCharset()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#defaultCharset(String)}
-	 * 			<li class='jm'>{@link RestContextBuilder#defaultCharset(Charset)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#defaultCharset(String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#defaultCharset(Charset)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -1113,7 +1091,7 @@
 
 	/**
 	 * Configuration property:  Default request attributes.
-	 * 
+	 *
 	 * @deprecated Use {@link #REST_reqAttrs}
 	 */
 	@Deprecated
@@ -1121,7 +1099,7 @@
 
 	/**
 	 * Configuration property:  Default request headers.
-	 * 
+	 *
 	 * @deprecated Use {@link #REST_reqHeaders}
 	 */
 	@Deprecated
@@ -1129,7 +1107,7 @@
 
 	/**
 	 * Configuration property:  Default response headers.
-	 * 
+	 *
 	 * @deprecated Use {@link #REST_resHeaders}
 	 */
 	@Deprecated
@@ -1140,19 +1118,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <code>List&lt;{@link Encoder} | Class&lt;? <jk>extends</jk> {@link Encoder}&gt;&gt;</code>
+	 * 	<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>
 	 * 	<li><b>Default:</b>  empty list
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#encoders()}
-	 * 			<li class='ja'>{@link RestMethod#encoders()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#encoders()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#encoders()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#encoders(Class...)}
-	 * 			<li class='jm'>{@link RestContextBuilder#encoders(Encoder...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#encoders(Class...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#encoders(Encoder...)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -1210,19 +1189,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <code>List&lt;{@link RestGuard} | Class&lt;? <jk>extends</jk> {@link RestGuard}&gt;&gt;</code>
+	 * 	<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>
 	 * 	<li><b>Default:</b>  empty list
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#guards()}
-	 * 			<li class='ja'>{@link RestMethod#guards()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#guards()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#guards()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#guards(Class...)}
-	 * 			<li class='jm'>{@link RestContextBuilder#guards(RestGuard...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#guards(Class...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#guards(RestGuard...)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -1293,18 +1273,23 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <code>{@link RestInfoProvider} | Class&lt;? <jk>extends</jk> {@link RestInfoProvider}&gt;</code>
-	 * 	<li><b>Default:</b>  {@link BasicRestInfoProvider}
+	 * 	<li><b>Data type:</b>
+	 * 		<ul>
+	 * 			<li>{@link org.apache.juneau.rest.RestInfoProvider}
+	 * 			<li><c>Class&lt;{@link org.apache.juneau.rest.RestInfoProvider}&gt;</c>
+	 * 		</ul>
+	 * 	<li><b>Default:</b>  {@link org.apache.juneau.rest.BasicRestInfoProvider}
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#infoProvider()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#infoProvider()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#infoProvider(Class)}
-	 * 			<li class='jm'>{@link RestContextBuilder#infoProvider(RestInfoProvider)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#infoProvider(Class)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#infoProvider(RestInfoProvider)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -1379,77 +1364,6 @@
 	/**
 	 * Configuration property:  REST logger.
 	 *
-	 * <h5 class='section'>Property:</h5>
-	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"RestContext.logger.o"</js>
-	 * 	<li><b>Data type:</b>  <code>{@link RestLogger} | Class&lt;? <jk>extends</jk> {@link RestLogger}&gt;</code>
-	 * 	<li><b>Default:</b>  {@link BasicRestLogger}
-	 * 	<li><b>Session property:</b>  <jk>false</jk>
-	 * 	<li><b>Annotations:</b>
-	 * 		<ul>
-	 * 			<li class='ja'>{@link RestResource#logger()}
-	 * 		</ul>
-	 * 	<li><b>Methods:</b>
-	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#logger(Class)}
-	 * 			<li class='jm'>{@link RestContextBuilder#logger(RestLogger)}
-	 * 		</ul>
-	 * </ul>
-	 *
-	 * <h5 class='section'>Description:</h5>
-	 * <p>
-	 * Specifies the logger to use for logging.
-	 *
-	 * <p>
-	 * Two implementations are provided by default:
-	 * <ul class='javatree'>
-	 * 	<li class='jc'>{@link BasicRestLogger} - Default logging.
-	 * 	<li class='jc'>{@link NoOpRestLogger} - Logging disabled.
-	 * </ul>
-	 *
-	 * <p>
-	 * Loggers are accessible through the following:
-	 * <ul class='javatree'>
-	 * 	<li class='jm'>{@link RestContext#getLogger() RestContext.getLogger()}
-	 * 	<li class='jm'>{@link RestRequest#getLogger() RestRequest.getLogger()}
-	 * </ul>
-	 *
-	 * <h5 class='section'>Example:</h5>
-	 * <p class='bcode w800'>
-	 * 	<jc>// Our customized logger.</jc>
-	 * 	<jk>public class</jk> MyRestLogger <jk>extends</jk> BasicRestLogger {
-	 *
-	 * 		<ja>@Override</ja>
-	 * 		<jk>public void</jk> log(Level level, Throwable cause, String msg, Object...args) {
-	 * 			<jc>// Handle logging ourselves.</jc>
-	 * 		}
-	 * 	}
-	 *
-	 * 	<jc>// Option #1 - Registered via annotation resolving to a config file setting with default value.</jc>
-	 * 	<ja>@Rest</ja>(logger=MyRestLogger.<jk>class</jk>)
-	 * 	<jk>public class</jk> MyResource {
-	 *
-	 * 		<jc>// Option #2 - Registered via builder passed in through resource constructor.</jc>
-	 * 		<jk>public</jk> MyResource(RestContextBuilder builder) <jk>throws</jk> Exception {
-	 *
-	 * 			<jc>// Using method on builder.</jc>
-	 * 			builder.logger(MyRestLogger.<jk>class</jk>);
-	 *
-	 * 			<jc>// Same, but using property.</jc>
-	 * 			builder.set(<jsf>REST_logger</jsf>, MyRestLogger.<jk>class</jk>);
-	 * 		}
-	 *
-	 * 		<jc>// Option #3 - Registered via builder passed in through init method.</jc>
-	 * 		<ja>@RestHook</ja>(<jsf>INIT</jsf>)
-	 * 		<jk>public void</jk> init(RestContextBuilder builder) <jk>throws</jk> Exception {
-	 * 			builder.logger(MyRestLogger.<jk>class</jk>);
-	 * 		}
-	 * 	}
-	 * </p>
-	 *
-	 * <ul class='seealso'>
-	 * 	<li class='link'>{@doc juneau-rest-server.LoggingAndDebugging}
-	 * </ul>
 	 * @deprecated Use {@link #REST_callLogger}
 	 */
 	@Deprecated
@@ -1460,18 +1374,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RestContext.maxInput</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTCONTEXT_MAXINPUT</c>
 	 * 	<li><b>Default:</b>  <js>"100M"</js>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#maxInput()}
-	 * 			<li class='ja'>{@link RestMethod#maxInput()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#maxInput()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#maxInput()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#maxInput(String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#maxInput(String)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -1525,19 +1442,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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 MessageBundleLocation}&gt;</c>
+	 * 	<li><b>Data type:</b>  <c>List&lt;{@link org.apache.juneau.rest.MessageBundleLocation}&gt;</c>
 	 * 	<li><b>Default:</b>  <jk>null</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#messages()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#messages()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#messages(String)},
-	 * 			<li class='jm'>{@link RestContextBuilder#messages(Class,String)}
-	 * 			<li class='jm'>{@link RestContextBuilder#messages(MessageBundleLocation...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#messages(String)},
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#messages(Class,String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#messages(MessageBundleLocation...)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -1610,17 +1528,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RestContext.mimeTypes</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTCONTEXT_MIMETYPES</c>
 	 * 	<li><b>Default:</b>  empty list
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#mimeTypes()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#mimeTypes()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#mimeTypes(String...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#mimeTypes(String...)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -1677,18 +1598,19 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <code>List&lt;{@link RestMethodParam} | Class&lt;? <jk>extends</jk> {@link RestMethodParam}&gt;&gt;</code>
+	 * 	<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>
 	 * 	<li><b>Default:</b>  empty list
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#paramResolvers()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#paramResolvers()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#paramResolvers(Class...)}
-	 * 			<li class='jm'>{@link RestContextBuilder#paramResolvers(RestMethodParam...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#paramResolvers(Class...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#paramResolvers(RestMethodParam...)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -1766,20 +1688,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <code>List&lt;{@link Parser} | Class&lt;? <jk>extends</jk> {@link Parser}&gt;&gt;</code>
+	 * 	<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>
 	 * 	<li><b>Default:</b>  empty list
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#parsers()}
-	 * 			<li class='ja'>{@link RestMethod#parsers()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#parsers()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#parsers()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#parsers(Object...)}
-	 * 			<li class='jm'>{@link RestContextBuilder#parsers(Class...)}
-	 * 			<li class='jm'>{@link RestContextBuilder#parsersReplace(Object...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#parsers(Object...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#parsers(Class...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#parsersReplace(Object...)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -1859,18 +1782,19 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <code>{@link HttpPartParser} | Class&lt;? <jk>extends</jk> {@link HttpPartParser}&gt;</code>
-	 * 	<li><b>Default:</b>  {@link OpenApiParser}
+	 * 	<li><b>Data type:</b>  <c>{@link org.apache.juneau.httppart.HttpPartParser}|Class&lt;{@link org.apache.juneau.httppart.HttpPartParser}&gt;</c>
+	 * 	<li><b>Default:</b>  {@link org.apache.juneau.oapi.OpenApiParser}
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#partParser()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#partParser()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#partParser(Class)}
-	 * 			<li class='jm'>{@link RestContextBuilder#partParser(HttpPartParser)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#partParser(Class)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#partParser(HttpPartParser)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -1926,18 +1850,23 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <code>{@link HttpPartSerializer} | Class&lt;? <jk>extends</jk> {@link HttpPartSerializer}&gt;</code>
-	 * 	<li><b>Default:</b>  {@link OpenApiSerializer}
+	 * 	<li><b>Data type:</b>
+	 * 		<ul>
+	 * 			<li>{@link org.apache.juneau.httppart.HttpPartSerializer}
+	 * 			<li><c>Class&lt;{@link org.apache.juneau.httppart.HttpPartSerializer}&gt;</c>
+	 * 		</ul>
+	 * 	<li><b>Default:</b>  {@link org.apache.juneau.oapi.OpenApiSerializer}
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#partSerializer()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#partSerializer()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#partSerializer(Class)}
-	 * 			<li class='jm'>{@link RestContextBuilder#partSerializer(HttpPartSerializer)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#partSerializer(Class)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#partSerializer(HttpPartSerializer)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -1998,17 +1927,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RestContext.path.</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTCONTEXT_PATH</c>
 	 * 	<li><b>Default:</b>  <jk>null</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#path()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#path()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#path(String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#path(String)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -2069,18 +2001,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>RestContext.renderResponseStackTraces</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTCONTEXT_RENDERRESPONSESTACKTRACES</c>
 	 * 	<li><b>Default:</b>  <jk>false</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#renderResponseStackTraces()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#renderResponseStackTraces()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#renderResponseStackTraces(boolean)}
-	 * 			<li class='jm'>{@link RestContextBuilder#renderResponseStackTraces()}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#renderResponseStackTraces(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#renderResponseStackTraces()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -2131,19 +2066,22 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RestContext.reqAttrs</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTCONTEXT_REQATTRS</c>
 	 * 	<li><b>Default:</b>  empty map
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#reqAttrs()}
-	 * 			<li class='ja'>{@link RestMethod#reqAttrs()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#reqAttrs()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#reqAttrs()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#reqAttrs(String...)}
-	 * 			<li class='jm'>{@link RestContextBuilder#reqAttr(String,Object)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#reqAttrs(String...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#reqAttr(String,Object)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -2199,19 +2137,22 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RestContext.reqHeaders</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTCONTEXT_REQHEADERS</c>
 	 * 	<li><b>Default:</b>  empty map
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#reqHeaders()}
-	 * 			<li class='ja'>{@link RestMethod#reqHeaders()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#reqHeaders()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#reqHeaders()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#reqHeader(String,Object)}
-	 * 			<li class='jm'>{@link RestContextBuilder#reqHeaders(String...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#reqHeader(String,Object)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#reqHeaders(String...)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -2266,18 +2207,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RestContext.resHeaders</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTCONTEXT_RESHEADERS</c>
 	 * 	<li><b>Default:</b>  empty map
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#resHeaders()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#resHeaders()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#resHeader(String,Object)}
-	 * 			<li class='jm'>{@link RestContextBuilder#resHeaders(String...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#resHeader(String,Object)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#resHeaders(String...)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -2330,18 +2274,23 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <code>{@link RestResourceResolver} | Class&lt;? <jk>extends</jk> {@link RestResourceResolver}&gt;</code>
-	 * 	<li><b>Default:</b>  {@link BasicRestResourceResolver}
+	 * 	<li><b>Data type:</b>
+	 * 		<ul>
+	 * 			<li>{@link org.apache.juneau.rest.RestResourceResolver}
+	 * 			<li><c>Class&lt;{@link org.apache.juneau.rest.RestResourceResolver}&gt;</c>
+	 * 		</ul>
+	 * 	<li><b>Default:</b>  {@link org.apache.juneau.rest.BasicRestResourceResolver}
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#resourceResolver()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#resourceResolver()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#resourceResolver(Class)}
-	 * 			<li class='jm'>{@link RestContextBuilder#resourceResolver(RestResourceResolver)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#resourceResolver(Class)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#resourceResolver(RestResourceResolver)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -2416,18 +2365,19 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <code>List&lt;{@link ResponseHandler} | Class&lt;? <jk>extends</jk> {@link ResponseHandler}&gt;&gt;</code>
+	 * 	<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>
 	 * 	<li><b>Default:</b>  empty list
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#responseHandlers()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#responseHandlers()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#responseHandlers(Class...)}
-	 * 			<li class='jm'>{@link RestContextBuilder#responseHandlers(ResponseHandler...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#responseHandlers(Class...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#responseHandlers(ResponseHandler...)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -2509,17 +2459,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RestContext.rolesDeclared</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTCONTEXT_ROLESDECLARED</c>
 	 * 	<li><b>Default:</b>  empty list
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#rolesDeclared()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#rolesDeclared()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#rolesDeclared(String...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#rolesDeclared(String...)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -2553,18 +2506,21 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RestContext.roleGuard</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTCONTEXT_ROLEGUARD</c>
 	 * 	<li><b>Default:</b>  empty set
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#roleGuard()}
-	 * 			<li class='ja'>{@link RestMethod#roleGuard()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#roleGuard()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#roleGuard()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#roleGuard(String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#roleGuard(String)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -2622,21 +2578,22 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <code>List&lt;{@link Serializer} | Class&lt;? <jk>extends</jk> {@link Serializer}&gt;&gt;</code>
+	 * 	<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>
 	 * 	<li><b>Default:</b>  empty list
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#serializers()}
-	 * 			<li class='ja'>{@link RestMethod#serializers()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#serializers()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#serializers()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#serializers(Object...)}
-	 * 			<li class='jm'>{@link RestContextBuilder#serializers(Class...)}
-	 * 			<li class='jm'>{@link RestContextBuilder#serializersReplace(Object...)}
-	 * 			<li class='jm'>{@link RestContextBuilder#serializersReplace(Class...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#serializers(Object...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#serializers(Class...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#serializersReplace(Object...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#serializersReplace(Class...)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -2724,20 +2681,23 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RestContext.staticFileResponseHeaders</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTCONTEXT_STATICFILERESPONSEHEADERS</c>
 	 * 	<li><b>Default:</b>  <code>{<js>'Cache-Control'</js>: <js>'max-age=86400, public</js>}</code>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#staticFileResponseHeaders()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#staticFileResponseHeaders()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#staticFileResponseHeaders(Map)}
-	 * 			<li class='jm'>{@link RestContextBuilder#staticFileResponseHeaders(String...)}
-	 * 			<li class='jm'>{@link RestContextBuilder#staticFileResponseHeader(String,String)}
-	 * 			<li class='jm'>{@link RestContextBuilder#staticFileResponseHeadersReplace(Map)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#staticFileResponseHeaders(Map)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#staticFileResponseHeaders(String...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#staticFileResponseHeader(String,String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#staticFileResponseHeadersReplace(Map)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -2799,21 +2759,22 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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;StaticFileMapping&gt;</c>
+	 * 	<li><b>Data type:</b>  <c>List&lt;{@link org.apache.juneau.rest.StaticFileMapping}&gt;</c>
 	 * 	<li><b>Default:</b>  <jk>null</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#staticFiles()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#staticFiles()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#staticFiles(String)},
-	 * 			<li class='jm'>{@link RestContextBuilder#staticFiles(Class,String)}
-	 * 			<li class='jm'>{@link RestContextBuilder#staticFiles(String,String)}
-	 * 			<li class='jm'>{@link RestContextBuilder#staticFiles(Class,String,String)}
-	 * 			<li class='jm'>{@link RestContextBuilder#staticFiles(StaticFileMapping...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#staticFiles(String)},
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#staticFiles(Class,String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#staticFiles(String,String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#staticFiles(Class,String,String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#staticFiles(StaticFileMapping...)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -2919,21 +2880,24 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RestContext.produces</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTCONTEXT_PRODUCES</c>
 	 * 	<li><b>Default:</b>  empty list
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#produces()}
-	 * 			<li class='ja'>{@link RestMethod#produces()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#produces()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#produces()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#produces(String...)}
-	 * 			<li class='jm'>{@link RestContextBuilder#produces(MediaType...)}
-	 * 			<li class='jm'>{@link RestContextBuilder#producesReplace(String...)}
-	 * 			<li class='jm'>{@link RestContextBuilder#producesReplace(MediaType...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#produces(String...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#produces(MediaType...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#producesReplace(String...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#producesReplace(MediaType...)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -2982,21 +2946,24 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RestContext.properties</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTCONTEXT_PROPERTIES</c>
 	 * 	<li><b>Default:</b>  empty map
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#properties()}
-	 * 			<li class='ja'>{@link Rest#flags()}
-	 * 			<li class='ja'>{@link RestMethod#properties()}
-	 * 			<li class='ja'>{@link RestMethod#flags()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#properties()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#flags()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#properties()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#flags()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#property(String,Object)}
-	 * 			<li class='jm'>{@link RestContextBuilder#properties(Map)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#property(String,Object)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#properties(Map)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -3028,21 +2995,24 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RestContext.consumes</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTCONTEXT_CONSUMES</c>
 	 * 	<li><b>Default:</b>  empty list
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#consumes()}
-	 * 			<li class='ja'>{@link RestMethod#consumes()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#consumes()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#consumes()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#consumes(String...)}
-	 * 			<li class='jm'>{@link RestContextBuilder#consumes(MediaType...)}
-	 * 			<li class='jm'>{@link RestContextBuilder#consumesReplace(String...)}
-	 * 			<li class='jm'>{@link RestContextBuilder#consumesReplace(MediaType...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#consumes(String...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#consumes(MediaType...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#consumesReplace(String...)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#consumesReplace(MediaType...)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -3091,17 +3061,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Boolean</c>
+	 * 	<li><b>Data type:</b>  <jk>boolean</jk>
+	 * 	<li><b>System property:</b>  <c>RestContext.useClasspathResourceCaching</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTCONTEXT_USECLASSPATHRESOURCECACHING</c>
 	 * 	<li><b>Default:</b>  <jk>true</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#useClasspathResourceCaching()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#useClasspathResourceCaching()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#useClasspathResourceCaching(boolean)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#useClasspathResourceCaching(boolean)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -3143,58 +3116,6 @@
 	/**
 	 * Configuration property:  Use stack trace hashes.
 	 *
-	 * <h5 class='section'>Property:</h5>
-	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"RestContext.useStackTraceHashes.b"</js>
-	 * 	<li><b>Data type:</b>  <c>Boolean</c>
-	 * 	<li><b>Default:</b>  <jk>true</jk>
-	 * 	<li><b>Session property:</b>  <jk>false</jk>
-	 * 	<li><b>Annotations:</b>
-	 * 		<ul>
-	 * 			<li class='ja'>{@link RestResource#useStackTraceHashes()}
-	 * 		</ul>
-	 * 	<li><b>Methods:</b>
-	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#useStackTraceHashes(boolean)}
-	 * 		</ul>
-	 * </ul>
-	 *
-	 * <h5 class='section'>Description:</h5>
-	 * <p>
-	 * When enabled, the number of times an exception has occurred will be tracked based on stack trace hashsums.
-	 *
-	 * <p>
-	 * Affects the following methods:
-	 * <ul class='javatree'>
-	 * 	<li class='jm'>{@link RestContext#getStackTraceOccurrence(Throwable) RestContext.getStackTraceOccurrance(Throwable)}
-	 * 	<li class='jm'>{@link RestCallHandler#handleError(RestCall, Throwable)}
-	 * 	<li class='jm'>{@link RestException#getOccurrence()} - Returns the number of times this exception occurred.
-	 * </ul>
-	 *
-	 * <h5 class='section'>Example:</h5>
-	 * <p class='bcode w800'>
-	 * 	<jc>// Option #1 - Defined via annotation resolving to a config file setting with default value.</jc>
-	 * 	<ja>@Rest</ja>(useStackTraceHashes=<js>"$C{REST/useStackTraceHashes,false}"</js>)
-	 * 	<jk>public class</jk> MyResource {
-	 *
-	 * 		<jc>// Option #2 - Defined via builder passed in through resource constructor.</jc>
-	 * 		<jk>public</jk> MyResource(RestContextBuilder builder) <jk>throws</jk> Exception {
-	 *
-	 * 			<jc>// Using method on builder.</jc>
-	 * 			builder.useStackTraceHashes(<jk>false</jk>)
-	 *
-	 * 			<jc>// Same, but using property.</jc>
-	 * 			builder.set(<jsf>REST_useStackTraceHashes</jsf>, <jk>false</jk>);
-	 * 		}
-	 *
-	 * 		<jc>// Option #3 - Defined via builder passed in through init method.</jc>
-	 * 		<ja>@RestHook</ja>(<jsf>INIT</jsf>)
-	 * 		<jk>public void</jk> init(RestContextBuilder builder) <jk>throws</jk> Exception {
-	 * 			builder.useStackTraceHashes(<jk>false</jk>)
-	 * 		}
-	 * 	}
-	 * </p>
-	 *
 	 * @deprecated Use {@link Logging#useStackTraceHashing}
 	 */
 	@Deprecated
@@ -3205,17 +3126,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RestContext.uriAuthority</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTCONTEXT_URIAUTHORITY</c>
 	 * 	<li><b>Default:</b>  <jk>null</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#uriAuthority()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#uriAuthority()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#uriAuthority(String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#uriAuthority(String)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -3275,17 +3199,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RestContext.uriContext</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTCONTEXT_URICONTEXT</c>
 	 * 	<li><b>Default:</b>  <jk>null</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#uriContext()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#uriContext()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#uriContext(String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#uriContext(String)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -3338,17 +3265,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RestContext.uriRelativity</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTCONTEXT_URIRELATIVITY</c>
 	 * 	<li><b>Default:</b>  <js>"RESOURCE"</js>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#uriRelativity()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#uriRelativity()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#uriRelativity(String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#uriRelativity(String)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -3399,17 +3329,20 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RestContext.uriResolution</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTCONTEXT_URIRESOLUTION</c>
 	 * 	<li><b>Default:</b>  <js>"ROOT_RELATIVE"</js>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Rest#uriResolution()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.Rest#uriResolution()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#uriResolution(String)}
+	 * 			<li class='jm'>{@link org.apache.juneau.rest.RestContextBuilder#uriResolution(String)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -3458,70 +3391,6 @@
 	/**
 	 * Configuration property:  HTML Widgets.
 	 *
-	 * <h5 class='section'>Property:</h5>
-	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"RestContext.widgets.lo"</js>
-	 * 	<li><b>Data type:</b>  <code>List&lt;{@link Widget} | Class&lt;? <jk>extends</jk> {@link Widget}&gt;&gt;</code>
-	 * 	<li><b>Default:</b>  empty list
-	 * 	<li><b>Session property:</b>  <jk>false</jk>
-	 * 	<li><b>Annotations:</b>
-	 * 		<ul>
-	 * 			<li class='ja'>{@link HtmlDoc#widgets()}
-	 * 		</ul>
-	 * 	<li><b>Methods:</b>
-	 * 		<ul>
-	 * 			<li class='jm'>{@link RestContextBuilder#widgets(Class...)}
-	 * 			<li class='jm'>{@link RestContextBuilder#widgets(Widget...)}
-	 * 			<li class='jm'>{@link RestContextBuilder#widgetsReplace(Class...)}
-	 * 			<li class='jm'>{@link RestContextBuilder#widgetsReplace(Widget...)}
-	 * 		</ul>
-	 * </ul>
-	 *
-	 * <h5 class='section'>Description:</h5>
-	 * <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.
-	 *
-	 * Widgets resolve the following variables:
-	 * <ul class='spaced-list'>
-	 * 	<li><js>"$W{name}"</js> - Contents returned by {@link Widget#getHtml(RestRequest,RestResponse)}.
-	 * 	<li><js>"$W{name.script}"</js> - Contents returned by {@link Widget#getScript(RestRequest,RestResponse)}.
-	 * 		<br>The script contents are automatically inserted into the <xt>&lt;head/script&gt;</xt> section
-	 * 			 in the HTML page.
-	 * 	<li><js>"$W{name.style}"</js> - Contents returned by {@link Widget#getStyle(RestRequest,RestResponse)}.
-	 * 		<br>The styles contents are automatically inserted into the <xt>&lt;head/style&gt;</xt> section
-	 * 			 in the HTML page.
-	 * </ul>
-	 *
-	 * <p>
-	 * The following examples shows how to associate a widget with a REST method and then have it rendered in the links
-	 * and aside section of the page:
-	 *
-	 * <p class='bcode w800'>
-	 * 	<ja>@RestMethod</ja>(
-	 * 		widgets={
-	 * 			MyWidget.<jk>class</jk>
-	 * 		}
-	 * 		htmldoc=<ja>@HtmlDoc</ja>(
-	 * 			navlinks={
-	 * 				<js>"$W{MyWidget}"</js>
-	 * 			},
-	 * 			aside={
-	 * 				<js>"Check out this widget:  $W{MyWidget}"</js>
-	 * 			}
-	 * 		)
-	 * 	)
-	 * </p>
-	 *
-	 * <ul class='notes'>
-	 * 	<li>
-	 * 		Widgets are inherited from super classes, but can be overridden by reusing the widget name.
-	 * </ul>
-	 *
-	 * <ul class='seealso'>
-	 * 	<li class='link'>{@doc juneau-rest-server.HtmlDocAnnotation.Widgets}
-	 * </ul>
-	 *
 	 * @deprecated Use {@link HtmlDocSerializer#HTMLDOC_widgets}
 	 */
 	@Deprecated
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 e9b1c1c..f787979 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
@@ -67,7 +67,7 @@
 
 	/**
 	 * Configuration property:  Default request attributes.
-	 * 
+	 *
 	 * @deprecated Use {@link #RESTMETHOD_reqAttrs}
 	 */
 	@Deprecated
@@ -78,13 +78,16 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RestMethodContext.clientVersion</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTMETHODCONTEXT_CLIENTVERSION</c>
 	 * 	<li><b>Default:</b>  empty string
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link RestMethod#clientVersion()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#clientVersion()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -155,13 +158,16 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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 Enablement}
+	 * 	<li><b>System property:</b>  <c>RestMethodContext.debug</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTMETHODCONTEXT_DEBUG</c>
 	 * 	<li><b>Default:</b>  {@link Enablement#FALSE}
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link RestMethod#debug()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#debug()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -180,13 +186,16 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RestMethodContext.defaultFormData</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTMETHODCONTEXT_DEFAULTFORMDATA</c>
 	 * 	<li><b>Default:</b>  empty map
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link RestMethod#defaultFormData()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#defaultFormData()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -213,13 +222,16 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RestMethodContext.defaultQuery</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTMETHODCONTEXT_DEFAULTQUERY</c>
 	 * 	<li><b>Default:</b>  empty map
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link RestMethod#defaultQuery()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#defaultQuery()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -242,7 +254,7 @@
 
 	/**
 	 * Configuration property:  Default request headers.
-	 * 
+	 *
 	 * @deprecated Use {@link #RESTMETHOD_defaultRequestHeaders}
 	 */
 	@Deprecated
@@ -253,14 +265,17 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RestMethodContext.httpMethod</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTMETHODCONTEXT_HTTPMETHOD</c>
 	 * 	<li><b>Default:</b>  <jk>null</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link RestMethod#name()}
-	 * 			<li class='ja'>{@link RestMethod#method()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#name()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#method()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -315,13 +330,14 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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 RestCallLoggerConfig}</c>
-	 * 	<li><b>Default:</b>  empty list
+	 * 	<li><b>Data type:</b>  <c>{@link org.apache.juneau.rest.RestCallLoggerConfig}</c>
+	 * 	<li><b>Default:</b>  <jk>null</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link RestMethod#logging()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#logging()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -340,13 +356,14 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <code>List&lt;{@link RestMatcher} | Class&lt;? <jk>extends</jk> {@link RestMatcher}&gt;&gt;</code>
+	 * 	<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>
 	 * 	<li><b>Default:</b>  empty list
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link RestMethod#matchers()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#matchers()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -374,13 +391,16 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RestMethodContext.path</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTMETHODCONTEXT_PATH</c>
 	 * 	<li><b>Default:</b>  <jk>null</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link RestMethod#path()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#path()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -404,13 +424,16 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>  <c>Integer</c>
+	 * 	<li><b>Data type:</b>  <jk>int</jk>
+	 * 	<li><b>System property:</b>  <c>RestMethodContext.priority</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTMETHODCONTEXT_PRIORITY</c>
 	 * 	<li><b>Default:</b>  <c>0</c>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link RestMethod#priority()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#priority()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -430,13 +453,16 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RestMethodContext.reqAttrs</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTMETHODCONTEXT_REQATTRS</c>
 	 * 	<li><b>Default:</b>  <jk>null</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link RestMethod#reqAttrs()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#reqAttrs()}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -470,15 +496,18 @@
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
+	 * 	<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>
+	 * 	<li><b>System property:</b>  <c>RestMethodContext.reqHeaders</c>
+	 * 	<li><b>Environment variable:</b>  <c>RESTMETHODCONTEXT_REQHEADERS</c>
 	 * 	<li><b>Default:</b>  <jk>null</jk>
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link RestMethod#reqHeaders()}
-	 * 			<li class='ja'>{@link RestMethod#defaultAccept()}
-	 * 			<li class='ja'>{@link RestMethod#defaultContentType()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#reqHeaders()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#defaultAccept()}
+	 * 			<li class='ja'>{@link org.apache.juneau.rest.annotation.RestMethod#defaultContentType()}
 	 * 		</ul>
 	 * </ul>
 	 *
diff --git a/launches/juneau-env.sh b/launches/juneau-env.sh
index 2c79637..17b7c77 100755
--- a/launches/juneau-env.sh
+++ b/launches/juneau-env.sh
@@ -13,5 +13,5 @@
 
 . ~/.profile
 set -e
-export JUNEAU_VERSION=8.1.2
+export JUNEAU_VERSION=8.1.3
 [ -z "$X_VERSION" ] && export X_VERSION="${JUNEAU_VERSION}-SNAPSHOT"
diff --git a/pom.xml b/pom.xml
index 4cca071..7cd1dbb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -43,9 +43,9 @@
 		<httpclient.version>4.5.6</httpclient.version>
 		<jetty.version>9.4.13.v20181111</jetty.version>
 		<juneau.compare.version>8.0.0</juneau.compare.version>
-		<javadoc.juneau.version>8.1.2</javadoc.juneau.version>
-		<juneauVersion>8.1.2</juneauVersion>
-		<juneauVersionNext>8.1.3</juneauVersionNext>
+		<javadoc.juneau.version>8.1.3</javadoc.juneau.version>
+		<juneauVersion>8.1.3</juneauVersion>
+		<juneauVersionNext>8.1.4</juneauVersionNext>
 		<derby.version>10.10.2.0</derby.version>
 		<hibernate.version>5.0.9.Final</hibernate.version>
 		<javax.inject.version>1</javax.inject.version>
