You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2019/05/28 16:43:12 UTC

[juneau] branch master updated: Replace AnnotationsMap with simplified AnnotationList

This is an automated email from the ASF dual-hosted git repository.

jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git


The following commit(s) were added to refs/heads/master by this push:
     new 06b0be6  Replace AnnotationsMap with simplified AnnotationList
06b0be6 is described below

commit 06b0be65248db0b17c0e95b46db4f22abf61bd68
Author: JamesBognar <ja...@apache.org>
AuthorDate: Tue May 28 12:42:31 2019 -0400

    Replace AnnotationsMap with simplified AnnotationList
---
 .../apache/juneau/BeanConfigAnnotationTest.java    | 12 ++--
 .../apache/juneau/csv/CsvConfigAnnotationTest.java | 16 ++---
 .../juneau/html/HtmlConfigAnnotationTest.java      | 24 +++----
 .../juneau/html/HtmlDocConfigAnnotationTest.java   | 36 +++++-----
 .../juneau/jena/RdfConfigAnnotationTest.java       | 24 +++----
 .../apache/juneau/jso/JsoConfigAnnotationTest.java | 16 ++---
 .../juneau/json/JsonConfigAnnotationTest.java      | 24 +++----
 .../jsonschema/JsonSchemaConfigAnnotationTest.java | 12 ++--
 .../msgpack/MsgPackConfigAnnotationTest.java       | 24 +++----
 .../juneau/oapi/OpenApiConfigAnnotationTest.java   | 16 ++---
 .../juneau/parser/ParserConfigAnnotationTest.java  | 24 +++----
 .../plaintext/PlainTextConfigAnnotationTest.java   | 16 ++---
 .../apache/juneau/reflection/ClassInfoTest.java    | 32 +++++----
 .../apache/juneau/reflection/MethodInfoTest.java   | 49 +++++++-------
 .../serializer/SerializerConfigAnnotationTest.java | 24 +++----
 .../juneau/soap/SoapXmlConfigAnnotationTest.java   | 12 ++--
 .../apache/juneau/uon/UonConfigAnnotationTest.java | 24 +++----
 .../UrlEncodingConfigAnnotationTest.java           | 24 +++----
 .../apache/juneau/xml/XmlConfigAnnotationTest.java | 24 +++----
 .../org/apache/juneau/jena/RdfParserBuilder.java   |  4 +-
 .../apache/juneau/jena/RdfSerializerBuilder.java   |  4 +-
 .../java/org/apache/juneau/BeanContextBuilder.java |  4 +-
 .../org/apache/juneau/BeanTraverseBuilder.java     |  4 +-
 .../java/org/apache/juneau/ContextBuilder.java     | 10 +--
 .../org/apache/juneau/PropertyStoreBuilder.java    | 29 +++-----
 .../org/apache/juneau/csv/CsvParserBuilder.java    |  4 +-
 .../apache/juneau/csv/CsvSerializerBuilder.java    |  4 +-
 .../juneau/html/HtmlDocSerializerBuilder.java      |  4 +-
 .../org/apache/juneau/html/HtmlParserBuilder.java  |  4 +-
 .../juneau/html/HtmlSchemaSerializerBuilder.java   |  4 +-
 .../apache/juneau/html/HtmlSerializerBuilder.java  |  4 +-
 .../html/HtmlStrippedDocSerializerBuilder.java     |  4 +-
 .../org/apache/juneau/jso/JsoParserBuilder.java    |  4 +-
 .../apache/juneau/jso/JsoSerializerBuilder.java    |  4 +-
 .../org/apache/juneau/json/JsonParserBuilder.java  |  4 +-
 .../juneau/json/JsonSchemaSerializerBuilder.java   |  4 +-
 .../apache/juneau/json/JsonSerializerBuilder.java  |  4 +-
 .../jsonschema/JsonSchemaGeneratorBuilder.java     |  4 +-
 .../juneau/msgpack/MsgPackParserBuilder.java       |  4 +-
 .../juneau/msgpack/MsgPackSerializerBuilder.java   |  4 +-
 .../apache/juneau/oapi/OpenApiParserBuilder.java   |  4 +-
 .../juneau/oapi/OpenApiSerializerBuilder.java      |  4 +-
 .../juneau/parser/InputStreamParserBuilder.java    |  4 +-
 .../org/apache/juneau/parser/ParserBuilder.java    |  4 +-
 .../apache/juneau/parser/ParserGroupBuilder.java   |  4 +-
 .../apache/juneau/parser/ReaderParserBuilder.java  |  4 +-
 .../juneau/plaintext/PlainTextParserBuilder.java   |  4 +-
 .../plaintext/PlainTextSerializerBuilder.java      |  4 +-
 .../org/apache/juneau/reflect/AnnotationInfo.java  | 37 ++++++++++
 .../{AnnotationsMap.java => AnnotationList.java}   | 62 ++++-------------
 .../java/org/apache/juneau/reflect/ClassInfo.java  | 36 +++++-----
 ...notationsMap.java => ConfigAnnotationList.java} |  7 +-
 .../java/org/apache/juneau/reflect/MethodInfo.java | 78 +++++++++++-----------
 .../serializer/OutputStreamSerializerBuilder.java  |  4 +-
 .../juneau/serializer/SerializerBuilder.java       |  4 +-
 .../juneau/serializer/SerializerGroupBuilder.java  |  4 +-
 .../juneau/serializer/WriterSerializerBuilder.java |  4 +-
 .../juneau/soap/SoapXmlSerializerBuilder.java      |  4 +-
 .../org/apache/juneau/uon/UonParserBuilder.java    |  4 +-
 .../apache/juneau/uon/UonSerializerBuilder.java    |  4 +-
 .../urlencoding/UrlEncodingParserBuilder.java      |  4 +-
 .../urlencoding/UrlEncodingSerializerBuilder.java  |  4 +-
 .../org/apache/juneau/xml/XmlParserBuilder.java    |  4 +-
 .../apache/juneau/xml/XmlSerializerBuilder.java    |  4 +-
 .../xmlschema/XmlSchemaSerializerBuilder.java      |  4 +-
 .../06.ConfigurableAnnotations.html}               |  6 +-
 .../07.juneau-rest-server/20.RoleGuards.html       |  2 +-
 .../juneau/rest/client/RestClientBuilder.java      |  4 +-
 .../java/org/apache/juneau/rest/RestContext.java   | 10 +--
 .../org/apache/juneau/rest/RestContextBuilder.java |  4 +-
 .../org/apache/juneau/rest/RestJavaMethod.java     |  6 +-
 71 files changed, 434 insertions(+), 446 deletions(-)

diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/BeanConfigAnnotationTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/BeanConfigAnnotationTest.java
index a2f7848..fd87da0 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/BeanConfigAnnotationTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/BeanConfigAnnotationTest.java
@@ -157,8 +157,8 @@ public class BeanConfigAnnotationTest {
 
 	@Test
 	public void basic() throws Exception {
-		AnnotationsMap m = a.getAnnotationsMap();
-		BeanTraverseSession bc = JsonSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = a.getAnnotationList();
+		BeanTraverseSession bc = JsonSerializer.create().applyAnnotations(al, sr).build().createSession();
 
 		System.err.println(bc.getImplClasses().values().iterator().next().getClass().getSimpleName());
 
@@ -212,8 +212,8 @@ public class BeanConfigAnnotationTest {
 
 	@Test
 	public void noValues() throws Exception {
-		AnnotationsMap m = b.getAnnotationsMap();
-		JsonSerializer bc = JsonSerializer.create().applyAnnotations(m, sr).build();
+		AnnotationList al = b.getAnnotationList();
+		JsonSerializer bc = JsonSerializer.create().applyAnnotations(al, sr).build();
 		check("PUBLIC", bc.getBeanClassVisibility());
 		check("PUBLIC", bc.getBeanConstructorVisibility());
 		check("", bc.getBeanDictionaryClasses());
@@ -262,8 +262,8 @@ public class BeanConfigAnnotationTest {
 
 	@Test
 	public void noAnnotation() throws Exception {
-		AnnotationsMap m = c.getAnnotationsMap();
-		JsonSerializer bc = JsonSerializer.create().applyAnnotations(m, sr).build();
+		AnnotationList al = c.getAnnotationList();
+		JsonSerializer bc = JsonSerializer.create().applyAnnotations(al, sr).build();
 		check("PUBLIC", bc.getBeanClassVisibility());
 		check("PUBLIC", bc.getBeanConstructorVisibility());
 		check("", bc.getBeanDictionaryClasses());
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/csv/CsvConfigAnnotationTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/csv/CsvConfigAnnotationTest.java
index 10c767f..6ffbb43 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/csv/CsvConfigAnnotationTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/csv/CsvConfigAnnotationTest.java
@@ -31,14 +31,14 @@ public class CsvConfigAnnotationTest {
 
 	@Test
 	public void defaultsSerializer() throws Exception {
-		AnnotationsMap m = b.getAnnotationsMap();
-		CsvSerializer.create().applyAnnotations(m, null).build();
+		AnnotationList al = b.getAnnotationList();
+		CsvSerializer.create().applyAnnotations(al, null).build();
 	}
 
 	@Test
 	public void defaultsParser() throws Exception {
-		AnnotationsMap m = b.getAnnotationsMap();
-		CsvParser.create().applyAnnotations(m, null).build();
+		AnnotationList al = b.getAnnotationList();
+		CsvParser.create().applyAnnotations(al, null).build();
 	}
 
 	//-----------------------------------------------------------------------------------------------------------------
@@ -50,13 +50,13 @@ public class CsvConfigAnnotationTest {
 
 	@Test
 	public void noAnnotationSerializer() throws Exception {
-		AnnotationsMap m = c.getAnnotationsMap();
-		CsvSerializer.create().applyAnnotations(m, null).build();
+		AnnotationList al = c.getAnnotationList();
+		CsvSerializer.create().applyAnnotations(al, null).build();
 	}
 
 	@Test
 	public void noAnnotationParser() throws Exception {
-		AnnotationsMap m = c.getAnnotationsMap();
-		CsvParser.create().applyAnnotations(m, null).build();
+		AnnotationList al = c.getAnnotationList();
+		CsvParser.create().applyAnnotations(al, null).build();
 	}
 }
\ No newline at end of file
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/html/HtmlConfigAnnotationTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/html/HtmlConfigAnnotationTest.java
index 8fa238d..21eab19 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/html/HtmlConfigAnnotationTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/html/HtmlConfigAnnotationTest.java
@@ -59,8 +59,8 @@ public class HtmlConfigAnnotationTest {
 
 	@Test
 	public void basicSerializer() throws Exception {
-		AnnotationsMap m = a.getAnnotationsMap();
-		HtmlSerializerSession x = HtmlSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = a.getAnnotationList();
+		HtmlSerializerSession x = HtmlSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("true", x.isAddBeanTypes());
 		check("true", x.isAddKeyValueTableHeaders());
 		check("true", x.isDetectLabelParameters());
@@ -71,8 +71,8 @@ public class HtmlConfigAnnotationTest {
 
 	@Test
 	public void basicParser() throws Exception {
-		AnnotationsMap m = a.getAnnotationsMap();
-		HtmlParser.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = a.getAnnotationList();
+		HtmlParser.create().applyAnnotations(al, sr).build().createSession();
 	}
 
 	//-----------------------------------------------------------------------------------------------------------------
@@ -85,8 +85,8 @@ public class HtmlConfigAnnotationTest {
 
 	@Test
 	public void defaultsSerializer() throws Exception {
-		AnnotationsMap m = b.getAnnotationsMap();
-		HtmlSerializerSession x = HtmlSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = b.getAnnotationList();
+		HtmlSerializerSession x = HtmlSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("false", x.isAddBeanTypes());
 		check("false", x.isAddKeyValueTableHeaders());
 		check("true", x.isDetectLabelParameters());
@@ -97,8 +97,8 @@ public class HtmlConfigAnnotationTest {
 
 	@Test
 	public void defaultsParser() throws Exception {
-		AnnotationsMap m = b.getAnnotationsMap();
-		HtmlParser.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = b.getAnnotationList();
+		HtmlParser.create().applyAnnotations(al, sr).build().createSession();
 	}
 
 	//-----------------------------------------------------------------------------------------------------------------
@@ -110,8 +110,8 @@ public class HtmlConfigAnnotationTest {
 
 	@Test
 	public void noAnnotationSerializer() throws Exception {
-		AnnotationsMap m = c.getAnnotationsMap();
-		HtmlSerializerSession x = HtmlSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = c.getAnnotationList();
+		HtmlSerializerSession x = HtmlSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("false", x.isAddBeanTypes());
 		check("false", x.isAddKeyValueTableHeaders());
 		check("true", x.isDetectLabelParameters());
@@ -122,7 +122,7 @@ public class HtmlConfigAnnotationTest {
 
 	@Test
 	public void noAnnotationParser() throws Exception {
-		AnnotationsMap m = c.getAnnotationsMap();
-		HtmlParser.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = c.getAnnotationList();
+		HtmlParser.create().applyAnnotations(al, sr).build().createSession();
 	}
 }
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/html/HtmlDocConfigAnnotationTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/html/HtmlDocConfigAnnotationTest.java
index 599ca18..20cab3b 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/html/HtmlDocConfigAnnotationTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/html/HtmlDocConfigAnnotationTest.java
@@ -76,8 +76,8 @@ public class HtmlDocConfigAnnotationTest {
 
 	@Test
 	public void basic() throws Exception {
-		AnnotationsMap m = a.getAnnotationsMap();
-		HtmlDocSerializerSession x = HtmlDocSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = a.getAnnotationList();
+		HtmlDocSerializerSession x = HtmlDocSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("foo", x.getAside());
 		check("foo", x.getFooter());
 		check("foo", x.getHead());
@@ -102,8 +102,8 @@ public class HtmlDocConfigAnnotationTest {
 
 	@Test
 	public void defaults() throws Exception {
-		AnnotationsMap m = b.getAnnotationsMap();
-		HtmlDocSerializerSession x = HtmlDocSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = b.getAnnotationList();
+		HtmlDocSerializerSession x = HtmlDocSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("", x.getAside());
 		check("", x.getFooter());
 		check("", x.getHead());
@@ -127,8 +127,8 @@ public class HtmlDocConfigAnnotationTest {
 
 	@Test
 	public void noAnnotation() throws Exception {
-		AnnotationsMap m = c.getAnnotationsMap();
-		HtmlDocSerializerSession x = HtmlDocSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = c.getAnnotationList();
+		HtmlDocSerializerSession x = HtmlDocSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("", x.getAside());
 		check("", x.getFooter());
 		check("", x.getHead());
@@ -163,8 +163,8 @@ public class HtmlDocConfigAnnotationTest {
 
 	@Test
 	public void inheritance1() throws Exception {
-		AnnotationsMap m = d1.getAnnotationsMapParentFirst();
-		HtmlDocSerializerSession x = HtmlDocSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = d1.getAnnotationListParentFirst();
+		HtmlDocSerializerSession x = HtmlDocSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("foo2,foo", x.getAside());
 		check("foo2,foo", x.getFooter());
 		check("foo2,foo", x.getHead());
@@ -192,8 +192,8 @@ public class HtmlDocConfigAnnotationTest {
 
 	@Test
 	public void inheritance2() throws Exception {
-		AnnotationsMap m = d2.getAnnotationsMapParentFirst();
-		HtmlDocSerializerSession x = HtmlDocSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = d2.getAnnotationListParentFirst();
+		HtmlDocSerializerSession x = HtmlDocSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("foo,foo2", x.getAside());
 		check("foo,foo2", x.getFooter());
 		check("foo,foo2", x.getHead());
@@ -221,8 +221,8 @@ public class HtmlDocConfigAnnotationTest {
 
 	@Test
 	public void inheritance3() throws Exception {
-		AnnotationsMap m = d3.getAnnotationsMapParentFirst();
-		HtmlDocSerializerSession x = HtmlDocSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = d3.getAnnotationListParentFirst();
+		HtmlDocSerializerSession x = HtmlDocSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("foo2", x.getAside());
 		check("foo2", x.getFooter());
 		check("foo2", x.getHead());
@@ -250,8 +250,8 @@ public class HtmlDocConfigAnnotationTest {
 
 	@Test
 	public void inheritance4() throws Exception {
-		AnnotationsMap m = d4.getAnnotationsMapParentFirst();
-		HtmlDocSerializerSession x = HtmlDocSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = d4.getAnnotationListParentFirst();
+		HtmlDocSerializerSession x = HtmlDocSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("", x.getAside());
 		check("", x.getFooter());
 		check("", x.getHead());
@@ -305,8 +305,8 @@ public class HtmlDocConfigAnnotationTest {
 
 	@Test
 	public void widgets_basic() throws Exception {
-		AnnotationsMap m = e.getAnnotationsMapParentFirst();
-		HtmlDocSerializerSession x = HtmlDocSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = e.getAnnotationListParentFirst();
+		HtmlDocSerializerSession x = HtmlDocSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("$W{E}", x.getAside());
 		check("$W{E}", x.getFooter());
 		check("$W{E}", x.getHead());
@@ -323,8 +323,8 @@ public class HtmlDocConfigAnnotationTest {
 
 	@Test
 	public void widgets_resolution() throws Exception {
-		AnnotationsMap m = e.getAnnotationsMapParentFirst();
-		HtmlDocSerializerSession x = HtmlDocSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = e.getAnnotationListParentFirst();
+		HtmlDocSerializerSession x = HtmlDocSerializer.create().applyAnnotations(al, sr).build().createSession();
 		String r = x.serialize(null).replaceAll("[\r\n]+", "|");
 		assertContains(r,
 			"<aside>xxx</aside>",
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jena/RdfConfigAnnotationTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jena/RdfConfigAnnotationTest.java
index a15b623..27e1ef3 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jena/RdfConfigAnnotationTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jena/RdfConfigAnnotationTest.java
@@ -99,8 +99,8 @@ public class RdfConfigAnnotationTest {
 
 	@Test
 	public void basicSerializer() throws Exception {
-		AnnotationsMap m = a.getAnnotationsMap();
-		RdfSerializerSession x = RdfSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = a.getAnnotationList();
+		RdfSerializerSession x = RdfSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("true", x.isAddBeanTypes());
 		check("true", x.isAddLiteralTypes());
 		check("true", x.isAddRootProp());
@@ -141,8 +141,8 @@ public class RdfConfigAnnotationTest {
 
 	@Test
 	public void basicParser() throws Exception {
-		AnnotationsMap m = a.getAnnotationsMap();
-		RdfParserSession x = RdfParser.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = a.getAnnotationList();
+		RdfParserSession x = RdfParser.create().applyAnnotations(al, sr).build().createSession();
 		check("SEQ", x.getCollectionFormat());
 		check("foo:http://foo", x.getJuneauBpNs());
 		check("foo:http://foo", x.getJuneauNs());
@@ -185,8 +185,8 @@ public class RdfConfigAnnotationTest {
 
 	@Test
 	public void noValuesSerializer() throws Exception {
-		AnnotationsMap m = b.getAnnotationsMap();
-		RdfSerializerSession x = RdfSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = b.getAnnotationList();
+		RdfSerializerSession x = RdfSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("false", x.isAddBeanTypes());
 		check("false", x.isAddLiteralTypes());
 		check("false", x.isAddRootProp());
@@ -226,8 +226,8 @@ public class RdfConfigAnnotationTest {
 
 	@Test
 	public void noValuesParser() throws Exception {
-		AnnotationsMap m = b.getAnnotationsMap();
-		RdfParserSession x = RdfParser.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = b.getAnnotationList();
+		RdfParserSession x = RdfParser.create().applyAnnotations(al, sr).build().createSession();
 		check("DEFAULT", x.getCollectionFormat());
 		check("jp:http://www.apache.org/juneaubp/", x.getJuneauBpNs());
 		check("j:http://www.apache.org/juneau/", x.getJuneauNs());
@@ -269,8 +269,8 @@ public class RdfConfigAnnotationTest {
 
 	@Test
 	public void noAnnotationSerializer() throws Exception {
-		AnnotationsMap m = c.getAnnotationsMap();
-		RdfSerializerSession x = RdfSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = c.getAnnotationList();
+		RdfSerializerSession x = RdfSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("false", x.isAddBeanTypes());
 		check("false", x.isAddLiteralTypes());
 		check("false", x.isAddRootProp());
@@ -310,8 +310,8 @@ public class RdfConfigAnnotationTest {
 
 	@Test
 	public void noAnnotationParser() throws Exception {
-		AnnotationsMap m = c.getAnnotationsMap();
-		RdfParserSession x = RdfParser.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = c.getAnnotationList();
+		RdfParserSession x = RdfParser.create().applyAnnotations(al, sr).build().createSession();
 		check("DEFAULT", x.getCollectionFormat());
 		check("jp:http://www.apache.org/juneaubp/", x.getJuneauBpNs());
 		check("j:http://www.apache.org/juneau/", x.getJuneauNs());
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jso/JsoConfigAnnotationTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jso/JsoConfigAnnotationTest.java
index 236b4b6..952a852 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jso/JsoConfigAnnotationTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jso/JsoConfigAnnotationTest.java
@@ -31,14 +31,14 @@ public class JsoConfigAnnotationTest {
 
 	@Test
 	public void defaultsSerializer() throws Exception {
-		AnnotationsMap m = b.getAnnotationsMap();
-		JsoSerializer.create().applyAnnotations(m, null).build().createSession();
+		AnnotationList al = b.getAnnotationList();
+		JsoSerializer.create().applyAnnotations(al, null).build().createSession();
 	}
 
 	@Test
 	public void defaultsParser() throws Exception {
-		AnnotationsMap m = b.getAnnotationsMap();
-		JsoParser.create().applyAnnotations(m, null).build().createSession();
+		AnnotationList al = b.getAnnotationList();
+		JsoParser.create().applyAnnotations(al, null).build().createSession();
 	}
 
 	//-----------------------------------------------------------------------------------------------------------------
@@ -50,13 +50,13 @@ public class JsoConfigAnnotationTest {
 
 	@Test
 	public void noAnnotationSerializer() throws Exception {
-		AnnotationsMap m = c.getAnnotationsMap();
-		JsoSerializer.create().applyAnnotations(m, null).build().createSession();
+		AnnotationList al = c.getAnnotationList();
+		JsoSerializer.create().applyAnnotations(al, null).build().createSession();
 	}
 
 	@Test
 	public void noAnnotationParser() throws Exception {
-		AnnotationsMap m = c.getAnnotationsMap();
-		JsoParser.create().applyAnnotations(m, null).build().createSession();
+		AnnotationList al = c.getAnnotationList();
+		JsoParser.create().applyAnnotations(al, null).build().createSession();
 	}
 }
\ No newline at end of file
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/json/JsonConfigAnnotationTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/json/JsonConfigAnnotationTest.java
index d2ee201..80c2e81 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/json/JsonConfigAnnotationTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/json/JsonConfigAnnotationTest.java
@@ -55,8 +55,8 @@ public class JsonConfigAnnotationTest {
 
 	@Test
 	public void basicSerializer() throws Exception {
-		AnnotationsMap m = a.getAnnotationsMap();
-		JsonSerializerSession x = JsonSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = a.getAnnotationList();
+		JsonSerializerSession x = JsonSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("true", x.isAddBeanTypes());
 		check("true", x.isEscapeSolidus());
 		check("true", x.isSimpleMode());
@@ -64,8 +64,8 @@ public class JsonConfigAnnotationTest {
 
 	@Test
 	public void basicParser() throws Exception {
-		AnnotationsMap m = a.getAnnotationsMap();
-		JsonParserSession x = JsonParser.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = a.getAnnotationList();
+		JsonParserSession x = JsonParser.create().applyAnnotations(al, sr).build().createSession();
 		check("true", x.isValidateEnd());
 	}
 
@@ -79,8 +79,8 @@ public class JsonConfigAnnotationTest {
 
 	@Test
 	public void noValuesSerializer() throws Exception {
-		AnnotationsMap m = b.getAnnotationsMap();
-		JsonSerializerSession x = JsonSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = b.getAnnotationList();
+		JsonSerializerSession x = JsonSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("false", x.isAddBeanTypes());
 		check("false", x.isEscapeSolidus());
 		check("false", x.isSimpleMode());
@@ -88,8 +88,8 @@ public class JsonConfigAnnotationTest {
 
 	@Test
 	public void noValuesParser() throws Exception {
-		AnnotationsMap m = b.getAnnotationsMap();
-		JsonParserSession x = JsonParser.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = b.getAnnotationList();
+		JsonParserSession x = JsonParser.create().applyAnnotations(al, sr).build().createSession();
 		check("false", x.isValidateEnd());
 	}
 
@@ -102,8 +102,8 @@ public class JsonConfigAnnotationTest {
 
 	@Test
 	public void noAnnotationSerializer() throws Exception {
-		AnnotationsMap m = c.getAnnotationsMap();
-		JsonSerializerSession x = JsonSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = c.getAnnotationList();
+		JsonSerializerSession x = JsonSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("false", x.isAddBeanTypes());
 		check("false", x.isEscapeSolidus());
 		check("false", x.isSimpleMode());
@@ -111,8 +111,8 @@ public class JsonConfigAnnotationTest {
 
 	@Test
 	public void noAnnotationParser() throws Exception {
-		AnnotationsMap m = c.getAnnotationsMap();
-		JsonParserSession x = JsonParser.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = c.getAnnotationList();
+		JsonParserSession x = JsonParser.create().applyAnnotations(al, sr).build().createSession();
 		check("false", x.isValidateEnd());
 	}
 }
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jsonschema/JsonSchemaConfigAnnotationTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jsonschema/JsonSchemaConfigAnnotationTest.java
index bd64fc9..431a948 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jsonschema/JsonSchemaConfigAnnotationTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jsonschema/JsonSchemaConfigAnnotationTest.java
@@ -69,8 +69,8 @@ public class JsonSchemaConfigAnnotationTest {
 
 	@Test
 	public void basic() throws Exception {
-		AnnotationsMap m = a.getAnnotationsMap();
-		JsonSchemaGeneratorSession x = JsonSchemaGenerator.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = a.getAnnotationList();
+		JsonSchemaGeneratorSession x = JsonSchemaGenerator.create().applyAnnotations(al, sr).build().createSession();
 		check("BEAN", x.getAddDescriptionsTo());
 		check("BEAN", x.getAddExamplesTo());
 		check("true", x.isAllowNestedDescriptions());
@@ -91,8 +91,8 @@ public class JsonSchemaConfigAnnotationTest {
 
 	@Test
 	public void noValues() throws Exception {
-		AnnotationsMap m = b.getAnnotationsMap();
-		JsonSchemaGeneratorSession x = JsonSchemaGenerator.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = b.getAnnotationList();
+		JsonSchemaGeneratorSession x = JsonSchemaGenerator.create().applyAnnotations(al, sr).build().createSession();
 		check("", x.getAddDescriptionsTo());
 		check("", x.getAddExamplesTo());
 		check("false", x.isAllowNestedDescriptions());
@@ -112,8 +112,8 @@ public class JsonSchemaConfigAnnotationTest {
 
 	@Test
 	public void noAnnotation() throws Exception {
-		AnnotationsMap m = c.getAnnotationsMap();
-		JsonSchemaGeneratorSession x = JsonSchemaGenerator.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = c.getAnnotationList();
+		JsonSchemaGeneratorSession x = JsonSchemaGenerator.create().applyAnnotations(al, sr).build().createSession();
 		check("", x.getAddDescriptionsTo());
 		check("", x.getAddExamplesTo());
 		check("false", x.isAllowNestedDescriptions());
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/msgpack/MsgPackConfigAnnotationTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/msgpack/MsgPackConfigAnnotationTest.java
index 6da6dfe..9963c17 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/msgpack/MsgPackConfigAnnotationTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/msgpack/MsgPackConfigAnnotationTest.java
@@ -52,15 +52,15 @@ public class MsgPackConfigAnnotationTest {
 
 	@Test
 	public void basicSerializer() throws Exception {
-		AnnotationsMap m = a.getAnnotationsMap();
-		MsgPackSerializerSession x = MsgPackSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = a.getAnnotationList();
+		MsgPackSerializerSession x = MsgPackSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("true", x.isAddBeanTypes());
 	}
 
 	@Test
 	public void basicParser() throws Exception {
-		AnnotationsMap m = a.getAnnotationsMap();
-		MsgPackParser.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = a.getAnnotationList();
+		MsgPackParser.create().applyAnnotations(al, sr).build().createSession();
 	}
 
 	//-----------------------------------------------------------------------------------------------------------------
@@ -73,15 +73,15 @@ public class MsgPackConfigAnnotationTest {
 
 	@Test
 	public void noValuesSerializer() throws Exception {
-		AnnotationsMap m = b.getAnnotationsMap();
-		MsgPackSerializerSession x = MsgPackSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = b.getAnnotationList();
+		MsgPackSerializerSession x = MsgPackSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("false", x.isAddBeanTypes());
 	}
 
 	@Test
 	public void noValuesParser() throws Exception {
-		AnnotationsMap m = b.getAnnotationsMap();
-		MsgPackParser.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = b.getAnnotationList();
+		MsgPackParser.create().applyAnnotations(al, sr).build().createSession();
 	}
 
 	//-----------------------------------------------------------------------------------------------------------------
@@ -93,14 +93,14 @@ public class MsgPackConfigAnnotationTest {
 
 	@Test
 	public void noAnnotationSerializer() throws Exception {
-		AnnotationsMap m = c.getAnnotationsMap();
-		MsgPackSerializerSession x = MsgPackSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = c.getAnnotationList();
+		MsgPackSerializerSession x = MsgPackSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("false", x.isAddBeanTypes());
 	}
 
 	@Test
 	public void noAnnotationParser() throws Exception {
-		AnnotationsMap m = c.getAnnotationsMap();
-		MsgPackParser.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = c.getAnnotationList();
+		MsgPackParser.create().applyAnnotations(al, sr).build().createSession();
 	}
 }
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/oapi/OpenApiConfigAnnotationTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/oapi/OpenApiConfigAnnotationTest.java
index c95f474..ab14fea 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/oapi/OpenApiConfigAnnotationTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/oapi/OpenApiConfigAnnotationTest.java
@@ -35,14 +35,14 @@ public class OpenApiConfigAnnotationTest {
 
 	@Test
 	public void noValuesSerializer() throws Exception {
-		AnnotationsMap m = b.getAnnotationsMap();
-		OpenApiSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = b.getAnnotationList();
+		OpenApiSerializer.create().applyAnnotations(al, sr).build().createSession();
 	}
 
 	@Test
 	public void noValuesParser() throws Exception {
-		AnnotationsMap m = b.getAnnotationsMap();
-		OpenApiParser.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = b.getAnnotationList();
+		OpenApiParser.create().applyAnnotations(al, sr).build().createSession();
 	}
 
 	//-----------------------------------------------------------------------------------------------------------------
@@ -54,13 +54,13 @@ public class OpenApiConfigAnnotationTest {
 
 	@Test
 	public void noAnnotationSerializer() throws Exception {
-		AnnotationsMap m = c.getAnnotationsMap();
-		OpenApiSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = c.getAnnotationList();
+		OpenApiSerializer.create().applyAnnotations(al, sr).build().createSession();
 	}
 
 	@Test
 	public void noAnnotationParser() throws Exception {
-		AnnotationsMap m = c.getAnnotationsMap();
-		OpenApiParser.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = c.getAnnotationList();
+		OpenApiParser.create().applyAnnotations(al, sr).build().createSession();
 	}
 }
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/parser/ParserConfigAnnotationTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/parser/ParserConfigAnnotationTest.java
index 5082094..e0a9ac0 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/parser/ParserConfigAnnotationTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/parser/ParserConfigAnnotationTest.java
@@ -68,8 +68,8 @@ public class ParserConfigAnnotationTest {
 
 	@Test
 	public void basicReaderParser() throws Exception {
-		AnnotationsMap m = a.getAnnotationsMap();
-		JsonParserSession x = JsonParser.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = a.getAnnotationList();
+		JsonParserSession x = JsonParser.create().applyAnnotations(al, sr).build().createSession();
 		check("true", x.isAutoCloseStreams());
 		check("1", x.getDebugOutputLines());
 		check("foo", x.getFileCharset());
@@ -82,8 +82,8 @@ public class ParserConfigAnnotationTest {
 
 	@Test
 	public void basicInputStreamParser() throws Exception {
-		AnnotationsMap m = a.getAnnotationsMap();
-		MsgPackParserSession x = MsgPackParser.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = a.getAnnotationList();
+		MsgPackParserSession x = MsgPackParser.create().applyAnnotations(al, sr).build().createSession();
 		check("true", x.isAutoCloseStreams());
 		check("HEX", x.getBinaryFormat());
 		check("1", x.getDebugOutputLines());
@@ -103,8 +103,8 @@ public class ParserConfigAnnotationTest {
 
 	@Test
 	public void noValuesReaderParser() throws Exception {
-		AnnotationsMap m = b.getAnnotationsMap();
-		JsonParserSession x = JsonParser.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = b.getAnnotationList();
+		JsonParserSession x = JsonParser.create().applyAnnotations(al, sr).build().createSession();
 		check("false", x.isAutoCloseStreams());
 		check("5", x.getDebugOutputLines());
 		check("DEFAULT", x.getFileCharset());
@@ -117,8 +117,8 @@ public class ParserConfigAnnotationTest {
 
 	@Test
 	public void noValuesInputStreamParser() throws Exception {
-		AnnotationsMap m = b.getAnnotationsMap();
-		MsgPackParserSession x = MsgPackParser.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = b.getAnnotationList();
+		MsgPackParserSession x = MsgPackParser.create().applyAnnotations(al, sr).build().createSession();
 		check("false", x.isAutoCloseStreams());
 		check("HEX", x.getBinaryFormat());
 		check("5", x.getDebugOutputLines());
@@ -137,8 +137,8 @@ public class ParserConfigAnnotationTest {
 
 	@Test
 	public void noAnnotationReaderParser() throws Exception {
-		AnnotationsMap m = c.getAnnotationsMap();
-		JsonParserSession x = JsonParser.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = c.getAnnotationList();
+		JsonParserSession x = JsonParser.create().applyAnnotations(al, sr).build().createSession();
 		check("false", x.isAutoCloseStreams());
 		check("5", x.getDebugOutputLines());
 		check("DEFAULT", x.getFileCharset());
@@ -151,8 +151,8 @@ public class ParserConfigAnnotationTest {
 
 	@Test
 	public void noAnnotationInputStreamParser() throws Exception {
-		AnnotationsMap m = c.getAnnotationsMap();
-		MsgPackParserSession x = MsgPackParser.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = c.getAnnotationList();
+		MsgPackParserSession x = MsgPackParser.create().applyAnnotations(al, sr).build().createSession();
 		check("false", x.isAutoCloseStreams());
 		check("HEX", x.getBinaryFormat());
 		check("5", x.getDebugOutputLines());
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/plaintext/PlainTextConfigAnnotationTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/plaintext/PlainTextConfigAnnotationTest.java
index 8f4aac1..1865e46 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/plaintext/PlainTextConfigAnnotationTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/plaintext/PlainTextConfigAnnotationTest.java
@@ -35,14 +35,14 @@ public class PlainTextConfigAnnotationTest {
 
 	@Test
 	public void noValuesSerializer() throws Exception {
-		AnnotationsMap m = b.getAnnotationsMap();
-		PlainTextSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = b.getAnnotationList();
+		PlainTextSerializer.create().applyAnnotations(al, sr).build().createSession();
 	}
 
 	@Test
 	public void noValuesParser() throws Exception {
-		AnnotationsMap m = b.getAnnotationsMap();
-		PlainTextParser.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = b.getAnnotationList();
+		PlainTextParser.create().applyAnnotations(al, sr).build().createSession();
 	}
 
 	//-----------------------------------------------------------------------------------------------------------------
@@ -54,13 +54,13 @@ public class PlainTextConfigAnnotationTest {
 
 	@Test
 	public void noAnnotationSerializer() throws Exception {
-		AnnotationsMap m = c.getAnnotationsMap();
-		PlainTextSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = c.getAnnotationList();
+		PlainTextSerializer.create().applyAnnotations(al, sr).build().createSession();
 	}
 
 	@Test
 	public void noAnnotationParser() throws Exception {
-		AnnotationsMap m = c.getAnnotationsMap();
-		PlainTextParser.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = c.getAnnotationList();
+		PlainTextParser.create().applyAnnotations(al, sr).build().createSession();
 	}
 }
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/reflection/ClassInfoTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/reflection/ClassInfoTest.java
index 128992c..3893a7e 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/reflection/ClassInfoTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/reflection/ClassInfoTest.java
@@ -27,7 +27,6 @@ import java.util.stream.*;
 
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.reflect.*;
 import org.apache.juneau.reflection.MethodInfoTest.*;
 import org.apache.juneau.svl.*;
@@ -89,7 +88,6 @@ public class ClassInfoTest {
 	}
 
 	private static final Function<Object,String> TO_STRING = new Function<Object,String>() {
-		@SuppressWarnings({ "unchecked", "rawtypes" })
 		@Override
 		public String apply(Object t) {
 			if (t == null)
@@ -114,9 +112,9 @@ public class ClassInfoTest {
 				return "@AConfig(" + ((AConfig)t).value() + ")";
 			if (t instanceof AnnotationInfo)
 				return apply(((AnnotationInfo<?>)t).getAnnotation());
-			if (t instanceof AnnotationsMap) {
-				AnnotationsMap m = (AnnotationsMap)t;
-				return new ClassTreeSet((Set)m.keySet()).stream().map(x -> x.getSimpleName() + "=[" + (m.get(x).stream().map(y -> apply(y))).collect(Collectors.joining(",")) +"]").collect(Collectors.joining(","));
+			if (t instanceof AnnotationList) {
+				AnnotationList al = (AnnotationList)t;
+				return al.toString();
 			}
 			return t.toString();
 		}
@@ -940,16 +938,16 @@ public class ClassInfoTest {
 
 	@Test
 	public void getAnnotationsMap() {
-		check("A=[@A(7),@A(6),@A(5),@A(3),@A(1),@A(2)],PA=[@PA(10)]", g3.getAnnotationsMap());
-		check("A=[@A(7),@A(6),@A(5),@A(3),@A(1),@A(2)],PA=[@PA(10)]", g4.getAnnotationsMap());
-		check("A=[@A(3)],PA=[@PA(10)]", g5.getAnnotationsMap());
+		check("@A(7),@A(6),@A(5),@A(3),@A(1),@A(2),@PA(10)", g3.getAnnotationList());
+		check("@A(7),@A(6),@A(5),@A(3),@A(1),@A(2),@PA(10)", g4.getAnnotationList());
+		check("@A(3),@PA(10)", g5.getAnnotationList());
 	}
 
 	@Test
 	public void getAnnotationsMapParentFirst() {
-		check("A=[@A(2),@A(1),@A(3),@A(5),@A(6),@A(7)],PA=[@PA(10)]", g3.getAnnotationsMapParentFirst());
-		check("A=[@A(2),@A(1),@A(3),@A(5),@A(6),@A(7)],PA=[@PA(10)]", g4.getAnnotationsMapParentFirst());
-		check("A=[@A(3)],PA=[@PA(10)]", g5.getAnnotationsMapParentFirst());
+		check("@PA(10),@A(2),@A(1),@A(3),@A(5),@A(6),@A(7)", g3.getAnnotationListParentFirst());
+		check("@PA(10),@A(2),@A(1),@A(3),@A(5),@A(6),@A(7)", g4.getAnnotationListParentFirst());
+		check("@PA(10),@A(3)", g5.getAnnotationListParentFirst());
 	}
 
 	@A(1) @AConfig(1) static interface GBI1 {}
@@ -966,16 +964,16 @@ public class ClassInfoTest {
 
 	@Test
 	public void getConfigAnnotationsMap() {
-		check("AConfig=[@AConfig(7),@AConfig(6),@AConfig(5),@AConfig(3),@AConfig(1),@AConfig(2)]", gb3.getConfigAnnotationsMap());
-		check("AConfig=[@AConfig(7),@AConfig(6),@AConfig(5),@AConfig(3),@AConfig(1),@AConfig(2)]", gb4.getConfigAnnotationsMap());
-		check("AConfig=[@AConfig(3)]", gb5.getConfigAnnotationsMap());
+		check("@AConfig(7),@AConfig(6),@AConfig(5),@AConfig(3),@AConfig(1),@AConfig(2)", gb3.getConfigAnnotationList());
+		check("@AConfig(7),@AConfig(6),@AConfig(5),@AConfig(3),@AConfig(1),@AConfig(2)", gb4.getConfigAnnotationList());
+		check("@AConfig(3)", gb5.getConfigAnnotationList());
 	}
 
 	@Test
 	public void getConfigAnnotationsMapParentFirst() {
-		check("AConfig=[@AConfig(2),@AConfig(1),@AConfig(3),@AConfig(5),@AConfig(6),@AConfig(7)]", gb3.getConfigAnnotationsMapParentFirst());
-		check("AConfig=[@AConfig(2),@AConfig(1),@AConfig(3),@AConfig(5),@AConfig(6),@AConfig(7)]", gb4.getConfigAnnotationsMapParentFirst());
-		check("AConfig=[@AConfig(3)]", gb5.getConfigAnnotationsMapParentFirst());
+		check("@AConfig(2),@AConfig(1),@AConfig(3),@AConfig(5),@AConfig(6),@AConfig(7)", gb3.getConfigAnnotationListParentFirst());
+		check("@AConfig(2),@AConfig(1),@AConfig(3),@AConfig(5),@AConfig(6),@AConfig(7)", gb4.getConfigAnnotationListParentFirst());
+		check("@AConfig(3)", gb5.getConfigAnnotationListParentFirst());
 	}
 
 	//-----------------------------------------------------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/reflection/MethodInfoTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/reflection/MethodInfoTest.java
index 6ba853e..30c6a93 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/reflection/MethodInfoTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/reflection/MethodInfoTest.java
@@ -25,7 +25,6 @@ import java.util.stream.*;
 
 import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
-import org.apache.juneau.internal.*;
 import org.apache.juneau.reflect.*;
 import org.apache.juneau.svl.*;
 import org.junit.*;
@@ -71,7 +70,7 @@ public class MethodInfoTest {
 	}
 
 	private static final Function<Object,String> TO_STRING = new Function<Object,String>() {
-		@SuppressWarnings({ "unchecked", "rawtypes" })
+		@SuppressWarnings({ "rawtypes" })
 		@Override
 		public String apply(Object t) {
 			if (t == null)
@@ -90,9 +89,9 @@ public class MethodInfoTest {
 				return "@PA(" + ((PA)t).value() + ")";
 			if (t instanceof AConfig)
 				return "@AConfig(" + ((AConfig)t).value() + ")";
-			if (t instanceof AnnotationsMap) {
-				AnnotationsMap m = (AnnotationsMap)t;
-				return new ClassTreeSet((Set)m.keySet()).stream().map(x -> x.getSimpleName() + "=[" + (m.get(x).stream().map(y -> apply(y))).collect(Collectors.joining(",")) +"]").collect(Collectors.joining(","));
+			if (t instanceof AnnotationList) {
+				AnnotationList al = (AnnotationList)t;
+				return al.toString();
 			}
 			if (t instanceof ClassInfo)
 				return ((ClassInfo)t).getSimpleName();
@@ -269,20 +268,20 @@ public class MethodInfoTest {
 
 	@Test
 	public void getAnnotationsMap() {
-		check("A=[@A(C3),@A(C2),@A(a1),@A(C1)],PA=[@PA(10)]", c_a1.getAnnotationsMap());
-		check("A=[@A(C3),@A(a2b),@A(C2),@A(a2a),@A(C1)],PA=[@PA(10)]", c_a2.getAnnotationsMap());
-		check("A=[@A(C3),@A(C2),@A(a3),@A(C1)],PA=[@PA(10)]", c_a3.getAnnotationsMap());
-		check("A=[@A(a4),@A(C3),@A(C2),@A(C1)],PA=[@PA(10)]", c_a4.getAnnotationsMap());
-		check("A=[@A(C3),@A(C2),@A(C1)],PA=[@PA(10)]", c_a5.getAnnotationsMap());
+		check("@A(C3),@A(C2),@A(a1),@A(C1),@PA(10)", c_a1.getAnnotationList());
+		check("@A(C3),@A(a2b),@A(C2),@A(a2a),@A(C1),@PA(10)", c_a2.getAnnotationList());
+		check("@A(C3),@A(C2),@A(a3),@A(C1),@PA(10)", c_a3.getAnnotationList());
+		check("@A(a4),@A(C3),@A(C2),@A(C1),@PA(10)", c_a4.getAnnotationList());
+		check("@A(C3),@A(C2),@A(C1),@PA(10)", c_a5.getAnnotationList());
 	}
 
 	@Test
 	public void getAnnotationsMapParentFirst() {
-		check("A=[@A(C1),@A(a1),@A(C2),@A(C3)],PA=[@PA(10)]", c_a1.getAnnotationsMapParentFirst());
-		check("A=[@A(C1),@A(a2a),@A(C2),@A(a2b),@A(C3)],PA=[@PA(10)]", c_a2.getAnnotationsMapParentFirst());
-		check("A=[@A(C1),@A(a3),@A(C2),@A(C3)],PA=[@PA(10)]", c_a3.getAnnotationsMapParentFirst());
-		check("A=[@A(C1),@A(C2),@A(C3),@A(a4)],PA=[@PA(10)]", c_a4.getAnnotationsMapParentFirst());
-		check("A=[@A(C1),@A(C2),@A(C3)],PA=[@PA(10)]", c_a5.getAnnotationsMapParentFirst());
+		check("@PA(10),@A(C1),@A(a1),@A(C2),@A(C3)", c_a1.getAnnotationListParentFirst());
+		check("@PA(10),@A(C1),@A(a2a),@A(C2),@A(a2b),@A(C3)", c_a2.getAnnotationListParentFirst());
+		check("@PA(10),@A(C1),@A(a3),@A(C2),@A(C3)", c_a3.getAnnotationListParentFirst());
+		check("@PA(10),@A(C1),@A(C2),@A(C3),@A(a4)", c_a4.getAnnotationListParentFirst());
+		check("@PA(10),@A(C1),@A(C2),@A(C3)", c_a5.getAnnotationListParentFirst());
 	}
 
 	@A("C1") @AConfig("C1")
@@ -321,20 +320,20 @@ public class MethodInfoTest {
 
 	@Test
 	public void getConfigAnnotationsMap() {
-		check("AConfig=[@AConfig(C3),@AConfig(C2),@AConfig(a1),@AConfig(C1)]", cb_a1.getConfigAnnotationsMap());
-		check("AConfig=[@AConfig(C3),@AConfig(a2b),@AConfig(C2),@AConfig(a2a),@AConfig(C1)]", cb_a2.getConfigAnnotationsMap());
-		check("AConfig=[@AConfig(C3),@AConfig(C2),@AConfig(a3),@AConfig(C1)]", cb_a3.getConfigAnnotationsMap());
-		check("AConfig=[@AConfig(a4),@AConfig(C3),@AConfig(C2),@AConfig(C1)]", cb_a4.getConfigAnnotationsMap());
-		check("AConfig=[@AConfig(C3),@AConfig(C2),@AConfig(C1)]", cb_a5.getConfigAnnotationsMap());
+		check("@AConfig(C3),@AConfig(C2),@AConfig(a1),@AConfig(C1)", cb_a1.getConfigAnnotationList());
+		check("@AConfig(C3),@AConfig(a2b),@AConfig(C2),@AConfig(a2a),@AConfig(C1)", cb_a2.getConfigAnnotationList());
+		check("@AConfig(C3),@AConfig(C2),@AConfig(a3),@AConfig(C1)", cb_a3.getConfigAnnotationList());
+		check("@AConfig(a4),@AConfig(C3),@AConfig(C2),@AConfig(C1)", cb_a4.getConfigAnnotationList());
+		check("@AConfig(C3),@AConfig(C2),@AConfig(C1)", cb_a5.getConfigAnnotationList());
 	}
 
 	@Test
 	public void getConfigAnnotationsMapParentFirst() {
-		check("AConfig=[@AConfig(C1),@AConfig(a1),@AConfig(C2),@AConfig(C3)]", cb_a1.getConfigAnnotationsMapParentFirst());
-		check("AConfig=[@AConfig(C1),@AConfig(a2a),@AConfig(C2),@AConfig(a2b),@AConfig(C3)]", cb_a2.getConfigAnnotationsMapParentFirst());
-		check("AConfig=[@AConfig(C1),@AConfig(a3),@AConfig(C2),@AConfig(C3)]", cb_a3.getConfigAnnotationsMapParentFirst());
-		check("AConfig=[@AConfig(C1),@AConfig(C2),@AConfig(C3),@AConfig(a4)]", cb_a4.getConfigAnnotationsMapParentFirst());
-		check("AConfig=[@AConfig(C1),@AConfig(C2),@AConfig(C3)]", cb_a5.getConfigAnnotationsMapParentFirst());
+		check("@AConfig(C1),@AConfig(a1),@AConfig(C2),@AConfig(C3)", cb_a1.getConfigAnnotationListParentFirst());
+		check("@AConfig(C1),@AConfig(a2a),@AConfig(C2),@AConfig(a2b),@AConfig(C3)", cb_a2.getConfigAnnotationListParentFirst());
+		check("@AConfig(C1),@AConfig(a3),@AConfig(C2),@AConfig(C3)", cb_a3.getConfigAnnotationListParentFirst());
+		check("@AConfig(C1),@AConfig(C2),@AConfig(C3),@AConfig(a4)", cb_a4.getConfigAnnotationListParentFirst());
+		check("@AConfig(C1),@AConfig(C2),@AConfig(C3)", cb_a5.getConfigAnnotationListParentFirst());
 	}
 
 	//-----------------------------------------------------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/serializer/SerializerConfigAnnotationTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/serializer/SerializerConfigAnnotationTest.java
index c778460..d3379fb 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/serializer/SerializerConfigAnnotationTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/serializer/SerializerConfigAnnotationTest.java
@@ -75,8 +75,8 @@ public class SerializerConfigAnnotationTest {
 
 	@Test
 	public void basicWriterSerializer() throws Exception {
-		AnnotationsMap m = a.getAnnotationsMap();
-		JsonSerializerSession x = JsonSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = a.getAnnotationList();
+		JsonSerializerSession x = JsonSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("true", ((SerializerSession)x).isAddBeanTypes());
 		check("true", x.isAddRootType());
 		check("AA", x.getListener());
@@ -96,8 +96,8 @@ public class SerializerConfigAnnotationTest {
 
 	@Test
 	public void basicOutputStreamSerializer() throws Exception {
-		AnnotationsMap m = a.getAnnotationsMap();
-		MsgPackSerializerSession x = MsgPackSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = a.getAnnotationList();
+		MsgPackSerializerSession x = MsgPackSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("true", ((SerializerSession)x).isAddBeanTypes());
 		check("true", x.isAddRootType());
 		check("HEX", x.getBinaryFormat());
@@ -124,8 +124,8 @@ public class SerializerConfigAnnotationTest {
 
 	@Test
 	public void noValuesWriterSerializer() throws Exception {
-		AnnotationsMap m = b.getAnnotationsMap();
-		JsonSerializerSession x = JsonSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = b.getAnnotationList();
+		JsonSerializerSession x = JsonSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("false", ((SerializerSession)x).isAddBeanTypes());
 		check("false", x.isAddRootType());
 		check(null, x.getListener());
@@ -145,8 +145,8 @@ public class SerializerConfigAnnotationTest {
 
 	@Test
 	public void noValuesOutputStreamSerializer() throws Exception {
-		AnnotationsMap m = b.getAnnotationsMap();
-		MsgPackSerializerSession x = MsgPackSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = b.getAnnotationList();
+		MsgPackSerializerSession x = MsgPackSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("false", ((SerializerSession)x).isAddBeanTypes());
 		check("false", x.isAddRootType());
 		check("HEX", x.getBinaryFormat());
@@ -172,8 +172,8 @@ public class SerializerConfigAnnotationTest {
 
 	@Test
 	public void noAnnotationWriterSerializer() throws Exception {
-		AnnotationsMap m = c.getAnnotationsMap();
-		JsonSerializerSession x = JsonSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = c.getAnnotationList();
+		JsonSerializerSession x = JsonSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("false", ((SerializerSession)x).isAddBeanTypes());
 		check("false", x.isAddRootType());
 		check(null, x.getListener());
@@ -193,8 +193,8 @@ public class SerializerConfigAnnotationTest {
 
 	@Test
 	public void noAnnotationOutputStreamSerializer() throws Exception {
-		AnnotationsMap m = c.getAnnotationsMap();
-		MsgPackSerializerSession x = MsgPackSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = c.getAnnotationList();
+		MsgPackSerializerSession x = MsgPackSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("false", ((SerializerSession)x).isAddBeanTypes());
 		check("false", x.isAddRootType());
 		check("HEX", x.getBinaryFormat());
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/soap/SoapXmlConfigAnnotationTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/soap/SoapXmlConfigAnnotationTest.java
index 1a6b157..7cb6dbb 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/soap/SoapXmlConfigAnnotationTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/soap/SoapXmlConfigAnnotationTest.java
@@ -52,8 +52,8 @@ public class SoapXmlConfigAnnotationTest {
 
 	@Test
 	public void basic() throws Exception {
-		AnnotationsMap m = a.getAnnotationsMap();
-		SoapXmlSerializerSession x = SoapXmlSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = a.getAnnotationList();
+		SoapXmlSerializerSession x = SoapXmlSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("foo", x.getSoapAction());
 	}
 
@@ -67,8 +67,8 @@ public class SoapXmlConfigAnnotationTest {
 
 	@Test
 	public void noValues() throws Exception {
-		AnnotationsMap m = b.getAnnotationsMap();
-		SoapXmlSerializerSession x = SoapXmlSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = b.getAnnotationList();
+		SoapXmlSerializerSession x = SoapXmlSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("http://www.w3.org/2003/05/soap-envelope", x.getSoapAction());
 	}
 
@@ -81,8 +81,8 @@ public class SoapXmlConfigAnnotationTest {
 
 	@Test
 	public void noAnnotation() throws Exception {
-		AnnotationsMap m = c.getAnnotationsMap();
-		SoapXmlSerializerSession x = SoapXmlSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = c.getAnnotationList();
+		SoapXmlSerializerSession x = SoapXmlSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("http://www.w3.org/2003/05/soap-envelope", x.getSoapAction());
 	}
 }
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/uon/UonConfigAnnotationTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/uon/UonConfigAnnotationTest.java
index 43f449f..b38ef02 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/uon/UonConfigAnnotationTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/uon/UonConfigAnnotationTest.java
@@ -56,8 +56,8 @@ public class UonConfigAnnotationTest {
 
 	@Test
 	public void basicSerializer() throws Exception {
-		AnnotationsMap m = a.getAnnotationsMap();
-		UonSerializerSession x = UonSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = a.getAnnotationList();
+		UonSerializerSession x = UonSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("true", x.isAddBeanTypes());
 		check("true", x.isEncoding());
 		check("UON", x.getParamFormat());
@@ -65,8 +65,8 @@ public class UonConfigAnnotationTest {
 
 	@Test
 	public void basicParser() throws Exception {
-		AnnotationsMap m = a.getAnnotationsMap();
-		UonParserSession x = UonParser.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = a.getAnnotationList();
+		UonParserSession x = UonParser.create().applyAnnotations(al, sr).build().createSession();
 		check("true", x.isDecoding());
 		check("true", x.isValidateEnd());
 	}
@@ -81,8 +81,8 @@ public class UonConfigAnnotationTest {
 
 	@Test
 	public void noValuesSerializer() throws Exception {
-		AnnotationsMap m = b.getAnnotationsMap();
-		UonSerializerSession x = UonSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = b.getAnnotationList();
+		UonSerializerSession x = UonSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("false", x.isAddBeanTypes());
 		check("false", x.isEncoding());
 		check("UON", x.getParamFormat());
@@ -90,8 +90,8 @@ public class UonConfigAnnotationTest {
 
 	@Test
 	public void noValuesParser() throws Exception {
-		AnnotationsMap m = b.getAnnotationsMap();
-		UonParserSession x = UonParser.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = b.getAnnotationList();
+		UonParserSession x = UonParser.create().applyAnnotations(al, sr).build().createSession();
 		check("false", x.isDecoding());
 		check("false", x.isValidateEnd());
 	}
@@ -105,8 +105,8 @@ public class UonConfigAnnotationTest {
 
 	@Test
 	public void noAnnotationSerializer() throws Exception {
-		AnnotationsMap m = c.getAnnotationsMap();
-		UonSerializerSession x = UonSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = c.getAnnotationList();
+		UonSerializerSession x = UonSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("false", x.isAddBeanTypes());
 		check("false", x.isEncoding());
 		check("UON", x.getParamFormat());
@@ -114,8 +114,8 @@ public class UonConfigAnnotationTest {
 
 	@Test
 	public void noAnnotationParser() throws Exception {
-		AnnotationsMap m = c.getAnnotationsMap();
-		UonParserSession x = UonParser.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = c.getAnnotationList();
+		UonParserSession x = UonParser.create().applyAnnotations(al, sr).build().createSession();
 		check("false", x.isDecoding());
 		check("false", x.isValidateEnd());
 	}
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UrlEncodingConfigAnnotationTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UrlEncodingConfigAnnotationTest.java
index 306baad..a2c0515 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UrlEncodingConfigAnnotationTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UrlEncodingConfigAnnotationTest.java
@@ -52,15 +52,15 @@ public class UrlEncodingConfigAnnotationTest {
 
 	@Test
 	public void basicSerializer() throws Exception {
-		AnnotationsMap m = a.getAnnotationsMap();
-		UrlEncodingSerializerSession x = UrlEncodingSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = a.getAnnotationList();
+		UrlEncodingSerializerSession x = UrlEncodingSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("true", x.isExpandedParams());
 	}
 
 	@Test
 	public void basicParser() throws Exception {
-		AnnotationsMap m = a.getAnnotationsMap();
-		UrlEncodingParserSession x = UrlEncodingParser.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = a.getAnnotationList();
+		UrlEncodingParserSession x = UrlEncodingParser.create().applyAnnotations(al, sr).build().createSession();
 		check("true", x.isExpandedParams());
 	}
 
@@ -74,15 +74,15 @@ public class UrlEncodingConfigAnnotationTest {
 
 	@Test
 	public void noValuesSerializer() throws Exception {
-		AnnotationsMap m = b.getAnnotationsMap();
-		UrlEncodingSerializerSession x = UrlEncodingSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = b.getAnnotationList();
+		UrlEncodingSerializerSession x = UrlEncodingSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("false", x.isExpandedParams());
 	}
 
 	@Test
 	public void noValuesParser() throws Exception {
-		AnnotationsMap m = b.getAnnotationsMap();
-		UrlEncodingParserSession x = UrlEncodingParser.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = b.getAnnotationList();
+		UrlEncodingParserSession x = UrlEncodingParser.create().applyAnnotations(al, sr).build().createSession();
 		check("false", x.isExpandedParams());
 	}
 
@@ -95,15 +95,15 @@ public class UrlEncodingConfigAnnotationTest {
 
 	@Test
 	public void noAnnotationSerializer() throws Exception {
-		AnnotationsMap m = c.getAnnotationsMap();
-		UrlEncodingSerializerSession x = UrlEncodingSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = c.getAnnotationList();
+		UrlEncodingSerializerSession x = UrlEncodingSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("false", x.isExpandedParams());
 	}
 
 	@Test
 	public void noAnnotationParser() throws Exception {
-		AnnotationsMap m = c.getAnnotationsMap();
-		UrlEncodingParserSession x = UrlEncodingParser.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = c.getAnnotationList();
+		UrlEncodingParserSession x = UrlEncodingParser.create().applyAnnotations(al, sr).build().createSession();
 		check("false", x.isExpandedParams());
 	}
 }
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlConfigAnnotationTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlConfigAnnotationTest.java
index 0975e6c..9de97bf 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlConfigAnnotationTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlConfigAnnotationTest.java
@@ -103,8 +103,8 @@ public class XmlConfigAnnotationTest {
 
 	@Test
 	public void basicSerializer() throws Exception {
-		AnnotationsMap m = a.getAnnotationsMap();
-		XmlSerializerSession x = XmlSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = a.getAnnotationList();
+		XmlSerializerSession x = XmlSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("true", x.isAddBeanTypes());
 		check("true", x.isAddNamespaceUrisToRoot());
 		check("true", x.isAutoDetectNamespaces());
@@ -116,8 +116,8 @@ public class XmlConfigAnnotationTest {
 
 	@Test
 	public void basicParser() throws Exception {
-		AnnotationsMap m = a.getAnnotationsMap();
-		XmlParserSession x = XmlParser.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = a.getAnnotationList();
+		XmlParserSession x = XmlParser.create().applyAnnotations(al, sr).build().createSession();
 		check("AA", x.getEventAllocator());
 		check("true", x.isPreserveRootElement());
 		check("AB", x.getReporter());
@@ -135,8 +135,8 @@ public class XmlConfigAnnotationTest {
 
 	@Test
 	public void noValuesSerializer() throws Exception {
-		AnnotationsMap m = b.getAnnotationsMap();
-		XmlSerializerSession x = XmlSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = b.getAnnotationList();
+		XmlSerializerSession x = XmlSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("false", x.isAddBeanTypes());
 		check("false", x.isAddNamespaceUrisToRoot());
 		check("true", x.isAutoDetectNamespaces());
@@ -148,8 +148,8 @@ public class XmlConfigAnnotationTest {
 
 	@Test
 	public void noValuesParser() throws Exception {
-		AnnotationsMap m = b.getAnnotationsMap();
-		XmlParserSession x = XmlParser.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = b.getAnnotationList();
+		XmlParserSession x = XmlParser.create().applyAnnotations(al, sr).build().createSession();
 		check(null, x.getEventAllocator());
 		check("false", x.isPreserveRootElement());
 		check(null, x.getReporter());
@@ -166,8 +166,8 @@ public class XmlConfigAnnotationTest {
 
 	@Test
 	public void noAnnotationSerializer() throws Exception {
-		AnnotationsMap m = c.getAnnotationsMap();
-		XmlSerializerSession x = XmlSerializer.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = c.getAnnotationList();
+		XmlSerializerSession x = XmlSerializer.create().applyAnnotations(al, sr).build().createSession();
 		check("false", x.isAddBeanTypes());
 		check("false", x.isAddNamespaceUrisToRoot());
 		check("true", x.isAutoDetectNamespaces());
@@ -179,8 +179,8 @@ public class XmlConfigAnnotationTest {
 
 	@Test
 	public void noAnnotationParser() throws Exception {
-		AnnotationsMap m = c.getAnnotationsMap();
-		XmlParserSession x = XmlParser.create().applyAnnotations(m, sr).build().createSession();
+		AnnotationList al = c.getAnnotationList();
+		XmlParserSession x = XmlParser.create().applyAnnotations(al, sr).build().createSession();
 		check(null, x.getEventAllocator());
 		check("false", x.isPreserveRootElement());
 		check(null, x.getReporter());
diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserBuilder.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserBuilder.java
index 5f5ebdc..4f99d26 100644
--- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserBuilder.java
+++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserBuilder.java
@@ -1261,8 +1261,8 @@ public class RdfParserBuilder extends ReaderParserBuilder {
 	}
 
 	@Override
-	public RdfParserBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public RdfParserBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 }
diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java
index 599a2ae..ad1910a 100644
--- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java
+++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java
@@ -1498,8 +1498,8 @@ public class RdfSerializerBuilder extends WriterSerializerBuilder {
 	}
 
 	@Override /* ContextBuilder */
-	public RdfSerializerBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public RdfSerializerBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java
index 24ba155..7d8affb 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java
@@ -1707,8 +1707,8 @@ public class BeanContextBuilder extends ContextBuilder {
 	}
 
 	@Override /* ContextBuilder */
-	public BeanContextBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public BeanContextBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseBuilder.java
index 14187e3..5169c1b 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseBuilder.java
@@ -621,8 +621,8 @@ public class BeanTraverseBuilder extends BeanContextBuilder {
 	}
 
 	@Override /* ContextBuilder */
-	public BeanTraverseBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public BeanTraverseBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ContextBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ContextBuilder.java
index 532b55b..900ae29 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ContextBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ContextBuilder.java
@@ -107,12 +107,12 @@ public abstract class ContextBuilder {
 	/**
 	 * Applies a set of annotations to this property store.
 	 *
-	 * @param annotationsMap The annotations map.
+	 * @param al The list of all annotations annotated with {@link PropertyStoreApply}.
 	 * @param r The string resolver for resolving variables in annotation values.
 	 * @return This object (for method chaining).
 	 */
-	public ContextBuilder applyAnnotations(AnnotationsMap annotationsMap, VarResolverSession r) {
-		this.psb.applyAnnotations(annotationsMap, r);
+	public ContextBuilder applyAnnotations(AnnotationList al, VarResolverSession r) {
+		this.psb.applyAnnotations(al, r);
 		return this;
 	}
 
@@ -154,7 +154,7 @@ public abstract class ContextBuilder {
 	 * @return This object (for method chaining).
 	 */
 	public ContextBuilder applyAnnotations(Class<?> fromClass) {
-		applyAnnotations(ClassInfo.of(fromClass).getConfigAnnotationsMapParentFirst(), VarResolver.DEFAULT.createSession());
+		applyAnnotations(ClassInfo.of(fromClass).getConfigAnnotationListParentFirst(), VarResolver.DEFAULT.createSession());
 		return this;
 	}
 
@@ -197,7 +197,7 @@ public abstract class ContextBuilder {
 	 * @return This object (for method chaining).
 	 */
 	public ContextBuilder applyAnnotations(Method fromMethod) {
-		applyAnnotations(MethodInfo.of(fromMethod).getConfigAnnotationsMapParentFirst(), VarResolver.DEFAULT.createSession());
+		applyAnnotations(MethodInfo.of(fromMethod).getConfigAnnotationListParentFirst(), VarResolver.DEFAULT.createSession());
 		return this;
 	}
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/PropertyStoreBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/PropertyStoreBuilder.java
index a6d20cb..d2138e4 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/PropertyStoreBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/PropertyStoreBuilder.java
@@ -118,26 +118,19 @@ public class PropertyStoreBuilder {
 	/**
 	 * Applies the settings in the specified annotations to this property store.
 	 *
-	 * @param annotationsMap The map of annotations to apply.
+	 * @param al The list of annotations to apply.
 	 * @param r The string resolver used to resolve any variables in the annotations.
 	 * @return This object (for method chaining).
 	 */
 	@SuppressWarnings("unchecked")
-	public PropertyStoreBuilder applyAnnotations(AnnotationsMap annotationsMap, VarResolverSession r) {
-		for (Map.Entry<Class<? extends Annotation>,List<AnnotationInfo<? extends Annotation>>> e : annotationsMap.entrySet()) {
-			Class<? extends Annotation> ac = e.getKey();
-			PropertyStoreApply apply = ac.getAnnotation(PropertyStoreApply.class);
-			if (apply != null) {
-				try {
-					ConfigApply<Annotation> ca = apply.value().getConstructor(Class.class, VarResolverSession.class).newInstance(ac, r);
-					for (AnnotationInfo<?> a : e.getValue()) {
-						ca.apply((AnnotationInfo<Annotation>) a, this);
-					}
-				} catch (ConfigException ex) {
-					throw ex;
-				} catch (Exception ex) {
-					throw new ConfigException(ex, "Could not instantiate ConfigApply class {0}", apply.value());
-				}
+	public PropertyStoreBuilder applyAnnotations(AnnotationList al, VarResolverSession r) {
+		for (AnnotationInfo<?> ai : al) {
+			try {
+				ai.getConfigApply(r).apply((AnnotationInfo<Annotation>)ai, this);
+			} catch (ConfigException ex) {
+				throw ex;
+			} catch (Exception ex) {
+				throw new ConfigException(ex, "Could not instantiate ConfigApply class {0}", ai);
 			}
 		}
 		return this;
@@ -181,7 +174,7 @@ public class PropertyStoreBuilder {
 	 * @return This object (for method chaining).
 	 */
 	public PropertyStoreBuilder applyAnnotations(Class<?> fromClass) {
-		applyAnnotations(ClassInfo.of(fromClass).getConfigAnnotationsMapParentFirst(), VarResolver.DEFAULT.createSession());
+		applyAnnotations(ClassInfo.of(fromClass).getConfigAnnotationListParentFirst(), VarResolver.DEFAULT.createSession());
 		return this;
 	}
 
@@ -224,7 +217,7 @@ public class PropertyStoreBuilder {
 	 * @return This object (for method chaining).
 	 */
 	public PropertyStoreBuilder applyAnnotations(Method fromMethod) {
-		applyAnnotations(MethodInfo.of(fromMethod).getConfigAnnotationsMapParentFirst(), VarResolver.DEFAULT.createSession());
+		applyAnnotations(MethodInfo.of(fromMethod).getConfigAnnotationListParentFirst(), VarResolver.DEFAULT.createSession());
 		return this;
 	}
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParserBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParserBuilder.java
index f179d6d..6298b06 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParserBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParserBuilder.java
@@ -567,8 +567,8 @@ public class CsvParserBuilder extends ReaderParserBuilder {
 	}
 
 	@Override
-	public CsvParserBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public CsvParserBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 }
\ No newline at end of file
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializerBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializerBuilder.java
index 0ddc86f..2c7be1a 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializerBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializerBuilder.java
@@ -681,8 +681,8 @@ public class CsvSerializerBuilder extends WriterSerializerBuilder {
 	}
 
 	@Override /* ContextBuilder */
-	public CsvSerializerBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public CsvSerializerBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializerBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializerBuilder.java
index ef53892..7d03bff 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializerBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializerBuilder.java
@@ -1206,8 +1206,8 @@ public class HtmlDocSerializerBuilder extends HtmlStrippedDocSerializerBuilder {
 	}
 
 	@Override /* ContextBuilder */
-	public HtmlDocSerializerBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public HtmlDocSerializerBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserBuilder.java
index 660822d..50e1364 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserBuilder.java
@@ -589,8 +589,8 @@ public class HtmlParserBuilder extends XmlParserBuilder {
 	}
 
 	@Override
-	public HtmlParserBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public HtmlParserBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 }
\ No newline at end of file
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSchemaSerializerBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSchemaSerializerBuilder.java
index 09f1642..030a657 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSchemaSerializerBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSchemaSerializerBuilder.java
@@ -821,8 +821,8 @@ public class HtmlSchemaSerializerBuilder extends HtmlSerializerBuilder {
 	}
 
 	@Override /* ContextBuilder */
-	public HtmlSchemaSerializerBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public HtmlSchemaSerializerBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerBuilder.java
index 4e96015..df4535d 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerBuilder.java
@@ -862,8 +862,8 @@ public class HtmlSerializerBuilder extends XmlSerializerBuilder {
 	}
 
 	@Override /* ContextBuilder */
-	public HtmlSerializerBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public HtmlSerializerBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializerBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializerBuilder.java
index 5fd4e71..0560bcc 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializerBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializerBuilder.java
@@ -766,8 +766,8 @@ public class HtmlStrippedDocSerializerBuilder extends HtmlSerializerBuilder {
 	}
 
 	@Override /* ContextBuilder */
-	public HtmlStrippedDocSerializerBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public HtmlStrippedDocSerializerBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoParserBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoParserBuilder.java
index 6193f10..39ca654 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoParserBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoParserBuilder.java
@@ -561,8 +561,8 @@ public class JsoParserBuilder extends InputStreamParserBuilder {
 	}
 
 	@Override
-	public JsoParserBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public JsoParserBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 }
\ No newline at end of file
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializerBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializerBuilder.java
index d63118c..b2df9d3 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializerBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializerBuilder.java
@@ -651,8 +651,8 @@ public class JsoSerializerBuilder extends OutputStreamSerializerBuilder {
 	}
 
 	@Override /* ContextBuilder */
-	public JsoSerializerBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public JsoSerializerBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParserBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParserBuilder.java
index ec1db5b..7c39639 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParserBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParserBuilder.java
@@ -607,8 +607,8 @@ public class JsonParserBuilder extends ReaderParserBuilder {
 	}
 
 	@Override
-	public JsonParserBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public JsonParserBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 }
\ No newline at end of file
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSchemaSerializerBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSchemaSerializerBuilder.java
index 4e8628e..2e9bd93 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSchemaSerializerBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSchemaSerializerBuilder.java
@@ -887,8 +887,8 @@ public class JsonSchemaSerializerBuilder extends JsonSerializerBuilder {
 	}
 
 	@Override /* ContextBuilder */
-	public JsonSchemaSerializerBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public JsonSchemaSerializerBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializerBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializerBuilder.java
index cc6fb16..900d8ef 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializerBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializerBuilder.java
@@ -775,8 +775,8 @@ public class JsonSerializerBuilder extends WriterSerializerBuilder {
 	}
 
 	@Override
-	public JsonSerializerBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public JsonSerializerBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 }
\ No newline at end of file
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorBuilder.java
index 2aad901..b4ee548 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorBuilder.java
@@ -764,8 +764,8 @@ public class JsonSchemaGeneratorBuilder extends BeanTraverseBuilder {
 	}
 
 	@Override /* ContextBuilder */
-	public JsonSchemaGeneratorBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public JsonSchemaGeneratorBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParserBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParserBuilder.java
index edf9834..2b251c2 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParserBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParserBuilder.java
@@ -561,8 +561,8 @@ public class MsgPackParserBuilder extends InputStreamParserBuilder {
 	}
 
 	@Override
-	public MsgPackParserBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public MsgPackParserBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 }
\ No newline at end of file
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerBuilder.java
index 6ed0e8c..17b11aa 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerBuilder.java
@@ -651,8 +651,8 @@ public class MsgPackSerializerBuilder extends OutputStreamSerializerBuilder {
 	}
 
 	@Override /* ContextBuilder */
-	public MsgPackSerializerBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public MsgPackSerializerBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiParserBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiParserBuilder.java
index c77c262..118c331 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiParserBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiParserBuilder.java
@@ -543,8 +543,8 @@ public class OpenApiParserBuilder extends UonParserBuilder {
 	}
 
 	@Override
-	public OpenApiParserBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public OpenApiParserBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 }
\ No newline at end of file
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiSerializerBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiSerializerBuilder.java
index 715cc0a..a214685 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiSerializerBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiSerializerBuilder.java
@@ -682,8 +682,8 @@ public class OpenApiSerializerBuilder extends UonSerializerBuilder {
 	}
 
 	@Override /* ContextBuilder */
-	public OpenApiSerializerBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public OpenApiSerializerBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/InputStreamParserBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/InputStreamParserBuilder.java
index de77f75..3536d64 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/InputStreamParserBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/InputStreamParserBuilder.java
@@ -594,8 +594,8 @@ public class InputStreamParserBuilder extends ParserBuilder {
 	}
 
 	@Override /* ContextBuilder */
-	public InputStreamParserBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public InputStreamParserBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserBuilder.java
index e84c108..26db98a 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserBuilder.java
@@ -681,8 +681,8 @@ public class ParserBuilder extends BeanContextBuilder {
 	}
 
 	@Override /* ContextBuilder */
-	public ParserBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public ParserBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroupBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroupBuilder.java
index 7e45f8e..b0e8ba2 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroupBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroupBuilder.java
@@ -827,8 +827,8 @@ public class ParserGroupBuilder extends BeanContextBuilder {
 	}
 
 	@Override /* ContextBuilder */
-	public ParserGroupBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public ParserGroupBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParserBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParserBuilder.java
index 9882be5..a2ea009 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParserBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParserBuilder.java
@@ -633,8 +633,8 @@ public abstract class ReaderParserBuilder extends ParserBuilder {
 	}
 
 	@Override /* ContextBuilder */
-	public ReaderParserBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public ReaderParserBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextParserBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextParserBuilder.java
index 814519f..86f6a4c 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextParserBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextParserBuilder.java
@@ -567,8 +567,8 @@ public class PlainTextParserBuilder extends ReaderParserBuilder {
 	}
 
 	@Override
-	public PlainTextParserBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public PlainTextParserBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 }
\ No newline at end of file
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextSerializerBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextSerializerBuilder.java
index 162431f..70a0724 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextSerializerBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextSerializerBuilder.java
@@ -681,8 +681,8 @@ public class PlainTextSerializerBuilder extends WriterSerializerBuilder {
 	}
 
 	@Override /* ContextBuilder */
-	public PlainTextSerializerBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public PlainTextSerializerBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/AnnotationInfo.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/AnnotationInfo.java
index 1c9096a..898c99e 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/AnnotationInfo.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/AnnotationInfo.java
@@ -17,8 +17,10 @@ import java.lang.reflect.*;
 import java.util.*;
 
 import org.apache.juneau.*;
+import org.apache.juneau.annotation.*;
 import org.apache.juneau.internal.*;
 import org.apache.juneau.marshall.*;
+import org.apache.juneau.svl.*;
 
 /**
  * Represents an annotation instance on a class and the class it was found on.
@@ -147,6 +149,41 @@ public class AnnotationInfo<T extends Annotation> {
 		return om;
 	}
 
+	private Constructor<? extends ConfigApply<?>> configApplyConstructor;
+
+	/**
+	 * If this annotation has a {@link PropertyStoreApply} annotation, returns an instance of the specified {@link ConfigApply} class.
+	 *
+	 * @param vrs Variable resolver passed to the {@link ConfigApply} object.
+	 * @return A new {@link ConfigApply} object.  Never <jk>null</jk>.
+	 * @throws Exception
+	 */
+	@SuppressWarnings("unchecked")
+	public ConfigApply<Annotation> getConfigApply(VarResolverSession vrs) throws Exception {
+		if (configApplyConstructor == null) {
+			PropertyStoreApply psa = a.annotationType().getAnnotation(PropertyStoreApply.class);
+			if (psa != null)
+				configApplyConstructor = (Constructor<? extends ConfigApply<?>>)psa.value().getConstructor(Class.class, VarResolverSession.class);
+			if (configApplyConstructor == null)
+				throw new NoSuchFieldError("Could not find ConfigApply constructor for annotation:\n" + toString());
+		}
+		ClassInfo ci = getClassInfo();
+		return (ConfigApply<Annotation>) configApplyConstructor.newInstance(ci == null ? null : ci.inner(), vrs);
+	}
+
+	/**
+	 * Returns the class that this annotation was found on.
+	 *
+	 * @return The class that this annotation was found on, or <jk>null</jk> if it was found on a package.
+	 */
+	public ClassInfo getClassInfo() {
+		if (this.c != null)
+			return this.c;
+		if (this.m != null)
+			return this.m.getDeclaringClass();
+		return null;
+	}
+
 	@Override
 	public String toString() {
 		return SimpleJson.DEFAULT_READABLE.toString(toObjectMap());
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/AnnotationsMap.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/AnnotationList.java
similarity index 54%
rename from juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/AnnotationsMap.java
rename to juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/AnnotationList.java
index 762d83c..023acef 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/AnnotationsMap.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/AnnotationList.java
@@ -13,68 +13,30 @@
 package org.apache.juneau.reflect;
 
 import java.lang.annotation.*;
-import java.util.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.marshall.*;
+import java.util.ArrayList;
 
 /**
- * A mapping of annotation classes to lists of annotations.
+ * An ordered list of annotations and the classes/methods/packages they were found on.
  */
-public class AnnotationsMap extends HashMap<Class<? extends Annotation>,List<AnnotationInfo<? extends Annotation>>> {
-
+public class AnnotationList extends ArrayList<AnnotationInfo<?>> {
 	private static final long serialVersionUID = 1L;
 
-	/**
-	 * Adds an annotation to this map.
-	 *
-	 * @param a The annotation to add.
-	 * @return This object (for method chaining).
-	 */
-	public AnnotationsMap add(AnnotationInfo<? extends Annotation> a) {
-		if (a == null || ! accept(a))
-			return this;
-		Class<? extends Annotation> c = a.getAnnotation().annotationType();
-		List<AnnotationInfo<? extends Annotation>> l = super.get(c);
-		if (l == null) {
-			l = new ArrayList<>();
-			put(c, l);
+	@Override /* List */
+	public boolean add(AnnotationInfo<?> ai) {
+		if (accept(ai)) {
+			super.add(ai);
+			return true;
 		}
-		l.add(a);
-		return this;
+		return false;
 	}
 
 	/**
-	 * Overridable method for filtering annotations added to this map.
+	 * Overridable method for filtering annotations added to this list.
 	 *
 	 * @param a The annotation to check.
-	 * @return <jk>true</jk> if annotation should be added to this map.
+	 * @return <jk>true</jk> if annotation should be added to this list.
 	 */
-	public boolean accept(AnnotationInfo<? extends Annotation> a) {
+	protected boolean accept(AnnotationInfo<? extends Annotation> a) {
 		return true;
 	}
-
-	/**
-	 * Returns the list of annotations of the specified type.
-	 *
-	 * @param <T> The annotation type.
-	 * @param c The annotation type.
-	 * @return The list of annotations, <jk>null</jk> if not found.
-	 */
-	@SuppressWarnings("unchecked")
-	public <T extends AnnotationInfo<? extends Annotation>> List<T> get(Class<T> c) {
-		return (List<T>)super.get(c);
-	}
-
-	@Override
-	public String toString() {
-		ObjectMap m = new ObjectMap();
-		for (Class<?> k : this.keySet()) {
-			ObjectList l = new ObjectList();
-			for (AnnotationInfo<?> ai : get(k))
-				l.add(ai.toObjectMap());
-			m.put(k.getSimpleName(), l);
-		}
-		return SimpleJson.DEFAULT_READABLE.toString(m);
-	}
 }
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ClassInfo.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ClassInfo.java
index 07352f5..afca73c 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ClassInfo.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ClassInfo.java
@@ -927,7 +927,7 @@ public final class ClassInfo {
 	}
 
 	/**
-	 * Constructs an {@link AnnotationsMap} of all annotations found on this class.
+	 * Constructs an {@link AnnotationList} of all annotations found on this class.
 	 *
 	 * <p>
 	 * Annotations are appended in the following orders:
@@ -938,14 +938,14 @@ public final class ClassInfo {
 	 * 	<li>On the package of this class.
 	 * </ol>
 	 *
-	 * @return A new {@link AnnotationsMap} object on every call.
+	 * @return A new {@link AnnotationList} object on every call.
 	 */
-	public AnnotationsMap getAnnotationsMap() {
-		return appendAnnotationsMap(new AnnotationsMap());
+	public AnnotationList getAnnotationList() {
+		return appendAnnotationList(new AnnotationList());
 	}
 
 	/**
-	 * Constructs an {@link AnnotationsMap} of all annotations found on this class.
+	 * Constructs an {@link AnnotationList} of all annotations found on this class.
 	 *
 	 * <p>
 	 * Annotations are appended in the following orders:
@@ -956,14 +956,14 @@ public final class ClassInfo {
 	 * 	<li>On this class.
 	 * </ol>
 	 *
-	 * @return A new {@link AnnotationsMap} object on every call.
+	 * @return A new {@link AnnotationList} object on every call.
 	 */
-	public AnnotationsMap getAnnotationsMapParentFirst() {
-		return appendAnnotationsMapParentFirst(new AnnotationsMap());
+	public AnnotationList getAnnotationListParentFirst() {
+		return appendAnnotationListParentFirst(new AnnotationList());
 	}
 
 	/**
-	 * Constructs an {@link ConfigAnnotationsMap} of all annotations found on this class.
+	 * Constructs an {@link ConfigAnnotationList} of all annotations found on this class.
 	 *
 	 * <p>
 	 * Annotations are appended in the following orders:
@@ -974,14 +974,14 @@ public final class ClassInfo {
 	 * 	<li>On the package of this class.
 	 * </ol>
 	 *
-	 * @return A new {@link AnnotationsMap} object on every call.
+	 * @return A new {@link AnnotationList} object on every call.
 	 */
-	public AnnotationsMap getConfigAnnotationsMap() {
-		return appendAnnotationsMap(new ConfigAnnotationsMap());
+	public AnnotationList getConfigAnnotationList() {
+		return appendAnnotationList(new ConfigAnnotationList());
 	}
 
 	/**
-	 * Constructs an {@link ConfigAnnotationsMap} of all annotations found on this class.
+	 * Constructs an {@link ConfigAnnotationList} of all annotations found on this class.
 	 *
 	 * <p>
 	 * Annotations are appended in the following order:
@@ -992,10 +992,10 @@ public final class ClassInfo {
 	 * 	<li>On this class.
 	 * </ol>
 	 *
-	 * @return A new {@link AnnotationsMap} object on every call.
+	 * @return A new {@link AnnotationList} object on every call.
 	 */
-	public AnnotationsMap getConfigAnnotationsMapParentFirst() {
-		return appendAnnotationsMapParentFirst(new ConfigAnnotationsMap());
+	public AnnotationList getConfigAnnotationListParentFirst() {
+		return appendAnnotationListParentFirst(new ConfigAnnotationList());
 	}
 
 	/**
@@ -1102,7 +1102,7 @@ public final class ClassInfo {
 		return l;
 	}
 
-	AnnotationsMap appendAnnotationsMap(AnnotationsMap m) {
+	AnnotationList appendAnnotationList(AnnotationList m) {
 		for (ClassInfo ci : getParents())
 			for (Annotation a : ci.c.getDeclaredAnnotations())
 				m.add(AnnotationInfo.of(ci, a));
@@ -1116,7 +1116,7 @@ public final class ClassInfo {
 		return m;
 	}
 
-	AnnotationsMap appendAnnotationsMapParentFirst(AnnotationsMap m) {
+	AnnotationList appendAnnotationListParentFirst(AnnotationList m) {
 		Package p = c.getPackage();
 		if (p != null)
 			for (Annotation a : p.getDeclaredAnnotations())
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ConfigAnnotationsMap.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ConfigAnnotationList.java
similarity index 90%
rename from juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ConfigAnnotationsMap.java
rename to juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ConfigAnnotationList.java
index 60886bc..f0ebdb8 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ConfigAnnotationsMap.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ConfigAnnotationList.java
@@ -17,13 +17,12 @@ import java.lang.annotation.*;
 import org.apache.juneau.annotation.*;
 
 /**
- * Specialized {@link AnnotationsMap} that accepts only <js>"*Config"</js> annotations.
+ * Subclass of {@link AnnotationList} that filters out annotations not annotated with {@link PropertyStoreApply}.
  */
-public class ConfigAnnotationsMap extends AnnotationsMap {
-
+public class ConfigAnnotationList extends AnnotationList {
 	private static final long serialVersionUID = 1L;
 
-	@Override
+	@Override /* AnnotationList */
 	public boolean accept(AnnotationInfo<? extends Annotation> a) {
 		Class<? extends Annotation> aa = a.getAnnotation().annotationType();
 		return aa.getAnnotation(PropertyStoreApply.class) != null;
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/MethodInfo.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/MethodInfo.java
index 5d43559..cfb655b 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/MethodInfo.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/MethodInfo.java
@@ -218,7 +218,7 @@ public final class MethodInfo extends ExecutableInfo implements Comparable<Metho
 	}
 
 	/**
-	 * Constructs an {@link AnnotationsMap} of all annotations found on this method.
+	 * Constructs an {@link AnnotationList} of all annotations found on this method.
 	 *
 	 * <p>
 	 * Annotations are appended in the following orders:
@@ -230,14 +230,14 @@ public final class MethodInfo extends ExecutableInfo implements Comparable<Metho
 	 * 	<li>On the package of this class.
 	 * </ol>
 	 *
-	 * @return A new {@link AnnotationsMap} object on every call.
+	 * @return A new {@link AnnotationList} object on every call.
 	 */
-	public AnnotationsMap getAnnotationsMap() {
-		return appendAnnotationsMap(new AnnotationsMap());
+	public AnnotationList getAnnotationList() {
+		return appendAnnotationList(new AnnotationList());
 	}
 
 	/**
-	 * Constructs an {@link AnnotationsMap} of all annotations found on this method.
+	 * Constructs an {@link AnnotationList} of all annotations found on this method.
 	 *
 	 * <p>
 	 * Annotations are appended in the following orders:
@@ -249,14 +249,14 @@ public final class MethodInfo extends ExecutableInfo implements Comparable<Metho
 	 * 	<li>On this method and matching methods ordered parent-to-child.
 	 * </ol>
 	 *
-	 * @return A new {@link AnnotationsMap} object on every call.
+	 * @return A new {@link AnnotationList} object on every call.
 	 */
-	public AnnotationsMap getAnnotationsMapParentFirst() {
-		return appendAnnotationsMapParentFirst(new AnnotationsMap());
+	public AnnotationList getAnnotationListParentFirst() {
+		return appendAnnotationListParentFirst(new AnnotationList());
 	}
 
 	/**
-	 * Constructs an {@link ConfigAnnotationsMap} of all annotations found on this class.
+	 * Constructs an {@link ConfigAnnotationList} of all annotations found on this class.
 	 *
 	 * <p>
 	 * Annotations are appended in the following orders:
@@ -268,14 +268,14 @@ public final class MethodInfo extends ExecutableInfo implements Comparable<Metho
 	 * 	<li>On the package of the method class.
 	 * </ol>
 	 *
-	 * @return A new {@link AnnotationsMap} object on every call.
+	 * @return A new {@link AnnotationList} object on every call.
 	 */
-	public AnnotationsMap getConfigAnnotationsMap() {
-		return appendAnnotationsMap(new ConfigAnnotationsMap());
+	public AnnotationList getConfigAnnotationList() {
+		return appendAnnotationList(new ConfigAnnotationList());
 	}
 
 	/**
-	 * Constructs an {@link ConfigAnnotationsMap} of all annotations found on this class.
+	 * Constructs an {@link ConfigAnnotationList} of all annotations found on this class.
 	 *
 	 * <p>
 	 * Annotations are appended in the following orders:
@@ -287,10 +287,10 @@ public final class MethodInfo extends ExecutableInfo implements Comparable<Metho
 	 * 	<li>On this method and matching methods ordered parent-to-child.
 	 * </ol>
 	 *
-	 * @return A new {@link AnnotationsMap} object on every call.
+	 * @return A new {@link AnnotationList} object on every call.
 	 */
-	public AnnotationsMap getConfigAnnotationsMapParentFirst() {
-		return appendAnnotationsMapParentFirst(new ConfigAnnotationsMap());
+	public AnnotationList getConfigAnnotationListParentFirst() {
+		return appendAnnotationListParentFirst(new ConfigAnnotationList());
 	}
 
 	/**
@@ -316,51 +316,51 @@ public final class MethodInfo extends ExecutableInfo implements Comparable<Metho
 		return getReturnType().resolved().getAnnotation(a);
 	}
 
-	AnnotationsMap appendAnnotationsMap(AnnotationsMap m) {
+	AnnotationList appendAnnotationList(AnnotationList al) {
 		ClassInfo c = this.declaringClass;
 		for (ClassInfo ci : c.getParents()) {
-			appendMethodAnnotations(m, ci);
-			appendAnnotations(m, ci);
+			appendMethodAnnotations(al, ci);
+			appendAnnotations(al, ci);
 		}
 		for (ClassInfo ci : c.getInterfaces()) {
-			appendMethodAnnotations(m, ci);
-			appendAnnotations(m, ci);
+			appendMethodAnnotations(al, ci);
+			appendAnnotations(al, ci);
 		}
-		appendAnnotations(m, c.getPackage());
-		return m;
+		appendAnnotations(al, c.getPackage());
+		return al;
 	}
 
-	AnnotationsMap appendAnnotationsMapParentFirst(AnnotationsMap m) {
+	AnnotationList appendAnnotationListParentFirst(AnnotationList al) {
 		ClassInfo c = this.declaringClass;
-		appendAnnotations(m, c.getPackage());
+		appendAnnotations(al, c.getPackage());
 		for (ClassInfo ci : c.getInterfacesParentFirst()) {
-			appendAnnotations(m, ci);
-			appendMethodAnnotations(m, ci);
+			appendAnnotations(al, ci);
+			appendMethodAnnotations(al, ci);
 		}
 		for (ClassInfo ci : c.getParentsParentFirst()) {
-			appendAnnotations(m, ci);
-			appendMethodAnnotations(m, ci);
+			appendAnnotations(al, ci);
+			appendMethodAnnotations(al, ci);
 		}
-		return m;
+		return al;
 	}
 
-	void appendAnnotations(AnnotationsMap m, Package p) {
+	void appendAnnotations(AnnotationList al, Package p) {
 		if (p != null)
 			for (Annotation a : p.getDeclaredAnnotations())
-				m.add(AnnotationInfo.of(p, a));
+				al.add(AnnotationInfo.of(p, a));
 	}
 
-	void appendAnnotations(AnnotationsMap m, ClassInfo ci) {
+	void appendAnnotations(AnnotationList al, ClassInfo ci) {
 		if (ci != null)
 			for (Annotation a : ci.c.getDeclaredAnnotations())
-				m.add(AnnotationInfo.of(ci, a));
+				al.add(AnnotationInfo.of(ci, a));
 	}
 
-	void appendMethodAnnotations(AnnotationsMap m, ClassInfo ci) {
-		Method m2 = findMatchingOnClass(ci);
-		if (m2 != null)
-			for (Annotation a : m2.getDeclaredAnnotations())
-				m.add(AnnotationInfo.of(MethodInfo.of(m2), a));
+	void appendMethodAnnotations(AnnotationList al, ClassInfo ci) {
+		Method m = findMatchingOnClass(ci);
+		if (m != null)
+			for (Annotation a : m.getDeclaredAnnotations())
+				al.add(AnnotationInfo.of(MethodInfo.of(m), a));
 	}
 
 	//-----------------------------------------------------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializerBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializerBuilder.java
index 9b1f8a0..e38c7aa 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializerBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializerBuilder.java
@@ -532,8 +532,8 @@ public class OutputStreamSerializerBuilder extends SerializerBuilder {
 	}
 
 	@Override /* ContextBuilder */
-	public OutputStreamSerializerBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public OutputStreamSerializerBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerBuilder.java
index 51537c6..4e10036 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerBuilder.java
@@ -1021,8 +1021,8 @@ public class SerializerBuilder extends BeanTraverseBuilder {
 	}
 
 	@Override /* ContextBuilder */
-	public SerializerBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public SerializerBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroupBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroupBuilder.java
index da85a79..ff1afba 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroupBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroupBuilder.java
@@ -1100,8 +1100,8 @@ public class SerializerGroupBuilder extends BeanTraverseBuilder {
 	}
 
 	@Override /* ContextBuilder */
-	public SerializerGroupBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public SerializerGroupBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializerBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializerBuilder.java
index 61805dd..44109eb 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializerBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializerBuilder.java
@@ -549,8 +549,8 @@ public class WriterSerializerBuilder extends SerializerBuilder {
 	}
 
 	@Override /* ContextBuilder */
-	public WriterSerializerBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public WriterSerializerBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializerBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializerBuilder.java
index f082fe5..7350bfa 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializerBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializerBuilder.java
@@ -701,8 +701,8 @@ public class SoapXmlSerializerBuilder extends XmlSerializerBuilder {
 	}
 
 	@Override /* ContextBuilder */
-	public SoapXmlSerializerBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public SoapXmlSerializerBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserBuilder.java
index 9ec7de3..b51a1aa 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserBuilder.java
@@ -646,8 +646,8 @@ public class UonParserBuilder extends ReaderParserBuilder {
 	}
 
 	@Override
-	public UonParserBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public UonParserBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 }
\ No newline at end of file
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializerBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializerBuilder.java
index 9adf9ea..60f2a98 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializerBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializerBuilder.java
@@ -777,8 +777,8 @@ public class UonSerializerBuilder extends WriterSerializerBuilder {
 	}
 
 	@Override /* ContextBuilder */
-	public UonSerializerBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public UonSerializerBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserBuilder.java
index 22f0d22..72facc0 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserBuilder.java
@@ -589,8 +589,8 @@ public class UrlEncodingParserBuilder extends UonParserBuilder {
 	}
 
 	@Override
-	public UrlEncodingParserBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public UrlEncodingParserBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 }
\ No newline at end of file
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.java
index e29f32a..c19ddf4 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.java
@@ -746,8 +746,8 @@ public class UrlEncodingSerializerBuilder extends UonSerializerBuilder {
 	}
 
 	@Override /* ContextBuilder */
-	public UrlEncodingSerializerBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public UrlEncodingSerializerBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserBuilder.java
index c297348..77cb417 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserBuilder.java
@@ -755,8 +755,8 @@ public class XmlParserBuilder extends ReaderParserBuilder {
 	}
 
 	@Override
-	public XmlParserBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public XmlParserBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 }
\ No newline at end of file
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerBuilder.java
index 5cfe5a0..5080e85 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerBuilder.java
@@ -892,8 +892,8 @@ public class XmlSerializerBuilder extends WriterSerializerBuilder {
 	}
 
 	@Override /* ContextBuilder */
-	public XmlSerializerBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public XmlSerializerBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xmlschema/XmlSchemaSerializerBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xmlschema/XmlSchemaSerializerBuilder.java
index fbfa0d1..ca0fdcf 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xmlschema/XmlSchemaSerializerBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xmlschema/XmlSchemaSerializerBuilder.java
@@ -724,8 +724,8 @@ public class XmlSchemaSerializerBuilder extends XmlSerializerBuilder {
 	}
 
 	@Override /* ContextBuilder */
-	public XmlSchemaSerializerBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public XmlSchemaSerializerBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 
diff --git a/juneau-doc/docs/Topics/07.juneau-rest-server/20.RoleGuards.html b/juneau-doc/docs/Topics/02.juneau-marshall/06.ConfigurableAnnotations.html
similarity index 96%
copy from juneau-doc/docs/Topics/07.juneau-rest-server/20.RoleGuards.html
copy to juneau-doc/docs/Topics/02.juneau-marshall/06.ConfigurableAnnotations.html
index b1765ee..6c3b078 100644
--- a/juneau-doc/docs/Topics/07.juneau-rest-server/20.RoleGuards.html
+++ b/juneau-doc/docs/Topics/02.juneau-marshall/06.ConfigurableAnnotations.html
@@ -13,8 +13,8 @@
  ***************************************************************************************************************************/
  -->
 
-{TODO} Role guards
- 
+{todo} Configurable Annotations
+
 <p>
 	TODO
-</p>
\ No newline at end of file
+</p>
diff --git a/juneau-doc/docs/Topics/07.juneau-rest-server/20.RoleGuards.html b/juneau-doc/docs/Topics/07.juneau-rest-server/20.RoleGuards.html
index b1765ee..8336858 100644
--- a/juneau-doc/docs/Topics/07.juneau-rest-server/20.RoleGuards.html
+++ b/juneau-doc/docs/Topics/07.juneau-rest-server/20.RoleGuards.html
@@ -13,7 +13,7 @@
  ***************************************************************************************************************************/
  -->
 
-{TODO} Role guards
+{todo} Role guards
  
 <p>
 	TODO
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
index a62c59d..e34474a 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
@@ -2691,8 +2691,8 @@ public class RestClientBuilder extends BeanContextBuilder {
 	}
 
 	@Override /* ContextBuilder */
-	public RestClientBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public RestClientBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 
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 ef7d750..c205f66 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
@@ -3156,7 +3156,7 @@ public final class RestContext extends BeanContext {
 	private final RestResourceResolver resourceResolver;
 	private final UriResolution uriResolution;
 	private final UriRelativity uriRelativity;
-	private final AnnotationsMap configAnnotationsMap;
+	private final AnnotationList configAnnotationList;
 
 	// Lifecycle methods
 	private final Method[]
@@ -3256,8 +3256,8 @@ public final class RestContext extends BeanContext {
 
 			Class<?> resourceClass = resource.getClass();
 			ClassInfo rci = getClassInfo(resourceClass);
-			configAnnotationsMap = rci.getConfigAnnotationsMapParentFirst();
-			PropertyStore ps = getPropertyStore().builder().apply(builder.getPropertyStore()).applyAnnotations(configAnnotationsMap, vrs).build();
+			configAnnotationList = rci.getConfigAnnotationListParentFirst();
+			PropertyStore ps = getPropertyStore().builder().apply(builder.getPropertyStore()).applyAnnotations(configAnnotationList, vrs).build();
 
 			uriContext = nullIfEmpty(getStringProperty(REST_uriContext, null));
 			uriAuthority = nullIfEmpty(getStringProperty(REST_uriAuthority, null));
@@ -4995,8 +4995,8 @@ public final class RestContext extends BeanContext {
 		this.res.set(res);
 	}
 
-	AnnotationsMap getConfigAnnotationsMap() {
-		return configAnnotationsMap;
+	AnnotationList getConfigAnnotationList() {
+		return configAnnotationList;
 	}
 
 	/**
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
index 14922ea..b5a3213 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
@@ -2740,8 +2740,8 @@ public class RestContextBuilder extends BeanContextBuilder implements ServletCon
 	}
 
 	@Override /* ContextBuilder */
-	public RestContextBuilder applyAnnotations(AnnotationsMap m, VarResolverSession sr) {
-		super.applyAnnotations(m, sr);
+	public RestContextBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) {
+		super.applyAnnotations(al, vrs);
 		return this;
 	}
 
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestJavaMethod.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestJavaMethod.java
index cf98625..d8ff232 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestJavaMethod.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestJavaMethod.java
@@ -172,7 +172,7 @@ public class RestJavaMethod implements Comparable<RestJavaMethod>  {
 				properties = new RestMethodProperties(context.getProperties());
 				defaultCharset = context.getDefaultCharset();
 				maxInput = context.getMaxInput();
-				AnnotationsMap configAnnotationsMap = hasConfigAnnotations ? mi.getConfigAnnotationsMapParentFirst() : context.getConfigAnnotationsMap();
+				AnnotationList configAnnotationList = hasConfigAnnotations ? mi.getConfigAnnotationListParentFirst() : context.getConfigAnnotationList();
 
 				if (! m.defaultCharset().isEmpty())
 					defaultCharset = vr.resolve(m.defaultCharset());
@@ -261,7 +261,7 @@ public class RestJavaMethod implements Comparable<RestJavaMethod>  {
 				for (String p1 : m.flags())
 					psb.set(p1, true);
 				if (hasConfigAnnotations)
-					psb.applyAnnotations(configAnnotationsMap, sr);
+					psb.applyAnnotations(configAnnotationList, sr);
 				this.propertyStore = psb.build();
 
 				if (sgb != null) {
@@ -407,7 +407,7 @@ public class RestJavaMethod implements Comparable<RestJavaMethod>  {
 					partParser = (HttpPartParser)pp
 						.builder()
 						.apply(uepb.getPropertyStore())
-						.applyAnnotations(configAnnotationsMap, sr)
+						.applyAnnotations(configAnnotationList, sr)
 						.build();
 				}
 				if (bcb != null)