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 4dc55bf  JUNEAU-235
4dc55bf is described below

commit 4dc55bfc62ffc9c94c3f2369f35dbbbb97818bf6
Author: JamesBognar <[email protected]>
AuthorDate: Mon May 25 09:38:44 2020 -0400

    JUNEAU-235
    
    New BeanInterceptor API for intercepting calls to getters/setters.
---
 .../org/apache/juneau/jena/RdfParserBuilder.java   |  12 +-
 .../apache/juneau/jena/RdfSerializerBuilder.java   |  12 +-
 .../java/org/apache/juneau/BeanContextBuilder.java | 129 ++++++-----
 .../src/main/java/org/apache/juneau/BeanMap.java   |  12 +-
 .../src/main/java/org/apache/juneau/BeanMeta.java  |  30 +++
 .../java/org/apache/juneau/BeanPropertyMeta.java   |   8 +
 .../org/apache/juneau/BeanTraverseBuilder.java     |  12 +-
 .../java/org/apache/juneau/annotation/Bean.java    |   8 +-
 .../apache/juneau/annotation/BeanAnnotation.java   |  12 +-
 .../org/apache/juneau/csv/CsvParserBuilder.java    |  12 +-
 .../apache/juneau/csv/CsvSerializerBuilder.java    |  12 +-
 .../juneau/html/HtmlDocSerializerBuilder.java      |  12 +-
 .../org/apache/juneau/html/HtmlParserBuilder.java  |  12 +-
 .../juneau/html/HtmlSchemaSerializerBuilder.java   |  12 +-
 .../apache/juneau/html/HtmlSerializerBuilder.java  |  12 +-
 .../html/HtmlStrippedDocSerializerBuilder.java     |  12 +-
 .../org/apache/juneau/jso/JsoParserBuilder.java    |  12 +-
 .../apache/juneau/jso/JsoSerializerBuilder.java    |  12 +-
 .../org/apache/juneau/json/JsonParserBuilder.java  |  12 +-
 .../juneau/json/JsonSchemaSerializerBuilder.java   |  12 +-
 .../apache/juneau/json/JsonSerializerBuilder.java  |  12 +-
 .../juneau/json/SimpleJsonParserBuilder.java       |  12 +-
 .../juneau/json/SimpleJsonSerializerBuilder.java   |  12 +-
 .../jsonschema/JsonSchemaGeneratorBuilder.java     |  12 +-
 .../juneau/msgpack/MsgPackParserBuilder.java       |  12 +-
 .../juneau/msgpack/MsgPackSerializerBuilder.java   |  12 +-
 .../apache/juneau/oapi/OpenApiParserBuilder.java   |  12 +-
 .../juneau/oapi/OpenApiSerializerBuilder.java      |  12 +-
 .../juneau/parser/InputStreamParserBuilder.java    |  12 +-
 .../org/apache/juneau/parser/ParserBuilder.java    |  12 +-
 .../apache/juneau/parser/ParserGroupBuilder.java   |  12 +-
 .../apache/juneau/parser/ReaderParserBuilder.java  |  12 +-
 .../juneau/plaintext/PlainTextParserBuilder.java   |  12 +-
 .../plaintext/PlainTextSerializerBuilder.java      |  12 +-
 .../serializer/OutputStreamSerializerBuilder.java  |  12 +-
 .../juneau/serializer/SerializerBuilder.java       |  12 +-
 .../juneau/serializer/SerializerGroupBuilder.java  |  12 +-
 .../juneau/serializer/WriterSerializerBuilder.java |  12 +-
 .../juneau/soap/SoapXmlSerializerBuilder.java      |  12 +-
 .../transform/AnnotationBeanFilterBuilder.java     |   4 +-
 .../org/apache/juneau/transform/BeanFilter.java    |  21 +-
 .../apache/juneau/transform/BeanFilterBuilder.java |  18 +-
 .../{PropertyFilter.java => BeanInterceptor.java}  |  65 +++---
 .../org/apache/juneau/uon/UonParserBuilder.java    |  12 +-
 .../apache/juneau/uon/UonSerializerBuilder.java    |  12 +-
 .../urlencoding/UrlEncodingParserBuilder.java      |  12 +-
 .../urlencoding/UrlEncodingSerializerBuilder.java  |  12 +-
 .../org/apache/juneau/xml/XmlParserBuilder.java    |  12 +-
 .../apache/juneau/xml/XmlSerializerBuilder.java    |  12 +-
 .../apache/juneau/rest/client2/RestClientTest.java | 235 ++++++++++++++-------
 .../juneau/rest/client2/RestClientBuilder.java     |  12 +-
 .../apache/juneau/rest/mock2/MockRestClient.java   |  12 +-
 .../org/apache/juneau/rest/RestContextBuilder.java |  12 +-
 .../juneau/rest/RestMethodContextBuilder.java      |  12 +-
 54 files changed, 590 insertions(+), 468 deletions(-)

diff --git 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserBuilder.java
 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserBuilder.java
index 143a6a7..d9476bc 100644
--- 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserBuilder.java
+++ 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserBuilder.java
@@ -877,6 +877,12 @@ public class RdfParserBuilder extends ReaderParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public RdfParserBuilder beanInterceptor(Class<?> on, Class<? extends 
org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public RdfParserBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -1117,12 +1123,6 @@ public class RdfParserBuilder extends 
ReaderParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public RdfParserBuilder propertyFilter(Class<?> on, Class<? extends 
org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public RdfParserBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java
 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java
index e303209..30296ef 100644
--- 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java
@@ -1037,6 +1037,12 @@ public class RdfSerializerBuilder extends 
WriterSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public RdfSerializerBuilder beanInterceptor(Class<?> on, Class<? 
extends org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public RdfSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -1277,12 +1283,6 @@ public class RdfSerializerBuilder extends 
WriterSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public RdfSerializerBuilder propertyFilter(Class<?> on, Class<? extends 
org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public RdfSerializerBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java
index ccd0a33..84c62bc 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java
@@ -576,6 +576,61 @@ public class BeanContextBuilder extends ContextBuilder {
        }
 
        /**
+        * Bean interceptor.
+        *
+        * <p>
+        * Bean interceptors can be used to intercept calls to getters and 
setters and alter their values in transit.
+        *
+        * <h5 class='section'>Example:</h5>
+        * <p class='bcode w800'>
+        *      <jc>// Interceptor that strips out sensitive information.</jc>
+        *      <jk>public class</jk> AddressInterceptor <jk>extends</jk> 
BeanInterceptor&lt;Address&gt; {
+        *
+        *              <jk>public</jk> Object readProperty(Address bean, 
String name, Object value) {
+        *                      <jk>if</jk> (<js>"taxInfo"</js>.equals(name))
+        *                              <jk>return</jk> <js>"redacted"</js>;
+        *                      <jk>return</jk> value;
+        *              }
+        *
+        *              <jk>public</jk> Object writeProperty(Address bean, 
String name, Object value) {
+        *                      <jk>if</jk> (<js>"taxInfo"</js>.equals(name) 
&amp;&amp; <js>"redacted"</js>.equals(value))
+        *                              <jk>return</jk> 
TaxInfoUtils.<jsm>lookup</jsm>(bean.getStreet(), bean.getCity(), 
bean.getState());
+        *                      <jk>return</jk> value;
+        *              }
+        *      }
+        *
+        *      <jc>// Our bean class.</jc>
+        *      <jk>public class</jk> Address {
+        *              <jk>public</jk> String getTaxInfo() {...}
+        *              <jk>public void</jk> setTaxInfo(String s) {...}
+        *      }
+        *
+        *      <jc>// Register filter on serializer or parser.</jc>
+        *      WriterSerializer s = JsonSerializer
+        *              .<jsm>create</jsm>()
+        *              .beanInterceptor(Address.<jk>class</jk>, 
AddressInterceptor.<jk>class</jk>)
+        *              .build();
+        *
+        *      <jc>// Produces:  {"taxInfo":"redacted"}</jc>
+        *      String json = s.serialize(<jk>new</jk> Address());
+        * </p>
+        *
+        * <ul class='seealso'>
+        *      <li class='jc'>{@link BeanInterceptor}
+        *      <li class='ja'>{@link Bean#interceptor() Bean(interceptor)}
+        * </ul>
+        *
+        * @param on The bean that the filter applies to.
+        * @param value
+        *      The new value for this property.
+        * @return This object (for method chaining).
+        */
+       @ConfigurationProperty
+       public BeanContextBuilder beanInterceptor(Class<?> on, Class<? extends 
BeanInterceptor<?>> value) {
+               return prependTo(BEAN_annotations, new 
BeanAnnotation(on).interceptor(value));
+       }
+
+       /**
         * <i><l>BeanContext</l> configuration property:</i>  BeanMap.put() 
returns old property value.
         *
         * <div class='warn'>
@@ -2889,14 +2944,28 @@ public class BeanContextBuilder extends ContextBuilder {
         *      The values to add to this property.
         *      <br>Values can consist of any of the following types:
         *      <ul>
+        *              <li>{@link Package} objects.
         *              <li>Strings.
-        *              <li>Arrays and collections of strings.
+        *              <li>Arrays and collections of anything in this list.
         *      </ul>
         * @return This object (for method chaining).
         */
        @ConfigurationProperty
        public BeanContextBuilder notBeanPackages(Object...values) {
-               return addTo(BEAN_notBeanPackages, values);
+               for (Object o : values) {
+                       if (o instanceof Package)
+                               addTo(BEAN_notBeanPackages, ((Package) 
o).getName());
+                       else if (o instanceof String)
+                               addTo(BEAN_notBeanPackages, o.toString());
+                       else if (o instanceof Collection) {
+                               for (Object o2 : (Collection<?>)o)
+                                       notBeanPackages(o2);
+                       } else if (o.getClass().isArray()) {
+                               for (int i = 0; i < Array.getLength(o); i++)
+                                       notBeanPackages(Array.get(o, i));
+                       }
+               }
+               return this;
        }
 
        /**
@@ -2942,62 +3011,6 @@ public class BeanContextBuilder extends ContextBuilder {
        }
 
        /**
-        * Property filter.
-        *
-        * <p>
-        * Property filters can be used to intercept calls to getters and 
setters and alter their values in transit.
-        *
-        * <h5 class='section'>Example:</h5>
-        * <p class='bcode w800'>
-        *      <jc>// Address filter that strips out sensitive 
information.</jc>
-        *      <jk>public class</jk> AddressPropertyFilter <jk>extends</jk> 
PropertyFilter {
-        *
-        *              <jk>public</jk> Object readProperty(Object bean, String 
name, Object value) {
-        *                      <jk>if</jk> (<js>"taxInfo"</js>.equals(name))
-        *                              <jk>return</jk> <js>"redacted"</js>;
-        *                      <jk>return</jk> value;
-        *              }
-        *
-        *              <jk>public</jk> Object writeProperty(Object bean, 
String name, Object value) {
-        *                      AddressBook a = (Address)bean;
-        *                      <jk>if</jk> (<js>"taxInfo"</js>.equals(name) 
&amp;&amp; <js>"redacted"</js>.equals(value))
-        *                              <jk>return</jk> 
TaxInfoUtils.<jsm>lookup</jsm>(a.getStreet(), a.getCity(), a.getState());
-        *                      <jk>return</jk> value;
-        *              }
-        *      }
-        *
-        *      <jc>// Our bean class.</jc>
-        *      <jk>public class</jk> Address {
-        *              <jk>public</jk> String getTaxInfo() {...}
-        *              <jk>public void</jk> setTaxInfo(String s) {...}
-        *      }
-        *
-        *      <jc>// Register filter on serializer or parser.</jc>
-        *      WriterSerializer s = JsonSerializer
-        *              .<jsm>create</jsm>()
-        *              .propertyFilter(Address.<jk>class</jk>, 
AddressPropertyFilter.<jk>class</jk>)
-        *              .build();
-        *
-        *      <jc>// Produces:  {"taxInfo":"redacted"}</jc>
-        *      String json = s.serialize(<jk>new</jk> Address());
-        * </p>
-        *
-        * <ul class='seealso'>
-        *      <li class='jc'>{@link PropertyFilter}
-        *      <li class='ja'>{@link Bean#propertyFilter() 
Bean(propertyFilter)}
-        * </ul>
-        *
-        * @param on The bean that the filter applies to.
-        * @param value
-        *      The new value for this property.
-        * @return This object (for method chaining).
-        */
-       @ConfigurationProperty
-       public BeanContextBuilder propertyFilter(Class<?> on, Class<? extends 
PropertyFilter> value) {
-               return prependTo(BEAN_annotations, new 
BeanAnnotation(on).propertyFilter(value));
-       }
-
-       /**
         * <i><l>BeanContext</l> configuration property:</i>  Bean property 
namer
         *
         * <p>
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMap.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMap.java
index aaf157b..40e8008 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMap.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMap.java
@@ -247,17 +247,15 @@ public class BeanMap<T> extends 
AbstractMap<String,Object> implements Delegate<T
                BeanPropertyMeta p = getPropertyMeta(property);
                if (p == null) {
                        if (meta.ctx.isIgnoreUnknownBeanProperties())
-                               return null;
+                               return meta.onWriteProperty(bean, property, 
null);
 
                        if (property.equals(typePropertyName))
-                               return null;
+                               return meta.onWriteProperty(bean, property, 
null);
 
                        p = getPropertyMeta("*");
                        if (p == null)
                                throw new BeanRuntimeException(meta.c, "Bean 
property ''{0}'' not found.", property);
                }
-               if (meta.beanFilter != null)
-                       value = meta.beanFilter.writeProperty(this.bean, 
property, value);
                return p.set(this, property, value);
        }
 
@@ -328,10 +326,8 @@ public class BeanMap<T> extends AbstractMap<String,Object> 
implements Delegate<T
        public Object get(Object property) {
                String pName = stringify(property);
                BeanPropertyMeta p = getPropertyMeta(pName);
-               if (p == null)
-                       return null;
-               if (meta.beanFilter != null)
-                       return meta.beanFilter.readProperty(this.bean, pName, 
p.get(this, pName));
+               if (p == null) 
+                       return meta.onReadProperty(this.bean, pName, null);
                return p.get(this, pName);
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java
index 6ea886f..3408cea 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java
@@ -972,6 +972,36 @@ public class BeanMeta<T> {
                }
        }
 
+       /**
+        * Property read interceptor.
+        * 
+        * <p>
+        * Called immediately after calling the getter to allow the value to be 
overridden.
+        *
+        * @param bean The bean from which the property was read.
+        * @param name The property name.
+        * @param value The value just extracted from calling the bean getter.
+        * @return The value to serialize.  Default is just to return the 
existing value.
+        */
+       public Object onReadProperty(Object bean, String name, Object value) {
+               return beanFilter == null ? value : 
beanFilter.readProperty(bean, name, value);
+       }
+
+       /**
+        * Property write interceptor.
+        * 
+        * <p>
+        * Called immediately before calling theh setter to allow value to be 
overwridden.
+        *
+        * @param bean The bean from which the property was read.
+        * @param name The property name.
+        * @param value The value just parsed.
+        * @return The value to serialize.  Default is just to return the 
existing value.
+        */
+       public Object onWriteProperty(Object bean, String name, Object value) {
+               return beanFilter == null ? value : 
beanFilter.writeProperty(bean, name, value);
+       }
+
        @SuppressWarnings("deprecation")
        static final String bpName(BeanProperty px, List<Beanp> p, List<Name> 
n) {
                if (px == null && p.isEmpty() && n.isEmpty())
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
index fba84c9..dfcbb1d 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
@@ -575,6 +575,10 @@ public final class BeanPropertyMeta {
         *      <br>Returns <jk>null</jk> if this is a write-only property.
         */
        public Object get(BeanMap<?> m, String pName) {
+               return m.meta.onReadProperty(m.bean, pName, getInner(m, pName));
+       }
+
+       private Object getInner(BeanMap<?> m, String pName) {
                try {
 
                        if (writeOnly)
@@ -678,6 +682,10 @@ public final class BeanPropertyMeta {
         * @throws BeanRuntimeException If property could not be set.
         */
        public Object set(BeanMap<?> m, String pName, Object value) throws 
BeanRuntimeException {
+               return setInner(m, pName, m.meta.onWriteProperty(m.bean, pName, 
value));
+       }
+
+       private Object setInner(BeanMap<?> m, String pName, Object value) 
throws BeanRuntimeException {
                try {
 
                        if (readOnly)
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseBuilder.java
index 59e8e25..34d63e7 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseBuilder.java
@@ -347,6 +347,12 @@ public class BeanTraverseBuilder extends 
BeanContextBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public BeanTraverseBuilder beanInterceptor(Class<?> on, Class<? extends 
org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public BeanTraverseBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -587,12 +593,6 @@ public class BeanTraverseBuilder extends 
BeanContextBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public BeanTraverseBuilder propertyFilter(Class<?> on, Class<? extends 
org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public BeanTraverseBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Bean.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Bean.java
index 2ad5677..19ecad0 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Bean.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Bean.java
@@ -305,16 +305,16 @@ public @interface Bean {
        @Deprecated String properties() default "";
 
        /**
-        * Property filter.
+        * Bean property interceptor.
         *
         * <p>
-        * Property filters can be used to intercept calls to getters and 
setters and alter their values in transit.
+        * Bean interceptors can be used to intercept calls to getters and 
setters and alter their values in transit.
         *
         * <ul class='seealso'>
-        *      <li class='jc'>{@link PropertyFilter}
+        *      <li class='jc'>{@link BeanInterceptor}
         * </ul>
         */
-       Class<? extends PropertyFilter> propertyFilter() default 
PropertyFilter.class;
+       Class<? extends BeanInterceptor<?>> interceptor() default 
BeanInterceptor.Default.class;
 
        /**
         * Associates a {@link PropertyNamer} with this bean to tailor the 
names of the bean properties.
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 0538e48..ccb55d9 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
@@ -34,8 +34,8 @@ public class BeanAnnotation implements Bean {
        private Class<?>
                interfaceClass = Object.class,
                stopClass = Object.class;
-       private Class<? extends PropertyFilter>
-               propertyFilter = PropertyFilter.class;
+       private Class<? extends BeanInterceptor<?>>
+               interceptor = BeanInterceptor.Default.class;
        private Class<? extends PropertyNamer>
                propertyNamer = PropertyNamerDefault.class;
        private String
@@ -262,8 +262,8 @@ public class BeanAnnotation implements Bean {
        }
 
        @Override
-       public Class<? extends PropertyFilter> propertyFilter() {
-               return propertyFilter;
+       public Class<? extends BeanInterceptor<?>> interceptor() {
+               return interceptor;
        }
 
        /**
@@ -272,8 +272,8 @@ public class BeanAnnotation implements Bean {
         * @param value The new value for this property.
         * @return This object (for method chaining).
         */
-       public BeanAnnotation propertyFilter(Class<? extends PropertyFilter> 
value) {
-               this.propertyFilter = value;
+       public BeanAnnotation interceptor(Class<? extends BeanInterceptor<?>> 
value) {
+               this.interceptor = value;
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParserBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParserBuilder.java
index f325aeb..9695c9a 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParserBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParserBuilder.java
@@ -158,6 +158,12 @@ public class CsvParserBuilder extends ReaderParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public CsvParserBuilder beanInterceptor(Class<?> on, Class<? extends 
org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public CsvParserBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -398,12 +404,6 @@ public class CsvParserBuilder extends ReaderParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public CsvParserBuilder propertyFilter(Class<?> on, Class<? extends 
org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public CsvParserBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializerBuilder.java
index fac9829..ee130ac 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializerBuilder.java
@@ -158,6 +158,12 @@ public class CsvSerializerBuilder extends 
WriterSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public CsvSerializerBuilder beanInterceptor(Class<?> on, Class<? 
extends org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public CsvSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -398,12 +404,6 @@ public class CsvSerializerBuilder extends 
WriterSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public CsvSerializerBuilder propertyFilter(Class<?> on, Class<? extends 
org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public CsvSerializerBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializerBuilder.java
index f5901b2..2386450 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializerBuilder.java
@@ -684,6 +684,12 @@ public class HtmlDocSerializerBuilder extends 
HtmlStrippedDocSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public HtmlDocSerializerBuilder beanInterceptor(Class<?> on, Class<? 
extends org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public HtmlDocSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -924,12 +930,6 @@ public class HtmlDocSerializerBuilder extends 
HtmlStrippedDocSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public HtmlDocSerializerBuilder propertyFilter(Class<?> on, Class<? 
extends org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public HtmlDocSerializerBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserBuilder.java
index e8e0002..a4cfd25 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserBuilder.java
@@ -161,6 +161,12 @@ public class HtmlParserBuilder extends XmlParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public HtmlParserBuilder beanInterceptor(Class<?> on, Class<? extends 
org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public HtmlParserBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -401,12 +407,6 @@ public class HtmlParserBuilder extends XmlParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public HtmlParserBuilder propertyFilter(Class<?> on, Class<? extends 
org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public HtmlParserBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSchemaSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSchemaSerializerBuilder.java
index dec67cc..a656100 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSchemaSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSchemaSerializerBuilder.java
@@ -379,6 +379,12 @@ public class HtmlSchemaSerializerBuilder extends 
HtmlSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public HtmlSchemaSerializerBuilder beanInterceptor(Class<?> on, Class<? 
extends org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public HtmlSchemaSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -619,12 +625,6 @@ public class HtmlSchemaSerializerBuilder extends 
HtmlSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public HtmlSchemaSerializerBuilder propertyFilter(Class<?> on, Class<? 
extends org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public HtmlSchemaSerializerBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerBuilder.java
index 4293a19..6813a31 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerBuilder.java
@@ -310,6 +310,12 @@ public class HtmlSerializerBuilder extends 
XmlSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public HtmlSerializerBuilder beanInterceptor(Class<?> on, Class<? 
extends org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public HtmlSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -550,12 +556,6 @@ public class HtmlSerializerBuilder extends 
XmlSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public HtmlSerializerBuilder propertyFilter(Class<?> on, Class<? 
extends org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public HtmlSerializerBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializerBuilder.java
index 780682c..ea69940 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlStrippedDocSerializerBuilder.java
@@ -158,6 +158,12 @@ public class HtmlStrippedDocSerializerBuilder extends 
HtmlSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public HtmlStrippedDocSerializerBuilder beanInterceptor(Class<?> on, 
Class<? extends org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public HtmlStrippedDocSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -398,12 +404,6 @@ public class HtmlStrippedDocSerializerBuilder extends 
HtmlSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public HtmlStrippedDocSerializerBuilder propertyFilter(Class<?> on, 
Class<? extends org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public HtmlStrippedDocSerializerBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoParserBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoParserBuilder.java
index d6e316f..8a68a9c 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoParserBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoParserBuilder.java
@@ -157,6 +157,12 @@ public class JsoParserBuilder extends 
InputStreamParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public JsoParserBuilder beanInterceptor(Class<?> on, Class<? extends 
org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public JsoParserBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -397,12 +403,6 @@ public class JsoParserBuilder extends 
InputStreamParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public JsoParserBuilder propertyFilter(Class<?> on, Class<? extends 
org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public JsoParserBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializerBuilder.java
index 68a579e..350c5e6 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializerBuilder.java
@@ -157,6 +157,12 @@ public class JsoSerializerBuilder extends 
OutputStreamSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public JsoSerializerBuilder beanInterceptor(Class<?> on, Class<? 
extends org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public JsoSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -397,12 +403,6 @@ public class JsoSerializerBuilder extends 
OutputStreamSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public JsoSerializerBuilder propertyFilter(Class<?> on, Class<? extends 
org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public JsoSerializerBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParserBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParserBuilder.java
index cf850b1..b1c33a1 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParserBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParserBuilder.java
@@ -192,6 +192,12 @@ public class JsonParserBuilder extends ReaderParserBuilder 
{
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public JsonParserBuilder beanInterceptor(Class<?> on, Class<? extends 
org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public JsonParserBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -432,12 +438,6 @@ public class JsonParserBuilder extends ReaderParserBuilder 
{
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public JsonParserBuilder propertyFilter(Class<?> on, Class<? extends 
org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public JsonParserBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSchemaSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSchemaSerializerBuilder.java
index dce43be..91fa00f 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSchemaSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSchemaSerializerBuilder.java
@@ -378,6 +378,12 @@ public class JsonSchemaSerializerBuilder extends 
JsonSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public JsonSchemaSerializerBuilder beanInterceptor(Class<?> on, Class<? 
extends org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public JsonSchemaSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -618,12 +624,6 @@ public class JsonSchemaSerializerBuilder extends 
JsonSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public JsonSchemaSerializerBuilder propertyFilter(Class<?> on, Class<? 
extends org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public JsonSchemaSerializerBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializerBuilder.java
index fbeb070..5872056 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializerBuilder.java
@@ -241,6 +241,12 @@ public class JsonSerializerBuilder extends 
WriterSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public JsonSerializerBuilder beanInterceptor(Class<?> on, Class<? 
extends org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public JsonSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -481,12 +487,6 @@ public class JsonSerializerBuilder extends 
WriterSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public JsonSerializerBuilder propertyFilter(Class<?> on, Class<? 
extends org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public JsonSerializerBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/SimpleJsonParserBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/SimpleJsonParserBuilder.java
index bb95ce5..007fdc0 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/SimpleJsonParserBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/SimpleJsonParserBuilder.java
@@ -157,6 +157,12 @@ public class SimpleJsonParserBuilder extends 
JsonParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public SimpleJsonParserBuilder beanInterceptor(Class<?> on, Class<? 
extends org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public SimpleJsonParserBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -397,12 +403,6 @@ public class SimpleJsonParserBuilder extends 
JsonParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public SimpleJsonParserBuilder propertyFilter(Class<?> on, Class<? 
extends org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public SimpleJsonParserBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/SimpleJsonSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/SimpleJsonSerializerBuilder.java
index 9a55a9d..ffd1385 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/SimpleJsonSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/SimpleJsonSerializerBuilder.java
@@ -157,6 +157,12 @@ public class SimpleJsonSerializerBuilder extends 
JsonSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public SimpleJsonSerializerBuilder beanInterceptor(Class<?> on, Class<? 
extends org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public SimpleJsonSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -397,12 +403,6 @@ public class SimpleJsonSerializerBuilder extends 
JsonSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public SimpleJsonSerializerBuilder propertyFilter(Class<?> on, Class<? 
extends org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public SimpleJsonSerializerBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorBuilder.java
index fa3cd27..d1aa59c 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorBuilder.java
@@ -408,6 +408,12 @@ public class JsonSchemaGeneratorBuilder extends 
BeanTraverseBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public JsonSchemaGeneratorBuilder beanInterceptor(Class<?> on, Class<? 
extends org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public JsonSchemaGeneratorBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -648,12 +654,6 @@ public class JsonSchemaGeneratorBuilder extends 
BeanTraverseBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public JsonSchemaGeneratorBuilder propertyFilter(Class<?> on, Class<? 
extends org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public JsonSchemaGeneratorBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParserBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParserBuilder.java
index 5386399..4ee560a 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParserBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParserBuilder.java
@@ -157,6 +157,12 @@ public class MsgPackParserBuilder extends 
InputStreamParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public MsgPackParserBuilder beanInterceptor(Class<?> on, Class<? 
extends org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public MsgPackParserBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -397,12 +403,6 @@ public class MsgPackParserBuilder extends 
InputStreamParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MsgPackParserBuilder propertyFilter(Class<?> on, Class<? extends 
org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public MsgPackParserBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerBuilder.java
index 63ec218..6f692a2 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerBuilder.java
@@ -157,6 +157,12 @@ public class MsgPackSerializerBuilder extends 
OutputStreamSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public MsgPackSerializerBuilder beanInterceptor(Class<?> on, Class<? 
extends org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public MsgPackSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -397,12 +403,6 @@ public class MsgPackSerializerBuilder extends 
OutputStreamSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MsgPackSerializerBuilder propertyFilter(Class<?> on, Class<? 
extends org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public MsgPackSerializerBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiParserBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiParserBuilder.java
index b0b20e8..fd3aff7 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiParserBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiParserBuilder.java
@@ -273,6 +273,12 @@ public class OpenApiParserBuilder extends UonParserBuilder 
{
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public OpenApiParserBuilder beanInterceptor(Class<?> on, Class<? 
extends org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public OpenApiParserBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -513,12 +519,6 @@ public class OpenApiParserBuilder extends UonParserBuilder 
{
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public OpenApiParserBuilder propertyFilter(Class<?> on, Class<? extends 
org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public OpenApiParserBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiSerializerBuilder.java
index a652189..e408a4a 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/OpenApiSerializerBuilder.java
@@ -284,6 +284,12 @@ public class OpenApiSerializerBuilder extends 
UonSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public OpenApiSerializerBuilder beanInterceptor(Class<?> on, Class<? 
extends org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public OpenApiSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -524,12 +530,6 @@ public class OpenApiSerializerBuilder extends 
UonSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public OpenApiSerializerBuilder propertyFilter(Class<?> on, Class<? 
extends org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public OpenApiSerializerBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/InputStreamParserBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/InputStreamParserBuilder.java
index b7ac602..b391cd4 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/InputStreamParserBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/InputStreamParserBuilder.java
@@ -202,6 +202,12 @@ public class InputStreamParserBuilder extends 
ParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public InputStreamParserBuilder beanInterceptor(Class<?> on, Class<? 
extends org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public InputStreamParserBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -442,12 +448,6 @@ public class InputStreamParserBuilder extends 
ParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public InputStreamParserBuilder propertyFilter(Class<?> on, Class<? 
extends org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public InputStreamParserBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserBuilder.java
index 5117721..13e6f1e 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserBuilder.java
@@ -490,6 +490,12 @@ public class ParserBuilder extends BeanContextBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public ParserBuilder beanInterceptor(Class<?> on, Class<? extends 
org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public ParserBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -730,12 +736,6 @@ public class ParserBuilder extends BeanContextBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public ParserBuilder propertyFilter(Class<?> on, Class<? extends 
org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public ParserBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroupBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroupBuilder.java
index 5b38d04..6948a77 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroupBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroupBuilder.java
@@ -475,6 +475,12 @@ public class ParserGroupBuilder extends BeanContextBuilder 
{
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public ParserGroupBuilder beanInterceptor(Class<?> on, Class<? extends 
org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public ParserGroupBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -715,12 +721,6 @@ public class ParserGroupBuilder extends BeanContextBuilder 
{
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public ParserGroupBuilder propertyFilter(Class<?> on, Class<? extends 
org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public ParserGroupBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParserBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParserBuilder.java
index a052e8f..6f5c534 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParserBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParserBuilder.java
@@ -225,6 +225,12 @@ public abstract class ReaderParserBuilder extends 
ParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public ReaderParserBuilder beanInterceptor(Class<?> on, Class<? extends 
org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public ReaderParserBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -465,12 +471,6 @@ public abstract class ReaderParserBuilder extends 
ParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public ReaderParserBuilder propertyFilter(Class<?> on, Class<? extends 
org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public ReaderParserBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextParserBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextParserBuilder.java
index 8569329..506375d 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextParserBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextParserBuilder.java
@@ -158,6 +158,12 @@ public class PlainTextParserBuilder extends 
ReaderParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public PlainTextParserBuilder beanInterceptor(Class<?> on, Class<? 
extends org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public PlainTextParserBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -398,12 +404,6 @@ public class PlainTextParserBuilder extends 
ReaderParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public PlainTextParserBuilder propertyFilter(Class<?> on, Class<? 
extends org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public PlainTextParserBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextSerializerBuilder.java
index 6ec338d..5681078 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextSerializerBuilder.java
@@ -158,6 +158,12 @@ public class PlainTextSerializerBuilder extends 
WriterSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public PlainTextSerializerBuilder beanInterceptor(Class<?> on, Class<? 
extends org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public PlainTextSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -398,12 +404,6 @@ public class PlainTextSerializerBuilder extends 
WriterSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public PlainTextSerializerBuilder propertyFilter(Class<?> on, Class<? 
extends org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public PlainTextSerializerBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializerBuilder.java
index a398992..b996372 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializerBuilder.java
@@ -205,6 +205,12 @@ public class OutputStreamSerializerBuilder extends 
SerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public OutputStreamSerializerBuilder beanInterceptor(Class<?> on, 
Class<? extends org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public OutputStreamSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -445,12 +451,6 @@ public class OutputStreamSerializerBuilder extends 
SerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public OutputStreamSerializerBuilder propertyFilter(Class<?> on, 
Class<? extends org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public OutputStreamSerializerBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerBuilder.java
index de532f9..ce7bef9 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerBuilder.java
@@ -796,6 +796,12 @@ public class SerializerBuilder extends BeanTraverseBuilder 
{
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public SerializerBuilder beanInterceptor(Class<?> on, Class<? extends 
org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public SerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -1036,12 +1042,6 @@ public class SerializerBuilder extends 
BeanTraverseBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public SerializerBuilder propertyFilter(Class<?> on, Class<? extends 
org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public SerializerBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroupBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroupBuilder.java
index fc8c1e2..4923e5c 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroupBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroupBuilder.java
@@ -753,6 +753,12 @@ public class SerializerGroupBuilder extends 
BeanTraverseBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public SerializerGroupBuilder beanInterceptor(Class<?> on, Class<? 
extends org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public SerializerGroupBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -993,12 +999,6 @@ public class SerializerGroupBuilder extends 
BeanTraverseBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public SerializerGroupBuilder propertyFilter(Class<?> on, Class<? 
extends org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public SerializerGroupBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializerBuilder.java
index ad19439..f00dacb 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializerBuilder.java
@@ -419,6 +419,12 @@ public class WriterSerializerBuilder extends 
SerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public WriterSerializerBuilder beanInterceptor(Class<?> on, Class<? 
extends org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public WriterSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -659,12 +665,6 @@ public class WriterSerializerBuilder extends 
SerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public WriterSerializerBuilder propertyFilter(Class<?> on, Class<? 
extends org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public WriterSerializerBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializerBuilder.java
index 5ee6d0e..60e775d 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializerBuilder.java
@@ -178,6 +178,12 @@ public class SoapXmlSerializerBuilder extends 
XmlSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public SoapXmlSerializerBuilder beanInterceptor(Class<?> on, Class<? 
extends org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public SoapXmlSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -418,12 +424,6 @@ public class SoapXmlSerializerBuilder extends 
XmlSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public SoapXmlSerializerBuilder propertyFilter(Class<?> on, Class<? 
extends org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public SoapXmlSerializerBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/AnnotationBeanFilterBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/AnnotationBeanFilterBuilder.java
index 69dfbf4..fcf3c6e 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/AnnotationBeanFilterBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/AnnotationBeanFilterBuilder.java
@@ -85,8 +85,8 @@ public final class AnnotationBeanFilterBuilder<T> extends 
BeanFilterBuilder<T> {
                        if (b.dictionary().length > 0)
                                dictionary(b.dictionary());
 
-                       if (b.propertyFilter() != PropertyFilter.class)
-                               propertyFilter(b.propertyFilter());
+                       if (b.interceptor() != BeanInterceptor.Default.class)
+                               interceptor(b.interceptor());
                }
        }
 }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BeanFilter.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BeanFilter.java
index e8fb305..76ad550 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BeanFilter.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BeanFilter.java
@@ -42,7 +42,8 @@ public final class BeanFilter {
        private final boolean sortProperties, fluentSetters;
        private final String typeName;
        private final Class<?>[] beanDictionary;
-       private final PropertyFilter propertyFilter;
+       @SuppressWarnings("rawtypes")
+       private final BeanInterceptor interceptor;
 
        /**
         * Constructor.
@@ -63,10 +64,10 @@ public final class BeanFilter {
                        builder.dictionary == null
                        ? null
                        : builder.dictionary.toArray(new 
Class<?>[builder.dictionary.size()]);
-               this.propertyFilter =
-                       builder.propertyFilter == null
-                       ? PropertyFilter.DEFAULT
-                       : castOrCreate(PropertyFilter.class, 
builder.propertyFilter);
+               this.interceptor =
+                       builder.interceptor == null
+                       ? BeanInterceptor.DEFAULT
+                       : castOrCreate(BeanInterceptor.class, 
builder.interceptor);
        }
 
        /**
@@ -195,26 +196,28 @@ public final class BeanFilter {
        }
 
        /**
-        * Calls the {@link PropertyFilter#readProperty(Object, String, 
Object)} method on the registered property filters.
+        * Calls the {@link BeanInterceptor#readProperty(Object, String, 
Object)} method on the registered property filters.
         *
         * @param bean The bean from which the property was read.
         * @param name The property name.
         * @param value The value just extracted from calling the bean getter.
         * @return The value to serialize.  Default is just to return the 
existing value.
         */
+       @SuppressWarnings("unchecked")
        public Object readProperty(Object bean, String name, Object value) {
-               return propertyFilter.readProperty(bean, name, value);
+               return interceptor.readProperty(bean, name, value);
        }
 
        /**
-        * Calls the {@link PropertyFilter#writeProperty(Object, String, 
Object)} method on the registered property filters.
+        * Calls the {@link BeanInterceptor#writeProperty(Object, String, 
Object)} method on the registered property filters.
         *
         * @param bean The bean from which the property was read.
         * @param name The property name.
         * @param value The value just parsed.
         * @return The value to serialize.  Default is just to return the 
existing value.
         */
+       @SuppressWarnings("unchecked")
        public Object writeProperty(Object bean, String name, Object value) {
-               return propertyFilter.writeProperty(bean, name, value);
+               return interceptor.writeProperty(bean, name, value);
        }
 }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BeanFilterBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BeanFilterBuilder.java
index 9ec5ab8..59de051 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BeanFilterBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BeanFilterBuilder.java
@@ -70,7 +70,7 @@ public class BeanFilterBuilder<T> {
        boolean sortProperties, fluentSetters;
        Object propertyNamer;
        List<Class<?>> dictionary;
-       Object propertyFilter;
+       Object interceptor;
 
        /**
         * Constructor.
@@ -702,10 +702,10 @@ public class BeanFilterBuilder<T> {
        }
 
        /**
-        * Configuration property:  Property filter.
+        * Configuration property:  Bean interceptor.
         *
         * <p>
-        * The property filter to use for intercepting and altering getter and 
setter calls.
+        * The interceptor to use for intercepting and altering getter and 
setter calls.
         *
         * <h5 class='section'>Example:</h5>
         * <p class='bcode w800'>
@@ -713,7 +713,7 @@ public class BeanFilterBuilder<T> {
         *      <jk>public class</jk> MyFilter <jk>extends</jk> 
BeanFilterBuilder&lt;MyBean&gt; {
         *              <jk>public</jk> MyFilter() {
         *                      <jc>// Our bean contains generic collections of 
Foo and Bar objects.</jc>
-        *                      
propertyFilter(AddressPropertyFilter.<jk>class</jk>);
+        *                      interceptor(AddressInterceptor.<jk>class</jk>);
         *              }
         *      }
         *
@@ -725,17 +725,17 @@ public class BeanFilterBuilder<T> {
         * </p>
         *
         * <ul class='seealso'>
-        *      <li class='ja'>{@link Bean#propertyFilter()}
-        *      <li class='jc'>{@link PropertyFilter}
+        *      <li class='ja'>{@link Bean#interceptor()}
+        *      <li class='jc'>{@link BeanInterceptor}
         * </ul>
         *
         * @param value
         *      The new value for this setting.
-        *      <br>The default value is {@link PropertyFilter}.
+        *      <br>The default value is {@link BeanInterceptor}.
         * @return This object (for method chaining).
         */
-       public BeanFilterBuilder<T> propertyFilter(Class<? extends 
PropertyFilter> value) {
-               this.propertyFilter = value;
+       public BeanFilterBuilder<T> interceptor(Class<?> value) {
+               this.interceptor = value;
                return this;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/PropertyFilter.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BeanInterceptor.java
similarity index 63%
rename from 
juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/PropertyFilter.java
rename to 
juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BeanInterceptor.java
index 39c8360..9493297 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/PropertyFilter.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BeanInterceptor.java
@@ -13,73 +13,59 @@
 package org.apache.juneau.transform;
 
 /**
- * Bean property filter.
+ * Bean interceptor.
  *
  * <p>
- * Registers a bean property filter with a bean class.
- *
- * <p>
- * Property filters can be used to intercept calls to getters and setters and 
alter their values in transit.
+ * Bean interceptors intercept calls to bean getters and setters to allow them 
to override values in transit.
  *
  * <h5 class='section'>Example:</h5>
  * <p class='bcode w800'>
- *     <jc>// Property filter that strips out sensitive information on Address 
beans.</jc>
- *     <jk>public class</jk> AddressPropertyFilter <jk>extends</jk> 
PropertyFilter {
+ *     <jc>// Interceptor that strips out sensitive information on Address 
beans.</jc>
+ *     <jk>public class</jk> AddressInterceptor <jk>extends</jk> 
BeanInterceptor&lt;Address&gt; {
  *
  *             <ja>@Override</ja>
- *             <jk>public</jk> Object readProperty(Object bean, String name, 
Object value) {
+ *             <jk>public</jk> Object readProperty(Address bean, String name, 
Object value) {
  *                     <jk>if</jk> (<js>"taxInfo"</js>.equals(name))
  *                             <jk>return</jk> <js>"redacted"</js>;
  *                     <jk>return</jk> value;
  *             }
  *
  *             <ja>@Override</ja>
- *             <jk>public</jk> Object writeProperty(Object bean, String name, 
Object value) {
- *                     AddressBook a = (Address)bean;
+ *             <jk>public</jk> Object writeProperty(Address bean, String name, 
Object value) {
  *                     <jk>if</jk> (<js>"taxInfo"</js>.equals(name) &amp;&amp; 
<js>"redacted"</js>.equals(value))
- *                             <jk>return</jk> 
TaxInfoUtils.<jsm>lookup</jsm>(a.getStreet(), a.getCity(), a.getState());
+ *                             <jk>return</jk> 
TaxInfoUtils.<jsm>lookup</jsm>(bean.getStreet(), bean.getCity(), 
bean.getState());
  *                     <jk>return</jk> value;
  *             }
  *     }
  * </p>
  *
  * <p>
- * Property filters are registered in the following ways:
+ * Bean interceptors are registered in the following way:
  * <ul class='javatree'>
- *     <li class='ja'>{@link 
org.apache.juneau.annotation.Bean#propertyFilter() @Bean(propertyFilter)}
- *     <li class='jm'>{@link 
org.apache.juneau.transform.BeanFilterBuilder#propertyFilter(Class)}
+ *     <li class='ja'>{@link org.apache.juneau.annotation.Bean#interceptor() 
@Bean(interceptor)}
+ *     <li class='jm'>{@link 
org.apache.juneau.BeanContextBuilder#beanInterceptor(Class,Class)}
  * </ul>
  *
  * <h5 class='section'>Example:</h5>
  * <p class='bcode w800'>
- *     <jc>// Register filter on bean class.</jc>
- *     <ja>@Bean</ja>(propertyFilter=AddressPropertyFilter.<jk>class</jk>)
+ *     <jc>// Register interceptor on bean class.</jc>
+ *     <ja>@Bean</ja>(interceptor=AddressInterceptor.<jk>class</jk>)
  *     <jk>public class</jk> Address {
  *             <jk>public</jk> String getTaxInfo() {...}
  *             <jk>public void</jk> setTaxInfo(String s) {...}
  *     }
- *
- *     <jc>// Or define a bean filter.</jc>
- *     <jk>public class</jk> MyFilter <jk>extends</jk> 
BeanFilterBuilder&lt;Address&gt; {
- *             <jk>public</jk> MyFilter() {
- *                     <jc>// Our bean contains generic collections of Foo and 
Bar objects.</jc>
- *                     propertyFilter(AddressPropertyFilter.<jk>class</jk>);
- *             }
- *     }
- *
- *     <jc>// Register filter on serializer or parser.</jc>
- *     WriterSerializer s = JsonSerializer
- *             .<jsm>create</jsm>()
- *             .beanFilters(MyFilter.<jk>class</jk>)
- *             .build();
  * </p>
+ * @param <T> The bean type.
  */
-public class PropertyFilter {
+public class BeanInterceptor<T> {
+
+       /** Default interceptor */
+       public static class Default extends BeanInterceptor<Object> {}
 
        /**
         * Default reusable property filter instance.
         */
-       public static final PropertyFilter DEFAULT = new PropertyFilter();
+       public static final BeanInterceptor<Object> DEFAULT = new Default();
 
        /**
         * Property read interceptor.
@@ -90,9 +76,9 @@ public class PropertyFilter {
         * <h5 class='section'>Example:</h5>
         * <p class='bcode w800'>
         *      <jc>// Address filter that strips out sensitive 
information.</jc>
-        *      <jk>public class</jk> AddressPropertyFilter <jk>extends</jk> 
PropertyFilter {
+        *      <jk>public class</jk> AddressInterceptor <jk>extends</jk> 
BeanInterceptor&lt;Address&gt; {
         *
-        *              <jk>public</jk> Object readProperty(Object bean, String 
name, Object value) {
+        *              <jk>public</jk> Object readProperty(Address bean, 
String name, Object value) {
         *                      <jk>if</jk> (<js>"taxInfo"</js>.equals(name))
         *                              <jk>return</jk> <js>"redacted"</js>;
         *                      <jk>return</jk> value;
@@ -105,7 +91,7 @@ public class PropertyFilter {
         * @param value The value just extracted from calling the bean getter.
         * @return The value to serialize.  Default is just to return the 
existing value.
         */
-       public Object readProperty(Object bean, String name, Object value) {
+       public Object readProperty(T bean, String name, Object value) {
                return value;
        }
 
@@ -119,12 +105,11 @@ public class PropertyFilter {
         * <h5 class='section'>Example:</h5>
         * <p class='bcode w800'>
         *      <jc>// Address filter that strips out sensitive 
information.</jc>
-        *      <jk>public class</jk> AddressPropertyFilter <jk>extends</jk> 
PropertyFilter {
+        *      <jk>public class</jk> AddressInterceptor <jk>extends</jk> 
BeanInterceptor&lt;Address&gt; {
         *
-        *              <jk>public</jk> Object writeProperty(Object bean, 
String name, Object value) {
-        *                      AddressBook a = (Address)bean;
+        *              <jk>public</jk> Object writeProperty(Address bean, 
String name, Object value) {
         *                      <jk>if</jk> (<js>"taxInfo"</js>.equals(name) 
&amp;&amp; <js>"redacted"</js>.equals(value))
-        *                              <jk>return</jk> 
TaxInfoUtils.<jsm>lookup</jsm>(a.getStreet(), a.getCity(), a.getState());
+        *                              <jk>return</jk> 
TaxInfoUtils.<jsm>lookup</jsm>(bean.getStreet(), bean.getCity(), 
bean.getState());
         *                      <jk>return</jk> value;
         *              }
         *      }
@@ -135,7 +120,7 @@ public class PropertyFilter {
         * @param value The value just parsed.
         * @return The value to serialize.  Default is just to return the 
existing value.
         */
-       public Object writeProperty(Object bean, String name, Object value) {
+       public Object writeProperty(T bean, String name, Object value) {
                return value;
        }
 }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserBuilder.java
index 738c187..71638a2 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserBuilder.java
@@ -231,6 +231,12 @@ public class UonParserBuilder extends ReaderParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public UonParserBuilder beanInterceptor(Class<?> on, Class<? extends 
org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public UonParserBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -471,12 +477,6 @@ public class UonParserBuilder extends ReaderParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public UonParserBuilder propertyFilter(Class<?> on, Class<? extends 
org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public UonParserBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializerBuilder.java
index 9e6a2da..18b8fb4 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializerBuilder.java
@@ -338,6 +338,12 @@ public class UonSerializerBuilder extends 
WriterSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public UonSerializerBuilder beanInterceptor(Class<?> on, Class<? 
extends org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public UonSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -578,12 +584,6 @@ public class UonSerializerBuilder extends 
WriterSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public UonSerializerBuilder propertyFilter(Class<?> on, Class<? extends 
org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public UonSerializerBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserBuilder.java
index c6cb04a..4c3b154 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserBuilder.java
@@ -192,6 +192,12 @@ public class UrlEncodingParserBuilder extends 
UonParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public UrlEncodingParserBuilder beanInterceptor(Class<?> on, Class<? 
extends org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public UrlEncodingParserBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -432,12 +438,6 @@ public class UrlEncodingParserBuilder extends 
UonParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public UrlEncodingParserBuilder propertyFilter(Class<?> on, Class<? 
extends org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public UrlEncodingParserBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.java
index 21d21c1..4672e29 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.java
@@ -192,6 +192,12 @@ public class UrlEncodingSerializerBuilder extends 
UonSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public UrlEncodingSerializerBuilder beanInterceptor(Class<?> on, 
Class<? extends org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public UrlEncodingSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -432,12 +438,6 @@ public class UrlEncodingSerializerBuilder extends 
UonSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public UrlEncodingSerializerBuilder propertyFilter(Class<?> on, Class<? 
extends org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public UrlEncodingSerializerBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserBuilder.java
index 6058623..975a8ad 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserBuilder.java
@@ -334,6 +334,12 @@ public class XmlParserBuilder extends ReaderParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public XmlParserBuilder beanInterceptor(Class<?> on, Class<? extends 
org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public XmlParserBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -574,12 +580,6 @@ public class XmlParserBuilder extends ReaderParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public XmlParserBuilder propertyFilter(Class<?> on, Class<? extends 
org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public XmlParserBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerBuilder.java
index 8c886d5..8622216 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerBuilder.java
@@ -371,6 +371,12 @@ public class XmlSerializerBuilder extends 
WriterSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public XmlSerializerBuilder beanInterceptor(Class<?> on, Class<? 
extends org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public XmlSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -611,12 +617,6 @@ public class XmlSerializerBuilder extends 
WriterSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public XmlSerializerBuilder propertyFilter(Class<?> on, Class<? extends 
org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public XmlSerializerBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java
 
b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java
index 5951ecc..b5999dd 100644
--- 
a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java
+++ 
b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java
@@ -30,7 +30,6 @@ import org.apache.http.client.methods.*;
 import org.apache.http.impl.client.*;
 import org.apache.http.protocol.*;
 import org.apache.juneau.*;
-import org.apache.juneau.Visibility;
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.collections.*;
 import org.apache.juneau.http.*;
@@ -49,6 +48,7 @@ import org.apache.juneau.rest.client2.RestRequest;
 import org.apache.juneau.rest.client2.RestResponse;
 import org.apache.juneau.rest.mock2.*;
 import org.apache.juneau.serializer.*;
+import org.apache.juneau.transform.*;
 import org.apache.juneau.xml.*;
 import org.junit.*;
 import org.junit.runners.*;
@@ -3653,79 +3653,166 @@ public class RestClientTest {
                assertEquals(1, x.getFoo());
        }
 
-//     @Test
-//     public void o0_beanContext_() throws Exception {
-//     }
-//     @Override /* GENERATED - BeanContextBuilder */
-//     public MockRestClient locale(Locale value) {
-//             super.locale(value);
-//             return this;
-//     }
-//
-//     @Test
-//     public void o0_beanContext_() throws Exception {
-//     }
-//     @Override /* GENERATED - BeanContextBuilder */
-//     public MockRestClient mediaType(MediaType value) {
-//             super.mediaType(value);
-//             return this;
-//     }
-//
-//     @Test
-//     public void o0_beanContext_() throws Exception {
-//     }
-//     @Override /* GENERATED - BeanContextBuilder */
-//     public MockRestClient notBeanClasses(Object...values) {
-//             super.notBeanClasses(values);
-//             return this;
-//     }
-//
-//     @Test
-//     public void o0_beanContext_() throws Exception {
-//     }
-//     @Override /* GENERATED - BeanContextBuilder */
-//     public MockRestClient notBeanClassesRemove(Object...values) {
-//             super.notBeanClassesRemove(values);
-//             return this;
-//     }
-//
-//     @Test
-//     public void o0_beanContext_() throws Exception {
-//     }
-//     @Override /* GENERATED - BeanContextBuilder */
-//     public MockRestClient notBeanClassesReplace(Object...values) {
-//             super.notBeanClassesReplace(values);
-//             return this;
-//     }
-//
-//     @Test
-//     public void o0_beanContext_() throws Exception {
-//     }
-//     @Override /* GENERATED - BeanContextBuilder */
-//     public MockRestClient notBeanPackages(Object...values) {
-//             super.notBeanPackages(values);
-//             return this;
-//     }
-//
-//     @Test
-//     public void o0_beanContext_() throws Exception {
-//     }
-//     @Override /* GENERATED - BeanContextBuilder */
-//     public MockRestClient notBeanPackagesRemove(Object...values) {
-//             super.notBeanPackagesRemove(values);
-//             return this;
-//     }
-//
-//     @Test
-//     public void o0_beanContext_() throws Exception {
-//     }
-//     @Override /* GENERATED - BeanContextBuilder */
-//     public MockRestClient notBeanPackagesReplace(Object...values) {
-//             super.notBeanPackagesReplace(values);
-//             return this;
-//     }
-//
-//     @Test
+       public static class O44 {
+               public int foo;
+               public O44 init() {
+                       foo = 1;
+                       return this;
+               }
+       }
+
+       public static class O44Swap extends StringSwap<O44> {
+               @Override
+               public String swap(BeanSession session, O44 o) throws Exception 
{
+                       assertEquals(Locale.UK, session.getLocale());
+                       return super.swap(session, o);
+               }
+
+               @Override
+               public O44 unswap(BeanSession session, String f, ClassMeta<?> 
hint) throws Exception {
+                       assertEquals(Locale.UK, session.getLocale());
+                       return super.unswap(session, f, hint);
+               }
+       }
+
+       @Test
+       public void o044_beanContext_locale() throws Exception {
+               O44 x = MockRestClient
+                       .create(A.class)
+                       .simpleJson()
+                       .locale(Locale.UK)
+                       .build()
+                       .post("/echoBody", new O44().init())
+                       .run()
+                       .cacheBody()
+                       .assertBody().equals("{foo:1}")
+                       .getBody().as(O44.class)
+               ;
+               assertEquals(1, x.foo);
+       }
+
+       public static class O45Swap extends StringSwap<O44> {
+               @Override
+               public String swap(BeanSession session, O44 o) throws Exception 
{
+                       assertEquals(MediaType.JSON, session.getMediaType());
+                       return super.swap(session, o);
+               }
+
+               @Override
+               public O44 unswap(BeanSession session, String f, ClassMeta<?> 
hint) throws Exception {
+                       assertEquals(MediaType.JSON, session.getMediaType());
+                       return super.unswap(session, f, hint);
+               }
+       }
+
+       @Test
+       public void o045_beanContext_mediaType() throws Exception {
+               O44 x = MockRestClient
+                       .create(A.class)
+                       .simpleJson()
+                       .mediaType(MediaType.JSON)
+                       .build()
+                       .post("/echoBody", new O44().init())
+                       .run()
+                       .cacheBody()
+                       .assertBody().equals("{foo:1}")
+                       .getBody().as(O44.class)
+               ;
+               assertEquals(1, x.foo);
+       }
+
+       public static class O46 {
+               public int foo;
+               public O46 init() {
+                       foo = 1;
+                       return this;
+               }
+               @Override
+               public String toString() {
+                       return String.valueOf(foo);
+               }
+               public static O46 fromString(String foo) throws ParseException {
+                       O46 x = new O46();
+                       x.foo = JsonParser.DEFAULT.parse(foo, int.class);
+                       return x;
+               }
+       }
+
+       @Test
+       public void o046_beanContext_notBeanClasses() throws Exception {
+               O46 x = MockRestClient
+                       .create(A.class)
+                       .simpleJson()
+                       .notBeanClasses(O46.class)
+                       .build()
+                       .post("/echoBody", new O46().init())
+                       .run()
+                       .cacheBody()
+                       .assertBody().equals("'1'")
+                       .getBody().as(O46.class)
+               ;
+               assertEquals(1, x.foo);
+       }
+
+       @Test
+       public void o047_beanContext_notBeanPackages() throws Exception {
+               O46 x = MockRestClient
+                       .create(A.class)
+                       .simpleJson()
+                       .notBeanPackages(O46.class.getPackage())
+                       .build()
+                       .post("/echoBody", new O46().init())
+                       .run()
+                       .cacheBody()
+                       .assertBody().equals("'1'")
+                       .getBody().as(O46.class)
+               ;
+               assertEquals(1, x.foo);
+       }
+
+       public static class O48 {
+               private int foo;
+               public int getFoo() { return foo; }
+               public void setFoo(int foo) { this.foo = foo; }
+               public O48 init() {
+                       foo = 1;
+                       return this;
+               }
+       }
+
+       public static class O48Interceptor extends BeanInterceptor<O48> {
+               static boolean getterCalled, setterCalled;
+               @Override
+               public Object readProperty(O48 bean, String name, Object value) 
{
+                       getterCalled = true;
+                       return value;
+               }
+               @Override
+               public Object writeProperty(O48 bean, String name, Object 
value) {
+                       setterCalled = true;
+                       return value;
+               }
+       }
+
+       @Test
+       public void o048_beanContext_beanInterceptor() throws Exception {
+               O48 x = MockRestClient
+                       .create(A.class)
+                       .simpleJson()
+                       .beanInterceptor(O48.class, O48Interceptor.class)
+                       .build()
+                       .post("/echoBody", new O48().init())
+                       .run()
+                       .cacheBody()
+                       .assertBody().equals("{foo:1}")
+                       .getBody().as(O48.class)
+               ;
+               assertEquals(1, x.foo);
+               assertTrue(O48Interceptor.getterCalled);
+               assertTrue(O48Interceptor.setterCalled);
+       }
+
+       //      @Test
 //     public void o0_beanContext_() throws Exception {
 //     }
 //     @Override /* GENERATED - BeanContextBuilder */
diff --git 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClientBuilder.java
 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClientBuilder.java
index 70e79aa..4e86792 100644
--- 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClientBuilder.java
+++ 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClientBuilder.java
@@ -4321,6 +4321,12 @@ public class RestClientBuilder extends 
BeanContextBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public RestClientBuilder beanInterceptor(Class<?> on, Class<? extends 
org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public RestClientBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -4561,12 +4567,6 @@ public class RestClientBuilder extends 
BeanContextBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public RestClientBuilder propertyFilter(Class<?> on, Class<? extends 
org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public RestClientBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClient.java
 
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClient.java
index 3b312ee..2ec6ba6 100644
--- 
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClient.java
+++ 
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClient.java
@@ -236,6 +236,12 @@ public class MockRestClient extends RestClientBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public MockRestClient beanInterceptor(Class<?> on, Class<? extends 
org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public MockRestClient beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -476,12 +482,6 @@ public class MockRestClient extends RestClientBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient propertyFilter(Class<?> on, Class<? extends 
org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public MockRestClient propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
index e4bb201..bd5dcc5 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
@@ -2690,6 +2690,12 @@ public class RestContextBuilder extends 
BeanContextBuilder implements ServletCon
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public RestContextBuilder beanInterceptor(Class<?> on, Class<? extends 
org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public RestContextBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -2930,12 +2936,6 @@ public class RestContextBuilder extends 
BeanContextBuilder implements ServletCon
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public RestContextBuilder propertyFilter(Class<?> on, Class<? extends 
org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public RestContextBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestMethodContextBuilder.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestMethodContextBuilder.java
index 2ae20ea..fcb85e9 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestMethodContextBuilder.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestMethodContextBuilder.java
@@ -173,6 +173,12 @@ public class RestMethodContextBuilder extends 
BeanContextBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public RestMethodContextBuilder beanInterceptor(Class<?> on, Class<? 
extends org.apache.juneau.transform.BeanInterceptor<?>> value) {
+               super.beanInterceptor(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public RestMethodContextBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -413,12 +419,6 @@ public class RestMethodContextBuilder extends 
BeanContextBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public RestMethodContextBuilder propertyFilter(Class<?> on, Class<? 
extends org.apache.juneau.transform.PropertyFilter> value) {
-               super.propertyFilter(on, value);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public RestMethodContextBuilder propertyNamer(Class<? extends 
org.apache.juneau.PropertyNamer> value) {
                super.propertyNamer(value);
                return this;

Reply via email to