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 ae27fa1  ConfigApply code improvements.
ae27fa1 is described below

commit ae27fa14ae786030841d004ab8a57e40e1d615d7
Author: JamesBognar <[email protected]>
AuthorDate: Sat Aug 7 14:13:40 2021 -0400

    ConfigApply code improvements.
---
 .../juneau/jena/annotation/RdfAnnotation.java      |  4 +-
 .../jena/annotation/RdfConfigAnnotation.java       |  4 +-
 .../main/java/org/apache/juneau/ConfigApply.java   | 46 ++++++++++++++--------
 .../apache/juneau/ContextPropertiesBuilder.java    |  7 ++--
 .../apache/juneau/annotation/BeanAnnotation.java   |  4 +-
 .../juneau/annotation/BeanConfigAnnotation.java    |  4 +-
 .../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 |  4 +-
 .../juneau/html/annotation/HtmlAnnotation.java     |  4 +-
 .../html/annotation/HtmlConfigAnnotation.java      |  4 +-
 .../html/annotation/HtmlDocConfigAnnotation.java   |  4 +-
 .../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 |  4 +-
 .../juneau/json/annotation/JsonAnnotation.java     |  4 +-
 .../json/annotation/JsonConfigAnnotation.java      |  4 +-
 .../annotation/JsonSchemaConfigAnnotation.java     |  4 +-
 .../jsonschema/annotation/SchemaAnnotation.java    |  4 +-
 .../msgpack/annotation/MsgPackAnnotation.java      |  4 +-
 .../annotation/MsgPackConfigAnnotation.java        |  4 +-
 .../juneau/oapi/annotation/OpenApiAnnotation.java  |  4 +-
 .../oapi/annotation/OpenApiConfigAnnotation.java   |  4 +-
 .../parser/annotation/ParserConfigAnnotation.java  |  4 +-
 .../plaintext/annotation/PlainTextAnnotation.java  |  4 +-
 .../annotation/PlainTextConfigAnnotation.java      |  4 +-
 .../org/apache/juneau/reflect/AnnotationInfo.java  |  8 ++--
 .../annotation/SerializerConfigAnnotation.java     |  4 +-
 .../juneau/soap/annotation/SoapXmlAnnotation.java  |  4 +-
 .../soap/annotation/SoapXmlConfigAnnotation.java   |  4 +-
 .../juneau/uon/annotation/UonAnnotation.java       |  4 +-
 .../juneau/uon/annotation/UonConfigAnnotation.java |  4 +-
 .../annotation/UrlEncodingAnnotation.java          |  4 +-
 .../annotation/UrlEncodingConfigAnnotation.java    |  4 +-
 .../juneau/xml/annotation/XmlAnnotation.java       |  4 +-
 .../juneau/xml/annotation/XmlConfigAnnotation.java |  4 +-
 .../juneau/rest/annotation/RestAnnotation.java     |  4 +-
 .../rest/annotation/RestDeleteAnnotation.java      |  4 +-
 .../juneau/rest/annotation/RestGetAnnotation.java  |  4 +-
 .../juneau/rest/annotation/RestOpAnnotation.java   |  4 +-
 .../juneau/rest/annotation/RestPostAnnotation.java |  4 +-
 .../juneau/rest/annotation/RestPutAnnotation.java  |  4 +-
 .../apache/juneau/reflection/ClassInfoTest.java    |  6 +--
 .../apache/juneau/reflection/MethodInfoTest.java   |  6 +--
 62 files changed, 158 insertions(+), 143 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 5478456..dcaba9f 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
@@ -228,7 +228,7 @@ public class RdfAnnotation {
        /**
         * Applies targeted {@link Rdf} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<Rdf> {
+       public static class Apply extends 
ConfigApply<Rdf,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -237,7 +237,7 @@ public class RdfAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(Rdf.class, vr);
+                       super(Rdf.class, ContextPropertiesBuilder.class, vr);
                }
 
                @Override
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 deeeff1..3547918 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
@@ -28,7 +28,7 @@ public class RdfConfigAnnotation {
        /**
         * Applies {@link RdfConfig} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<RdfConfig> {
+       public static class Apply extends 
ConfigApply<RdfConfig,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -37,7 +37,7 @@ public class RdfConfigAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(RdfConfig.class, vr);
+                       super(RdfConfig.class, ContextPropertiesBuilder.class, 
vr);
                }
 
                @Override
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 ef3fc2d..c3a2990 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
@@ -27,31 +27,45 @@ import org.apache.juneau.svl.*;
 /**
  * Class used to add properties to a {@link ContextProperties} from an 
annotation (e.g. {@link BeanConfig}).
  *
- * @param <T> The annotation that this <c>ConfigApply</c> reads from.
+ * @param <A> The annotation that this <c>ConfigApply</c> reads from.
+ * @param <B> The builder class to apply the annotation to.
  */
-public abstract class ConfigApply<T extends Annotation> {
+public abstract class ConfigApply<A extends Annotation, B> {
 
        private final VarResolverSession vr;
-       private final Class<T> c;
+       private final Class<A> ca;
+       private final Class<B> cb;
 
        /**
         * Constructor.
         *
-        * @param c The annotation class.
+        * @param annotationClass The annotation class.
+        * @param builderClass The annotation class.
         * @param vr The string resolver to use for resolving strings.
         */
-       protected ConfigApply(Class<T> c, VarResolverSession vr) {
+       protected ConfigApply(Class<A> annotationClass, Class<B> builderClass, 
VarResolverSession vr) {
                this.vr = vr == null ? VarResolver.DEFAULT.createSession() : vr;
-               this.c = c;
+               this.ca = annotationClass;
+               this.cb = builderClass;
        }
 
        /**
         * Apply the specified annotation to the specified property store 
builder.
         *
-        * @param a The annotation.
-        * @param cpb The property store builder.
+        * @param annotationInfo The annotation.
+        * @param builder The property store builder.
         */
-       public abstract void apply(AnnotationInfo<T> a, 
ContextPropertiesBuilder cpb);
+       public abstract void apply(AnnotationInfo<A> annotationInfo, B builder);
+
+       /**
+        * Returns <jk>true</jk> if this apply can be appied to the specified 
builder.
+        *
+        * @param builder The builder to check.
+        * @return <jk>true</jk> if this apply can be appied to the specified 
builder.
+        */
+       public boolean canApply(Object builder) {
+               return cb.isInstance(builder);
+       }
 
        /**
         * Returns the var resolver session for this apply.
@@ -126,7 +140,7 @@ public abstract class ConfigApply<T extends Annotation> {
                        for (String s2 : split(s, ';')) {
                                int i = s2.indexOf(':');
                                if (i == -1)
-                                       throw new ConfigException("Invalid 
syntax for key/value pair on annotation @{0}({1}): {2}", c.getSimpleName(), 
loc, s2);
+                                       throw new ConfigException("Invalid 
syntax for key/value pair on annotation @{0}({1}): {2}", ca.getSimpleName(), 
loc, s2);
                                m.put(s2.substring(0, i).trim(), 
s2.substring(i+1).trim());
                        }
                }
@@ -156,7 +170,7 @@ public abstract class ConfigApply<T extends Annotation> {
                        in = string(in);
                        return in == null ? null : Integer.parseInt(in);
                } catch (NumberFormatException e) {
-                       throw new ConfigException("Invalid syntax for integer 
on annotation @{0}({1}): {2}", c.getSimpleName(), loc, in);
+                       throw new ConfigException("Invalid syntax for integer 
on annotation @{0}({1}): {2}", ca.getSimpleName(), loc, in);
                }
        }
 
@@ -172,7 +186,7 @@ public abstract class ConfigApply<T extends Annotation> {
                        in = string(in);
                        return in == null ? null : Visibility.valueOf(in);
                } catch (IllegalArgumentException e) {
-                       throw new ConfigException("Invalid syntax for 
visibility on annotation @{0}({1}): {2}", c.getSimpleName(), loc, in);
+                       throw new ConfigException("Invalid syntax for 
visibility on annotation @{0}({1}): {2}", ca.getSimpleName(), loc, in);
                }
        }
 
@@ -200,7 +214,7 @@ public abstract class ConfigApply<T extends Annotation> {
                                in = "{" + in + "}";
                        return OMap.ofJson(in);
                } catch (Exception e) {
-                       throw new ConfigException("Invalid syntax for 
Simple-JSON on annotation @{0}({1}): {2}", c.getSimpleName(), loc, in);
+                       throw new ConfigException("Invalid syntax for 
Simple-JSON on annotation @{0}({1}): {2}", ca.getSimpleName(), loc, in);
                }
        }
 
@@ -217,7 +231,7 @@ public abstract class ConfigApply<T extends Annotation> {
        /**
         * Represents a no-op configuration apply.
         */
-       public static class NoOp extends ConfigApply<Annotation> {
+       public static class NoOp extends ConfigApply<Annotation,Object> {
 
                /**
                 * Constructor.
@@ -225,10 +239,10 @@ public abstract class ConfigApply<T extends Annotation> {
                 * @param r The string resolver to use for resolving strings.
                 */
                public NoOp(VarResolverSession r) {
-                       super(Annotation.class, r);
+                       super(Annotation.class, Object.class, r);
                }
 
                @Override /* ConfigApply */
-               public void apply(AnnotationInfo<Annotation> ai, 
ContextPropertiesBuilder b) {}
+               public void apply(AnnotationInfo<Annotation> ai, Object 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 b9610a1..e55246c 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
@@ -16,7 +16,6 @@ import static java.util.Collections.*;
 import static org.apache.juneau.internal.ExceptionUtils.*;
 import static org.apache.juneau.internal.StringUtils.*;
 
-import java.lang.annotation.*;
 import java.lang.reflect.*;
 import java.util.*;
 import java.util.concurrent.*;
@@ -111,12 +110,14 @@ public class ContextPropertiesBuilder {
         * @param vr The string resolver used to resolve any variables in the 
annotations.
         * @return This object (for method chaining).
         */
-       @SuppressWarnings("unchecked")
+       @SuppressWarnings({ "unchecked", "rawtypes" })
        public ContextPropertiesBuilder applyAnnotations(AnnotationList al, 
VarResolverSession vr) {
                vr = vr == null ? VarResolver.DEFAULT.createSession() : vr;
                for (AnnotationInfo<?> ai : al.sort()) {
                        try {
-                               
ai.getConfigApply(vr).apply((AnnotationInfo<Annotation>)ai, this);
+                               ConfigApply ca = ai.getConfigApply(vr);
+                               if (ca.canApply(this))
+                                       ca.apply(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 c4f9dc3..378288e 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
@@ -491,7 +491,7 @@ public class BeanAnnotation {
        /**
         * Applies targeted {@link Bean} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<Bean> {
+       public static class Apply extends 
ConfigApply<Bean,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -499,7 +499,7 @@ public class BeanAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(Bean.class, vr);
+                       super(Bean.class, ContextPropertiesBuilder.class, vr);
                }
 
                @Override
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 a9fc278..2cc2479 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
@@ -30,7 +30,7 @@ public class BeanConfigAnnotation {
        /**
         * Applies {@link BeanConfig} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<BeanConfig> {
+       public static class Apply extends 
ConfigApply<BeanConfig,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -38,7 +38,7 @@ public class BeanConfigAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(BeanConfig.class, vr);
+                       super(BeanConfig.class, ContextPropertiesBuilder.class, 
vr);
                }
 
                @Override
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 946e806..d9da5c3 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
@@ -152,7 +152,7 @@ public class BeanIgnoreAnnotation {
        /**
         * Applies targeted {@link BeanIgnore} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<BeanIgnore> {
+       public static class Apply extends 
ConfigApply<BeanIgnore,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -160,7 +160,7 @@ public class BeanIgnoreAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(BeanIgnore.class, vr);
+                       super(BeanIgnore.class, ContextPropertiesBuilder.class, 
vr);
                }
 
                @Override
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 11ce0f7..2180176 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
@@ -138,7 +138,7 @@ public class BeancAnnotation {
        /**
         * Applies targeted {@link Beanc} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<Beanc> {
+       public static class Apply extends 
ConfigApply<Beanc,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -146,7 +146,7 @@ public class BeancAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(Beanc.class, vr);
+                       super(Beanc.class, ContextPropertiesBuilder.class, vr);
                }
 
                @Override
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 abd32f6..b4bc7df 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
@@ -294,7 +294,7 @@ public class BeanpAnnotation {
        /**
         * Applies targeted {@link Beanp} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<Beanp> {
+       public static class Apply extends 
ConfigApply<Beanp,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -302,7 +302,7 @@ public class BeanpAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(Beanp.class, vr);
+                       super(Beanp.class, ContextPropertiesBuilder.class, vr);
                }
 
                @Override
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 80fe489..1788609 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
@@ -168,7 +168,7 @@ public class ExampleAnnotation {
        /**
         * Applies targeted {@link Example} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<Example> {
+       public static class Apply extends 
ConfigApply<Example,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -176,7 +176,7 @@ public class ExampleAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(Example.class, vr);
+                       super(Example.class, ContextPropertiesBuilder.class, 
vr);
                }
 
                @Override
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 1536661..fc529cf 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
@@ -174,7 +174,7 @@ public class MarshalledAnnotation {
        /**
         * Applies targeted {@link Marshalled} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<Marshalled> {
+       public static class Apply extends 
ConfigApply<Marshalled,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -182,7 +182,7 @@ public class MarshalledAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(Marshalled.class, vr);
+                       super(Marshalled.class, ContextPropertiesBuilder.class, 
vr);
                }
 
                @Override
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 aea959b..34b89ed 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
@@ -123,7 +123,7 @@ public class NamePropertyAnnotation {
        /**
         * Applies targeted {@link NameProperty} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<NameProperty> {
+       public static class Apply extends 
ConfigApply<NameProperty,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -131,7 +131,7 @@ public class NamePropertyAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(NameProperty.class, vr);
+                       super(NameProperty.class, 
ContextPropertiesBuilder.class, vr);
                }
 
                @Override
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 01fc26f..572cd8c 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
@@ -123,7 +123,7 @@ public class ParentPropertyAnnotation {
        /**
         * Applies targeted {@link ParentProperty} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<ParentProperty> {
+       public static class Apply extends 
ConfigApply<ParentProperty,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -131,7 +131,7 @@ public class ParentPropertyAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(ParentProperty.class, vr);
+                       super(ParentProperty.class, 
ContextPropertiesBuilder.class, vr);
                }
 
                @Override
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 73238bd..659acfa 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
@@ -227,7 +227,7 @@ public class SwapAnnotation {
        /**
         * Applies targeted {@link Swap} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<Swap> {
+       public static class Apply extends 
ConfigApply<Swap,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -235,7 +235,7 @@ public class SwapAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(Swap.class, vr);
+                       super(Swap.class, ContextPropertiesBuilder.class, vr);
                }
 
                @Override
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 f11e7e2..274ca79 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
@@ -146,7 +146,7 @@ public class UriAnnotation {
        /**
         * Applies targeted {@link Uri} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<Uri> {
+       public static class Apply extends 
ConfigApply<Uri,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -154,7 +154,7 @@ public class UriAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(Uri.class, vr);
+                       super(Uri.class, ContextPropertiesBuilder.class, vr);
                }
 
                @Override
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 e6a1731..50f5213 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
@@ -147,7 +147,7 @@ public class CsvAnnotation {
        /**
         * Applies targeted {@link Csv} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<Csv> {
+       public static class Apply extends 
ConfigApply<Csv,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -155,7 +155,7 @@ public class CsvAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(Csv.class, vr);
+                       super(Csv.class, ContextPropertiesBuilder.class, vr);
                }
 
                @Override
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 61bf35c..f84aa29 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
@@ -24,7 +24,7 @@ public class CsvConfigAnnotation {
        /**
         * Applies {@link CsvConfig} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<CsvConfig> {
+       public static class Apply extends 
ConfigApply<CsvConfig,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -32,7 +32,7 @@ public class CsvConfigAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(CsvConfig.class, vr);
+                       super(CsvConfig.class, ContextPropertiesBuilder.class, 
vr);
                }
 
                @Override
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 359bbf3..b644037 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
@@ -267,7 +267,7 @@ public class HtmlAnnotation {
        /**
         * Applies targeted {@link Html} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<Html> {
+       public static class Apply extends 
ConfigApply<Html,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -275,7 +275,7 @@ public class HtmlAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(Html.class, vr);
+                       super(Html.class, ContextPropertiesBuilder.class, vr);
                }
 
                @Override
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 eba219f..34b299d 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
@@ -26,7 +26,7 @@ public class HtmlConfigAnnotation {
        /**
         * Applies {@link HtmlConfig} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<HtmlConfig> {
+       public static class Apply extends 
ConfigApply<HtmlConfig,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -34,7 +34,7 @@ public class HtmlConfigAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(HtmlConfig.class, vr);
+                       super(HtmlConfig.class, ContextPropertiesBuilder.class, 
vr);
                }
 
                @Override
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 c69ec43..f38b659 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
@@ -32,7 +32,7 @@ public class HtmlDocConfigAnnotation {
        /**
         * Applies {@link HtmlDocConfig} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<HtmlDocConfig> {
+       public static class Apply extends 
ConfigApply<HtmlDocConfig,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -40,7 +40,7 @@ public class HtmlDocConfigAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(HtmlDocConfig.class, vr);
+                       super(HtmlDocConfig.class, 
ContextPropertiesBuilder.class, vr);
                }
 
                @Override
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 557fb44..df9924e 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
@@ -174,7 +174,7 @@ public class HtmlLinkAnnotation {
        /**
         * Applies targeted {@link HtmlLink} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<HtmlLink> {
+       public static class Apply extends 
ConfigApply<HtmlLink,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -182,7 +182,7 @@ public class HtmlLinkAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(HtmlLink.class, vr);
+                       super(HtmlLink.class, ContextPropertiesBuilder.class, 
vr);
                }
 
                @Override
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 67d860f..1966081 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
@@ -359,7 +359,7 @@ public class BodyAnnotation {
        /**
         * Applies targeted {@link Body} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<Body> {
+       public static class Apply extends 
ConfigApply<Body,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -367,7 +367,7 @@ public class BodyAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(Body.class, vr);
+                       super(Body.class, ContextPropertiesBuilder.class, vr);
                }
 
                @Override
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 12099cb..dcdad4a 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
@@ -1076,7 +1076,7 @@ public class FormDataAnnotation {
        /**
         * Applies targeted {@link FormData} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<FormData> {
+       public static class Apply extends 
ConfigApply<FormData,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -1084,7 +1084,7 @@ public class FormDataAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(FormData.class, vr);
+                       super(FormData.class, ContextPropertiesBuilder.class, 
vr);
                }
 
                @Override
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 dbf7a66..1fae5f4 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
@@ -1077,7 +1077,7 @@ public class HeaderAnnotation {
        /**
         * Applies targeted {@link Header} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<Header> {
+       public static class Apply extends 
ConfigApply<Header,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -1085,7 +1085,7 @@ public class HeaderAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(Header.class, vr);
+                       super(Header.class, ContextPropertiesBuilder.class, vr);
                }
 
                @Override
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 ea86089..18d945e 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
@@ -987,7 +987,7 @@ public class PathAnnotation {
        /**
         * Applies targeted {@link Path} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<Path> {
+       public static class Apply extends 
ConfigApply<Path,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -995,7 +995,7 @@ public class PathAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(Path.class, vr);
+                       super(Path.class, ContextPropertiesBuilder.class, vr);
                }
 
                @Override
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 5cae03c..19b935d 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
@@ -1076,7 +1076,7 @@ public class QueryAnnotation {
        /**
         * Applies targeted {@link Query} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<Query> {
+       public static class Apply extends 
ConfigApply<Query,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -1084,7 +1084,7 @@ public class QueryAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(Query.class, vr);
+                       super(Query.class, ContextPropertiesBuilder.class, vr);
                }
 
                @Override
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 78dc1e5..8696c9a 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
@@ -177,7 +177,7 @@ public class RequestAnnotation {
        /**
         * Applies targeted {@link Request} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<Request> {
+       public static class Apply extends 
ConfigApply<Request,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -185,7 +185,7 @@ public class RequestAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(Request.class, vr);
+                       super(Request.class, ContextPropertiesBuilder.class, 
vr);
                }
 
                @Override
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 1e4f5a3..f188c2f 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
@@ -403,7 +403,7 @@ public class ResponseAnnotation {
        /**
         * Applies targeted {@link Response} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<Response> {
+       public static class Apply extends 
ConfigApply<Response,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -411,7 +411,7 @@ public class ResponseAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(Response.class, vr);
+                       super(Response.class, ContextPropertiesBuilder.class, 
vr);
                }
 
                @Override
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 ba0df32..e60a5e0 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
@@ -141,7 +141,7 @@ public class ResponseBodyAnnotation {
        /**
         * Applies targeted {@link ResponseBody} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<ResponseBody> {
+       public static class Apply extends 
ConfigApply<ResponseBody,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -149,7 +149,7 @@ public class ResponseBodyAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(ResponseBody.class, vr);
+                       super(ResponseBody.class, 
ContextPropertiesBuilder.class, vr);
                }
 
                @Override
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 d884854..c344112 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
@@ -977,7 +977,7 @@ public class ResponseHeaderAnnotation {
        /**
         * Applies targeted {@link ResponseHeader} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<ResponseHeader> {
+       public static class Apply extends 
ConfigApply<ResponseHeader,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -985,7 +985,7 @@ public class ResponseHeaderAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(ResponseHeader.class, vr);
+                       super(ResponseHeader.class, 
ContextPropertiesBuilder.class, vr);
                }
 
                @Override
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 5502be3..b6697c9 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
@@ -141,7 +141,7 @@ public class ResponseStatusAnnotation {
        /**
         * Applies targeted {@link ResponseStatus} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<ResponseStatus> {
+       public static class Apply extends 
ConfigApply<ResponseStatus,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -149,7 +149,7 @@ public class ResponseStatusAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(ResponseStatus.class, vr);
+                       super(ResponseStatus.class, 
ContextPropertiesBuilder.class, vr);
                }
 
                @Override
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 891d7ef..3e5b938 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
@@ -147,7 +147,7 @@ public class JsoAnnotation {
        /**
         * Applies targeted {@link Jso} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<Jso> {
+       public static class Apply extends 
ConfigApply<Jso,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -155,7 +155,7 @@ public class JsoAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(Jso.class, vr);
+                       super(Jso.class, ContextPropertiesBuilder.class, vr);
                }
 
                @Override
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 9922fc9..b9ae609 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
@@ -24,7 +24,7 @@ public class JsoConfigAnnotation {
        /**
         * Applies {@link JsoConfig} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<JsoConfig> {
+       public static class Apply extends 
ConfigApply<JsoConfig,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -32,7 +32,7 @@ public class JsoConfigAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(JsoConfig.class, vr);
+                       super(JsoConfig.class, ContextPropertiesBuilder.class, 
vr);
                }
 
                @Override
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 18ad253..c8307d0 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
@@ -169,7 +169,7 @@ public class JsonAnnotation {
        /**
         * Applies targeted {@link Json} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<Json> {
+       public static class Apply extends 
ConfigApply<Json,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -177,7 +177,7 @@ public class JsonAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(Json.class, vr);
+                       super(Json.class, ContextPropertiesBuilder.class, vr);
                }
 
                @Override
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 5554326..966210e 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
@@ -27,7 +27,7 @@ public class JsonConfigAnnotation {
        /**
         * Applies {@link JsonConfig} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<JsonConfig> {
+       public static class Apply extends 
ConfigApply<JsonConfig,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -35,7 +35,7 @@ public class JsonConfigAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(JsonConfig.class, vr);
+                       super(JsonConfig.class, ContextPropertiesBuilder.class, 
vr);
                }
 
                @Override
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 4119f35..0b57279 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
@@ -28,7 +28,7 @@ public class JsonSchemaConfigAnnotation {
        /**
         * Applies {@link JsonSchemaConfig} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<JsonSchemaConfig> {
+       public static class Apply extends 
ConfigApply<JsonSchemaConfig,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -36,7 +36,7 @@ public class JsonSchemaConfigAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(JsonSchemaConfig.class, vr);
+                       super(JsonSchemaConfig.class, 
ContextPropertiesBuilder.class, vr);
                }
 
                @Override
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 5a4f1a2..6f95594 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
@@ -1280,7 +1280,7 @@ public class SchemaAnnotation {
        /**
         * Applies targeted {@link Schema} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<Schema> {
+       public static class Apply extends 
ConfigApply<Schema,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -1288,7 +1288,7 @@ public class SchemaAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(Schema.class, vr);
+                       super(Schema.class, ContextPropertiesBuilder.class, vr);
                }
 
                @Override
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 41a409b..080b328 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
@@ -147,7 +147,7 @@ public class MsgPackAnnotation {
        /**
         * Applies targeted {@link MsgPack} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<MsgPack> {
+       public static class Apply extends 
ConfigApply<MsgPack,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -155,7 +155,7 @@ public class MsgPackAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(MsgPack.class, vr);
+                       super(MsgPack.class, ContextPropertiesBuilder.class, 
vr);
                }
 
                @Override
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 530a9bf..806deb0 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
@@ -26,7 +26,7 @@ public class MsgPackConfigAnnotation {
        /**
         * Applies {@link MsgPackConfig} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<MsgPackConfig> {
+       public static class Apply extends 
ConfigApply<MsgPackConfig,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -34,7 +34,7 @@ public class MsgPackConfigAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(MsgPackConfig.class, vr);
+                       super(MsgPackConfig.class, 
ContextPropertiesBuilder.class, vr);
                }
 
                @Override
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 da4ab2f..fe92fbf 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
@@ -147,7 +147,7 @@ public class OpenApiAnnotation {
        /**
         * Applies targeted {@link OpenApi} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<OpenApi> {
+       public static class Apply extends 
ConfigApply<OpenApi,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -155,7 +155,7 @@ public class OpenApiAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(OpenApi.class, vr);
+                       super(OpenApi.class, ContextPropertiesBuilder.class, 
vr);
                }
 
                @Override
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 8148a45..d0f394b 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
@@ -26,7 +26,7 @@ public class OpenApiConfigAnnotation {
        /**
         * Applies {@link OpenApiConfig} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<OpenApiConfig> {
+       public static class Apply extends 
ConfigApply<OpenApiConfig,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -34,7 +34,7 @@ public class OpenApiConfigAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(OpenApiConfig.class, vr);
+                       super(OpenApiConfig.class, 
ContextPropertiesBuilder.class, vr);
                }
 
                @Override
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 a8284c3..d473414 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
@@ -30,7 +30,7 @@ public class ParserConfigAnnotation {
        /**
         * Applies {@link ParserConfig} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<ParserConfig> {
+       public static class Apply extends 
ConfigApply<ParserConfig,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -38,7 +38,7 @@ public class ParserConfigAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(ParserConfig.class, vr);
+                       super(ParserConfig.class, 
ContextPropertiesBuilder.class, vr);
                }
 
                @Override
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 3ea7da4..9330269 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
@@ -147,7 +147,7 @@ public class PlainTextAnnotation {
        /**
         * Applies targeted {@link PlainText} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<PlainText> {
+       public static class Apply extends 
ConfigApply<PlainText,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -155,7 +155,7 @@ public class PlainTextAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(PlainText.class, vr);
+                       super(PlainText.class, ContextPropertiesBuilder.class, 
vr);
                }
 
                @Override
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 2eea11c..7fb899a 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
@@ -24,7 +24,7 @@ public class PlainTextConfigAnnotation {
        /**
         * Applies {@link PlainTextConfig} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<PlainTextConfig> {
+       public static class Apply extends 
ConfigApply<PlainTextConfig,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -32,7 +32,7 @@ public class PlainTextConfigAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(PlainTextConfig.class, vr);
+                       super(PlainTextConfig.class, 
ContextPropertiesBuilder.class, vr);
                }
 
                @Override
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/AnnotationInfo.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/AnnotationInfo.java
index b891ce2..7be2e29 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/AnnotationInfo.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/AnnotationInfo.java
@@ -165,7 +165,7 @@ public class AnnotationInfo<T extends Annotation> {
                return om;
        }
 
-       private Constructor<? extends ConfigApply<?>> configApplyConstructor;
+       private Constructor<? extends ConfigApply<?,?>> configApplyConstructor;
 
        /**
         * If this annotation has a {@link ContextPropertiesApply} annotation, 
returns an instance of the specified {@link ConfigApply} class.
@@ -175,18 +175,18 @@ public class AnnotationInfo<T extends Annotation> {
         * @throws ExecutableException Exception occurred on invoked 
constructor/method/field.
         */
        @SuppressWarnings("unchecked")
-       public ConfigApply<Annotation> getConfigApply(VarResolverSession vrs) 
throws ExecutableException {
+       public ConfigApply<Annotation,Object> getConfigApply(VarResolverSession 
vrs) throws ExecutableException {
                try {
                        if (configApplyConstructor == null) {
                                ContextPropertiesApply cpa = 
a.annotationType().getAnnotation(ContextPropertiesApply.class);
                                if (cpa == null)
                                        configApplyConstructor = 
ConfigApply.NoOp.class.getConstructor(VarResolverSession.class);
                                else
-                                       configApplyConstructor = (Constructor<? 
extends ConfigApply<?>>)cpa.value().getConstructor(VarResolverSession.class);
+                                       configApplyConstructor = (Constructor<? 
extends ConfigApply<?,?>>)cpa.value().getConstructor(VarResolverSession.class);
                                if (configApplyConstructor == null)
                                        throw new NoSuchFieldError("Could not 
find ConfigApply constructor for annotation:\n" + toString());
                        }
-                       return (ConfigApply<Annotation>) 
configApplyConstructor.newInstance(vrs);
+                       return (ConfigApply<Annotation,Object>) 
configApplyConstructor.newInstance(vrs);
                } catch (InstantiationException | IllegalAccessException | 
IllegalArgumentException | InvocationTargetException | NoSuchMethodException | 
SecurityException e) {
                        throw new ExecutableException(e);
                }
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 b176e4d..4342bca 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
@@ -31,7 +31,7 @@ public class SerializerConfigAnnotation {
        /**
         * Applies {@link SerializerConfig} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<SerializerConfig> {
+       public static class Apply extends 
ConfigApply<SerializerConfig,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -39,7 +39,7 @@ public class SerializerConfigAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(SerializerConfig.class, vr);
+                       super(SerializerConfig.class, 
ContextPropertiesBuilder.class, vr);
                }
 
                @Override
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 873c0e2..d1ea46c 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
@@ -147,7 +147,7 @@ public class SoapXmlAnnotation {
        /**
         * Applies targeted {@link SoapXml} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<SoapXml> {
+       public static class Apply extends 
ConfigApply<SoapXml,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -155,7 +155,7 @@ public class SoapXmlAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(SoapXml.class, vr);
+                       super(SoapXml.class, ContextPropertiesBuilder.class, 
vr);
                }
 
                @Override
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 8268a34..62c4d81 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
@@ -26,7 +26,7 @@ public class SoapXmlConfigAnnotation {
        /**
         * Applies {@link SoapXmlConfig} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<SoapXmlConfig> {
+       public static class Apply extends 
ConfigApply<SoapXmlConfig,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -34,7 +34,7 @@ public class SoapXmlConfigAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(SoapXmlConfig.class, vr);
+                       super(SoapXmlConfig.class, 
ContextPropertiesBuilder.class, vr);
                }
 
                @Override
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 811fda7..ebf323f 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
@@ -147,7 +147,7 @@ public class UonAnnotation {
        /**
         * Applies targeted {@link Uon} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<Uon> {
+       public static class Apply extends 
ConfigApply<Uon,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -155,7 +155,7 @@ public class UonAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(Uon.class, vr);
+                       super(Uon.class, ContextPropertiesBuilder.class, vr);
                }
 
                @Override
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 f1f1544..0c5b4c2 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
@@ -27,7 +27,7 @@ public class UonConfigAnnotation {
        /**
         * Applies {@link UonConfig} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<UonConfig> {
+       public static class Apply extends 
ConfigApply<UonConfig,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -35,7 +35,7 @@ public class UonConfigAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(UonConfig.class, vr);
+                       super(UonConfig.class, ContextPropertiesBuilder.class, 
vr);
                }
 
                @Override
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 267f14e..0eb4ad8 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
@@ -171,7 +171,7 @@ public class UrlEncodingAnnotation {
        /**
         * Applies targeted {@link UrlEncoding} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<UrlEncoding> {
+       public static class Apply extends 
ConfigApply<UrlEncoding,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -179,7 +179,7 @@ public class UrlEncodingAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(UrlEncoding.class, vr);
+                       super(UrlEncoding.class, 
ContextPropertiesBuilder.class, vr);
                }
 
                @Override
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 e759211..e7ce9c0 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
@@ -25,7 +25,7 @@ public class UrlEncodingConfigAnnotation {
        /**
         * Applies {@link UrlEncodingConfig} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<UrlEncodingConfig> {
+       public static class Apply extends 
ConfigApply<UrlEncodingConfig,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -33,7 +33,7 @@ public class UrlEncodingConfigAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(UrlEncodingConfig.class, vr);
+                       super(UrlEncodingConfig.class, 
ContextPropertiesBuilder.class, vr);
                }
 
                @Override
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 afb34e7..575c53d 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
@@ -225,7 +225,7 @@ public class XmlAnnotation {
        /**
         * Applies targeted {@link Xml} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<Xml> {
+       public static class Apply extends 
ConfigApply<Xml,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -233,7 +233,7 @@ public class XmlAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(Xml.class, vr);
+                       super(Xml.class, ContextPropertiesBuilder.class, vr);
                }
 
                @Override
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 8b1a716..7e39308 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
@@ -28,7 +28,7 @@ public class XmlConfigAnnotation {
        /**
         * Applies {@link XmlConfig} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<XmlConfig> {
+       public static class Apply extends 
ConfigApply<XmlConfig,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -36,7 +36,7 @@ public class XmlConfigAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(XmlConfig.class, vr);
+                       super(XmlConfig.class, ContextPropertiesBuilder.class, 
vr);
                }
 
                @Override
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 5f67640..3afca38 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
@@ -1024,7 +1024,7 @@ public class RestAnnotation {
        /**
         * Applies {@link Rest} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<Rest> {
+       public static class Apply extends 
ConfigApply<Rest,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -1032,7 +1032,7 @@ public class RestAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(Rest.class, vr);
+                       super(Rest.class, ContextPropertiesBuilder.class, vr);
                }
 
                @Override
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 2de97ab..63825ca 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
@@ -439,7 +439,7 @@ public class RestDeleteAnnotation {
        /**
         * Applies {@link RestDelete} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<RestDelete> {
+       public static class Apply extends 
ConfigApply<RestDelete,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -447,7 +447,7 @@ public class RestDeleteAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(RestDelete.class, vr);
+                       super(RestDelete.class, ContextPropertiesBuilder.class, 
vr);
                }
 
                @Override
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 ae149f6..502d7a4 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
@@ -492,7 +492,7 @@ public class RestGetAnnotation {
        /**
         * Applies {@link RestGet} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<RestGet> {
+       public static class Apply extends 
ConfigApply<RestGet,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -500,7 +500,7 @@ public class RestGetAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(RestGet.class, vr);
+                       super(RestGet.class, ContextPropertiesBuilder.class, 
vr);
                }
 
                @Override
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 9b8d68a..61d927a 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
@@ -594,7 +594,7 @@ public class RestOpAnnotation {
        /**
         * Applies {@link RestOp} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<RestOp> {
+       public static class Apply extends 
ConfigApply<RestOp,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -602,7 +602,7 @@ public class RestOpAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(RestOp.class, vr);
+                       super(RestOp.class, ContextPropertiesBuilder.class, vr);
                }
 
                @Override
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 4d72b17..8d107ff 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
@@ -577,7 +577,7 @@ public class RestPostAnnotation {
        /**
         * Applies {@link RestPost} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<RestPost> {
+       public static class Apply extends 
ConfigApply<RestPost,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -585,7 +585,7 @@ public class RestPostAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(RestPost.class, vr);
+                       super(RestPost.class, ContextPropertiesBuilder.class, 
vr);
                }
 
                @Override
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 24f23c3..a13e720 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
@@ -577,7 +577,7 @@ public class RestPutAnnotation {
        /**
         * Applies {@link RestPut} annotations to a {@link 
ContextPropertiesBuilder}.
         */
-       public static class Apply extends ConfigApply<RestPut> {
+       public static class Apply extends 
ConfigApply<RestPut,ContextPropertiesBuilder> {
 
                /**
                 * Constructor.
@@ -585,7 +585,7 @@ public class RestPutAnnotation {
                 * @param vr The resolver for resolving values in annotations.
                 */
                public Apply(VarResolverSession vr) {
-                       super(RestPut.class, vr);
+                       super(RestPut.class, ContextPropertiesBuilder.class, 
vr);
                }
 
                @Override
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 dca73c0..906ed8a 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
@@ -63,9 +63,9 @@ public class ClassInfoTest {
                int value();
        }
 
-       public static class AConfigApply extends ConfigApply<AConfig> {
-               protected AConfigApply(Class<AConfig> c, VarResolverSession vr) 
{
-                       super(c, vr);
+       public static class AConfigApply extends 
ConfigApply<AConfig,ContextPropertiesBuilder> {
+               protected AConfigApply(VarResolverSession vr) {
+                       super(AConfig.class, ContextPropertiesBuilder.class, 
vr);
                }
                @Override
                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 8de1d41..ef14bb4 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
@@ -58,9 +58,9 @@ public class MethodInfoTest {
                String value();
        }
 
-       public static class AConfigApply extends ConfigApply<AConfig> {
-               protected AConfigApply(Class<AConfig> c, VarResolverSession vr) 
{
-                       super(c, vr);
+       public static class AConfigApply extends 
ConfigApply<AConfig,ContextPropertiesBuilder> {
+               protected AConfigApply(VarResolverSession vr) {
+                       super(AConfig.class, ContextPropertiesBuilder.class, 
vr);
                }
                @Override
                public void apply(AnnotationInfo<AConfig> ai, 
ContextPropertiesBuilder b) {

Reply via email to