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 097a8ff  Minor code cleanup.
097a8ff is described below

commit 097a8ff72ec2b2a9ead21347e3d0a938a3a89341
Author: JamesBognar <[email protected]>
AuthorDate: Sat Aug 7 13:14:19 2021 -0400

    Minor code cleanup.
---
 .../juneau/jena/annotation/RdfAnnotation.java      |  4 +-
 .../jena/annotation/RdfConfigAnnotation.java       | 70 ++++++++--------
 .../main/java/org/apache/juneau/ConfigApply.java   | 13 ++-
 .../apache/juneau/ContextPropertiesBuilder.java    |  2 +-
 .../apache/juneau/annotation/BeanAnnotation.java   |  4 +-
 .../juneau/annotation/BeanConfigAnnotation.java    | 72 ++++++++---------
 .../juneau/annotation/BeanIgnoreAnnotation.java    |  4 +-
 .../apache/juneau/annotation/BeancAnnotation.java  |  4 +-
 .../apache/juneau/annotation/BeanpAnnotation.java  |  4 +-
 .../juneau/annotation/ExampleAnnotation.java       |  4 +-
 .../juneau/annotation/MarshalledAnnotation.java    |  4 +-
 .../juneau/annotation/NamePropertyAnnotation.java  |  4 +-
 .../annotation/ParentPropertyAnnotation.java       |  4 +-
 .../apache/juneau/annotation/SwapAnnotation.java   |  4 +-
 .../apache/juneau/annotation/UriAnnotation.java    |  4 +-
 .../juneau/csv/annotation/CsvAnnotation.java       |  4 +-
 .../juneau/csv/annotation/CsvConfigAnnotation.java |  2 +-
 .../juneau/html/annotation/HtmlAnnotation.java     |  4 +-
 .../html/annotation/HtmlConfigAnnotation.java      | 14 ++--
 .../html/annotation/HtmlDocConfigAnnotation.java   | 30 +++----
 .../juneau/html/annotation/HtmlLinkAnnotation.java |  4 +-
 .../juneau/http/annotation/BodyAnnotation.java     |  4 +-
 .../juneau/http/annotation/FormDataAnnotation.java |  4 +-
 .../juneau/http/annotation/HeaderAnnotation.java   |  4 +-
 .../juneau/http/annotation/PathAnnotation.java     |  4 +-
 .../juneau/http/annotation/QueryAnnotation.java    |  4 +-
 .../juneau/http/annotation/RequestAnnotation.java  |  4 +-
 .../juneau/http/annotation/ResponseAnnotation.java |  4 +-
 .../http/annotation/ResponseBodyAnnotation.java    |  4 +-
 .../http/annotation/ResponseHeaderAnnotation.java  |  4 +-
 .../http/annotation/ResponseStatusAnnotation.java  |  4 +-
 .../juneau/jso/annotation/JsoAnnotation.java       |  4 +-
 .../juneau/jso/annotation/JsoConfigAnnotation.java |  2 +-
 .../juneau/json/annotation/JsonAnnotation.java     |  4 +-
 .../json/annotation/JsonConfigAnnotation.java      | 10 +--
 .../annotation/JsonSchemaConfigAnnotation.java     | 24 +++---
 .../jsonschema/annotation/SchemaAnnotation.java    |  4 +-
 .../msgpack/annotation/MsgPackAnnotation.java      |  4 +-
 .../annotation/MsgPackConfigAnnotation.java        |  4 +-
 .../juneau/oapi/annotation/OpenApiAnnotation.java  |  4 +-
 .../oapi/annotation/OpenApiConfigAnnotation.java   |  6 +-
 .../parser/annotation/ParserConfigAnnotation.java  | 20 ++---
 .../plaintext/annotation/PlainTextAnnotation.java  |  4 +-
 .../annotation/PlainTextConfigAnnotation.java      |  2 +-
 .../annotation/SerializerConfigAnnotation.java     | 46 +++++------
 .../juneau/soap/annotation/SoapXmlAnnotation.java  |  4 +-
 .../soap/annotation/SoapXmlConfigAnnotation.java   |  4 +-
 .../juneau/uon/annotation/UonAnnotation.java       |  4 +-
 .../juneau/uon/annotation/UonConfigAnnotation.java | 12 +--
 .../annotation/UrlEncodingAnnotation.java          |  4 +-
 .../annotation/UrlEncodingConfigAnnotation.java    |  6 +-
 .../juneau/xml/annotation/XmlAnnotation.java       |  4 +-
 .../juneau/xml/annotation/XmlConfigAnnotation.java | 24 +++---
 .../juneau/rest/annotation/RestAnnotation.java     | 92 +++++++++++-----------
 .../rest/annotation/RestDeleteAnnotation.java      | 38 ++++-----
 .../juneau/rest/annotation/RestGetAnnotation.java  | 44 +++++------
 .../juneau/rest/annotation/RestOpAnnotation.java   | 56 ++++++-------
 .../juneau/rest/annotation/RestPostAnnotation.java | 54 ++++++-------
 .../juneau/rest/annotation/RestPutAnnotation.java  | 54 ++++++-------
 .../apache/juneau/reflection/ClassInfoTest.java    |  2 +-
 .../apache/juneau/reflection/MethodInfoTest.java   |  2 +-
 61 files changed, 424 insertions(+), 417 deletions(-)

diff --git 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/annotation/RdfAnnotation.java
 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/annotation/RdfAnnotation.java
index 3cab70e..df5a40e 100644
--- 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/annotation/RdfAnnotation.java
+++ 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/annotation/RdfAnnotation.java
@@ -241,13 +241,13 @@ public class RdfAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<Rdf> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<Rdf> ai, 
ContextPropertiesBuilder b) {
                        Rdf a = ai.getAnnotation();
 
                        if (isEmpty(a.on()) && isEmpty(a.onClass()))
                                return;
 
-                       cpb.prependTo(BEAN_annotations, copy(a, vr));
+                       b.prependTo(BEAN_annotations, copy(a, vr()));
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/annotation/RdfConfigAnnotation.java
 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/annotation/RdfConfigAnnotation.java
index a85c923..9dbd0e9 100644
--- 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/annotation/RdfConfigAnnotation.java
+++ 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/annotation/RdfConfigAnnotation.java
@@ -41,42 +41,42 @@ public class RdfConfigAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<RdfConfig> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<RdfConfig> ai, 
ContextPropertiesBuilder b) {
                        RdfConfig a = ai.getAnnotation();
-                       cpb.setIfNotEmpty(RDF_language, string(a.language()));
-                       cpb.setIfNotEmpty(RDF_juneauNs, string(a.juneauNs()));
-                       cpb.setIfNotEmpty(RDF_juneauBpNs, 
string(a.juneauBpNs()));
-                       cpb.setIfNotEmpty(RDF_disableUseXmlNamespaces, 
bool(a.disableUseXmlNamespaces()));
-                       cpb.setIfNotEmpty(RDF_arp_iriRules, 
string(a.arp_iriRules()));
-                       cpb.setIfNotEmpty(RDF_arp_errorMode, 
string(a.arp_errorMode()));
-                       cpb.setIfNotEmpty(RDF_arp_embedding, 
bool(a.arp_embedding()));
-                       cpb.setIfNotEmpty(RDF_rdfxml_xmlBase, 
string(a.rdfxml_xmlBase()));
-                       cpb.setIfNotEmpty(RDF_rdfxml_longId, 
bool(a.rdfxml_longId()));
-                       cpb.setIfNotEmpty(RDF_rdfxml_allowBadUris, 
bool(a.rdfxml_allowBadUris()));
-                       cpb.setIfNotEmpty(RDF_rdfxml_relativeUris, 
string(a.rdfxml_relativeUris()));
-                       cpb.setIfNotEmpty(RDF_rdfxml_showXmlDeclaration, 
string(a.rdfxml_showXmlDeclaration()));
-                       
cpb.setIfNotEmpty(RDF_rdfxml_disableShowDoctypeDeclaration, 
bool(a.rdfxml_disableShowDoctypeDeclaration()));
-                       cpb.setIfNotEmpty(RDF_rdfxml_tab, 
integer(a.rdfxml_tab(), "rdfxml_tab"));
-                       cpb.setIfNotEmpty(RDF_rdfxml_attributeQuoteChar, 
string(a.rdfxml_attributeQuoteChar()));
-                       cpb.setIfNotEmpty(RDF_rdfxml_blockRules, 
string(a.rdfxml_blockRules()));
-                       cpb.setIfNotEmpty(RDF_n3_minGap, integer(a.n3_minGap(), 
"n3_minGap"));
-                       cpb.setIfNotEmpty(RDF_n3_disableObjectLists, 
bool(a.n3_disableObjectLists()));
-                       cpb.setIfNotEmpty(RDF_n3_subjectColumn, 
integer(a.n3_subjectColumn(), "n3_subjectColumn"));
-                       cpb.setIfNotEmpty(RDF_n3_propertyColumn, 
integer(a.n3_propertyColumn(), "n3_propertyColumn"));
-                       cpb.setIfNotEmpty(RDF_n3_indentProperty, 
integer(a.n3_indentProperty(), "n3_indentProperty"));
-                       cpb.setIfNotEmpty(RDF_n3_widePropertyLen, 
integer(a.n3_widePropertyLen(), "n3_widePropertyLen"));
-                       cpb.setIfNotEmpty(RDF_n3_disableAbbrevBaseUri, 
bool(a.n3_disableAbbrevBaseUri()));
-                       cpb.setIfNotEmpty(RDF_n3_disableUsePropertySymbols, 
bool(a.n3_disableUsePropertySymbols()));
-                       cpb.setIfNotEmpty(RDF_n3_disableUseTripleQuotedStrings, 
bool(a.n3_disableUseTripleQuotedStrings()));
-                       cpb.setIfNotEmpty(RDF_n3_disableUseDoubles, 
bool(a.n3_disableUseDoubles()));
-                       cpb.setIfNotEmpty(RDF_collectionFormat, 
string(a.collectionFormat()));
-                       cpb.setIfNotEmpty(RDF_looseCollections, 
bool(a.looseCollections()));
-                       cpb.setIfNotEmpty(RDF_addBeanTypes, 
bool(a.addBeanTypes()));
-                       cpb.setIfNotEmpty(RDF_addLiteralTypes, 
bool(a.addLiteralTypes()));
-                       cpb.setIfNotEmpty(RDF_addRootProperty, 
bool(a.addRootProperty()));
-                       cpb.setIfNotEmpty(RDF_disableAutoDetectNamespaces, 
bool(a.disableAutoDetectNamespaces()));
-                       cpb.setIfNotEmpty(RDF_namespaces, 
stringList(a.namespaces()));
-                       cpb.setIfNotEmpty(RDF_trimWhitespace, 
bool(a.trimWhitespace()));
+                       b.setIfNotEmpty(RDF_language, string(a.language()));
+                       b.setIfNotEmpty(RDF_juneauNs, string(a.juneauNs()));
+                       b.setIfNotEmpty(RDF_juneauBpNs, string(a.juneauBpNs()));
+                       b.setIfNotEmpty(RDF_disableUseXmlNamespaces, 
bool(a.disableUseXmlNamespaces()));
+                       b.setIfNotEmpty(RDF_arp_iriRules, 
string(a.arp_iriRules()));
+                       b.setIfNotEmpty(RDF_arp_errorMode, 
string(a.arp_errorMode()));
+                       b.setIfNotEmpty(RDF_arp_embedding, 
bool(a.arp_embedding()));
+                       b.setIfNotEmpty(RDF_rdfxml_xmlBase, 
string(a.rdfxml_xmlBase()));
+                       b.setIfNotEmpty(RDF_rdfxml_longId, 
bool(a.rdfxml_longId()));
+                       b.setIfNotEmpty(RDF_rdfxml_allowBadUris, 
bool(a.rdfxml_allowBadUris()));
+                       b.setIfNotEmpty(RDF_rdfxml_relativeUris, 
string(a.rdfxml_relativeUris()));
+                       b.setIfNotEmpty(RDF_rdfxml_showXmlDeclaration, 
string(a.rdfxml_showXmlDeclaration()));
+                       
b.setIfNotEmpty(RDF_rdfxml_disableShowDoctypeDeclaration, 
bool(a.rdfxml_disableShowDoctypeDeclaration()));
+                       b.setIfNotEmpty(RDF_rdfxml_tab, integer(a.rdfxml_tab(), 
"rdfxml_tab"));
+                       b.setIfNotEmpty(RDF_rdfxml_attributeQuoteChar, 
string(a.rdfxml_attributeQuoteChar()));
+                       b.setIfNotEmpty(RDF_rdfxml_blockRules, 
string(a.rdfxml_blockRules()));
+                       b.setIfNotEmpty(RDF_n3_minGap, integer(a.n3_minGap(), 
"n3_minGap"));
+                       b.setIfNotEmpty(RDF_n3_disableObjectLists, 
bool(a.n3_disableObjectLists()));
+                       b.setIfNotEmpty(RDF_n3_subjectColumn, 
integer(a.n3_subjectColumn(), "n3_subjectColumn"));
+                       b.setIfNotEmpty(RDF_n3_propertyColumn, 
integer(a.n3_propertyColumn(), "n3_propertyColumn"));
+                       b.setIfNotEmpty(RDF_n3_indentProperty, 
integer(a.n3_indentProperty(), "n3_indentProperty"));
+                       b.setIfNotEmpty(RDF_n3_widePropertyLen, 
integer(a.n3_widePropertyLen(), "n3_widePropertyLen"));
+                       b.setIfNotEmpty(RDF_n3_disableAbbrevBaseUri, 
bool(a.n3_disableAbbrevBaseUri()));
+                       b.setIfNotEmpty(RDF_n3_disableUsePropertySymbols, 
bool(a.n3_disableUsePropertySymbols()));
+                       b.setIfNotEmpty(RDF_n3_disableUseTripleQuotedStrings, 
bool(a.n3_disableUseTripleQuotedStrings()));
+                       b.setIfNotEmpty(RDF_n3_disableUseDoubles, 
bool(a.n3_disableUseDoubles()));
+                       b.setIfNotEmpty(RDF_collectionFormat, 
string(a.collectionFormat()));
+                       b.setIfNotEmpty(RDF_looseCollections, 
bool(a.looseCollections()));
+                       b.setIfNotEmpty(RDF_addBeanTypes, 
bool(a.addBeanTypes()));
+                       b.setIfNotEmpty(RDF_addLiteralTypes, 
bool(a.addLiteralTypes()));
+                       b.setIfNotEmpty(RDF_addRootProperty, 
bool(a.addRootProperty()));
+                       b.setIfNotEmpty(RDF_disableAutoDetectNamespaces, 
bool(a.disableAutoDetectNamespaces()));
+                       b.setIfNotEmpty(RDF_namespaces, 
stringList(a.namespaces()));
+                       b.setIfNotEmpty(RDF_trimWhitespace, 
bool(a.trimWhitespace()));
                }
        }
 }
\ No newline at end of file
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ConfigApply.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ConfigApply.java
index 34dbd7f..e6a2444 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ConfigApply.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ConfigApply.java
@@ -50,10 +50,17 @@ public abstract class ConfigApply<T extends Annotation> {
         *
         * @param a The annotation.
         * @param cpb The property store builder.
-        * @param vr The var resolver.  Should be the same as the one passed in 
through the constructor.
         */
-       public abstract void apply(AnnotationInfo<T> a, 
ContextPropertiesBuilder cpb, VarResolverSession vr);
+       public abstract void apply(AnnotationInfo<T> a, 
ContextPropertiesBuilder cpb);
 
+       /**
+        * Returns the var resolver session for this apply.
+        *
+        * @return The var resolver session for this apply.
+        */
+       protected VarResolverSession vr() {
+               return vr;
+       }
 
        /**
         * Resolves the specified string.
@@ -223,6 +230,6 @@ public abstract class ConfigApply<T extends Annotation> {
                }
 
                @Override /* ConfigApply */
-               public void apply(AnnotationInfo<Annotation> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {}
+               public void apply(AnnotationInfo<Annotation> ai, 
ContextPropertiesBuilder b) {}
        }
 }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ContextPropertiesBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ContextPropertiesBuilder.java
index f3438ab..b9610a1 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ContextPropertiesBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ContextPropertiesBuilder.java
@@ -116,7 +116,7 @@ public class ContextPropertiesBuilder {
                vr = vr == null ? VarResolver.DEFAULT.createSession() : vr;
                for (AnnotationInfo<?> ai : al.sort()) {
                        try {
-                               
ai.getConfigApply(vr).apply((AnnotationInfo<Annotation>)ai, this, vr);
+                               
ai.getConfigApply(vr).apply((AnnotationInfo<Annotation>)ai, this);
                        } catch (ConfigException ex) {
                                throw ex;
                        } catch (Exception ex) {
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanAnnotation.java
index 2f58955..0ca46f8 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanAnnotation.java
@@ -504,13 +504,13 @@ public class BeanAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<Bean> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<Bean> ai, 
ContextPropertiesBuilder b) {
                        Bean a = ai.getAnnotation();
 
                        if (isEmpty(a.on()) && isEmpty(a.onClass()))
                                return;
 
-                       cpb.prependTo(BEAN_annotations, copy(a, vr));
+                       b.prependTo(BEAN_annotations, copy(a, vr()));
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfigAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfigAnnotation.java
index fdf7f76..4237ef7 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfigAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfigAnnotation.java
@@ -43,44 +43,44 @@ public class BeanConfigAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<BeanConfig> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<BeanConfig> ai, 
ContextPropertiesBuilder b) {
                        BeanConfig a = ai.getAnnotation();
 
-                       cpb.setIfNotEmpty(BEAN_beanClassVisibility, 
visibility(a.beanClassVisibility(), "beanClassVisibility"));
-                       cpb.setIfNotEmpty(BEAN_beanConstructorVisibility, 
visibility(a.beanConstructorVisibility(), "beanConstructorVisibility"));
-                       cpb.prependTo(BEAN_beanDictionary, a.dictionary());
-                       cpb.setIfNotEmpty(BEAN_beanDictionary, 
a.dictionary_replace());
-                       cpb.setIfNotEmpty(BEAN_beanFieldVisibility, 
visibility(a.beanFieldVisibility(), "beanFieldVisibility"));
-                       cpb.setIfNotEmpty(BEAN_beanMapPutReturnsOldValue, 
bool(a.beanMapPutReturnsOldValue()));
-                       cpb.setIfNotEmpty(BEAN_beanMethodVisibility, 
visibility(a.beanMethodVisibility(), "beanMethodVisibility"));
-                       cpb.setIfNotEmpty(BEAN_beansRequireDefaultConstructor, 
bool(a.beansRequireDefaultConstructor()));
-                       cpb.setIfNotEmpty(BEAN_beansRequireSerializable, 
bool(a.beansRequireSerializable()));
-                       cpb.setIfNotEmpty(BEAN_beansRequireSettersForGetters, 
bool(a.beansRequireSettersForGetters()));
-                       
cpb.setIfNotEmpty(BEAN_disableBeansRequireSomeProperties, 
bool(a.disableBeansRequireSomeProperties()));
-                       cpb.setIfNotEmpty(BEAN_typePropertyName, 
string(a.typePropertyName()));
-                       cpb.setIfNotEmpty(CONTEXT_debug, bool(a.debug()));
-                       cpb.setIfNotEmpty(BEAN_findFluentSetters, 
bool(a.findFluentSetters()));
-                       
cpb.setIfNotEmpty(BEAN_ignoreInvocationExceptionsOnGetters, 
bool(a.ignoreInvocationExceptionsOnGetters()));
-                       
cpb.setIfNotEmpty(BEAN_ignoreInvocationExceptionsOnSetters, 
bool(a.ignoreInvocationExceptionsOnSetters()));
-                       cpb.setIfNotEmpty(BEAN_disableIgnoreMissingSetters, 
bool(a.disableIgnoreMissingSetters()));
-                       cpb.setIfNotEmpty(BEAN_disableIgnoreTransientFields, 
bool(a.disableIgnoreTransientFields()));
-                       cpb.setIfNotEmpty(BEAN_ignoreUnknownBeanProperties, 
bool(a.ignoreUnknownBeanProperties()));
-                       
cpb.setIfNotEmpty(BEAN_disableIgnoreUnknownNullBeanProperties, 
bool(a.disableIgnoreUnknownNullBeanProperties()));
-                       asList(a.interfaces()).stream().map(x -> 
BeanAnnotation.create(x).interfaceClass(x).build()).forEach(x -> 
cpb.prependTo(BEAN_annotations, x));
-                       cpb.setIfNotEmpty(BEAN_locale, locale(a.locale()));
-                       cpb.setIfNotEmpty(BEAN_mediaType, 
mediaType(a.mediaType()));
-                       cpb.setIfNotEmpty(BEAN_notBeanClasses, 
a.notBeanClasses());
-                       cpb.setIfNotEmpty(BEAN_notBeanClasses, 
a.notBeanClasses_replace());
-                       cpb.addTo(BEAN_notBeanPackages, 
stringList(a.notBeanPackages()));
-                       cpb.setIfNotEmpty(BEAN_notBeanPackages, 
stringList(a.notBeanPackages_replace()));
-                       cpb.setIf(a.propertyNamer() != 
PropertyNamer.Null.class, BEAN_propertyNamer, a.propertyNamer());
-                       cpb.setIfNotEmpty(BEAN_sortProperties, 
bool(a.sortProperties()));
-                       cpb.prependTo(BEAN_swaps, a.swaps());
-                       cpb.setIfNotEmpty(BEAN_swaps, a.swaps_replace());
-                       cpb.setIfNotEmpty(BEAN_timeZone, 
timeZone(a.timeZone()));
-                       cpb.setIfNotEmpty(BEAN_useEnumNames, 
bool(a.useEnumNames()));
-                       cpb.setIfNotEmpty(BEAN_disableInterfaceProxies, 
bool(a.disableInterfaceProxies()));
-                       cpb.setIfNotEmpty(BEAN_useJavaBeanIntrospector, 
bool(a.useJavaBeanIntrospector()));
+                       b.setIfNotEmpty(BEAN_beanClassVisibility, 
visibility(a.beanClassVisibility(), "beanClassVisibility"));
+                       b.setIfNotEmpty(BEAN_beanConstructorVisibility, 
visibility(a.beanConstructorVisibility(), "beanConstructorVisibility"));
+                       b.prependTo(BEAN_beanDictionary, a.dictionary());
+                       b.setIfNotEmpty(BEAN_beanDictionary, 
a.dictionary_replace());
+                       b.setIfNotEmpty(BEAN_beanFieldVisibility, 
visibility(a.beanFieldVisibility(), "beanFieldVisibility"));
+                       b.setIfNotEmpty(BEAN_beanMapPutReturnsOldValue, 
bool(a.beanMapPutReturnsOldValue()));
+                       b.setIfNotEmpty(BEAN_beanMethodVisibility, 
visibility(a.beanMethodVisibility(), "beanMethodVisibility"));
+                       b.setIfNotEmpty(BEAN_beansRequireDefaultConstructor, 
bool(a.beansRequireDefaultConstructor()));
+                       b.setIfNotEmpty(BEAN_beansRequireSerializable, 
bool(a.beansRequireSerializable()));
+                       b.setIfNotEmpty(BEAN_beansRequireSettersForGetters, 
bool(a.beansRequireSettersForGetters()));
+                       b.setIfNotEmpty(BEAN_disableBeansRequireSomeProperties, 
bool(a.disableBeansRequireSomeProperties()));
+                       b.setIfNotEmpty(BEAN_typePropertyName, 
string(a.typePropertyName()));
+                       b.setIfNotEmpty(CONTEXT_debug, bool(a.debug()));
+                       b.setIfNotEmpty(BEAN_findFluentSetters, 
bool(a.findFluentSetters()));
+                       
b.setIfNotEmpty(BEAN_ignoreInvocationExceptionsOnGetters, 
bool(a.ignoreInvocationExceptionsOnGetters()));
+                       
b.setIfNotEmpty(BEAN_ignoreInvocationExceptionsOnSetters, 
bool(a.ignoreInvocationExceptionsOnSetters()));
+                       b.setIfNotEmpty(BEAN_disableIgnoreMissingSetters, 
bool(a.disableIgnoreMissingSetters()));
+                       b.setIfNotEmpty(BEAN_disableIgnoreTransientFields, 
bool(a.disableIgnoreTransientFields()));
+                       b.setIfNotEmpty(BEAN_ignoreUnknownBeanProperties, 
bool(a.ignoreUnknownBeanProperties()));
+                       
b.setIfNotEmpty(BEAN_disableIgnoreUnknownNullBeanProperties, 
bool(a.disableIgnoreUnknownNullBeanProperties()));
+                       asList(a.interfaces()).stream().map(x -> 
BeanAnnotation.create(x).interfaceClass(x).build()).forEach(x -> 
b.prependTo(BEAN_annotations, x));
+                       b.setIfNotEmpty(BEAN_locale, locale(a.locale()));
+                       b.setIfNotEmpty(BEAN_mediaType, 
mediaType(a.mediaType()));
+                       b.setIfNotEmpty(BEAN_notBeanClasses, 
a.notBeanClasses());
+                       b.setIfNotEmpty(BEAN_notBeanClasses, 
a.notBeanClasses_replace());
+                       b.addTo(BEAN_notBeanPackages, 
stringList(a.notBeanPackages()));
+                       b.setIfNotEmpty(BEAN_notBeanPackages, 
stringList(a.notBeanPackages_replace()));
+                       b.setIf(a.propertyNamer() != PropertyNamer.Null.class, 
BEAN_propertyNamer, a.propertyNamer());
+                       b.setIfNotEmpty(BEAN_sortProperties, 
bool(a.sortProperties()));
+                       b.prependTo(BEAN_swaps, a.swaps());
+                       b.setIfNotEmpty(BEAN_swaps, a.swaps_replace());
+                       b.setIfNotEmpty(BEAN_timeZone, timeZone(a.timeZone()));
+                       b.setIfNotEmpty(BEAN_useEnumNames, 
bool(a.useEnumNames()));
+                       b.setIfNotEmpty(BEAN_disableInterfaceProxies, 
bool(a.disableInterfaceProxies()));
+                       b.setIfNotEmpty(BEAN_useJavaBeanIntrospector, 
bool(a.useJavaBeanIntrospector()));
                }
 
                private Locale locale(String in) {
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanIgnoreAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanIgnoreAnnotation.java
index f8330a4..2090a71 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanIgnoreAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanIgnoreAnnotation.java
@@ -165,13 +165,13 @@ public class BeanIgnoreAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<BeanIgnore> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<BeanIgnore> ai, 
ContextPropertiesBuilder b) {
                        BeanIgnore a = ai.getAnnotation();
 
                        if (isEmpty(a.on()) && isEmpty(a.onClass()))
                                return;
 
-                       cpb.prependTo(BEAN_annotations, copy(a, vr));
+                       b.prependTo(BEAN_annotations, copy(a, vr()));
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeancAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeancAnnotation.java
index e27af2b..a50b682 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeancAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeancAnnotation.java
@@ -151,13 +151,13 @@ public class BeancAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<Beanc> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<Beanc> ai, 
ContextPropertiesBuilder b) {
                        Beanc a = ai.getAnnotation();
 
                        if (isEmpty(a.on()))
                                return;
 
-                       cpb.prependTo(BEAN_annotations, copy(a, vr));
+                       b.prependTo(BEAN_annotations, copy(a, vr()));
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanpAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanpAnnotation.java
index 15c3447..205e901 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanpAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanpAnnotation.java
@@ -307,13 +307,13 @@ public class BeanpAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<Beanp> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<Beanp> ai, 
ContextPropertiesBuilder b) {
                        Beanp a = ai.getAnnotation();
 
                        if (isEmpty(a.on()))
                                return;
 
-                       cpb.prependTo(BEAN_annotations, copy(a, vr));
+                       b.prependTo(BEAN_annotations, copy(a, vr()));
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/ExampleAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/ExampleAnnotation.java
index 9dc8af0..12a2f90 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/ExampleAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/ExampleAnnotation.java
@@ -181,13 +181,13 @@ public class ExampleAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<Example> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<Example> ai, 
ContextPropertiesBuilder b) {
                        Example a = ai.getAnnotation();
 
                        if (isEmpty(a.on()) && isEmpty(a.onClass()))
                                return;
 
-                       cpb.prependTo(BEAN_annotations, copy(a, vr));
+                       b.prependTo(BEAN_annotations, copy(a, vr()));
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/MarshalledAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/MarshalledAnnotation.java
index 1bf8e38..9a01692 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/MarshalledAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/MarshalledAnnotation.java
@@ -187,13 +187,13 @@ public class MarshalledAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<Marshalled> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<Marshalled> ai, 
ContextPropertiesBuilder b) {
                        Marshalled a = ai.getAnnotation();
 
                        if (isEmpty(a.on()) && isEmpty(a.onClass()))
                                return;
 
-                       cpb.prependTo(BEAN_annotations, copy(a, vr));
+                       b.prependTo(BEAN_annotations, copy(a, vr()));
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/NamePropertyAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/NamePropertyAnnotation.java
index 5a9d1a6..1e567d4 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/NamePropertyAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/NamePropertyAnnotation.java
@@ -136,13 +136,13 @@ public class NamePropertyAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<NameProperty> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<NameProperty> ai, 
ContextPropertiesBuilder b) {
                        NameProperty a = ai.getAnnotation();
 
                        if (isEmpty(a.on()))
                                return;
 
-                       cpb.prependTo(BEAN_annotations, copy(a, vr));
+                       b.prependTo(BEAN_annotations, copy(a, vr()));
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/ParentPropertyAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/ParentPropertyAnnotation.java
index cabf0a2..5b81c9f 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/ParentPropertyAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/ParentPropertyAnnotation.java
@@ -136,13 +136,13 @@ public class ParentPropertyAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<ParentProperty> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<ParentProperty> ai, 
ContextPropertiesBuilder b) {
                        ParentProperty a = ai.getAnnotation();
 
                        if (isEmpty(a.on()))
                                return;
 
-                       cpb.prependTo(BEAN_annotations, copy(a, vr));
+                       b.prependTo(BEAN_annotations, copy(a, vr()));
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/SwapAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/SwapAnnotation.java
index 8f977df..76def5b 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/SwapAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/SwapAnnotation.java
@@ -240,13 +240,13 @@ public class SwapAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<Swap> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<Swap> ai, 
ContextPropertiesBuilder b) {
                        Swap a = ai.getAnnotation();
 
                        if (isEmpty(a.on()) && isEmpty(a.onClass()))
                                return;
 
-                       cpb.prependTo(BEAN_annotations, copy(a, vr));
+                       b.prependTo(BEAN_annotations, copy(a, vr()));
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/UriAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/UriAnnotation.java
index cde2519..4ccd18a 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/UriAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/UriAnnotation.java
@@ -159,13 +159,13 @@ public class UriAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<Uri> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<Uri> ai, 
ContextPropertiesBuilder b) {
                        Uri a = ai.getAnnotation();
 
                        if (isEmpty(a.on()) && isEmpty(a.onClass()))
                                return;
 
-                       cpb.prependTo(BEAN_annotations, copy(a, vr));
+                       b.prependTo(BEAN_annotations, copy(a, vr()));
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/annotation/CsvAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/annotation/CsvAnnotation.java
index c6dde50..a8d4463 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/annotation/CsvAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/annotation/CsvAnnotation.java
@@ -160,13 +160,13 @@ public class CsvAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<Csv> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<Csv> ai, 
ContextPropertiesBuilder b) {
                        Csv a = ai.getAnnotation();
 
                        if (isEmpty(a.on()) && isEmpty(a.onClass()))
                                return;
 
-                       cpb.prependTo(BEAN_annotations, copy(a, vr));
+                       b.prependTo(BEAN_annotations, copy(a, vr()));
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/annotation/CsvConfigAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/annotation/CsvConfigAnnotation.java
index 49d5e80..04cec71 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/annotation/CsvConfigAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/annotation/CsvConfigAnnotation.java
@@ -37,7 +37,7 @@ public class CsvConfigAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<CsvConfig> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<CsvConfig> ai, 
ContextPropertiesBuilder b) {
                }
        }
 }
\ No newline at end of file
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlAnnotation.java
index 651f857..856c397 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlAnnotation.java
@@ -280,13 +280,13 @@ public class HtmlAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<Html> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<Html> ai, 
ContextPropertiesBuilder b) {
                        Html a = ai.getAnnotation();
 
                        if (isEmpty(a.on()) && isEmpty(a.onClass()))
                                return;
 
-                       cpb.prependTo(BEAN_annotations, copy(a, vr));
+                       b.prependTo(BEAN_annotations, copy(a, vr()));
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlConfigAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlConfigAnnotation.java
index fe848c5..abdf8c3 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlConfigAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlConfigAnnotation.java
@@ -39,15 +39,15 @@ public class HtmlConfigAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<HtmlConfig> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<HtmlConfig> ai, 
ContextPropertiesBuilder b) {
                        HtmlConfig a = ai.getAnnotation();
 
-                       cpb.setIfNotEmpty(HTML_addBeanTypes, 
bool(a.addBeanTypes()));
-                       cpb.setIfNotEmpty(HTML_addKeyValueTableHeaders, 
bool(a.addKeyValueTableHeaders()));
-                       cpb.setIfNotEmpty(HTML_disableDetectLabelParameters, 
bool(a.disableDetectLabelParameters()));
-                       cpb.setIfNotEmpty(HTML_disableDetectLinksInStrings, 
bool(a.disableDetectLinksInStrings()));
-                       cpb.setIfNotEmpty(HTML_labelParameter, 
string(a.labelParameter()));
-                       cpb.setIfNotEmpty(HTML_uriAnchorText, 
string(a.uriAnchorText()));
+                       b.setIfNotEmpty(HTML_addBeanTypes, 
bool(a.addBeanTypes()));
+                       b.setIfNotEmpty(HTML_addKeyValueTableHeaders, 
bool(a.addKeyValueTableHeaders()));
+                       b.setIfNotEmpty(HTML_disableDetectLabelParameters, 
bool(a.disableDetectLabelParameters()));
+                       b.setIfNotEmpty(HTML_disableDetectLinksInStrings, 
bool(a.disableDetectLinksInStrings()));
+                       b.setIfNotEmpty(HTML_labelParameter, 
string(a.labelParameter()));
+                       b.setIfNotEmpty(HTML_uriAnchorText, 
string(a.uriAnchorText()));
                }
        }
 }
\ No newline at end of file
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlDocConfigAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlDocConfigAnnotation.java
index 7b680f6..687089e 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlDocConfigAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlDocConfigAnnotation.java
@@ -45,23 +45,23 @@ public class HtmlDocConfigAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<HtmlDocConfig> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<HtmlDocConfig> ai, 
ContextPropertiesBuilder b) {
                        HtmlDocConfig a = ai.getAnnotation();
 
-                       cpb.setIf(a.aside().length > 0, HTMLDOC_aside, 
resolveList(a.aside(), cpb.peek(String[].class, HTMLDOC_aside)));
-                       cpb.setIf(! "DEFAULT".equalsIgnoreCase(a.asideFloat()), 
HTMLDOC_asideFloat, a.asideFloat().toUpperCase());
-                       cpb.setIf(a.footer().length > 0, HTMLDOC_footer, 
resolveList(a.footer(), cpb.peek(String[].class, HTMLDOC_footer)));
-                       cpb.setIf(a.head().length > 0, HTMLDOC_head, 
resolveList(a.head(), cpb.peek(String[].class, HTMLDOC_head)));
-                       cpb.setIf(a.header().length > 0, HTMLDOC_header, 
resolveList(a.header(), cpb.peek(String[].class, HTMLDOC_header)));
-                       cpb.setIf(a.nav().length > 0, HTMLDOC_nav, 
resolveList(a.nav(), cpb.peek(String[].class, HTMLDOC_nav)));
-                       cpb.setIf(a.navlinks().length > 0, HTMLDOC_navlinks, 
resolveLinks(a.navlinks(), cpb.peek(String[].class, HTMLDOC_navlinks)));
-                       cpb.setIfNotEmpty(HTMLDOC_noResultsMessage, 
string(a.noResultsMessage()));
-                       cpb.setIfNotEmpty(HTMLDOC_nowrap, bool(a.nowrap()));
-                       cpb.setIf(a.script().length > 0, HTMLDOC_script, 
resolveList(a.script(), cpb.peek(String[].class, HTMLDOC_script)));
-                       cpb.setIf(a.style().length > 0, HTMLDOC_style, 
resolveList(a.style(), cpb.peek(String[].class, HTMLDOC_style)));
-                       cpb.setIf(a.stylesheet().length > 0, 
HTMLDOC_stylesheet, resolveList(a.stylesheet(), cpb.peek(String[].class, 
HTMLDOC_stylesheet)));
-                       cpb.setIf(a.template() != HtmlDocTemplate.Null.class, 
HTMLDOC_template, a.template());
-                       asList(a.widgets()).stream().forEach(x -> 
cpb.prependTo(HTMLDOC_widgets, x));
+                       b.setIf(a.aside().length > 0, HTMLDOC_aside, 
resolveList(a.aside(), b.peek(String[].class, HTMLDOC_aside)));
+                       b.setIf(! "DEFAULT".equalsIgnoreCase(a.asideFloat()), 
HTMLDOC_asideFloat, a.asideFloat().toUpperCase());
+                       b.setIf(a.footer().length > 0, HTMLDOC_footer, 
resolveList(a.footer(), b.peek(String[].class, HTMLDOC_footer)));
+                       b.setIf(a.head().length > 0, HTMLDOC_head, 
resolveList(a.head(), b.peek(String[].class, HTMLDOC_head)));
+                       b.setIf(a.header().length > 0, HTMLDOC_header, 
resolveList(a.header(), b.peek(String[].class, HTMLDOC_header)));
+                       b.setIf(a.nav().length > 0, HTMLDOC_nav, 
resolveList(a.nav(), b.peek(String[].class, HTMLDOC_nav)));
+                       b.setIf(a.navlinks().length > 0, HTMLDOC_navlinks, 
resolveLinks(a.navlinks(), b.peek(String[].class, HTMLDOC_navlinks)));
+                       b.setIfNotEmpty(HTMLDOC_noResultsMessage, 
string(a.noResultsMessage()));
+                       b.setIfNotEmpty(HTMLDOC_nowrap, bool(a.nowrap()));
+                       b.setIf(a.script().length > 0, HTMLDOC_script, 
resolveList(a.script(), b.peek(String[].class, HTMLDOC_script)));
+                       b.setIf(a.style().length > 0, HTMLDOC_style, 
resolveList(a.style(), b.peek(String[].class, HTMLDOC_style)));
+                       b.setIf(a.stylesheet().length > 0, HTMLDOC_stylesheet, 
resolveList(a.stylesheet(), b.peek(String[].class, HTMLDOC_stylesheet)));
+                       b.setIf(a.template() != HtmlDocTemplate.Null.class, 
HTMLDOC_template, a.template());
+                       asList(a.widgets()).stream().forEach(x -> 
b.prependTo(HTMLDOC_widgets, x));
                }
 
                private static final Pattern INDEXED_LINK_PATTERN = 
Pattern.compile("(?s)(\\S*)\\[(\\d+)\\]\\:(.*)");
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlLinkAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlLinkAnnotation.java
index 3250ebc..20d9759 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlLinkAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlLinkAnnotation.java
@@ -187,13 +187,13 @@ public class HtmlLinkAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<HtmlLink> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<HtmlLink> ai, 
ContextPropertiesBuilder b) {
                        HtmlLink a = ai.getAnnotation();
 
                        if (isEmpty(a.on()) && isEmpty(a.onClass()))
                                return;
 
-                       cpb.prependTo(BEAN_annotations, copy(a, vr));
+                       b.prependTo(BEAN_annotations, copy(a, vr()));
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/BodyAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/BodyAnnotation.java
index 175f649..906817b 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/BodyAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/BodyAnnotation.java
@@ -372,13 +372,13 @@ public class BodyAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<Body> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<Body> ai, 
ContextPropertiesBuilder b) {
                        Body a = ai.getAnnotation();
 
                        if (isEmpty(a.on()) && isEmpty(a.onClass()))
                                return;
 
-                       cpb.prependTo(BEAN_annotations, copy(a, vr));
+                       b.prependTo(BEAN_annotations, copy(a, vr()));
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/FormDataAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/FormDataAnnotation.java
index 6ca3d88..27eba1f 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/FormDataAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/FormDataAnnotation.java
@@ -1089,13 +1089,13 @@ public class FormDataAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<FormData> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<FormData> ai, 
ContextPropertiesBuilder b) {
                        FormData a = ai.getAnnotation();
 
                        if (isEmpty(a.on()) && isEmpty(a.onClass()))
                                return;
 
-                       cpb.prependTo(BEAN_annotations, copy(a, vr));
+                       b.prependTo(BEAN_annotations, copy(a, vr()));
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/HeaderAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/HeaderAnnotation.java
index 40b9ae2..b9ac98c 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/HeaderAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/HeaderAnnotation.java
@@ -1090,13 +1090,13 @@ public class HeaderAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<Header> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<Header> ai, 
ContextPropertiesBuilder b) {
                        Header a = ai.getAnnotation();
 
                        if (isEmpty(a.on()) && isEmpty(a.onClass()))
                                return;
 
-                       cpb.prependTo(BEAN_annotations, copy(a, vr));
+                       b.prependTo(BEAN_annotations, copy(a, vr()));
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/PathAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/PathAnnotation.java
index 7ff5bd1..3509f9c 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/PathAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/PathAnnotation.java
@@ -1000,13 +1000,13 @@ public class PathAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<Path> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<Path> ai, 
ContextPropertiesBuilder b) {
                        Path a = ai.getAnnotation();
 
                        if (isEmpty(a.on()) && isEmpty(a.onClass()))
                                return;
 
-                       cpb.prependTo(BEAN_annotations, copy(a, vr));
+                       b.prependTo(BEAN_annotations, copy(a, vr()));
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/QueryAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/QueryAnnotation.java
index 7ddfd2a..5bcd6ac 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/QueryAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/QueryAnnotation.java
@@ -1089,13 +1089,13 @@ public class QueryAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<Query> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<Query> ai, 
ContextPropertiesBuilder b) {
                        Query a = ai.getAnnotation();
 
                        if (isEmpty(a.on()) && isEmpty(a.onClass()))
                                return;
 
-                       cpb.prependTo(BEAN_annotations, copy(a, vr));
+                       b.prependTo(BEAN_annotations, copy(a, vr()));
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/RequestAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/RequestAnnotation.java
index 27341c9..165746b 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/RequestAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/RequestAnnotation.java
@@ -190,13 +190,13 @@ public class RequestAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<Request> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<Request> ai, 
ContextPropertiesBuilder b) {
                        Request a = ai.getAnnotation();
 
                        if (isEmpty(a.on()) && isEmpty(a.onClass()))
                                return;
 
-                       cpb.prependTo(BEAN_annotations, copy(a, vr));
+                       b.prependTo(BEAN_annotations, copy(a, vr()));
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ResponseAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ResponseAnnotation.java
index c852e04..215926f 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ResponseAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ResponseAnnotation.java
@@ -416,13 +416,13 @@ public class ResponseAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<Response> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<Response> ai, 
ContextPropertiesBuilder b) {
                        Response a = ai.getAnnotation();
 
                        if (isEmpty(a.on()) && isEmpty(a.onClass()))
                                return;
 
-                       cpb.prependTo(BEAN_annotations, copy(a, vr));
+                       b.prependTo(BEAN_annotations, copy(a, vr()));
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ResponseBodyAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ResponseBodyAnnotation.java
index 9ec5e1b..3e24e7e 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ResponseBodyAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ResponseBodyAnnotation.java
@@ -154,13 +154,13 @@ public class ResponseBodyAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<ResponseBody> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<ResponseBody> ai, 
ContextPropertiesBuilder b) {
                        ResponseBody a = ai.getAnnotation();
 
                        if (isEmpty(a.on()) && isEmpty(a.onClass()))
                                return;
 
-                       cpb.prependTo(BEAN_annotations, copy(a, vr));
+                       b.prependTo(BEAN_annotations, copy(a, vr()));
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ResponseHeaderAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ResponseHeaderAnnotation.java
index 2bcf00c..9b0eade 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ResponseHeaderAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ResponseHeaderAnnotation.java
@@ -990,13 +990,13 @@ public class ResponseHeaderAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<ResponseHeader> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<ResponseHeader> ai, 
ContextPropertiesBuilder b) {
                        ResponseHeader a = ai.getAnnotation();
 
                        if (isEmpty(a.on()) && isEmpty(a.onClass()))
                                return;
 
-                       cpb.prependTo(BEAN_annotations, copy(a, vr));
+                       b.prependTo(BEAN_annotations, copy(a, vr()));
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ResponseStatusAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ResponseStatusAnnotation.java
index 423c300..61c5e11 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ResponseStatusAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/ResponseStatusAnnotation.java
@@ -154,13 +154,13 @@ public class ResponseStatusAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<ResponseStatus> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<ResponseStatus> ai, 
ContextPropertiesBuilder b) {
                        ResponseStatus a = ai.getAnnotation();
 
                        if (isEmpty(a.on()) && isEmpty(a.onClass()))
                                return;
 
-                       cpb.prependTo(BEAN_annotations, copy(a, vr));
+                       b.prependTo(BEAN_annotations, copy(a, vr()));
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/annotation/JsoAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/annotation/JsoAnnotation.java
index 0c384a1..e10bb68 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/annotation/JsoAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/annotation/JsoAnnotation.java
@@ -160,13 +160,13 @@ public class JsoAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<Jso> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<Jso> ai, 
ContextPropertiesBuilder b) {
                        Jso a = ai.getAnnotation();
 
                        if (isEmpty(a.on()) && isEmpty(a.onClass()))
                                return;
 
-                       cpb.prependTo(BEAN_annotations, copy(a, vr));
+                       b.prependTo(BEAN_annotations, copy(a, vr()));
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/annotation/JsoConfigAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/annotation/JsoConfigAnnotation.java
index e83cb8c..c77f23d 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/annotation/JsoConfigAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/annotation/JsoConfigAnnotation.java
@@ -37,7 +37,7 @@ public class JsoConfigAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<JsoConfig> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<JsoConfig> ai, 
ContextPropertiesBuilder b) {
                }
        }
 }
\ No newline at end of file
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/annotation/JsonAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/annotation/JsonAnnotation.java
index 7373683..6652c97 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/annotation/JsonAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/annotation/JsonAnnotation.java
@@ -182,13 +182,13 @@ public class JsonAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<Json> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<Json> ai, 
ContextPropertiesBuilder b) {
                        Json a = ai.getAnnotation();
 
                        if (isEmpty(a.on()) && isEmpty(a.onClass()))
                                return;
 
-                       cpb.prependTo(BEAN_annotations, copy(a, vr));
+                       b.prependTo(BEAN_annotations, copy(a, vr()));
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/annotation/JsonConfigAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/annotation/JsonConfigAnnotation.java
index 7032fa4..47ea680 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/annotation/JsonConfigAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/annotation/JsonConfigAnnotation.java
@@ -40,13 +40,13 @@ public class JsonConfigAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<JsonConfig> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<JsonConfig> ai, 
ContextPropertiesBuilder b) {
                        JsonConfig a = ai.getAnnotation();
 
-                       cpb.setIfNotEmpty(JSON_addBeanTypes, 
bool(a.addBeanTypes()));
-                       cpb.setIfNotEmpty(JSON_escapeSolidus, 
bool(a.escapeSolidus()));
-                       cpb.setIfNotEmpty(JSON_simpleMode, 
bool(a.simpleMode()));
-                       cpb.setIfNotEmpty(JSON_validateEnd, 
bool(a.validateEnd()));
+                       b.setIfNotEmpty(JSON_addBeanTypes, 
bool(a.addBeanTypes()));
+                       b.setIfNotEmpty(JSON_escapeSolidus, 
bool(a.escapeSolidus()));
+                       b.setIfNotEmpty(JSON_simpleMode, bool(a.simpleMode()));
+                       b.setIfNotEmpty(JSON_validateEnd, 
bool(a.validateEnd()));
                }
        }
 }
\ No newline at end of file
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/JsonSchemaConfigAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/JsonSchemaConfigAnnotation.java
index dc03450..19d58a2 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/JsonSchemaConfigAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/JsonSchemaConfigAnnotation.java
@@ -41,20 +41,20 @@ public class JsonSchemaConfigAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<JsonSchemaConfig> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<JsonSchemaConfig> ai, 
ContextPropertiesBuilder b) {
                        JsonSchemaConfig a = ai.getAnnotation();
 
-                       cpb.setIfNotEmpty(JSONSCHEMA_addDescriptionsTo, 
string(a.addDescriptionsTo()));
-                       cpb.setIfNotEmpty(JSONSCHEMA_addExamplesTo, 
string(a.addExamplesTo()));
-                       cpb.setIfNotEmpty(JSONSCHEMA_allowNestedDescriptions, 
bool(a.allowNestedDescriptions()));
-                       cpb.setIfNotEmpty(JSONSCHEMA_allowNestedExamples, 
bool(a.allowNestedExamples()));
-                       cpb.setIf(a.beanDefMapper() != 
BeanDefMapper.Null.class, JSONSCHEMA_beanDefMapper, a.beanDefMapper());
-                       cpb.setIfNotEmpty(JSONSCHEMA_ignoreTypes, 
string(a.ignoreTypes()));
-                       cpb.setIfNotEmpty(JSONSCHEMA_useBeanDefs, 
bool(a.useBeanDefs()));
-                       cpb.setIfNotEmpty(BEANTRAVERSE_detectRecursions, 
bool(a.detectRecursions()));
-                       cpb.setIfNotEmpty(BEANTRAVERSE_ignoreRecursions, 
bool(a.ignoreRecursions()));
-                       cpb.setIfNotEmpty(BEANTRAVERSE_initialDepth, 
integer(a.initialDepth(), "initialDepth"));
-                       cpb.setIfNotEmpty(BEANTRAVERSE_maxDepth, 
integer(a.maxDepth(), "maxDepth"));
+                       b.setIfNotEmpty(JSONSCHEMA_addDescriptionsTo, 
string(a.addDescriptionsTo()));
+                       b.setIfNotEmpty(JSONSCHEMA_addExamplesTo, 
string(a.addExamplesTo()));
+                       b.setIfNotEmpty(JSONSCHEMA_allowNestedDescriptions, 
bool(a.allowNestedDescriptions()));
+                       b.setIfNotEmpty(JSONSCHEMA_allowNestedExamples, 
bool(a.allowNestedExamples()));
+                       b.setIf(a.beanDefMapper() != BeanDefMapper.Null.class, 
JSONSCHEMA_beanDefMapper, a.beanDefMapper());
+                       b.setIfNotEmpty(JSONSCHEMA_ignoreTypes, 
string(a.ignoreTypes()));
+                       b.setIfNotEmpty(JSONSCHEMA_useBeanDefs, 
bool(a.useBeanDefs()));
+                       b.setIfNotEmpty(BEANTRAVERSE_detectRecursions, 
bool(a.detectRecursions()));
+                       b.setIfNotEmpty(BEANTRAVERSE_ignoreRecursions, 
bool(a.ignoreRecursions()));
+                       b.setIfNotEmpty(BEANTRAVERSE_initialDepth, 
integer(a.initialDepth(), "initialDepth"));
+                       b.setIfNotEmpty(BEANTRAVERSE_maxDepth, 
integer(a.maxDepth(), "maxDepth"));
                }
        }
 }
\ No newline at end of file
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/SchemaAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/SchemaAnnotation.java
index 1b21404..8e291bc 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/SchemaAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/annotation/SchemaAnnotation.java
@@ -1293,13 +1293,13 @@ public class SchemaAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<Schema> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<Schema> ai, 
ContextPropertiesBuilder b) {
                        Schema a = ai.getAnnotation();
 
                        if (isEmpty(a.on()) && isEmpty(a.onClass()))
                                return;
 
-                       cpb.prependTo(BEAN_annotations, copy(a, vr));
+                       b.prependTo(BEAN_annotations, copy(a, vr()));
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/annotation/MsgPackAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/annotation/MsgPackAnnotation.java
index bda69fe..4798fb3 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/annotation/MsgPackAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/annotation/MsgPackAnnotation.java
@@ -160,13 +160,13 @@ public class MsgPackAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<MsgPack> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<MsgPack> ai, 
ContextPropertiesBuilder b) {
                        MsgPack a = ai.getAnnotation();
 
                        if (isEmpty(a.on()) && isEmpty(a.onClass()))
                                return;
 
-                       cpb.prependTo(BEAN_annotations, copy(a, vr));
+                       b.prependTo(BEAN_annotations, copy(a, vr()));
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/annotation/MsgPackConfigAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/annotation/MsgPackConfigAnnotation.java
index 87a6d60..57dcf05 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/annotation/MsgPackConfigAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/annotation/MsgPackConfigAnnotation.java
@@ -39,10 +39,10 @@ public class MsgPackConfigAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<MsgPackConfig> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<MsgPackConfig> ai, 
ContextPropertiesBuilder b) {
                        MsgPackConfig a = ai.getAnnotation();
 
-                       cpb.setIfNotEmpty(MSGPACK_addBeanTypes, 
bool(a.addBeanTypes()));
+                       b.setIfNotEmpty(MSGPACK_addBeanTypes, 
bool(a.addBeanTypes()));
                }
        }
 }
\ No newline at end of file
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/annotation/OpenApiAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/annotation/OpenApiAnnotation.java
index 19f40cb..6530aa9 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/annotation/OpenApiAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/annotation/OpenApiAnnotation.java
@@ -160,13 +160,13 @@ public class OpenApiAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<OpenApi> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<OpenApi> ai, 
ContextPropertiesBuilder b) {
                        OpenApi a = ai.getAnnotation();
 
                        if (isEmpty(a.on()) && isEmpty(a.onClass()))
                                return;
 
-                       cpb.prependTo(BEAN_annotations, copy(a, vr));
+                       b.prependTo(BEAN_annotations, copy(a, vr()));
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/annotation/OpenApiConfigAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/annotation/OpenApiConfigAnnotation.java
index ff79182..db97028 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/annotation/OpenApiConfigAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/annotation/OpenApiConfigAnnotation.java
@@ -39,11 +39,11 @@ public class OpenApiConfigAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<OpenApiConfig> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<OpenApiConfig> ai, 
ContextPropertiesBuilder b) {
                        OpenApiConfig a = ai.getAnnotation();
 
-                       cpb.setIfNotEmpty(OAPI_format, string(a.format()));
-                       cpb.setIfNotEmpty(OAPI_collectionFormat, 
string(a.collectionFormat()));
+                       b.setIfNotEmpty(OAPI_format, string(a.format()));
+                       b.setIfNotEmpty(OAPI_collectionFormat, 
string(a.collectionFormat()));
                }
        }
 }
\ No newline at end of file
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/annotation/ParserConfigAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/annotation/ParserConfigAnnotation.java
index 2ae1270..8e9036e 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/annotation/ParserConfigAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/annotation/ParserConfigAnnotation.java
@@ -43,18 +43,18 @@ public class ParserConfigAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<ParserConfig> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<ParserConfig> ai, 
ContextPropertiesBuilder b) {
                        ParserConfig a = ai.getAnnotation();
 
-                       cpb.setIfNotEmpty(PARSER_autoCloseStreams, 
bool(a.autoCloseStreams()));
-                       cpb.setIfNotEmpty(PARSER_debugOutputLines, 
integer(a.debugOutputLines(), "debugOutputLines"));
-                       cpb.setIf(a.listener() != ParserListener.Null.class, 
PARSER_listener, a.listener());
-                       cpb.setIfNotEmpty(PARSER_strict, bool(a.strict()));
-                       cpb.setIfNotEmpty(PARSER_trimStrings, 
bool(a.trimStrings()));
-                       cpb.setIfNotEmpty(PARSER_unbuffered, 
bool(a.unbuffered()));
-                       cpb.setIfNotEmpty(ISPARSER_binaryFormat, 
string(a.binaryFormat()));
-                       cpb.setIfNotEmpty(RPARSER_fileCharset, 
charset(a.fileCharset()));
-                       cpb.setIfNotEmpty(RPARSER_streamCharset, 
charset(a.streamCharset()));
+                       b.setIfNotEmpty(PARSER_autoCloseStreams, 
bool(a.autoCloseStreams()));
+                       b.setIfNotEmpty(PARSER_debugOutputLines, 
integer(a.debugOutputLines(), "debugOutputLines"));
+                       b.setIf(a.listener() != ParserListener.Null.class, 
PARSER_listener, a.listener());
+                       b.setIfNotEmpty(PARSER_strict, bool(a.strict()));
+                       b.setIfNotEmpty(PARSER_trimStrings, 
bool(a.trimStrings()));
+                       b.setIfNotEmpty(PARSER_unbuffered, 
bool(a.unbuffered()));
+                       b.setIfNotEmpty(ISPARSER_binaryFormat, 
string(a.binaryFormat()));
+                       b.setIfNotEmpty(RPARSER_fileCharset, 
charset(a.fileCharset()));
+                       b.setIfNotEmpty(RPARSER_streamCharset, 
charset(a.streamCharset()));
                }
 
                private Object charset(String in) {
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/annotation/PlainTextAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/annotation/PlainTextAnnotation.java
index 084abb8..50d599a 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/annotation/PlainTextAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/annotation/PlainTextAnnotation.java
@@ -160,13 +160,13 @@ public class PlainTextAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<PlainText> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<PlainText> ai, 
ContextPropertiesBuilder b) {
                        PlainText a = ai.getAnnotation();
 
                        if (isEmpty(a.on()) && isEmpty(a.onClass()))
                                return;
 
-                       cpb.prependTo(BEAN_annotations, copy(a, vr));
+                       b.prependTo(BEAN_annotations, copy(a, vr()));
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/annotation/PlainTextConfigAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/annotation/PlainTextConfigAnnotation.java
index 985f2c2..0c93486 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/annotation/PlainTextConfigAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/annotation/PlainTextConfigAnnotation.java
@@ -37,7 +37,7 @@ public class PlainTextConfigAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<PlainTextConfig> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<PlainTextConfig> ai, 
ContextPropertiesBuilder b) {
                }
        }
 }
\ No newline at end of file
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/annotation/SerializerConfigAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/annotation/SerializerConfigAnnotation.java
index 28f3391..f673266 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/annotation/SerializerConfigAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/annotation/SerializerConfigAnnotation.java
@@ -44,31 +44,31 @@ public class SerializerConfigAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<SerializerConfig> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<SerializerConfig> ai, 
ContextPropertiesBuilder b) {
                        SerializerConfig a = ai.getAnnotation();
 
-                       cpb.setIfNotEmpty(SERIALIZER_addBeanTypes, 
bool(a.addBeanTypes()));
-                       cpb.setIfNotEmpty(SERIALIZER_addRootType, 
bool(a.addRootType()));
-                       cpb.setIfNotEmpty(SERIALIZER_keepNullProperties, 
bool(a.keepNullProperties()));
-                       cpb.setIf(a.listener() != 
SerializerListener.Null.class, SERIALIZER_listener, a.listener());
-                       cpb.setIfNotEmpty(SERIALIZER_sortCollections, 
bool(a.sortCollections()));
-                       cpb.setIfNotEmpty(SERIALIZER_sortMaps, 
bool(a.sortMaps()));
-                       cpb.setIfNotEmpty(SERIALIZER_trimEmptyCollections, 
bool(a.trimEmptyCollections()));
-                       cpb.setIfNotEmpty(SERIALIZER_trimEmptyMaps, 
bool(a.trimEmptyMaps()));
-                       cpb.setIfNotEmpty(SERIALIZER_trimStrings, 
bool(a.trimStrings()));
-                       cpb.setIfNotEmpty(SERIALIZER_uriContext, 
string(a.uriContext()));
-                       cpb.setIfNotEmpty(SERIALIZER_uriRelativity, 
string(a.uriRelativity()));
-                       cpb.setIfNotEmpty(SERIALIZER_uriResolution, 
string(a.uriResolution()));
-                       cpb.setIfNotEmpty(OSSERIALIZER_binaryFormat, 
string(a.binaryFormat()));
-                       cpb.setIfNotEmpty(WSERIALIZER_fileCharset, 
charset(a.fileCharset()));
-                       cpb.setIfNotEmpty(WSERIALIZER_maxIndent, 
integer(a.maxIndent(), "maxIndent"));
-                       cpb.setIfNotEmpty(WSERIALIZER_quoteChar, 
character(a.quoteChar(), "quoteChar"));
-                       cpb.setIfNotEmpty(WSERIALIZER_streamCharset, 
charset(a.streamCharset()));
-                       cpb.setIfNotEmpty(WSERIALIZER_useWhitespace, 
bool(a.useWhitespace()));
-                       cpb.setIfNotEmpty(BEANTRAVERSE_detectRecursions, 
bool(a.detectRecursions()));
-                       cpb.setIfNotEmpty(BEANTRAVERSE_ignoreRecursions, 
bool(a.ignoreRecursions()));
-                       cpb.setIfNotEmpty(BEANTRAVERSE_initialDepth, 
integer(a.initialDepth(), "initialDepth"));
-                       cpb.setIfNotEmpty(BEANTRAVERSE_maxDepth, 
integer(a.maxDepth(), "maxDepth"));
+                       b.setIfNotEmpty(SERIALIZER_addBeanTypes, 
bool(a.addBeanTypes()));
+                       b.setIfNotEmpty(SERIALIZER_addRootType, 
bool(a.addRootType()));
+                       b.setIfNotEmpty(SERIALIZER_keepNullProperties, 
bool(a.keepNullProperties()));
+                       b.setIf(a.listener() != SerializerListener.Null.class, 
SERIALIZER_listener, a.listener());
+                       b.setIfNotEmpty(SERIALIZER_sortCollections, 
bool(a.sortCollections()));
+                       b.setIfNotEmpty(SERIALIZER_sortMaps, 
bool(a.sortMaps()));
+                       b.setIfNotEmpty(SERIALIZER_trimEmptyCollections, 
bool(a.trimEmptyCollections()));
+                       b.setIfNotEmpty(SERIALIZER_trimEmptyMaps, 
bool(a.trimEmptyMaps()));
+                       b.setIfNotEmpty(SERIALIZER_trimStrings, 
bool(a.trimStrings()));
+                       b.setIfNotEmpty(SERIALIZER_uriContext, 
string(a.uriContext()));
+                       b.setIfNotEmpty(SERIALIZER_uriRelativity, 
string(a.uriRelativity()));
+                       b.setIfNotEmpty(SERIALIZER_uriResolution, 
string(a.uriResolution()));
+                       b.setIfNotEmpty(OSSERIALIZER_binaryFormat, 
string(a.binaryFormat()));
+                       b.setIfNotEmpty(WSERIALIZER_fileCharset, 
charset(a.fileCharset()));
+                       b.setIfNotEmpty(WSERIALIZER_maxIndent, 
integer(a.maxIndent(), "maxIndent"));
+                       b.setIfNotEmpty(WSERIALIZER_quoteChar, 
character(a.quoteChar(), "quoteChar"));
+                       b.setIfNotEmpty(WSERIALIZER_streamCharset, 
charset(a.streamCharset()));
+                       b.setIfNotEmpty(WSERIALIZER_useWhitespace, 
bool(a.useWhitespace()));
+                       b.setIfNotEmpty(BEANTRAVERSE_detectRecursions, 
bool(a.detectRecursions()));
+                       b.setIfNotEmpty(BEANTRAVERSE_ignoreRecursions, 
bool(a.ignoreRecursions()));
+                       b.setIfNotEmpty(BEANTRAVERSE_initialDepth, 
integer(a.initialDepth(), "initialDepth"));
+                       b.setIfNotEmpty(BEANTRAVERSE_maxDepth, 
integer(a.maxDepth(), "maxDepth"));
                }
 
                private Object charset(String in) {
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/annotation/SoapXmlAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/annotation/SoapXmlAnnotation.java
index d0c48bc..a8f4c18 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/annotation/SoapXmlAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/annotation/SoapXmlAnnotation.java
@@ -160,13 +160,13 @@ public class SoapXmlAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<SoapXml> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<SoapXml> ai, 
ContextPropertiesBuilder b) {
                        SoapXml a = ai.getAnnotation();
 
                        if (isEmpty(a.on()) && isEmpty(a.onClass()))
                                return;
 
-                       cpb.prependTo(BEAN_annotations, copy(a, vr));
+                       b.prependTo(BEAN_annotations, copy(a, vr()));
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/annotation/SoapXmlConfigAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/annotation/SoapXmlConfigAnnotation.java
index 28d0696..d61d14e 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/annotation/SoapXmlConfigAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/annotation/SoapXmlConfigAnnotation.java
@@ -39,10 +39,10 @@ public class SoapXmlConfigAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<SoapXmlConfig> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<SoapXmlConfig> ai, 
ContextPropertiesBuilder b) {
                        SoapXmlConfig a = ai.getAnnotation();
 
-                       cpb.setIfNotEmpty(SOAPXML_SOAPAction, 
string(a.soapAction()));
+                       b.setIfNotEmpty(SOAPXML_SOAPAction, 
string(a.soapAction()));
                }
        }
 }
\ No newline at end of file
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/annotation/UonAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/annotation/UonAnnotation.java
index 33617d7..1d62912 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/annotation/UonAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/annotation/UonAnnotation.java
@@ -160,13 +160,13 @@ public class UonAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<Uon> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<Uon> ai, 
ContextPropertiesBuilder b) {
                        Uon a = ai.getAnnotation();
 
                        if (isEmpty(a.on()) && isEmpty(a.onClass()))
                                return;
 
-                       cpb.prependTo(BEAN_annotations, copy(a, vr));
+                       b.prependTo(BEAN_annotations, copy(a, vr()));
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/annotation/UonConfigAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/annotation/UonConfigAnnotation.java
index fa9c0cd..bad24d0 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/annotation/UonConfigAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/annotation/UonConfigAnnotation.java
@@ -40,14 +40,14 @@ public class UonConfigAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<UonConfig> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<UonConfig> ai, 
ContextPropertiesBuilder b) {
                        UonConfig a = ai.getAnnotation();
 
-                       cpb.setIfNotEmpty(UON_addBeanTypes, 
bool(a.addBeanTypes()));
-                       cpb.setIfNotEmpty(UON_encoding, bool(a.encoding()));
-                       cpb.setIfNotEmpty(UON_paramFormat, 
string(a.paramFormat()));
-                       cpb.setIfNotEmpty(UON_decoding, bool(a.decoding()));
-                       cpb.setIfNotEmpty(UON_validateEnd, 
bool(a.validateEnd()));
+                       b.setIfNotEmpty(UON_addBeanTypes, 
bool(a.addBeanTypes()));
+                       b.setIfNotEmpty(UON_encoding, bool(a.encoding()));
+                       b.setIfNotEmpty(UON_paramFormat, 
string(a.paramFormat()));
+                       b.setIfNotEmpty(UON_decoding, bool(a.decoding()));
+                       b.setIfNotEmpty(UON_validateEnd, bool(a.validateEnd()));
                }
        }
 }
\ No newline at end of file
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncodingAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncodingAnnotation.java
index 1166009..c17d31f 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncodingAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncodingAnnotation.java
@@ -184,13 +184,13 @@ public class UrlEncodingAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<UrlEncoding> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<UrlEncoding> ai, 
ContextPropertiesBuilder b) {
                        UrlEncoding a = ai.getAnnotation();
 
                        if (isEmpty(a.on()) && isEmpty(a.onClass()))
                                return;
 
-                       cpb.prependTo(BEAN_annotations, copy(a, vr));
+                       b.prependTo(BEAN_annotations, copy(a, vr()));
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncodingConfigAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncodingConfigAnnotation.java
index 762d4bc..331a264 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncodingConfigAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncodingConfigAnnotation.java
@@ -38,12 +38,12 @@ public class UrlEncodingConfigAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<UrlEncodingConfig> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<UrlEncodingConfig> ai, 
ContextPropertiesBuilder b) {
                        UrlEncodingConfig a = ai.getAnnotation();
 
                        if (! a.expandedParams().isEmpty()) {
-                               
cpb.set(UrlEncodingSerializer.URLENC_expandedParams, bool(a.expandedParams()));
-                               
cpb.set(UrlEncodingParser.URLENC_expandedParams, bool(a.expandedParams()));
+                               
b.set(UrlEncodingSerializer.URLENC_expandedParams, bool(a.expandedParams()));
+                               b.set(UrlEncodingParser.URLENC_expandedParams, 
bool(a.expandedParams()));
                        }
                }
        }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/annotation/XmlAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/annotation/XmlAnnotation.java
index 7eedf19..8072893 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/annotation/XmlAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/annotation/XmlAnnotation.java
@@ -238,13 +238,13 @@ public class XmlAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<Xml> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<Xml> ai, 
ContextPropertiesBuilder b) {
                        Xml a = ai.getAnnotation();
 
                        if (isEmpty(a.on()) && isEmpty(a.onClass()))
                                return;
 
-                       cpb.prependTo(BEAN_annotations, copy(a, vr));
+                       b.prependTo(BEAN_annotations, copy(a, vr()));
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/annotation/XmlConfigAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/annotation/XmlConfigAnnotation.java
index d384739..1a0e8fe 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/annotation/XmlConfigAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/annotation/XmlConfigAnnotation.java
@@ -41,20 +41,20 @@ public class XmlConfigAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<XmlConfig> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<XmlConfig> ai, 
ContextPropertiesBuilder b) {
                        XmlConfig a = ai.getAnnotation();
 
-                       cpb.setIfNotEmpty(XML_addBeanTypes, 
bool(a.addBeanTypes()));
-                       cpb.setIfNotEmpty(XML_addNamespaceUrisToRoot, 
bool(a.addNamespaceUrisToRoot()));
-                       cpb.setIfNotEmpty(XML_disableAutoDetectNamespaces, 
bool(a.disableAutoDetectNamespaces()));
-                       cpb.setIfNotEmpty(XML_defaultNamespace, 
string(a.defaultNamespace()));
-                       cpb.setIfNotEmpty(XML_enableNamespaces, 
bool(a.enableNamespaces()));
-                       cpb.setIf(a.namespaces().length > 0, XML_namespaces, 
Namespace.createArray(stringList(a.namespaces())));
-                       cpb.setIf(a.eventAllocator() != 
XmlEventAllocator.Null.class, XML_eventAllocator, a.eventAllocator());
-                       cpb.setIfNotEmpty(XML_preserveRootElement, 
bool(a.preserveRootElement()));
-                       cpb.setIf(a.reporter() != XmlReporter.Null.class, 
XML_reporter, a.reporter());
-                       cpb.setIf(a.resolver() != XmlResolver.Null.class, 
XML_resolver, a.resolver());
-                       cpb.setIfNotEmpty(XML_validating, bool(a.validating()));
+                       b.setIfNotEmpty(XML_addBeanTypes, 
bool(a.addBeanTypes()));
+                       b.setIfNotEmpty(XML_addNamespaceUrisToRoot, 
bool(a.addNamespaceUrisToRoot()));
+                       b.setIfNotEmpty(XML_disableAutoDetectNamespaces, 
bool(a.disableAutoDetectNamespaces()));
+                       b.setIfNotEmpty(XML_defaultNamespace, 
string(a.defaultNamespace()));
+                       b.setIfNotEmpty(XML_enableNamespaces, 
bool(a.enableNamespaces()));
+                       b.setIf(a.namespaces().length > 0, XML_namespaces, 
Namespace.createArray(stringList(a.namespaces())));
+                       b.setIf(a.eventAllocator() != 
XmlEventAllocator.Null.class, XML_eventAllocator, a.eventAllocator());
+                       b.setIfNotEmpty(XML_preserveRootElement, 
bool(a.preserveRootElement()));
+                       b.setIf(a.reporter() != XmlReporter.Null.class, 
XML_reporter, a.reporter());
+                       b.setIf(a.resolver() != XmlResolver.Null.class, 
XML_resolver, a.resolver());
+                       b.setIfNotEmpty(XML_validating, bool(a.validating()));
                }
        }
 }
\ No newline at end of file
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestAnnotation.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestAnnotation.java
index 88ef441..e3f1bcd 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestAnnotation.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestAnnotation.java
@@ -1037,55 +1037,55 @@ public class RestAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<Rest> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<Rest> ai, 
ContextPropertiesBuilder b) {
                        Rest a = ai.getAnnotation();
                        ClassInfo c = ai.getClassOn();
 
-                       cpb.set(REST_serializers, 
merge(ConverterUtils.toType(cpb.peek(REST_serializers), Object[].class), 
a.serializers()));
-                       cpb.set(REST_parsers, 
merge(ConverterUtils.toType(cpb.peek(REST_parsers), Object[].class), 
a.parsers()));
-                       cpb.setIf(a.partSerializer() != 
HttpPartSerializer.Null.class, REST_partSerializer, a.partSerializer());
-                       cpb.setIf(a.partParser() != HttpPartParser.Null.class, 
REST_partParser, a.partParser());
-                       cpb.prependTo(REST_encoders, a.encoders());
-                       cpb.setIfNotEmpty(REST_produces, 
stringList(a.produces()));
-                       cpb.setIfNotEmpty(REST_consumes, 
stringList(a.consumes()));
-                       stringStream(a.defaultRequestAttributes()).map(x -> 
BasicNamedAttribute.ofPair(x)).forEach(x -> 
cpb.appendTo(REST_defaultRequestAttributes, x));
-                       stringStream(a.defaultRequestHeaders()).map(x -> 
stringHeader(x)).forEach(x -> cpb.appendTo(REST_defaultRequestHeaders, x));
-                       stringStream(a.defaultResponseHeaders()).map(x -> 
stringHeader(x)).forEach(x -> cpb.appendTo(REST_defaultResponseHeaders, x));
-                       cpb.appendToIfNotEmpty(REST_defaultRequestHeaders, 
accept(string(a.defaultAccept())));
-                       cpb.appendToIfNotEmpty(REST_defaultRequestHeaders, 
contentType(string(a.defaultContentType())));
-                       cpb.prependTo(REST_responseProcessors, 
a.responseProcessors());
-                       cpb.prependTo(REST_converters, a.converters());
-                       cpb.prependTo(REST_guards, reverse(a.guards()));
-                       cpb.prependTo(REST_children, a.children());
-                       cpb.prependTo(REST_restOperationArgs, 
a.restOperationArgs());
-                       cpb.setIf(a.contextClass() != RestContext.Null.class, 
REST_contextClass, a.contextClass());
-                       cpb.setIfNotEmpty(REST_uriContext, 
string(a.uriContext()));
-                       cpb.setIfNotEmpty(REST_uriAuthority, 
string(a.uriAuthority()));
-                       cpb.setIfNotEmpty(REST_uriRelativity, 
string(a.uriRelativity()));
-                       cpb.setIfNotEmpty(REST_uriResolution, 
string(a.uriResolution()));
-                       cpb.prependTo(REST_messages, Tuple2.of(c.inner(), 
string(a.messages())));
-                       cpb.setIf(a.fileFinder() != FileFinder.Null.class, 
REST_fileFinder, a.fileFinder());
-                       cpb.setIf(a.staticFiles() != StaticFiles.Null.class, 
REST_staticFiles, a.staticFiles());
-                       cpb.setIfNotEmpty(REST_path, 
trimLeadingSlash(string(a.path())));
-                       cpb.setIfNotEmpty(REST_clientVersionHeader, 
string(a.clientVersionHeader()));
-                       cpb.setIf(a.beanStore() != BeanStore.Null.class, 
REST_beanStore, a.beanStore());
-                       cpb.setIf(a.callLogger() != RestLogger.Null.class, 
REST_callLogger, a.callLogger());
-                       cpb.setIf(a.swaggerProvider() != 
SwaggerProvider.Null.class, REST_swaggerProvider, a.swaggerProvider());
-                       cpb.setIf(a.restOperationContextClass() != 
RestOperationContext.Null.class, REST_restOperationContextClass, 
a.restOperationContextClass());
-                       cpb.setIf(a.restChildrenClass() != 
RestChildren.Null.class, REST_restChildrenClass, a.restChildrenClass());
-                       cpb.setIf(a.restOperationsClass() != 
RestOperations.Null.class, REST_restOperationsClass, a.restOperationsClass());
-                       cpb.setIf(a.debugEnablement() != 
DebugEnablement.Null.class, REST_debugEnablement, a.debugEnablement());
-                       cpb.setIfNotEmpty(REST_disableAllowBodyParam, 
bool(a.disableAllowBodyParam()));
-                       cpb.setIfNotEmpty(REST_allowedHeaderParams, 
string(a.allowedHeaderParams()));
-                       cpb.setIfNotEmpty(REST_allowedMethodHeaders, 
string(a.allowedMethodHeaders()));
-                       cpb.setIfNotEmpty(REST_allowedMethodParams, 
string(a.allowedMethodParams()));
-                       cpb.setIfNotEmpty(REST_renderResponseStackTraces, 
bool(a.renderResponseStackTraces()));
-                       cpb.setIfNotEmpty(REST_defaultCharset, 
string(a.defaultCharset()));
-                       cpb.setIfNotEmpty(REST_maxInput, string(a.maxInput()));
-                       cpb.setIfNotEmpty(REST_debug, string(a.debug()));
-                       cpb.setIfNotEmpty(REST_debugOn, string(a.debugOn()));
-                       cdStream(a.rolesDeclared()).forEach(x -> 
cpb.addTo(REST_rolesDeclared, x));
-                       cpb.addToIfNotEmpty(REST_roleGuard, 
string(a.roleGuard()));
+                       b.set(REST_serializers, 
merge(ConverterUtils.toType(b.peek(REST_serializers), Object[].class), 
a.serializers()));
+                       b.set(REST_parsers, 
merge(ConverterUtils.toType(b.peek(REST_parsers), Object[].class), 
a.parsers()));
+                       b.setIf(a.partSerializer() != 
HttpPartSerializer.Null.class, REST_partSerializer, a.partSerializer());
+                       b.setIf(a.partParser() != HttpPartParser.Null.class, 
REST_partParser, a.partParser());
+                       b.prependTo(REST_encoders, a.encoders());
+                       b.setIfNotEmpty(REST_produces, 
stringList(a.produces()));
+                       b.setIfNotEmpty(REST_consumes, 
stringList(a.consumes()));
+                       stringStream(a.defaultRequestAttributes()).map(x -> 
BasicNamedAttribute.ofPair(x)).forEach(x -> 
b.appendTo(REST_defaultRequestAttributes, x));
+                       stringStream(a.defaultRequestHeaders()).map(x -> 
stringHeader(x)).forEach(x -> b.appendTo(REST_defaultRequestHeaders, x));
+                       stringStream(a.defaultResponseHeaders()).map(x -> 
stringHeader(x)).forEach(x -> b.appendTo(REST_defaultResponseHeaders, x));
+                       b.appendToIfNotEmpty(REST_defaultRequestHeaders, 
accept(string(a.defaultAccept())));
+                       b.appendToIfNotEmpty(REST_defaultRequestHeaders, 
contentType(string(a.defaultContentType())));
+                       b.prependTo(REST_responseProcessors, 
a.responseProcessors());
+                       b.prependTo(REST_converters, a.converters());
+                       b.prependTo(REST_guards, reverse(a.guards()));
+                       b.prependTo(REST_children, a.children());
+                       b.prependTo(REST_restOperationArgs, 
a.restOperationArgs());
+                       b.setIf(a.contextClass() != RestContext.Null.class, 
REST_contextClass, a.contextClass());
+                       b.setIfNotEmpty(REST_uriContext, 
string(a.uriContext()));
+                       b.setIfNotEmpty(REST_uriAuthority, 
string(a.uriAuthority()));
+                       b.setIfNotEmpty(REST_uriRelativity, 
string(a.uriRelativity()));
+                       b.setIfNotEmpty(REST_uriResolution, 
string(a.uriResolution()));
+                       b.prependTo(REST_messages, Tuple2.of(c.inner(), 
string(a.messages())));
+                       b.setIf(a.fileFinder() != FileFinder.Null.class, 
REST_fileFinder, a.fileFinder());
+                       b.setIf(a.staticFiles() != StaticFiles.Null.class, 
REST_staticFiles, a.staticFiles());
+                       b.setIfNotEmpty(REST_path, 
trimLeadingSlash(string(a.path())));
+                       b.setIfNotEmpty(REST_clientVersionHeader, 
string(a.clientVersionHeader()));
+                       b.setIf(a.beanStore() != BeanStore.Null.class, 
REST_beanStore, a.beanStore());
+                       b.setIf(a.callLogger() != RestLogger.Null.class, 
REST_callLogger, a.callLogger());
+                       b.setIf(a.swaggerProvider() != 
SwaggerProvider.Null.class, REST_swaggerProvider, a.swaggerProvider());
+                       b.setIf(a.restOperationContextClass() != 
RestOperationContext.Null.class, REST_restOperationContextClass, 
a.restOperationContextClass());
+                       b.setIf(a.restChildrenClass() != 
RestChildren.Null.class, REST_restChildrenClass, a.restChildrenClass());
+                       b.setIf(a.restOperationsClass() != 
RestOperations.Null.class, REST_restOperationsClass, a.restOperationsClass());
+                       b.setIf(a.debugEnablement() != 
DebugEnablement.Null.class, REST_debugEnablement, a.debugEnablement());
+                       b.setIfNotEmpty(REST_disableAllowBodyParam, 
bool(a.disableAllowBodyParam()));
+                       b.setIfNotEmpty(REST_allowedHeaderParams, 
string(a.allowedHeaderParams()));
+                       b.setIfNotEmpty(REST_allowedMethodHeaders, 
string(a.allowedMethodHeaders()));
+                       b.setIfNotEmpty(REST_allowedMethodParams, 
string(a.allowedMethodParams()));
+                       b.setIfNotEmpty(REST_renderResponseStackTraces, 
bool(a.renderResponseStackTraces()));
+                       b.setIfNotEmpty(REST_defaultCharset, 
string(a.defaultCharset()));
+                       b.setIfNotEmpty(REST_maxInput, string(a.maxInput()));
+                       b.setIfNotEmpty(REST_debug, string(a.debug()));
+                       b.setIfNotEmpty(REST_debugOn, string(a.debugOn()));
+                       cdStream(a.rolesDeclared()).forEach(x -> 
b.addTo(REST_rolesDeclared, x));
+                       b.addToIfNotEmpty(REST_roleGuard, 
string(a.roleGuard()));
                }
 
                private String trimLeadingSlash(String value) {
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestDeleteAnnotation.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestDeleteAnnotation.java
index 11be507..6f18469 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestDeleteAnnotation.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestDeleteAnnotation.java
@@ -452,27 +452,27 @@ public class RestDeleteAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<RestDelete> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<RestDelete> ai, 
ContextPropertiesBuilder b) {
                        RestDelete a = ai.getAnnotation();
 
-                       cpb.setIfNotEmpty(RESTOP_httpMethod, "delete");
-
-                       cpb.set(REST_encoders, 
merge(ConverterUtils.toType(cpb.peek(REST_encoders), Object[].class), 
a.encoders()));
-                       cpb.setIf(a.contextClass() != 
RestOperationContext.Null.class, RESTOP_contextClass, a.contextClass());
-                       stringStream(a.defaultRequestHeaders()).map(x -> 
stringHeader(x)).forEach(x -> cpb.appendTo(RESTOP_defaultRequestHeaders, x));
-                       stringStream(a.defaultResponseHeaders()).map(x -> 
stringHeader(x)).forEach(x -> cpb.appendTo(RESTOP_defaultResponseHeaders, x));
-                       stringStream(a.defaultRequestAttributes()).map(x -> 
BasicNamedAttribute.ofPair(x)).forEach(x -> 
cpb.appendTo(RESTOP_defaultRequestAttributes, x));
-                       stringStream(a.defaultQuery()).map(x -> 
basicPart(x)).forEach(x -> cpb.appendTo(RESTOP_defaultQuery, x));
-                       cpb.appendToIfNotEmpty(REST_defaultRequestHeaders, 
accept(string(a.defaultAccept())));
-                       cpb.prependTo(REST_guards, reverse(a.guards()));
-                       cpb.prependTo(RESTOP_matchers, a.matchers());
-                       cpb.setIfNotEmpty(RESTOP_clientVersion, 
a.clientVersion());
-                       cpb.setIfNotEmpty(REST_defaultCharset, 
string(a.defaultCharset()));
-                       stringStream(a.path()).forEach(x -> 
cpb.prependTo(RESTOP_path, x));
-                       cpb.setIfNotEmpty(RESTOP_path, a.value());
-                       cdStream(a.rolesDeclared()).forEach(x -> 
cpb.addTo(REST_rolesDeclared, x));
-                       cpb.addToIfNotEmpty(REST_roleGuard, 
string(a.roleGuard()));
-                       cpb.setIfNotEmpty(RESTOP_debug, string(a.debug()));
+                       b.setIfNotEmpty(RESTOP_httpMethod, "delete");
+
+                       b.set(REST_encoders, 
merge(ConverterUtils.toType(b.peek(REST_encoders), Object[].class), 
a.encoders()));
+                       b.setIf(a.contextClass() != 
RestOperationContext.Null.class, RESTOP_contextClass, a.contextClass());
+                       stringStream(a.defaultRequestHeaders()).map(x -> 
stringHeader(x)).forEach(x -> b.appendTo(RESTOP_defaultRequestHeaders, x));
+                       stringStream(a.defaultResponseHeaders()).map(x -> 
stringHeader(x)).forEach(x -> b.appendTo(RESTOP_defaultResponseHeaders, x));
+                       stringStream(a.defaultRequestAttributes()).map(x -> 
BasicNamedAttribute.ofPair(x)).forEach(x -> 
b.appendTo(RESTOP_defaultRequestAttributes, x));
+                       stringStream(a.defaultQuery()).map(x -> 
basicPart(x)).forEach(x -> b.appendTo(RESTOP_defaultQuery, x));
+                       b.appendToIfNotEmpty(REST_defaultRequestHeaders, 
accept(string(a.defaultAccept())));
+                       b.prependTo(REST_guards, reverse(a.guards()));
+                       b.prependTo(RESTOP_matchers, a.matchers());
+                       b.setIfNotEmpty(RESTOP_clientVersion, 
a.clientVersion());
+                       b.setIfNotEmpty(REST_defaultCharset, 
string(a.defaultCharset()));
+                       stringStream(a.path()).forEach(x -> 
b.prependTo(RESTOP_path, x));
+                       b.setIfNotEmpty(RESTOP_path, a.value());
+                       cdStream(a.rolesDeclared()).forEach(x -> 
b.addTo(REST_rolesDeclared, x));
+                       b.addToIfNotEmpty(REST_roleGuard, 
string(a.roleGuard()));
+                       b.setIfNotEmpty(RESTOP_debug, string(a.debug()));
                }
        }
 }
\ No newline at end of file
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestGetAnnotation.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestGetAnnotation.java
index 018b639..9018ee9 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestGetAnnotation.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestGetAnnotation.java
@@ -505,30 +505,30 @@ public class RestGetAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<RestGet> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<RestGet> ai, 
ContextPropertiesBuilder b) {
                        RestGet a = ai.getAnnotation();
 
-                       cpb.setIfNotEmpty(RESTOP_httpMethod, "get");
-
-                       cpb.set(REST_serializers, 
merge(ConverterUtils.toType(cpb.peek(REST_serializers), Object[].class), 
a.serializers()));
-                       cpb.set(REST_encoders, 
merge(ConverterUtils.toType(cpb.peek(REST_encoders), Object[].class), 
a.encoders()));
-                       cpb.setIf(a.contextClass() != 
RestOperationContext.Null.class, RESTOP_contextClass, a.contextClass());
-                       cpb.setIfNotEmpty(REST_produces, 
stringList(a.produces()));
-                       stringStream(a.defaultRequestHeaders()).map(x -> 
stringHeader(x)).forEach(x -> cpb.appendTo(RESTOP_defaultRequestHeaders, x));
-                       stringStream(a.defaultResponseHeaders()).map(x -> 
stringHeader(x)).forEach(x -> cpb.appendTo(RESTOP_defaultResponseHeaders, x));
-                       stringStream(a.defaultRequestAttributes()).map(x -> 
BasicNamedAttribute.ofPair(x)).forEach(x -> 
cpb.appendTo(RESTOP_defaultRequestAttributes, x));
-                       stringStream(a.defaultQuery()).map(x -> 
basicPart(x)).forEach(x -> cpb.appendTo(RESTOP_defaultQuery, x));
-                       cpb.appendToIfNotEmpty(REST_defaultRequestHeaders, 
accept(string(a.defaultAccept())));
-                       cpb.prependTo(REST_converters, a.converters());
-                       cpb.prependTo(REST_guards, reverse(a.guards()));
-                       cpb.prependTo(RESTOP_matchers, a.matchers());
-                       cpb.setIfNotEmpty(RESTOP_clientVersion, 
a.clientVersion());
-                       cpb.setIfNotEmpty(REST_defaultCharset, 
string(a.defaultCharset()));
-                       stringStream(a.path()).forEach(x -> 
cpb.prependTo(RESTOP_path, x));
-                       cpb.setIfNotEmpty(RESTOP_path, a.value());
-                       cdStream(a.rolesDeclared()).forEach(x -> 
cpb.addTo(REST_rolesDeclared, x));
-                       cpb.addToIfNotEmpty(REST_roleGuard, 
string(a.roleGuard()));
-                       cpb.setIfNotEmpty(RESTOP_debug, string(a.debug()));
+                       b.setIfNotEmpty(RESTOP_httpMethod, "get");
+
+                       b.set(REST_serializers, 
merge(ConverterUtils.toType(b.peek(REST_serializers), Object[].class), 
a.serializers()));
+                       b.set(REST_encoders, 
merge(ConverterUtils.toType(b.peek(REST_encoders), Object[].class), 
a.encoders()));
+                       b.setIf(a.contextClass() != 
RestOperationContext.Null.class, RESTOP_contextClass, a.contextClass());
+                       b.setIfNotEmpty(REST_produces, 
stringList(a.produces()));
+                       stringStream(a.defaultRequestHeaders()).map(x -> 
stringHeader(x)).forEach(x -> b.appendTo(RESTOP_defaultRequestHeaders, x));
+                       stringStream(a.defaultResponseHeaders()).map(x -> 
stringHeader(x)).forEach(x -> b.appendTo(RESTOP_defaultResponseHeaders, x));
+                       stringStream(a.defaultRequestAttributes()).map(x -> 
BasicNamedAttribute.ofPair(x)).forEach(x -> 
b.appendTo(RESTOP_defaultRequestAttributes, x));
+                       stringStream(a.defaultQuery()).map(x -> 
basicPart(x)).forEach(x -> b.appendTo(RESTOP_defaultQuery, x));
+                       b.appendToIfNotEmpty(REST_defaultRequestHeaders, 
accept(string(a.defaultAccept())));
+                       b.prependTo(REST_converters, a.converters());
+                       b.prependTo(REST_guards, reverse(a.guards()));
+                       b.prependTo(RESTOP_matchers, a.matchers());
+                       b.setIfNotEmpty(RESTOP_clientVersion, 
a.clientVersion());
+                       b.setIfNotEmpty(REST_defaultCharset, 
string(a.defaultCharset()));
+                       stringStream(a.path()).forEach(x -> 
b.prependTo(RESTOP_path, x));
+                       b.setIfNotEmpty(RESTOP_path, a.value());
+                       cdStream(a.rolesDeclared()).forEach(x -> 
b.addTo(REST_rolesDeclared, x));
+                       b.addToIfNotEmpty(REST_roleGuard, 
string(a.roleGuard()));
+                       b.setIfNotEmpty(RESTOP_debug, string(a.debug()));
                }
        }
 }
\ No newline at end of file
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOpAnnotation.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOpAnnotation.java
index 0a71c63..18bb7a3 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOpAnnotation.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOpAnnotation.java
@@ -607,42 +607,42 @@ public class RestOpAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<RestOp> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<RestOp> ai, 
ContextPropertiesBuilder b) {
                        RestOp a = ai.getAnnotation();
 
-                       cpb.set(REST_serializers, 
merge(ConverterUtils.toType(cpb.peek(REST_serializers), Object[].class), 
a.serializers()));
-                       cpb.set(REST_parsers, 
merge(ConverterUtils.toType(cpb.peek(REST_parsers), Object[].class), 
a.parsers()));
-                       cpb.set(REST_encoders, 
merge(ConverterUtils.toType(cpb.peek(REST_encoders), Object[].class), 
a.encoders()));
-                       cpb.setIf(a.contextClass() != 
RestOperationContext.Null.class, RESTOP_contextClass, a.contextClass());
-                       cpb.setIfNotEmpty(REST_produces, 
stringList(a.produces()));
-                       cpb.setIfNotEmpty(REST_consumes, 
stringList(a.consumes()));
-                       stringStream(a.defaultRequestHeaders()).map(x -> 
stringHeader(x)).forEach(x -> cpb.appendTo(RESTOP_defaultRequestHeaders, x));
-                       stringStream(a.defaultResponseHeaders()).map(x -> 
stringHeader(x)).forEach(x -> cpb.appendTo(RESTOP_defaultResponseHeaders, x));
-                       stringStream(a.defaultRequestAttributes()).map(x -> 
BasicNamedAttribute.ofPair(x)).forEach(x -> 
cpb.appendTo(RESTOP_defaultRequestAttributes, x));
-                       stringStream(a.defaultQuery()).map(x -> 
basicPart(x)).forEach(x -> cpb.appendTo(RESTOP_defaultQuery, x));
-                       stringStream(a.defaultFormData()).map(x -> 
basicPart(x)).forEach(x -> cpb.appendTo(RESTOP_defaultFormData, x));
-                       cpb.appendToIfNotEmpty(REST_defaultRequestHeaders, 
accept(string(a.defaultAccept())));
-                       cpb.appendToIfNotEmpty(REST_defaultRequestHeaders, 
contentType(string(a.defaultContentType())));
-                       cpb.prependTo(REST_converters, a.converters());
-                       cpb.prependTo(REST_guards, reverse(a.guards()));
-                       cpb.prependTo(RESTOP_matchers, a.matchers());
-                       cpb.setIfNotEmpty(RESTOP_clientVersion, 
a.clientVersion());
-                       cpb.setIfNotEmpty(REST_defaultCharset, 
string(a.defaultCharset()));
-                       cpb.setIfNotEmpty(REST_maxInput, string(a.maxInput()));
-                       stringStream(a.path()).forEach(x -> 
cpb.prependTo(RESTOP_path, x));
-                       cdStream(a.rolesDeclared()).forEach(x -> 
cpb.addTo(REST_rolesDeclared, x));
-                       cpb.addToIfNotEmpty(REST_roleGuard, 
string(a.roleGuard()));
-                       cpb.setIfNotEmpty(RESTOP_httpMethod, 
string(a.method()));
-                       cpb.setIfNotEmpty(RESTOP_debug, string(a.debug()));
+                       b.set(REST_serializers, 
merge(ConverterUtils.toType(b.peek(REST_serializers), Object[].class), 
a.serializers()));
+                       b.set(REST_parsers, 
merge(ConverterUtils.toType(b.peek(REST_parsers), Object[].class), 
a.parsers()));
+                       b.set(REST_encoders, 
merge(ConverterUtils.toType(b.peek(REST_encoders), Object[].class), 
a.encoders()));
+                       b.setIf(a.contextClass() != 
RestOperationContext.Null.class, RESTOP_contextClass, a.contextClass());
+                       b.setIfNotEmpty(REST_produces, 
stringList(a.produces()));
+                       b.setIfNotEmpty(REST_consumes, 
stringList(a.consumes()));
+                       stringStream(a.defaultRequestHeaders()).map(x -> 
stringHeader(x)).forEach(x -> b.appendTo(RESTOP_defaultRequestHeaders, x));
+                       stringStream(a.defaultResponseHeaders()).map(x -> 
stringHeader(x)).forEach(x -> b.appendTo(RESTOP_defaultResponseHeaders, x));
+                       stringStream(a.defaultRequestAttributes()).map(x -> 
BasicNamedAttribute.ofPair(x)).forEach(x -> 
b.appendTo(RESTOP_defaultRequestAttributes, x));
+                       stringStream(a.defaultQuery()).map(x -> 
basicPart(x)).forEach(x -> b.appendTo(RESTOP_defaultQuery, x));
+                       stringStream(a.defaultFormData()).map(x -> 
basicPart(x)).forEach(x -> b.appendTo(RESTOP_defaultFormData, x));
+                       b.appendToIfNotEmpty(REST_defaultRequestHeaders, 
accept(string(a.defaultAccept())));
+                       b.appendToIfNotEmpty(REST_defaultRequestHeaders, 
contentType(string(a.defaultContentType())));
+                       b.prependTo(REST_converters, a.converters());
+                       b.prependTo(REST_guards, reverse(a.guards()));
+                       b.prependTo(RESTOP_matchers, a.matchers());
+                       b.setIfNotEmpty(RESTOP_clientVersion, 
a.clientVersion());
+                       b.setIfNotEmpty(REST_defaultCharset, 
string(a.defaultCharset()));
+                       b.setIfNotEmpty(REST_maxInput, string(a.maxInput()));
+                       stringStream(a.path()).forEach(x -> 
b.prependTo(RESTOP_path, x));
+                       cdStream(a.rolesDeclared()).forEach(x -> 
b.addTo(REST_rolesDeclared, x));
+                       b.addToIfNotEmpty(REST_roleGuard, 
string(a.roleGuard()));
+                       b.setIfNotEmpty(RESTOP_httpMethod, string(a.method()));
+                       b.setIfNotEmpty(RESTOP_debug, string(a.debug()));
 
                        String v = StringUtils.trim(string(a.value()));
                        if (v != null) {
                                int i = v.indexOf(' ');
                                if (i == -1) {
-                                       cpb.set(RESTOP_httpMethod, v);
+                                       b.set(RESTOP_httpMethod, v);
                                } else {
-                                       cpb.set(RESTOP_httpMethod, 
v.substring(0, i).trim());
-                                       cpb.prependTo(RESTOP_path,  
v.substring(i).trim());
+                                       b.set(RESTOP_httpMethod, v.substring(0, 
i).trim());
+                                       b.prependTo(RESTOP_path,  
v.substring(i).trim());
                                }
                        }
                }
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPostAnnotation.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPostAnnotation.java
index 0dc0b57..9a5a092 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPostAnnotation.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPostAnnotation.java
@@ -590,35 +590,35 @@ public class RestPostAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<RestPost> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<RestPost> ai, 
ContextPropertiesBuilder b) {
                        RestPost a = ai.getAnnotation();
 
-                       cpb.setIfNotEmpty(RESTOP_httpMethod, "post");
-
-                       cpb.set(REST_serializers, 
merge(ConverterUtils.toType(cpb.peek(REST_serializers), Object[].class), 
a.serializers()));
-                       cpb.set(REST_parsers, 
merge(ConverterUtils.toType(cpb.peek(REST_parsers), Object[].class), 
a.parsers()));
-                       cpb.set(REST_encoders, 
merge(ConverterUtils.toType(cpb.peek(REST_encoders), Object[].class), 
a.encoders()));
-                       cpb.setIf(a.contextClass() != 
RestOperationContext.Null.class, RESTOP_contextClass, a.contextClass());
-                       cpb.setIfNotEmpty(REST_produces, 
stringList(a.produces()));
-                       cpb.setIfNotEmpty(REST_consumes, 
stringList(a.consumes()));
-                       stringStream(a.defaultRequestHeaders()).map(x -> 
stringHeader(x)).forEach(x -> cpb.appendTo(RESTOP_defaultRequestHeaders, x));
-                       stringStream(a.defaultResponseHeaders()).map(x -> 
stringHeader(x)).forEach(x -> cpb.appendTo(RESTOP_defaultResponseHeaders, x));
-                       stringStream(a.defaultRequestAttributes()).map(x -> 
BasicNamedAttribute.ofPair(x)).forEach(x -> 
cpb.appendTo(RESTOP_defaultRequestAttributes, x));
-                       stringStream(a.defaultQuery()).map(x -> 
basicPart(x)).forEach(x -> cpb.appendTo(RESTOP_defaultQuery, x));
-                       stringStream(a.defaultFormData()).map(x -> 
basicPart(x)).forEach(x -> cpb.appendTo(RESTOP_defaultFormData, x));
-                       cpb.appendToIfNotEmpty(REST_defaultRequestHeaders, 
accept(string(a.defaultAccept())));
-                       cpb.appendToIfNotEmpty(REST_defaultRequestHeaders, 
contentType(string(a.defaultContentType())));
-                       cpb.prependTo(REST_converters, a.converters());
-                       cpb.prependTo(REST_guards, reverse(a.guards()));
-                       cpb.prependTo(RESTOP_matchers, a.matchers());
-                       cpb.setIfNotEmpty(RESTOP_clientVersion, 
a.clientVersion());
-                       cpb.setIfNotEmpty(REST_defaultCharset, 
string(a.defaultCharset()));
-                       cpb.setIfNotEmpty(REST_maxInput, string(a.maxInput()));
-                       stringStream(a.path()).forEach(x -> 
cpb.prependTo(RESTOP_path, x));
-                       cpb.setIfNotEmpty(RESTOP_path, a.value());
-                       cdStream(a.rolesDeclared()).forEach(x -> 
cpb.addTo(REST_rolesDeclared, x));
-                       cpb.addToIfNotEmpty(REST_roleGuard, 
string(a.roleGuard()));
-                       cpb.setIfNotEmpty(RESTOP_debug, string(a.debug()));
+                       b.setIfNotEmpty(RESTOP_httpMethod, "post");
+
+                       b.set(REST_serializers, 
merge(ConverterUtils.toType(b.peek(REST_serializers), Object[].class), 
a.serializers()));
+                       b.set(REST_parsers, 
merge(ConverterUtils.toType(b.peek(REST_parsers), Object[].class), 
a.parsers()));
+                       b.set(REST_encoders, 
merge(ConverterUtils.toType(b.peek(REST_encoders), Object[].class), 
a.encoders()));
+                       b.setIf(a.contextClass() != 
RestOperationContext.Null.class, RESTOP_contextClass, a.contextClass());
+                       b.setIfNotEmpty(REST_produces, 
stringList(a.produces()));
+                       b.setIfNotEmpty(REST_consumes, 
stringList(a.consumes()));
+                       stringStream(a.defaultRequestHeaders()).map(x -> 
stringHeader(x)).forEach(x -> b.appendTo(RESTOP_defaultRequestHeaders, x));
+                       stringStream(a.defaultResponseHeaders()).map(x -> 
stringHeader(x)).forEach(x -> b.appendTo(RESTOP_defaultResponseHeaders, x));
+                       stringStream(a.defaultRequestAttributes()).map(x -> 
BasicNamedAttribute.ofPair(x)).forEach(x -> 
b.appendTo(RESTOP_defaultRequestAttributes, x));
+                       stringStream(a.defaultQuery()).map(x -> 
basicPart(x)).forEach(x -> b.appendTo(RESTOP_defaultQuery, x));
+                       stringStream(a.defaultFormData()).map(x -> 
basicPart(x)).forEach(x -> b.appendTo(RESTOP_defaultFormData, x));
+                       b.appendToIfNotEmpty(REST_defaultRequestHeaders, 
accept(string(a.defaultAccept())));
+                       b.appendToIfNotEmpty(REST_defaultRequestHeaders, 
contentType(string(a.defaultContentType())));
+                       b.prependTo(REST_converters, a.converters());
+                       b.prependTo(REST_guards, reverse(a.guards()));
+                       b.prependTo(RESTOP_matchers, a.matchers());
+                       b.setIfNotEmpty(RESTOP_clientVersion, 
a.clientVersion());
+                       b.setIfNotEmpty(REST_defaultCharset, 
string(a.defaultCharset()));
+                       b.setIfNotEmpty(REST_maxInput, string(a.maxInput()));
+                       stringStream(a.path()).forEach(x -> 
b.prependTo(RESTOP_path, x));
+                       b.setIfNotEmpty(RESTOP_path, a.value());
+                       cdStream(a.rolesDeclared()).forEach(x -> 
b.addTo(REST_rolesDeclared, x));
+                       b.addToIfNotEmpty(REST_roleGuard, 
string(a.roleGuard()));
+                       b.setIfNotEmpty(RESTOP_debug, string(a.debug()));
                }
        }
 }
\ No newline at end of file
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPutAnnotation.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPutAnnotation.java
index 8e3cafd..75bce13 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPutAnnotation.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPutAnnotation.java
@@ -590,35 +590,35 @@ public class RestPutAnnotation {
                }
 
                @Override
-               public void apply(AnnotationInfo<RestPut> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<RestPut> ai, 
ContextPropertiesBuilder b) {
                        RestPut a = ai.getAnnotation();
 
-                       cpb.setIfNotEmpty(RESTOP_httpMethod, "put");
-
-                       cpb.set(REST_serializers, 
merge(ConverterUtils.toType(cpb.peek(REST_serializers), Object[].class), 
a.serializers()));
-                       cpb.set(REST_parsers, 
merge(ConverterUtils.toType(cpb.peek(REST_parsers), Object[].class), 
a.parsers()));
-                       cpb.set(REST_encoders, 
merge(ConverterUtils.toType(cpb.peek(REST_encoders), Object[].class), 
a.encoders()));
-                       cpb.setIf(a.contextClass() != 
RestOperationContext.Null.class, RESTOP_contextClass, a.contextClass());
-                       cpb.setIfNotEmpty(REST_produces, 
stringList(a.produces()));
-                       cpb.setIfNotEmpty(REST_consumes, 
stringList(a.consumes()));
-                       stringStream(a.defaultRequestHeaders()).map(x -> 
stringHeader(x)).forEach(x -> cpb.appendTo(RESTOP_defaultRequestHeaders, x));
-                       stringStream(a.defaultResponseHeaders()).map(x -> 
stringHeader(x)).forEach(x -> cpb.appendTo(RESTOP_defaultResponseHeaders, x));
-                       stringStream(a.defaultRequestAttributes()).map(x -> 
BasicNamedAttribute.ofPair(x)).forEach(x -> 
cpb.appendTo(RESTOP_defaultRequestAttributes, x));
-                       stringStream(a.defaultQuery()).map(x -> 
basicPart(x)).forEach(x -> cpb.appendTo(RESTOP_defaultQuery, x));
-                       stringStream(a.defaultFormData()).map(x -> 
basicPart(x)).forEach(x -> cpb.appendTo(RESTOP_defaultFormData, x));
-                       cpb.appendToIfNotEmpty(REST_defaultRequestHeaders, 
accept(string(a.defaultAccept())));
-                       cpb.appendToIfNotEmpty(REST_defaultRequestHeaders, 
contentType(string(a.defaultContentType())));
-                       cpb.prependTo(REST_converters, a.converters());
-                       cpb.prependTo(REST_guards, reverse(a.guards()));
-                       cpb.prependTo(RESTOP_matchers, a.matchers());
-                       cpb.setIfNotEmpty(RESTOP_clientVersion, 
a.clientVersion());
-                       cpb.setIfNotEmpty(REST_defaultCharset, 
string(a.defaultCharset()));
-                       cpb.setIfNotEmpty(REST_maxInput, string(a.maxInput()));
-                       stringStream(a.path()).forEach(x -> 
cpb.prependTo(RESTOP_path, x));
-                       cpb.setIfNotEmpty(RESTOP_path, a.value());
-                       cdStream(a.rolesDeclared()).forEach(x -> 
cpb.addTo(REST_rolesDeclared, x));
-                       cpb.addToIfNotEmpty(REST_roleGuard, 
string(a.roleGuard()));
-                       cpb.setIfNotEmpty(RESTOP_debug, string(a.debug()));
+                       b.setIfNotEmpty(RESTOP_httpMethod, "put");
+
+                       b.set(REST_serializers, 
merge(ConverterUtils.toType(b.peek(REST_serializers), Object[].class), 
a.serializers()));
+                       b.set(REST_parsers, 
merge(ConverterUtils.toType(b.peek(REST_parsers), Object[].class), 
a.parsers()));
+                       b.set(REST_encoders, 
merge(ConverterUtils.toType(b.peek(REST_encoders), Object[].class), 
a.encoders()));
+                       b.setIf(a.contextClass() != 
RestOperationContext.Null.class, RESTOP_contextClass, a.contextClass());
+                       b.setIfNotEmpty(REST_produces, 
stringList(a.produces()));
+                       b.setIfNotEmpty(REST_consumes, 
stringList(a.consumes()));
+                       stringStream(a.defaultRequestHeaders()).map(x -> 
stringHeader(x)).forEach(x -> b.appendTo(RESTOP_defaultRequestHeaders, x));
+                       stringStream(a.defaultResponseHeaders()).map(x -> 
stringHeader(x)).forEach(x -> b.appendTo(RESTOP_defaultResponseHeaders, x));
+                       stringStream(a.defaultRequestAttributes()).map(x -> 
BasicNamedAttribute.ofPair(x)).forEach(x -> 
b.appendTo(RESTOP_defaultRequestAttributes, x));
+                       stringStream(a.defaultQuery()).map(x -> 
basicPart(x)).forEach(x -> b.appendTo(RESTOP_defaultQuery, x));
+                       stringStream(a.defaultFormData()).map(x -> 
basicPart(x)).forEach(x -> b.appendTo(RESTOP_defaultFormData, x));
+                       b.appendToIfNotEmpty(REST_defaultRequestHeaders, 
accept(string(a.defaultAccept())));
+                       b.appendToIfNotEmpty(REST_defaultRequestHeaders, 
contentType(string(a.defaultContentType())));
+                       b.prependTo(REST_converters, a.converters());
+                       b.prependTo(REST_guards, reverse(a.guards()));
+                       b.prependTo(RESTOP_matchers, a.matchers());
+                       b.setIfNotEmpty(RESTOP_clientVersion, 
a.clientVersion());
+                       b.setIfNotEmpty(REST_defaultCharset, 
string(a.defaultCharset()));
+                       b.setIfNotEmpty(REST_maxInput, string(a.maxInput()));
+                       stringStream(a.path()).forEach(x -> 
b.prependTo(RESTOP_path, x));
+                       b.setIfNotEmpty(RESTOP_path, a.value());
+                       cdStream(a.rolesDeclared()).forEach(x -> 
b.addTo(REST_rolesDeclared, x));
+                       b.addToIfNotEmpty(REST_roleGuard, 
string(a.roleGuard()));
+                       b.setIfNotEmpty(RESTOP_debug, string(a.debug()));
                }
        }
 }
\ No newline at end of file
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/reflection/ClassInfoTest.java 
b/juneau-utest/src/test/java/org/apache/juneau/reflection/ClassInfoTest.java
index d91c290..dca73c0 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/reflection/ClassInfoTest.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/reflection/ClassInfoTest.java
@@ -68,7 +68,7 @@ public class ClassInfoTest {
                        super(c, vr);
                }
                @Override
-               public void apply(AnnotationInfo<AConfig> a, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<AConfig> a, 
ContextPropertiesBuilder b) {
                }
        }
 
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/reflection/MethodInfoTest.java 
b/juneau-utest/src/test/java/org/apache/juneau/reflection/MethodInfoTest.java
index 0985290..8de1d41 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/reflection/MethodInfoTest.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/reflection/MethodInfoTest.java
@@ -63,7 +63,7 @@ public class MethodInfoTest {
                        super(c, vr);
                }
                @Override
-               public void apply(AnnotationInfo<AConfig> ai, 
ContextPropertiesBuilder cpb, VarResolverSession vr) {
+               public void apply(AnnotationInfo<AConfig> ai, 
ContextPropertiesBuilder b) {
                }
        }
 

Reply via email to