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 3617793  Deprecate the BEAN_beanFilters property and methods.
3617793 is described below

commit 36177938fa7d10b72e815184d7bc57d4858b2f4b
Author: JamesBognar <james.bog...@salesforce.com>
AuthorDate: Fri May 22 15:01:05 2020 -0400

    Deprecate the BEAN_beanFilters property and methods.
---
 .../java/org/apache/juneau/BeanConfigTest.java     |  10 --
 .../java/org/apache/juneau/BeanFilterTest.java     |   4 +-
 .../juneau/a/rttests/RoundTripBeanMapsTest.java    |  45 ++---
 .../apache/juneau/a/rttests/RoundTripEnumTest.java |   2 +-
 .../org/apache/juneau/a/rttests/RoundTripTest.java |  10 +-
 .../apache/juneau/transforms/BeanFilterTest.java   |   8 +-
 .../org/apache/juneau/jena/RdfParserBuilder.java   |  30 ++--
 .../apache/juneau/jena/RdfSerializerBuilder.java   |  30 ++--
 .../main/java/org/apache/juneau/BeanContext.java   | 120 ++-----------
 .../java/org/apache/juneau/BeanContextBuilder.java | 199 +++++++--------------
 .../main/java/org/apache/juneau/BeanSession.java   |   1 -
 .../org/apache/juneau/BeanTraverseBuilder.java     |  30 ++--
 .../java/org/apache/juneau/annotation/Bean.java    |   4 -
 .../org/apache/juneau/annotation/BeanConfig.java   |  81 ++++++++-
 .../apache/juneau/annotation/BeanConfigApply.java  |   2 +
 .../org/apache/juneau/csv/CsvParserBuilder.java    |  30 ++--
 .../apache/juneau/csv/CsvSerializerBuilder.java    |  30 ++--
 .../juneau/html/HtmlDocSerializerBuilder.java      |  30 ++--
 .../org/apache/juneau/html/HtmlParserBuilder.java  |  30 ++--
 .../juneau/html/HtmlSchemaSerializerBuilder.java   |  30 ++--
 .../apache/juneau/html/HtmlSerializerBuilder.java  |  30 ++--
 .../html/HtmlStrippedDocSerializerBuilder.java     |  30 ++--
 .../org/apache/juneau/jso/JsoParserBuilder.java    |  30 ++--
 .../apache/juneau/jso/JsoSerializerBuilder.java    |  30 ++--
 .../org/apache/juneau/json/JsonParserBuilder.java  |  30 ++--
 .../juneau/json/JsonSchemaSerializerBuilder.java   |  30 ++--
 .../apache/juneau/json/JsonSerializerBuilder.java  |  30 ++--
 .../juneau/json/SimpleJsonParserBuilder.java       |  30 ++--
 .../juneau/json/SimpleJsonSerializerBuilder.java   |  30 ++--
 .../jsonschema/JsonSchemaGeneratorBuilder.java     |  30 ++--
 .../juneau/msgpack/MsgPackParserBuilder.java       |  30 ++--
 .../juneau/msgpack/MsgPackSerializerBuilder.java   |  30 ++--
 .../apache/juneau/oapi/OpenApiParserBuilder.java   |  30 ++--
 .../juneau/oapi/OpenApiSerializerBuilder.java      |  30 ++--
 .../juneau/parser/InputStreamParserBuilder.java    |  30 ++--
 .../org/apache/juneau/parser/ParserBuilder.java    |  30 ++--
 .../apache/juneau/parser/ParserGroupBuilder.java   |  30 ++--
 .../apache/juneau/parser/ReaderParserBuilder.java  |  30 ++--
 .../juneau/plaintext/PlainTextParserBuilder.java   |  30 ++--
 .../plaintext/PlainTextSerializerBuilder.java      |  30 ++--
 .../serializer/OutputStreamSerializerBuilder.java  |  30 ++--
 .../juneau/serializer/SerializerBuilder.java       |  30 ++--
 .../juneau/serializer/SerializerGroupBuilder.java  |  30 ++--
 .../juneau/serializer/WriterSerializerBuilder.java |  30 ++--
 .../juneau/soap/SoapXmlSerializerBuilder.java      |  30 ++--
 .../apache/juneau/transform/BeanFilterBuilder.java |   1 -
 .../transform/InterfaceBeanFilterBuilder.java      |   2 +-
 .../org/apache/juneau/uon/UonParserBuilder.java    |  30 ++--
 .../apache/juneau/uon/UonSerializerBuilder.java    |  30 ++--
 .../urlencoding/UrlEncodingParserBuilder.java      |  30 ++--
 .../urlencoding/UrlEncodingSerializerBuilder.java  |  30 ++--
 .../org/apache/juneau/xml/XmlParserBuilder.java    |  30 ++--
 .../apache/juneau/xml/XmlSerializerBuilder.java    |  30 ++--
 .../apache/juneau/rest/client2/RestClientTest.java |  17 +-
 .../juneau/rest/client2/RestClientBuilder.java     |  30 ++--
 .../apache/juneau/rest/mock2/MockRestClient.java   |  30 ++--
 .../org/apache/juneau/rest/jaxrs/BaseProvider.java |   2 -
 .../org/apache/juneau/rest/RestContextBuilder.java |  30 ++--
 .../juneau/rest/RestMethodContextBuilder.java      |  30 ++--
 59 files changed, 696 insertions(+), 1102 deletions(-)

diff --git 
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BeanConfigTest.java
 
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BeanConfigTest.java
index af48eb9..79cd219 100755
--- 
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BeanConfigTest.java
+++ 
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BeanConfigTest.java
@@ -766,16 +766,6 @@ public class BeanConfigTest {
                p1.swaps(DummyPojoSwapB.class,DummyPojoSwapC.class);  // Order 
of filters is important!
                p2.swaps(DummyPojoSwapC.class,DummyPojoSwapB.class);
                assertDifferentCache(p1, p2);
-
-               p1 = JsonParser.create();
-               p2 = JsonParser.create();
-               p1.beanFilters(DummyBeanFilterA.class);
-               assertDifferentCache(p1, p2);
-               p2.beanFilters(DummyBeanFilterA.class);
-               assertSameCache(p1, p2);
-               p1.beanFilters(DummyBeanFilterB.class,DummyBeanFilterC.class);  
// Order of filters is important!
-               p2.beanFilters(DummyBeanFilterC.class,DummyBeanFilterB.class);
-               assertDifferentCache(p1, p2);
        }
 
        public static class DummyPojoSwapA extends MapSwap<A> {}
diff --git 
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BeanFilterTest.java
 
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BeanFilterTest.java
index 24e304b..0f574e5 100755
--- 
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BeanFilterTest.java
+++ 
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BeanFilterTest.java
@@ -152,7 +152,7 @@ public class BeanFilterTest {
        
//====================================================================================================
        @Test
        public void testParentClassFilter() throws Exception {
-               JsonSerializer s = 
JsonSerializer.create().ssq().beanFilters(C1.class).build();
+               JsonSerializer s = 
JsonSerializer.create().ssq().interfaces(C1.class).build();
 
                C1 c1 = new C2();
                String r = s.serialize(c1);
@@ -177,7 +177,7 @@ public class BeanFilterTest {
        
//====================================================================================================
        @Test
        public void testParentClassFilter2() throws Exception {
-               JsonSerializer s = 
JsonSerializer.create().ssq().beanFilters(D1.class).build();
+               JsonSerializer s = 
JsonSerializer.create().ssq().interfaces(D1.class).build();
 
                D1 d1 = new D2();
                String r = s.serialize(d1);
diff --git 
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanMapsTest.java
 
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanMapsTest.java
index 8f47008..720efa7 100755
--- 
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanMapsTest.java
+++ 
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanMapsTest.java
@@ -28,7 +28,6 @@ import org.apache.juneau.json.*;
 import org.apache.juneau.json.annotation.*;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.serializer.*;
-import org.apache.juneau.transform.*;
 import org.junit.*;
 
 /**
@@ -298,8 +297,8 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
                if (isValidationOnly())
                        return;
 
-               Serializer s = 
getSerializer().builder().beanFilters(CFilter.class).build();
-               Parser p = 
getParser().builder().beanFilters(CFilter.class).build();
+               Serializer s = getSerializer().builder().dictionaryOn(C.class, 
CFilterDictionaryMap.class).build();
+               Parser p = getParser().builder().dictionaryOn(C.class, 
CFilterDictionaryMap.class).build();
 
                C1 c1 = C1.create();
                Object r = s.serialize(c1);
@@ -354,12 +353,6 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
                }
        }
 
-       public static class CFilter extends BeanFilterBuilder<C> {
-               public CFilter() {
-                       dictionary(CFilterDictionaryMap.class);
-               }
-       }
-
        public static class CFilterDictionaryMap extends BeanDictionaryMap {
                public CFilterDictionaryMap() {
                        append("C1", C1.class);
@@ -490,14 +483,14 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
        
//====================================================================================================
        @Test
        public void testPropertiesUsingBeanFilter() throws Exception {
-               JsonSerializer js = 
JsonSerializer.create().ssq().beanFilters(D2Filter.class).build();
+               JsonSerializer js = JsonSerializer.create().ssq().bpi(D2.class, 
"f3,f2").build();
 
                // Skip validation-only tests
                if (isValidationOnly())
                        return;
 
-               Serializer s = 
getSerializer().builder().beanFilters(D2Filter.class).build();
-               Parser p = 
getParser().builder().beanFilters(D2Filter.class).build();
+               Serializer s = getSerializer().builder().bpi(D2.class, 
"f3,f2").build();
+               Parser p = getParser().builder().bpi(D2.class, "f3,f2").build();
 
                D2 d = new D2().init();
                Object r = s.serialize(d);
@@ -515,11 +508,6 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
                        return this;
                }
        }
-       public static class D2Filter extends BeanFilterBuilder<D2> {
-               public D2Filter() {
-                       bpi("f3,f2");
-               }
-       }
 
        
//====================================================================================================
        // Test @Bean(bpx=xxx)
@@ -559,8 +547,8 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
                if (isValidationOnly())
                        return;
 
-               Serializer s = 
getSerializer().builder().beanFilters(E2Filter.class).build();
-               Parser p = 
getParser().builder().beanFilters(E2Filter.class).build();
+               Serializer s = getSerializer().builder().bpx(E2.class, 
"f2").build();
+               Parser p = getParser().builder().bpx(E2.class, "f2").build();
 
                E2 e = new E2().init();
                Object r = s.serialize(e);
@@ -577,11 +565,6 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
                        return this;
                }
        }
-       public static class E2Filter extends BeanFilterBuilder<E2> {
-               public E2Filter() {
-                       bpx("f2");
-               }
-       }
 
        
//====================================================================================================
        // Test @Bean(interfaceClass=xxx)
@@ -630,8 +613,8 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
                        return;
 
                // --- BeanFilter defined on parent class ---
-               s.beanFilters(FB1Filter.class);
-               p.beanFilters(FB1Filter.class);
+               s.interfaces(FB1.class);
+               p.interfaces(FB1.class);
 
                t = new FB2().init();
                r = s.build().serialize(t);
@@ -639,8 +622,8 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
                assertObjectEquals("{f1:'f1'}", t);
 
                // --- BeanFilter defined on child class class ---
-               s.beanFilters(FB2Filter.class);
-               p.beanFilters(FB2Filter.class);
+               s.interfaces(FB1.class);
+               p.interfaces(FB1.class);
 
                t = new FB2().init();
                r = s.build().serialize(t);
@@ -648,8 +631,8 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
                assertObjectEquals("{f1:'f1'}", t);
 
                // --- BeanFilter defined as plain class ---
-               s.beanFilters(FB1.class);
-               p.beanFilters(FB1.class);
+               s.interfaces(FB1.class);
+               p.interfaces(FB1.class);
 
                t = new FB2().init();
                r = s.build().serialize(t);
@@ -669,8 +652,6 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
                        return this;
                }
        }
-       public static class FB1Filter extends InterfaceBeanFilterBuilder<FB1> {}
-       public static class FB2Filter extends InterfaceBeanFilterBuilder<FB1> {}
 
        
//====================================================================================================
        // testMemberClass
diff --git 
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripEnumTest.java
 
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripEnumTest.java
index 55782a4..da20c82 100755
--- 
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripEnumTest.java
+++ 
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripEnumTest.java
@@ -46,7 +46,7 @@ public class RoundTripEnumTest extends RoundTripTest {
 
        @Test
        public void testEnumB() throws Exception {
-               WriterSerializer s = 
JsonSerializer.create().ssq().beanFilters(getBeanFilters()).swaps(getPojoSwaps()).build();
+               WriterSerializer s = 
JsonSerializer.create().ssq().swaps(getPojoSwaps()).build();
                BEnum t = BEnum.FOO;
                assertEquals("'xfoo'", s.serialize(t));
                t = roundTrip(t, BEnum.class);
diff --git 
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripTest.java
 
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripTest.java
index 178f518..a1a137c 100755
--- 
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripTest.java
+++ 
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripTest.java
@@ -198,8 +198,8 @@ public abstract class RoundTripTest {
                                        p.implClass(e.getKey(), e.getValue());
                        }
                }
-               this.s = 
s.beanFilters(getBeanFilters()).swaps(getPojoSwaps()).dictionary((Object[])getDictionary()).add(getProperties()).build();
-               this.p = p == null ? null : 
p.beanFilters(getBeanFilters()).swaps(getPojoSwaps()).dictionary((Object[])getDictionary()).add(getProperties()).build();
+               this.s = 
s.swaps(getPojoSwaps()).dictionary((Object[])getDictionary()).add(getProperties()).build();
+               this.p = p == null ? null : 
p.swaps(getPojoSwaps()).dictionary((Object[])getDictionary()).add(getProperties()).build();
                this.validateXmlWhitespace = (flags & CHECK_XML_WHITESPACE) > 0;
                this.validateXml = (flags & VALIDATE_XML) > 0;
                this.returnOriginalObject = (flags & RETURN_ORIGINAL_OBJECT) > 
0;
@@ -254,12 +254,6 @@ public abstract class RoundTripTest {
                return p;
        }
 
-       protected void beanFilters(Object...c) {
-               s = s.builder().beanFilters(c).build();
-               if (p != null)
-                       p = p.builder().beanFilters(c).build();
-       }
-
        protected void swaps(Object...c) {
                s = s.builder().swaps(c).build();
                if (p != null)
diff --git 
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/transforms/BeanFilterTest.java
 
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/transforms/BeanFilterTest.java
index b0adb1b..a11b527 100755
--- 
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/transforms/BeanFilterTest.java
+++ 
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/transforms/BeanFilterTest.java
@@ -29,13 +29,13 @@ public class BeanFilterTest {
                BeanSession session;
                BeanMap<A3> bm;
 
-               session = 
BeanContext.create().beanFilters(A1.class).build().createSession();
+               session = 
BeanContext.create().interfaces(A1.class).build().createSession();
                bm = session.newBeanMap(A3.class);
                assertEquals("f1", bm.get("f1"));
                assertNull(bm.get("f2"));
                assertNull(bm.get("f3"));
 
-               session = 
BeanContext.create().beanFilters(A2.class).build().createSession();
+               session = 
BeanContext.create().interfaces(A2.class).build().createSession();
                bm = session.newBeanMap(A3.class);
                assertEquals("f1", bm.get("f1"));
                assertEquals("f2", bm.get("f2"));
@@ -72,13 +72,13 @@ public class BeanFilterTest {
                BeanSession session;
                BeanMap<Test2> bm;
 
-               session = 
BeanContext.create().beanFilters(B1.class).build().createSession();
+               session = 
BeanContext.create().interfaces(B1.class).build().createSession();
                bm = session.newBeanMap(Test2.class);
                assertEquals("f1", bm.get("f1"));
                assertNull(bm.get("f2"));
                assertNull(bm.get("f3"));
 
-               session = 
BeanContext.create().beanFilters(B2.class).build().createSession();
+               session = 
BeanContext.create().interfaces(B2.class).build().createSession();
                bm = session.newBeanMap(Test2.class);
                assertEquals("f1", bm.get("f1"));
                assertEquals("f2", bm.get("f2"));
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 a23557d..d7ad094 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,24 +877,6 @@ public class RdfParserBuilder extends ReaderParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public RdfParserBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RdfParserBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RdfParserBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public RdfParserBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -1111,6 +1093,18 @@ public class RdfParserBuilder extends 
ReaderParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public RdfParserBuilder interfaceClass(Class<?> on, Class<?> value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public RdfParserBuilder interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public RdfParserBuilder locale(Locale value) {
                super.locale(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 19a2480..786fe5e 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,24 +1037,6 @@ public class RdfSerializerBuilder extends 
WriterSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public RdfSerializerBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RdfSerializerBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RdfSerializerBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public RdfSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -1271,6 +1253,18 @@ public class RdfSerializerBuilder extends 
WriterSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public RdfSerializerBuilder interfaceClass(Class<?> on, Class<?> value) 
{
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public RdfSerializerBuilder interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public RdfSerializerBuilder locale(Locale value) {
                super.locale(value);
                return this;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
index 16ac3ed..4d4dd8f 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
@@ -663,123 +663,31 @@ public class BeanContext extends Context implements 
MetaProvider {
        /**
         * Configuration property:  Bean filters.
         *
-        * <h5 class='section'>Property:</h5>
-        * <ul class='spaced-list'>
-        *      <li><b>ID:</b>  {@link 
org.apache.juneau.BeanContext#BEAN_beanFilters BEAN_beanFilters}
-        *      <li><b>Name:</b>  <js>"BeanContext.beanFilters.lo"</js>
-        *      <li><b>Data type:</b>  <c>List&lt;Object&gt;</c>
-        *      <li><b>Default:</b>  empty list
-        *      <li><b>Session property:</b>  <jk>false</jk>
-        *      <li><b>Annotations:</b>
-        *              <ul>
-        *                      <li class='ja'>{@link 
org.apache.juneau.annotation.BeanConfig#beanFilters()}
-        *              </ul>
-        *      <li><b>Methods:</b>
-        *              <ul>
-        *                      <li class='jm'>{@link 
org.apache.juneau.BeanContextBuilder#beanFilters(Object...)}
-        *                      <li class='jm'>{@link 
org.apache.juneau.BeanContextBuilder#beanFiltersReplace(Object...)}
-        *                      <li class='jm'>{@link 
org.apache.juneau.BeanContextBuilder#beanFiltersRemove(Object...)}
-        *              </ul>
-        * </ul>
-        *
-        * <h5 class='section'>Description:</h5>
-        *
-        * <p>
-        * This is an older programmatic equivalent to the {@link Bean @Bean} 
annotation.
-        * It's useful when you want to use the <c>@Bean</c> annotation 
functionality, but you don't have the ability to alter
-        * the bean classes.
-        *
-        * <p>
-        * Values can consist of any of the following types:
-        * <ul class='spaced-list'>
-        *      <li>Any subclass or instance of {@link BeanFilterBuilder}.
-        *              <br>These must have a public no-arg constructor.
-        *      <li>Any instance of {@link BeanFilter}.
-        *      <li>Any bean interfaces.
-        *              <br>A shortcut for defining a {@link 
InterfaceBeanFilterBuilder}.
-        *              <br>Any subclasses of an interface class will only have 
properties defined on the interface.
-        *              All other bean properties will be ignored.
-        *      <li>Any array or collection of the objects above.
-        * </ul>
-        *
-        * <h5 class='section'>Example:</h5>
-        * <p class='bcode w800'>
-        *      <jc>// A bean with multiple properties.</jc>
-        *      <jk>public class</jk> MyBean {
-        *              <jk>public</jk> String
-        *                      <jf>foo</jf> = <js>"foo"</js>,
-        *                      <jf>bar</jf> = <js>"bar"</js>,
-        *                      <jf>baz</jf> = <js>"baz"</js>;  <jc>// Ignore 
this field.</jc>
-        *      }
-        *
-        *      <jc>// Create a bean filter for the MyBean class.</jc>
-        *      <jk>public class</jk> MyBeanFilter <jk>extends</jk> 
BeanFilterBuilder&lt;MyBean&gt; {
-        *
-        *              <jc>// Must provide a no-arg constructor!</jc>
-        *              <jk>public</jk> MyBeanFilter() {
-        *                      bpi(<js>"foo,bar"</js>);  <jc>// The properties 
we want exposed (bean property include).</jc>
-        *              }
-        *      }
-        *
-        *      <jc>// Associate our bean filter with a serializer.</jc>
-        *      WriterSerializer s = JsonSerializer
-        *              .<jsm>create</jsm>()
-        *              .beanFilters(MyBeanFilter.<jk>class</jk>)
-        *              .build();
-        *
-        *      <jc>// Same, but use property.</jc>
-        *      WriterSerializer s = JsonSerializer
-        *              .<jsm>create</jsm>()
-        *              .addTo(<jsf>BEAN_beanFilters</jsf>, 
MyBeanFilter.<jk>class</jk>)
-        *              .build();
-        *
-        *      <jc>// Same but pass in constructed filter.</jc>
-        *      WriterSerializer s = JsonSerializer
-        *              .<jsm>create</jsm>()
-        *              
.beanFilters(BeanFilter.<jsm>create</jsm>(MyBeanFilter.<jk>class</jk>).bpi(<js>"foo,bar"</js>).build())
-        *              .build();
-        *
-        *      <jc>// Produces:  {"foo":"foo","bar":"bar"}</jc>
-        *      String json = s.serialize(<jk>new</jk> MyBean());
-        * </p>
-        *
-        * <p>
-        * An alternate approach for specifying bean filters is by using 
concrete dynamically applied annotations:
-        *
-        * <p class='bcode w800'>
-        *      <jc>// Create a concrete @Bean annotation.</jc>
-        *      BeanAnnotation a = <jk>new</jk> 
BeanAnnotation(<js>"MyBean"</js>).bpi(<js>"foo,bar"</js>);
-        *
-        *      <jc>// Apply it to a serializer.</jc>
-        *      WriterSerializer ws = JsonSerializer
-        *              .<jsm>create</jsm>()
-        *              .annotations(a)
-        *              .build();
-        *
-        *      <jc>// Produces:  {"foo":"foo","bar":"bar"}</jc>
-        *      String json = s.serialize(<jk>new</jk> MyBean());
-        * </p>
-        *
-        * <ul class='notes'>
-        *      <li>The {@link Bean @Bean} annotation can be used on bean 
classes for equivalent functionality.
-        * </ul>
-        *
-        * <ul class='seealso'>
-        *      <li class='link'>{@doc juneau-marshall.Transforms.BeanFilters}
-        *      <li class='link'>{@doc 
juneau-marshall.Transforms.InterfaceFilters}
-        *      <li class='jf'>{@link #BEAN_annotations}
-        * </ul>
+        * <div class='warn'>
+        *      <b>Deprecated</b> - Use {@link BeanConfig#interfaces()} and 
other methods.
+        * </div>
         */
+       @Deprecated
        public static final String BEAN_beanFilters = PREFIX + 
".beanFilters.lo";
 
        /**
         * Configuration property:  Add to bean filters.
+        * 
+        * <div class='warn'>
+        *      <b>Deprecated</b> - Use {@link BeanConfig#interfaces()} and 
other methods.
+        * </div>
         */
+       @Deprecated
        public static final String BEAN_beanFilters_add = PREFIX + 
".beanFilters.lo/add";
 
        /**
         * Configuration property:  Remove from bean filters.
+        * 
+        * <div class='warn'>
+        *      <b>Deprecated</b> - Use {@link BeanConfig#interfaces()} and 
other methods.
+        * </div>
         */
+       @Deprecated
        public static final String BEAN_beanFilters_remove = PREFIX + 
".beanFilters.lo/remove";
 
        /**
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 7e6b130..69680ce 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
@@ -536,129 +536,27 @@ public class BeanContextBuilder extends ContextBuilder {
        /**
         * <i><l>BeanContext</l> configuration property:</i>  Bean filters.
         *
-        * <h5 class='section'>Description:</h5>
-        *
-        * <p>
-        * This is a programmatic equivalent to the {@link Bean @Bean} 
annotation.
-        * It's useful when you want to use the <c>@Bean</c> annotation 
functionality, but you don't have the ability to alter
-        * the bean classes.
-        *
-        * <p>
-        * Values can consist of any of the following types:
-        * <ul class='spaced-list'>
-        *      <li>Any subclass or instance of {@link BeanFilterBuilder}.
-        *              <br>These must have a public no-arg constructor.
-        *      <li>Any instance of {@link BeanFilter}.
-        *      <li>Any bean interfaces.
-        *              <br>A shortcut for defining a {@link 
InterfaceBeanFilterBuilder}.
-        *              <br>Any subclasses of an interface class will only have 
properties defined on the interface.
-        *              All other bean properties will be ignored.
-        *      <li>Any array or collection of the objects above.
-        * </ul>
-        *
-        * <h5 class='section'>Example:</h5>
-        * <p class='bcode w800'>
-        *      <jc>// A bean with multiple properties.</jc>
-        *      <jk>public class</jk> MyBean {
-        *              <jk>public</jk> String
-        *                      <jf>foo</jf> = <js>"foo"</js>,
-        *                      <jf>bar</jf> = <js>"bar"</js>,
-        *                      <jf>baz</jf> = <js>"baz"</js>;  <jc>// Ignore 
this field.</jc>
-        *      }
-        *
-        *      <jc>// Create a bean filter for the MyBean class.</jc>
-        *      <jk>public class</jk> MyBeanFilter <jk>extends</jk> 
BeanFilterBuilder&lt;MyBean&gt; {
-        *
-        *              <jc>// Must provide a no-arg constructor!</jc>
-        *              <jk>public</jk> MyBeanFilter() {
-        *                      bpi(<js>"foo,bar"</js>);  <jc>// The properties 
we want exposed (bean property include).</jc>
-        *              }
-        *      }
-        *
-        *      <jc>// Associate our bean filter with a serializer.</jc>
-        *      WriterSerializer s = JsonSerializer
-        *              .<jsm>create</jsm>()
-        *              .beanFilters(MyBeanFilter.<jk>class</jk>)
-        *              .build();
-        *
-        *      <jc>// Same, but use property.</jc>
-        *      WriterSerializer s = JsonSerializer
-        *              .<jsm>create</jsm>()
-        *              .addTo(<jsf>BEAN_beanFilters</jsf>, 
MyBeanFilter.<jk>class</jk>)
-        *              .build();
-        *
-        *      <jc>// Same but pass in constructed filter.</jc>
-        *      WriterSerializer s = JsonSerializer
-        *              .<jsm>create</jsm>()
-        *              
.beanFilters(BeanFilter.<jsm>create</jsm>(MyBeanFilter.<jk>class</jk>).bpi(<js>"foo,bar"</js>).build())
-        *              .build();
-        *
-        *      <jc>// Produces:  {"foo":"foo","bar":"bar"}</jc>
-        *      String json = s.serialize(<jk>new</jk> MyBean());
-        * </p>
-        *
-        * <p>
-        * An alternate approach for specifying bean filters is by using 
concrete dynamically applied annotations:
-        *
-        * <p class='bcode w800'>
-        *      <jc>// Create a concrete @Bean annotation.</jc>
-        *      BeanAnnotation a = <jk>new</jk> 
BeanAnnotation(<js>"MyBean"</js>).bpi(<js>"foo,bar"</js>);
-        *
-        *      <jc>// Apply it to a serializer.</jc>
-        *      WriterSerializer ws = JsonSerializer
-        *              .<jsm>create</jsm>()
-        *              .annotations(a)
-        *              .build();
-        *
-        *      <jc>// Produces:  {"foo":"foo","bar":"bar"}</jc>
-        *      String json = s.serialize(<jk>new</jk> MyBean());
-        * </p>
-        *
-        * <ul class='notes'>
-        *      <li>The {@link Bean @Bean} annotation can be used on bean 
classes for equivalent functionality.
-        * </ul>
-        *
-        * <ul class='seealso'>
-        *      <li class='jf'>{@link BeanContext#BEAN_beanFilters}
-        *      <li class='jf'>{@link BeanContext#BEAN_annotations}
-        * </ul>
-        *
-        * @param values
-        *      The values to add to this property.
-        * @return This object (for method chaining).
+        * <div class='warn'>
+        *      <b>Deprecated</b> - Use {@link BeanConfig#interfaces()} and 
other methods.
+        * </div>
         */
+       @SuppressWarnings("javadoc")
        @ConfigurationProperty
+       @Deprecated
        public BeanContextBuilder beanFilters(Object...values) {
                return prependTo(BEAN_beanFilters, values);
        }
 
        /**
         * <i><l>BeanContext</l> configuration property:</i>  Bean filters.
-        *
-        * <p>
-        * Same as {@link #beanFilters(Object...)} but replaces the existing 
values.
-        *
-        * <ul class='seealso'>
-        *      <li class='jf'>{@link BeanContext#BEAN_beanFilters}
-        * </ul>
-        *
-        * @param values
-        *      The new values for this property.
-        *      <p>
-        *      Values can consist of any of the following types:
-        *      <ul class='spaced-list'>
-        *              <li>Any subclass or instance of {@link 
BeanFilterBuilder}.
-        *                      <br>These must have a public no-arg constructor 
when a class.
-        *              <li>Any instance of {@link BeanFilter}.
-        *              <li>Any bean interfaces.
-        *                      <br>A shortcut for defining a {@link 
InterfaceBeanFilterBuilder}.
-        *                      <br>Any subclasses of an interface class will 
only have properties defined on the interface.
-        *                      All other bean properties will be ignored.
-        *              <li>Any array or collection of the objects above.
-        *      </ul>
-        * @return This object (for method chaining).
+        * 
+        * <div class='warn'>
+        *      <b>Deprecated</b> - Use {@link BeanConfig#interfaces()} and 
other methods.
+        * </div>
         */
+       @SuppressWarnings("javadoc")
        @ConfigurationProperty
+       @Deprecated
        public BeanContextBuilder beanFiltersReplace(Object...values) {
                return set(BEAN_beanFilters, values);
        }
@@ -666,30 +564,13 @@ public class BeanContextBuilder extends ContextBuilder {
        /**
         * <i><l>BeanContext</l> configuration property:</i>  Bean filters.
         *
-        * <p>
-        * Removes from the list of classes that make up the bean filters in 
this bean context.
-        *
-        * <ul class='seealso'>
-        *      <li class='jf'>{@link BeanContext#BEAN_beanFilters}
-        * </ul>
-        *
-        * @param values
-        *      The values to remove from this property.
-        *      <p>
-        *      Values can consist of any of the following types:
-        *      <ul class='spaced-list'>
-        *              <li>Any subclass or instance of {@link 
BeanFilterBuilder}.
-        *                      <br>These must have a public no-arg constructor 
when a class.
-        *              <li>Any instance of {@link BeanFilter}.
-        *              <li>Any bean interfaces.
-        *                      <br>A shortcut for defining a {@link 
InterfaceBeanFilterBuilder}.
-        *                      <br>Any subclasses of an interface class will 
only have properties defined on the interface.
-        *                      All other bean properties will be ignored.
-        *              <li>Any array or collection of the objects above.
-        *      </ul>
-        * @return This object (for method chaining).
+        * <div class='warn'>
+        *      <b>Deprecated</b> - Use {@link BeanConfig#interfaces()} and 
other methods.
+        * </div>
         */
+       @SuppressWarnings("javadoc")
        @ConfigurationProperty
+       @Deprecated
        public BeanContextBuilder beanFiltersRemove(Object...values) {
                return removeFrom(BEAN_beanFilters, values);
        }
@@ -2781,11 +2662,59 @@ public class BeanContextBuilder extends ContextBuilder {
         *      The new value for this property.
         * @return This object (for method chaining).
         */
+       @ConfigurationProperty
        public BeanContextBuilder interfaceClass(Class<?> on, Class<?> value) {
                return prependTo(BEAN_annotations, new 
BeanAnnotation(on).interfaceClass(value));
        }
 
        /**
+        * Identifies a set of interfaces.
+        *
+        * <p>
+        * When specified, only the list of properties defined on the interface 
class will be used during serialization
+        * of implementation classes.  Additional properties on subclasses will 
be ignored.
+        *
+        * <p class='bcode w800'>
+        *      <jc>// Parent class or interface</jc>
+        *      <jk>public abstract class</jk> A {
+        *              <jk>public</jk> String <jf>foo</jf> = <js>"foo"</js>;
+        *      }
+        *
+        *      <jc>// Sub class</jc>
+        *      <jk>public class</jk> A1 <jk>extends</jk> A {
+        *              <jk>public</jk> String <jf>bar</jf> = <js>"bar"</js>;
+        *      }
+        *
+        *      <jc>// Create a serializer and define our interface class 
mapping.</jc>
+        *      WriterSerializer s = JsonSerializer
+        *              .<jsm>create</jsm>()
+        *              .interfaces(A.class)
+        *              .build();
+        *
+        *      <jc>// Produces "{"foo":"f0"}"</jc>
+        *      String json = s.serialize(<jk>new</jk> A1());
+        * </p>
+        *
+        * <p>
+        * This annotation can be used on the parent class so that it filters 
to all child classes, or can be set
+        * individually on the child classes.
+        *
+        * <ul class='notes'>
+        *      <li>The {@link Bean#interfaceClass() @Bean(interfaceClass)} 
annotation is the equivalent annotation-based solution.
+        * </ul>
+        *
+        * @param value
+        *      The new value for this property.
+        * @return This object (for method chaining).
+        */
+       @ConfigurationProperty
+       public BeanContextBuilder interfaces(Class<?>...value) {
+               for (Class<?> v : value)
+                       prependTo(BEAN_annotations, new 
BeanAnnotation(v).interfaceClass(v));
+               return this;
+       }
+
+       /**
         * <i><l>BeanContext</l> configuration property:</i>  Locale.
         *
         * <p>
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
index 88134ed..3afd9f6 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
@@ -1239,7 +1239,6 @@ public class BeanSession extends Session {
         * Configuration property:  Bean filters.
         *
         *
-        * @see BeanContext#BEAN_beanFilters
         * @return
         *      Only look for bean fields with this specified minimum 
visibility.
         */
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 0265e65..4d88a56 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,24 +347,6 @@ public class BeanTraverseBuilder extends 
BeanContextBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public BeanTraverseBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public BeanTraverseBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public BeanTraverseBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public BeanTraverseBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -581,6 +563,18 @@ public class BeanTraverseBuilder extends 
BeanContextBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public BeanTraverseBuilder interfaceClass(Class<?> on, Class<?> value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public BeanTraverseBuilder interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public BeanTraverseBuilder locale(Locale value) {
                super.locale(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 79540dc..2ad5677 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
@@ -233,10 +233,6 @@ public @interface Bean {
         * <p>
         * Note that this annotation can be used on the parent class so that it 
filters to all child classes,
         * or can be set individually on the child classes.
-        *
-        * <ul class='seealso'>
-        *      <li class='jf'>{@link BeanContext#BEAN_beanFilters}
-        * </ul>
         */
        Class<?> interfaceClass() default Object.class;
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfig.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfig.java
index ec1be63..07dea89 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfig.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfig.java
@@ -249,7 +249,7 @@ public @interface BeanConfig {
         * </ul>
         *
         * <div class='warn'>
-        *      <b>Deprecated</b> - {@link #dictionary()}.
+        *      <b>Deprecated</b> - Use {@link #dictionary()}.
         * </div>
         */
        @Deprecated
@@ -263,7 +263,7 @@ public @interface BeanConfig {
         * </ul>
         *
         * <div class='warn'>
-        *      <b>Deprecated</b> - {@link #dictionary_replace()}.
+        *      <b>Deprecated</b> - Use {@link #dictionary_replace()}.
         * </div>
         */
        @Deprecated
@@ -277,7 +277,7 @@ public @interface BeanConfig {
         * </ul>
         *
         * <div class='warn'>
-        *      <b>Deprecated</b> - {@link #dictionary_remove()}.
+        *      <b>Deprecated</b> - Use {@link #dictionary_remove()}.
         * </div>
         */
        @Deprecated
@@ -339,25 +339,32 @@ public @interface BeanConfig {
         *      <li class='link'>{@doc juneau-marshall.Transforms.BeanFilters}
         *      <li class='link'>{@doc 
juneau-marshall.Transforms.InterfaceFilters}
         * </ul>
+        *
+        * <div class='warn'>
+        *      <b>Deprecated</b> - Use {@link #interfaces()} or other various 
approaches.
+        * </div>
         */
+       @Deprecated
        Class<?>[] beanFilters() default {};
 
        /**
         * Configuration property:  Add to bean filters.
         *
-        * <ul class='seealso'>
-        *      <li class='jf'>{@link BeanContext#BEAN_beanFilters}
-        * </ul>
+        * <div class='warn'>
+        *      <b>Deprecated</b> - Use {@link #interfaces()} or other various 
approaches.
+        * </div>
         */
+       @Deprecated
        Class<?>[] beanFilters_replace() default {};
 
        /**
         * Configuration property:  Remove from bean filters.
         *
-        * <ul class='seealso'>
-        *      <li class='jf'>{@link BeanContext#BEAN_beanFilters_remove}
-        * </ul>
+        * <div class='warn'>
+        *      <b>Deprecated</b> - Use {@link #interfaces()} or other various 
approaches.
+        * </div>
         */
+       @Deprecated
        Class<?>[] beanFilters_remove() default {};
 
        /**
@@ -628,7 +635,12 @@ public @interface BeanConfig {
         *      <li class='jm'>{@link BeanContextBuilder#bpi(String, String)}
         *      <li class='jm'>{@link BeanContextBuilder#bpi(Map)}
         * </ul>
+        *
+        * <div class='warn'>
+        *      <b>Deprecated</b> - Use {@link #applyBean()} and {@link 
Bean#bpi()}.
+        * </div>
         */
+       @Deprecated
        CS[] bpiMap() default {};
 
        /**
@@ -722,7 +734,12 @@ public @interface BeanConfig {
         *      <li class='jm'>{@link BeanContextBuilder#bpx(String, String)}
         *      <li class='jm'>{@link BeanContextBuilder#bpx(Map)}
         * </ul>
+        *
+        * <div class='warn'>
+        *      <b>Deprecated</b> - Use {@link #applyBean()} and {@link 
Bean#bpx()}.
+        * </div>
         */
+       @Deprecated
        CS[] bpxMap() default {};
 
        /**
@@ -801,7 +818,12 @@ public @interface BeanConfig {
         *      <li class='jm'>{@link BeanContextBuilder#bpro(String, String)}
         *      <li class='jm'>{@link BeanContextBuilder#bpro(Map)}
         * </ul>
+        *
+        * <div class='warn'>
+        *      <b>Deprecated</b> - Use {@link #applyBean()} and {@link 
Bean#bpi()}.
+        * </div>
         */
+       @Deprecated
        CS[] bproMap() default {};
 
        /**
@@ -880,7 +902,12 @@ public @interface BeanConfig {
         *      <li class='jm'>{@link BeanContextBuilder#bpwo(String, String)}
         *      <li class='jm'>{@link BeanContextBuilder#bpwo(Map)}
         * </ul>
+        *
+        * <div class='warn'>
+        *      <b>Deprecated</b> - Use {@link #applyBean()} and {@link 
Bean#bpwo()}.
+        * </div>
         */
+       @Deprecated
        CS[] bpwoMap() default {};
 
        /**
@@ -1252,6 +1279,42 @@ public @interface BeanConfig {
        @Deprecated CS[] includeProperties() default {};
 
        /**
+        * Identifies a set of interfaces.
+        *
+        * <p>
+        * When specified, only the list of properties defined on the interface 
class will be used during serialization
+        * of implementation classes.  Additional properties on subclasses will 
be ignored.
+        *
+        * <p class='bcode w800'>
+        *      <jc>// Parent class or interface</jc>
+        *      <jk>public abstract class</jk> A {
+        *              <jk>public</jk> String <jf>foo</jf> = <js>"foo"</js>;
+        *      }
+        *
+        *      <jc>// Sub class</jc>
+        *      <jk>public class</jk> A1 <jk>extends</jk> A {
+        *              <jk>public</jk> String <jf>bar</jf> = <js>"bar"</js>;
+        *      }
+        *
+        *      <jc>// Apply it to a config</jc>
+        *      <ja>@BeanConfig</ja>(
+        *              interfaces={
+        *                      A.<jk>class</jk>
+        *              }
+        *      )
+        * </p>
+        *
+        * <p>
+        * This annotation can be used on the parent class so that it filters 
to all child classes, or can be set
+        * individually on the child classes.
+        *
+        * <ul class='notes'>
+        *      <li>The {@link Bean#interfaceClass() @Bean(interfaceClass)} 
annotation is the equivalent annotation-based solution.
+        * </ul>
+        */
+       Class<?>[] interfaces() default {};
+
+       /**
         * Configuration property:  Locale.
         *
         * <p>
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfigApply.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfigApply.java
index 50f436b..f6c62c1 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfigApply.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfigApply.java
@@ -109,6 +109,8 @@ public class BeanConfigApply extends 
ConfigApply<BeanConfig> {
                        psb.set(BEAN_ignoreUnknownNullBeanProperties, 
bool(a.ignoreUnknownNullBeanProperties()));
                for (CC e : a.implClasses())
                        psb.putTo(BEAN_implClasses, e.k().getName(), e.v());
+               for (Class<?> c : a.interfaces())
+                       psb.prependTo(BEAN_annotations, new 
BeanAnnotation(c).interfaceClass(c));
                if (! a.locale().isEmpty())
                        psb.set(BEAN_locale, locale(a.locale()));
                if (! a.mediaType().isEmpty())
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 96b5803..3bbb7f2 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,24 +158,6 @@ public class CsvParserBuilder extends ReaderParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public CsvParserBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public CsvParserBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public CsvParserBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public CsvParserBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -392,6 +374,18 @@ public class CsvParserBuilder extends ReaderParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public CsvParserBuilder interfaceClass(Class<?> on, Class<?> value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public CsvParserBuilder interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public CsvParserBuilder locale(Locale value) {
                super.locale(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 b1e9b10..13305b5 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,24 +158,6 @@ public class CsvSerializerBuilder extends 
WriterSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public CsvSerializerBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public CsvSerializerBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public CsvSerializerBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public CsvSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -392,6 +374,18 @@ public class CsvSerializerBuilder extends 
WriterSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public CsvSerializerBuilder interfaceClass(Class<?> on, Class<?> value) 
{
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public CsvSerializerBuilder interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public CsvSerializerBuilder locale(Locale value) {
                super.locale(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 7d36d75..25e68ad 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,24 +684,6 @@ public class HtmlDocSerializerBuilder extends 
HtmlStrippedDocSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public HtmlDocSerializerBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public HtmlDocSerializerBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public HtmlDocSerializerBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public HtmlDocSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -918,6 +900,18 @@ public class HtmlDocSerializerBuilder extends 
HtmlStrippedDocSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public HtmlDocSerializerBuilder interfaceClass(Class<?> on, Class<?> 
value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public HtmlDocSerializerBuilder interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public HtmlDocSerializerBuilder locale(Locale value) {
                super.locale(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 7178452..278bda3 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,24 +161,6 @@ public class HtmlParserBuilder extends XmlParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public HtmlParserBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public HtmlParserBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public HtmlParserBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public HtmlParserBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -395,6 +377,18 @@ public class HtmlParserBuilder extends XmlParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public HtmlParserBuilder interfaceClass(Class<?> on, Class<?> value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public HtmlParserBuilder interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public HtmlParserBuilder locale(Locale value) {
                super.locale(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 0410e34..03fface 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,24 +379,6 @@ public class HtmlSchemaSerializerBuilder extends 
HtmlSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public HtmlSchemaSerializerBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public HtmlSchemaSerializerBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public HtmlSchemaSerializerBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public HtmlSchemaSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -613,6 +595,18 @@ public class HtmlSchemaSerializerBuilder extends 
HtmlSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public HtmlSchemaSerializerBuilder interfaceClass(Class<?> on, Class<?> 
value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public HtmlSchemaSerializerBuilder 
interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public HtmlSchemaSerializerBuilder locale(Locale value) {
                super.locale(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 21d3a61..77ba499 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,24 +310,6 @@ public class HtmlSerializerBuilder extends 
XmlSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public HtmlSerializerBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public HtmlSerializerBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public HtmlSerializerBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public HtmlSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -544,6 +526,18 @@ public class HtmlSerializerBuilder extends 
XmlSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public HtmlSerializerBuilder interfaceClass(Class<?> on, Class<?> 
value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public HtmlSerializerBuilder interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public HtmlSerializerBuilder locale(Locale value) {
                super.locale(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 43ebfc5..9fc819d 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,24 +158,6 @@ public class HtmlStrippedDocSerializerBuilder extends 
HtmlSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public HtmlStrippedDocSerializerBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public HtmlStrippedDocSerializerBuilder 
beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public HtmlStrippedDocSerializerBuilder 
beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public HtmlStrippedDocSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -392,6 +374,18 @@ public class HtmlStrippedDocSerializerBuilder extends 
HtmlSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public HtmlStrippedDocSerializerBuilder interfaceClass(Class<?> on, 
Class<?> value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public HtmlStrippedDocSerializerBuilder 
interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public HtmlStrippedDocSerializerBuilder locale(Locale value) {
                super.locale(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 b137438..3d73340 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,24 +157,6 @@ public class JsoParserBuilder extends 
InputStreamParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public JsoParserBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public JsoParserBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public JsoParserBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public JsoParserBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -391,6 +373,18 @@ public class JsoParserBuilder extends 
InputStreamParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public JsoParserBuilder interfaceClass(Class<?> on, Class<?> value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public JsoParserBuilder interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public JsoParserBuilder locale(Locale value) {
                super.locale(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 d678f61..e98c2f0 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,24 +157,6 @@ public class JsoSerializerBuilder extends 
OutputStreamSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public JsoSerializerBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public JsoSerializerBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public JsoSerializerBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public JsoSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -391,6 +373,18 @@ public class JsoSerializerBuilder extends 
OutputStreamSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public JsoSerializerBuilder interfaceClass(Class<?> on, Class<?> value) 
{
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public JsoSerializerBuilder interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public JsoSerializerBuilder locale(Locale value) {
                super.locale(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 4a34d2c..c0128a0 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,24 +192,6 @@ public class JsonParserBuilder extends ReaderParserBuilder 
{
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public JsonParserBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public JsonParserBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public JsonParserBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public JsonParserBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -426,6 +408,18 @@ public class JsonParserBuilder extends ReaderParserBuilder 
{
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public JsonParserBuilder interfaceClass(Class<?> on, Class<?> value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public JsonParserBuilder interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public JsonParserBuilder locale(Locale value) {
                super.locale(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 6217ed1..7092e17 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,24 +378,6 @@ public class JsonSchemaSerializerBuilder extends 
JsonSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public JsonSchemaSerializerBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public JsonSchemaSerializerBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public JsonSchemaSerializerBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public JsonSchemaSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -612,6 +594,18 @@ public class JsonSchemaSerializerBuilder extends 
JsonSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public JsonSchemaSerializerBuilder interfaceClass(Class<?> on, Class<?> 
value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public JsonSchemaSerializerBuilder 
interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public JsonSchemaSerializerBuilder locale(Locale value) {
                super.locale(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 61ab656..af31db3 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,24 +241,6 @@ public class JsonSerializerBuilder extends 
WriterSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public JsonSerializerBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public JsonSerializerBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public JsonSerializerBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public JsonSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -475,6 +457,18 @@ public class JsonSerializerBuilder extends 
WriterSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public JsonSerializerBuilder interfaceClass(Class<?> on, Class<?> 
value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public JsonSerializerBuilder interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public JsonSerializerBuilder locale(Locale value) {
                super.locale(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 1dce4d3..76bcbc7 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,24 +157,6 @@ public class SimpleJsonParserBuilder extends 
JsonParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public SimpleJsonParserBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public SimpleJsonParserBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public SimpleJsonParserBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public SimpleJsonParserBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -391,6 +373,18 @@ public class SimpleJsonParserBuilder extends 
JsonParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public SimpleJsonParserBuilder interfaceClass(Class<?> on, Class<?> 
value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public SimpleJsonParserBuilder interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public SimpleJsonParserBuilder locale(Locale value) {
                super.locale(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 9589a60..cc7e79b 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,24 +157,6 @@ public class SimpleJsonSerializerBuilder extends 
JsonSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public SimpleJsonSerializerBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public SimpleJsonSerializerBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public SimpleJsonSerializerBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public SimpleJsonSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -391,6 +373,18 @@ public class SimpleJsonSerializerBuilder extends 
JsonSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public SimpleJsonSerializerBuilder interfaceClass(Class<?> on, Class<?> 
value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public SimpleJsonSerializerBuilder 
interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public SimpleJsonSerializerBuilder locale(Locale value) {
                super.locale(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 db4e879..11c1273 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,24 +408,6 @@ public class JsonSchemaGeneratorBuilder extends 
BeanTraverseBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public JsonSchemaGeneratorBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public JsonSchemaGeneratorBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public JsonSchemaGeneratorBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public JsonSchemaGeneratorBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -642,6 +624,18 @@ public class JsonSchemaGeneratorBuilder extends 
BeanTraverseBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public JsonSchemaGeneratorBuilder interfaceClass(Class<?> on, Class<?> 
value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public JsonSchemaGeneratorBuilder 
interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public JsonSchemaGeneratorBuilder locale(Locale value) {
                super.locale(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 ed0b32e..be665ea 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,24 +157,6 @@ public class MsgPackParserBuilder extends 
InputStreamParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MsgPackParserBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MsgPackParserBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MsgPackParserBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public MsgPackParserBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -391,6 +373,18 @@ public class MsgPackParserBuilder extends 
InputStreamParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public MsgPackParserBuilder interfaceClass(Class<?> on, Class<?> value) 
{
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public MsgPackParserBuilder interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public MsgPackParserBuilder locale(Locale value) {
                super.locale(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 530b0ba..078c386 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,24 +157,6 @@ public class MsgPackSerializerBuilder extends 
OutputStreamSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MsgPackSerializerBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MsgPackSerializerBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MsgPackSerializerBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public MsgPackSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -391,6 +373,18 @@ public class MsgPackSerializerBuilder extends 
OutputStreamSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public MsgPackSerializerBuilder interfaceClass(Class<?> on, Class<?> 
value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public MsgPackSerializerBuilder interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public MsgPackSerializerBuilder locale(Locale value) {
                super.locale(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 7438be0..6bf3bfc 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,24 +273,6 @@ public class OpenApiParserBuilder extends UonParserBuilder 
{
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public OpenApiParserBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public OpenApiParserBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public OpenApiParserBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public OpenApiParserBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -507,6 +489,18 @@ public class OpenApiParserBuilder extends UonParserBuilder 
{
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public OpenApiParserBuilder interfaceClass(Class<?> on, Class<?> value) 
{
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public OpenApiParserBuilder interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public OpenApiParserBuilder locale(Locale value) {
                super.locale(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 5b2373c..120e0f2 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,24 +284,6 @@ public class OpenApiSerializerBuilder extends 
UonSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public OpenApiSerializerBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public OpenApiSerializerBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public OpenApiSerializerBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public OpenApiSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -518,6 +500,18 @@ public class OpenApiSerializerBuilder extends 
UonSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public OpenApiSerializerBuilder interfaceClass(Class<?> on, Class<?> 
value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public OpenApiSerializerBuilder interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public OpenApiSerializerBuilder locale(Locale value) {
                super.locale(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 7292731..7ea013d 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,24 +202,6 @@ public class InputStreamParserBuilder extends 
ParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public InputStreamParserBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public InputStreamParserBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public InputStreamParserBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public InputStreamParserBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -436,6 +418,18 @@ public class InputStreamParserBuilder extends 
ParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public InputStreamParserBuilder interfaceClass(Class<?> on, Class<?> 
value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public InputStreamParserBuilder interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public InputStreamParserBuilder locale(Locale value) {
                super.locale(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 ed2e373..193e0c3 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,24 +490,6 @@ public class ParserBuilder extends BeanContextBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public ParserBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public ParserBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public ParserBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public ParserBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -724,6 +706,18 @@ public class ParserBuilder extends BeanContextBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public ParserBuilder interfaceClass(Class<?> on, Class<?> value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public ParserBuilder interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public ParserBuilder locale(Locale value) {
                super.locale(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 1c8478f..3b98467 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,24 +475,6 @@ public class ParserGroupBuilder extends BeanContextBuilder 
{
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public ParserGroupBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public ParserGroupBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public ParserGroupBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public ParserGroupBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -709,6 +691,18 @@ public class ParserGroupBuilder extends BeanContextBuilder 
{
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public ParserGroupBuilder interfaceClass(Class<?> on, Class<?> value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public ParserGroupBuilder interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public ParserGroupBuilder locale(Locale value) {
                super.locale(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 f25bca9..751c4f0 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,24 +225,6 @@ public abstract class ReaderParserBuilder extends 
ParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public ReaderParserBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public ReaderParserBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public ReaderParserBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public ReaderParserBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -459,6 +441,18 @@ public abstract class ReaderParserBuilder extends 
ParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public ReaderParserBuilder interfaceClass(Class<?> on, Class<?> value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public ReaderParserBuilder interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public ReaderParserBuilder locale(Locale value) {
                super.locale(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 3e73198..77f23b8 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,24 +158,6 @@ public class PlainTextParserBuilder extends 
ReaderParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public PlainTextParserBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public PlainTextParserBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public PlainTextParserBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public PlainTextParserBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -392,6 +374,18 @@ public class PlainTextParserBuilder extends 
ReaderParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public PlainTextParserBuilder interfaceClass(Class<?> on, Class<?> 
value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public PlainTextParserBuilder interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public PlainTextParserBuilder locale(Locale value) {
                super.locale(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 12eb0fc..cd31a6f 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,24 +158,6 @@ public class PlainTextSerializerBuilder extends 
WriterSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public PlainTextSerializerBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public PlainTextSerializerBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public PlainTextSerializerBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public PlainTextSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -392,6 +374,18 @@ public class PlainTextSerializerBuilder extends 
WriterSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public PlainTextSerializerBuilder interfaceClass(Class<?> on, Class<?> 
value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public PlainTextSerializerBuilder 
interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public PlainTextSerializerBuilder locale(Locale value) {
                super.locale(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 dbf21c8..b9719dc 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,24 +205,6 @@ public class OutputStreamSerializerBuilder extends 
SerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public OutputStreamSerializerBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public OutputStreamSerializerBuilder beanFiltersRemove(Object...values) 
{
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public OutputStreamSerializerBuilder 
beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public OutputStreamSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -439,6 +421,18 @@ public class OutputStreamSerializerBuilder extends 
SerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public OutputStreamSerializerBuilder interfaceClass(Class<?> on, 
Class<?> value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public OutputStreamSerializerBuilder 
interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public OutputStreamSerializerBuilder locale(Locale value) {
                super.locale(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 b1912bb..f929109 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,24 +796,6 @@ public class SerializerBuilder extends BeanTraverseBuilder 
{
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public SerializerBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public SerializerBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public SerializerBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public SerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -1030,6 +1012,18 @@ public class SerializerBuilder extends 
BeanTraverseBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public SerializerBuilder interfaceClass(Class<?> on, Class<?> value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public SerializerBuilder interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public SerializerBuilder locale(Locale value) {
                super.locale(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 56556bf..fde6cd0 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,24 +753,6 @@ public class SerializerGroupBuilder extends 
BeanTraverseBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public SerializerGroupBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public SerializerGroupBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public SerializerGroupBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public SerializerGroupBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -987,6 +969,18 @@ public class SerializerGroupBuilder extends 
BeanTraverseBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public SerializerGroupBuilder interfaceClass(Class<?> on, Class<?> 
value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public SerializerGroupBuilder interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public SerializerGroupBuilder locale(Locale value) {
                super.locale(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 0f1efbc..e45be47 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,24 +419,6 @@ public class WriterSerializerBuilder extends 
SerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public WriterSerializerBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public WriterSerializerBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public WriterSerializerBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public WriterSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -653,6 +635,18 @@ public class WriterSerializerBuilder extends 
SerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public WriterSerializerBuilder interfaceClass(Class<?> on, Class<?> 
value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public WriterSerializerBuilder interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public WriterSerializerBuilder locale(Locale value) {
                super.locale(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 7031782..ccd3d9b 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,24 +178,6 @@ public class SoapXmlSerializerBuilder extends 
XmlSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public SoapXmlSerializerBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public SoapXmlSerializerBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public SoapXmlSerializerBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public SoapXmlSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -412,6 +394,18 @@ public class SoapXmlSerializerBuilder extends 
XmlSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public SoapXmlSerializerBuilder interfaceClass(Class<?> on, Class<?> 
value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public SoapXmlSerializerBuilder interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public SoapXmlSerializerBuilder locale(Locale value) {
                super.locale(value);
                return this;
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 901814d..9ec5ab8 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
@@ -203,7 +203,6 @@ public class BeanFilterBuilder<T> {
         *
         * <ul class='seealso'>
         *      <li class='ja'>{@link Bean#interfaceClass()}
-        *      <li class='jf'>{@link BeanContext#BEAN_beanFilters}
         * </ul>
         *
         * @param value The new value for this setting.
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/InterfaceBeanFilterBuilder.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/InterfaceBeanFilterBuilder.java
index 1ab395d..9590a29 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/InterfaceBeanFilterBuilder.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/InterfaceBeanFilterBuilder.java
@@ -24,7 +24,7 @@ import org.apache.juneau.reflect.*;
  *
  * <p>
  * These objects are created when you pass in non-<c>BeanFilterBuilder</c> 
classes to
- * {@link BeanContextBuilder#beanFilters(Object...)}, and are equivalent to 
adding a
+ * {@link BeanContextBuilder#interfaceClass(Class, Class)}, and are equivalent 
to adding a
  * <code><ja>@Bean</ja>(interfaceClass=Foo.<jk>class</jk>)</code> annotation 
on the <c>Foo</c> class.
  *
  * @param <T> The interface class.
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 e1b48f6..7676aa2 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,24 +231,6 @@ public class UonParserBuilder extends ReaderParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public UonParserBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public UonParserBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public UonParserBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public UonParserBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -465,6 +447,18 @@ public class UonParserBuilder extends ReaderParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public UonParserBuilder interfaceClass(Class<?> on, Class<?> value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public UonParserBuilder interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public UonParserBuilder locale(Locale value) {
                super.locale(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 18fb3b0..15e5683 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,24 +338,6 @@ public class UonSerializerBuilder extends 
WriterSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public UonSerializerBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public UonSerializerBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public UonSerializerBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public UonSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -572,6 +554,18 @@ public class UonSerializerBuilder extends 
WriterSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public UonSerializerBuilder interfaceClass(Class<?> on, Class<?> value) 
{
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public UonSerializerBuilder interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public UonSerializerBuilder locale(Locale value) {
                super.locale(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 52bf043..11f53e1 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,24 +192,6 @@ public class UrlEncodingParserBuilder extends 
UonParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public UrlEncodingParserBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public UrlEncodingParserBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public UrlEncodingParserBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public UrlEncodingParserBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -426,6 +408,18 @@ public class UrlEncodingParserBuilder extends 
UonParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public UrlEncodingParserBuilder interfaceClass(Class<?> on, Class<?> 
value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public UrlEncodingParserBuilder interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public UrlEncodingParserBuilder locale(Locale value) {
                super.locale(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 1f90e7c..22d6ce4 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,24 +192,6 @@ public class UrlEncodingSerializerBuilder extends 
UonSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public UrlEncodingSerializerBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public UrlEncodingSerializerBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public UrlEncodingSerializerBuilder beanFiltersReplace(Object...values) 
{
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public UrlEncodingSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -426,6 +408,18 @@ public class UrlEncodingSerializerBuilder extends 
UonSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public UrlEncodingSerializerBuilder interfaceClass(Class<?> on, 
Class<?> value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public UrlEncodingSerializerBuilder 
interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public UrlEncodingSerializerBuilder locale(Locale value) {
                super.locale(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 d0c6c0b..34c9e45 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,24 +334,6 @@ public class XmlParserBuilder extends ReaderParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public XmlParserBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public XmlParserBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public XmlParserBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public XmlParserBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -568,6 +550,18 @@ public class XmlParserBuilder extends ReaderParserBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public XmlParserBuilder interfaceClass(Class<?> on, Class<?> value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public XmlParserBuilder interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public XmlParserBuilder locale(Locale value) {
                super.locale(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 16d2c6f..65cfc61 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,24 +371,6 @@ public class XmlSerializerBuilder extends 
WriterSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public XmlSerializerBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public XmlSerializerBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public XmlSerializerBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public XmlSerializerBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -605,6 +587,18 @@ public class XmlSerializerBuilder extends 
WriterSerializerBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public XmlSerializerBuilder interfaceClass(Class<?> on, Class<?> value) 
{
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public XmlSerializerBuilder interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public XmlSerializerBuilder locale(Locale value) {
                super.locale(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 c7b30b1..1288e56 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
@@ -48,7 +48,6 @@ 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.*;
@@ -2694,17 +2693,11 @@ public class RestClientTest {
                }
        }
 
-       public static class O10Filter extends 
org.apache.juneau.transform.BeanFilterBuilder<O10> {
-               public O10Filter() {
-                       bpi("f1");
-               }
-       }
-
        @Test
        public void o010_beanContext_beanFilters() throws Exception {
                RestResponse rr = MockRestClient
                        .create(O2R.class)
-                       .beanFilters(O10Filter.class)
+                       .bpi(O10.class, "f1")
                        .simpleJson()
                        .build()
                        .post("/test", new O10().init())
@@ -2718,7 +2711,7 @@ public class RestClientTest {
 
                rr = MockRestClient
                        .create(O2R.class)
-                       .beanFilters(new O10Filter())
+                       .bpi(O10.class, "f1")
                        .simpleJson()
                        .build()
                        .post("/test", new O10().init())
@@ -2732,7 +2725,7 @@ public class RestClientTest {
 
                rr = MockRestClient
                        .create(O2R.class)
-                       
.beanFilters(BeanFilter.create(O10.class).bpi("f1").build())
+                       .bpi(O10.class, "f1")
                        .simpleJson()
                        .build()
                        .post("/test", new O10().init())
@@ -2746,7 +2739,7 @@ public class RestClientTest {
 
                rr = MockRestClient
                        .create(O2R.class)
-                       .beanFilters(BeanFilter.create(O10.class).bpi("f1"))
+                       .bpi(O10.class, "f1")
                        .simpleJson()
                        .build()
                        .post("/test", new O10().init())
@@ -2761,7 +2754,7 @@ public class RestClientTest {
 
                rr = MockRestClient
                        .create(O2R.class)
-                       .beanFilters(O10I.class)
+                       .interfaces(O10I.class)
                        .simpleJson()
                        .build()
                        .post("/test", new O10().init())
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 a415b98..2e0b0f4 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,24 +4321,6 @@ public class RestClientBuilder extends 
BeanContextBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public RestClientBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestClientBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestClientBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public RestClientBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -4555,6 +4537,18 @@ public class RestClientBuilder extends 
BeanContextBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public RestClientBuilder interfaceClass(Class<?> on, Class<?> value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public RestClientBuilder interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public RestClientBuilder locale(Locale value) {
                super.locale(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 c210b2b..4c5d17e 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,24 +236,6 @@ public class MockRestClient extends RestClientBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public MockRestClient beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public MockRestClient beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -470,6 +452,18 @@ public class MockRestClient extends RestClientBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public MockRestClient interfaceClass(Class<?> on, Class<?> value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public MockRestClient interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public MockRestClient locale(Locale value) {
                super.locale(value);
                return this;
diff --git 
a/juneau-rest/juneau-rest-server-jaxrs/src/main/java/org/apache/juneau/rest/jaxrs/BaseProvider.java
 
b/juneau-rest/juneau-rest-server-jaxrs/src/main/java/org/apache/juneau/rest/jaxrs/BaseProvider.java
index 0749b46..5cd1e34 100644
--- 
a/juneau-rest/juneau-rest-server-jaxrs/src/main/java/org/apache/juneau/rest/jaxrs/BaseProvider.java
+++ 
b/juneau-rest/juneau-rest-server-jaxrs/src/main/java/org/apache/juneau/rest/jaxrs/BaseProvider.java
@@ -60,7 +60,6 @@ public class BaseProvider implements 
MessageBodyReader<Object>, MessageBodyWrite
 
                        serializers = SerializerGroup.create()
                                .append(jp.serializers())
-                               .beanFilters((Object[])jp.beanFilters())
                                .swaps((Object[])jp.pojoSwaps())
                                .swaps((Object[])jp.swaps())
                                .set(properties)
@@ -68,7 +67,6 @@ public class BaseProvider implements 
MessageBodyReader<Object>, MessageBodyWrite
 
                        parsers = ParserGroup.create()
                                .append(jp.parsers())
-                               .beanFilters((Object[])jp.beanFilters())
                                .swaps((Object[])jp.pojoSwaps())
                                .swaps((Object[])jp.swaps())
                                .set(properties)
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 d31441a..ba0a32e 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,24 +2690,6 @@ public class RestContextBuilder extends 
BeanContextBuilder implements ServletCon
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public RestContextBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestContextBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestContextBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public RestContextBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -2924,6 +2906,18 @@ public class RestContextBuilder extends 
BeanContextBuilder implements ServletCon
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public RestContextBuilder interfaceClass(Class<?> on, Class<?> value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public RestContextBuilder interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public RestContextBuilder locale(Locale value) {
                super.locale(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 003f19f..8b9ba3d 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,24 +173,6 @@ public class RestMethodContextBuilder extends 
BeanContextBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
-       public RestMethodContextBuilder beanFilters(Object...values) {
-               super.beanFilters(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestMethodContextBuilder beanFiltersRemove(Object...values) {
-               super.beanFiltersRemove(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
-       public RestMethodContextBuilder beanFiltersReplace(Object...values) {
-               super.beanFiltersReplace(values);
-               return this;
-       }
-
-       @Override /* GENERATED - BeanContextBuilder */
        public RestMethodContextBuilder beanMapPutReturnsOldValue() {
                super.beanMapPutReturnsOldValue();
                return this;
@@ -407,6 +389,18 @@ public class RestMethodContextBuilder extends 
BeanContextBuilder {
        }
 
        @Override /* GENERATED - BeanContextBuilder */
+       public RestMethodContextBuilder interfaceClass(Class<?> on, Class<?> 
value) {
+               super.interfaceClass(on, value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
+       public RestMethodContextBuilder interfaces(java.lang.Class<?>...value) {
+               super.interfaces(value);
+               return this;
+       }
+
+       @Override /* GENERATED - BeanContextBuilder */
        public RestMethodContextBuilder locale(Locale value) {
                super.locale(value);
                return this;

Reply via email to