JUNEAU-155 Split bpi/bpx into serializer and parser configuration
properties.
diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BeanConfigAnnotationTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BeanConfigAnnotationTest.java
index d4c1190..4bf8b23 100644
--- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BeanConfigAnnotationTest.java
+++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BeanConfigAnnotationTest.java
@@ -121,6 +121,8 @@
 		beanTypePropertyName="$X{foo}",
 		bpiMap=@CS(k=A1.class,v="$X{foo}"),
 		bpxMap=@CS(k=A1.class,v="$X{foo}"),
+		bproMap=@CS(k=A1.class,v="$X{foo}"),
+		bpwoMap=@CS(k=A1.class,v="$X{foo}"),
 		debug="$X{true}",
 		detectRecursions="$X{true}",
 		examples="$X{A1}: {foo:1}",
@@ -172,10 +174,13 @@
 		check("true", bc.isBeansRequireSettersForGetters());
 		check("true", bc.isBeansRequireSomeProperties());
 		check("foo", bc.getBeanTypePropertyName());
+		check("org.apache.juneau.BeanConfigAnnotationTest$A1=foo", bc.getBpi());
+		check("org.apache.juneau.BeanConfigAnnotationTest$A1=foo", bc.getBpx());
+		check("org.apache.juneau.BeanConfigAnnotationTest$A1=foo", bc.getBpro());
+		check("org.apache.juneau.BeanConfigAnnotationTest$A1=foo", bc.getBpwo());
 		check("true", bc.isDebug());
 		check("true", bc.isDetectRecursions());
 		check("A1={foo:1}", bc.getExamples());
-		check("org.apache.juneau.BeanConfigAnnotationTest$A1=foo", bc.getBpx());
 		check("true", bc.isFluentSetters());
 		check("true", bc.isIgnoreInvocationExceptionsOnGetters());
 		check("true", bc.isIgnoreInvocationExceptionsOnSetters());
@@ -184,7 +189,6 @@
 		check("true", bc.isIgnoreUnknownBeanProperties());
 		check("true", bc.isIgnoreUnknownNullBeanProperties());
 		check("org.apache.juneau.BeanConfigAnnotationTest$A1=A1", bc.getImplClasses());
-		check("org.apache.juneau.BeanConfigAnnotationTest$A1=foo", bc.getBpi());
 		check("1", bc.getInitialDepth());
 		check("en_US", bc.getLocale());
 		check("1", bc.getMaxDepth());
@@ -224,10 +228,13 @@
 		check("false", bc.isBeansRequireSettersForGetters());
 		check("true", bc.isBeansRequireSomeProperties());
 		check("_type", bc.getBeanTypePropertyName());
+		check("", bc.getBpi());
+		check("", bc.getBpx());
+		check("", bc.getBpro());
+		check("", bc.getBpwo());
 		check("false", bc.isDebug());
 		check("false", bc.isDetectRecursions());
 		check("", bc.getExamples());
-		check("", bc.getBpx());
 		check("false", bc.isFluentSetters());
 		check("false", bc.isIgnoreInvocationExceptionsOnGetters());
 		check("false", bc.isIgnoreInvocationExceptionsOnSetters());
@@ -236,7 +243,6 @@
 		check("false", bc.isIgnoreUnknownBeanProperties());
 		check("true", bc.isIgnoreUnknownNullBeanProperties());
 		check("", bc.getImplClasses());
-		check("", bc.getBpi());
 		check("0", bc.getInitialDepth());
 		check(Locale.getDefault().toString(), bc.getLocale());
 		check("100", bc.getMaxDepth());
@@ -274,10 +280,13 @@
 		check("false", bc.isBeansRequireSettersForGetters());
 		check("true", bc.isBeansRequireSomeProperties());
 		check("_type", bc.getBeanTypePropertyName());
+		check("", bc.getBpi());
+		check("", bc.getBpx());
+		check("", bc.getBpro());
+		check("", bc.getBpwo());
 		check("false", bc.isDebug());
 		check("false", bc.isDetectRecursions());
 		check("", bc.getExamples());
-		check("", bc.getBpx());
 		check("false", bc.isFluentSetters());
 		check("false", bc.isIgnoreInvocationExceptionsOnGetters());
 		check("false", bc.isIgnoreInvocationExceptionsOnSetters());
@@ -286,7 +295,6 @@
 		check("false", bc.isIgnoreUnknownBeanProperties());
 		check("true", bc.isIgnoreUnknownNullBeanProperties());
 		check("", bc.getImplClasses());
-		check("", bc.getBpi());
 		check("0", bc.getInitialDepth());
 		check(Locale.getDefault().toString(), bc.getLocale());
 		check("100", bc.getMaxDepth());
diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/ReadWriteOnlyPropertiesTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/ReadWriteOnlyPropertiesTest.java
new file mode 100644
index 0000000..7364460
--- /dev/null
+++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/ReadWriteOnlyPropertiesTest.java
@@ -0,0 +1,246 @@
+// ***************************************************************************************************************************

+// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *

+// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *

+// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance            *

+// * with the License.  You may obtain a copy of the License at                                                              *

+// *                                                                                                                         *

+// *  http://www.apache.org/licenses/LICENSE-2.0                                                                             *

+// *                                                                                                                         *

+// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *

+// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *

+// * specific language governing permissions and limitations under the License.                                              *

+// ***************************************************************************************************************************

+package org.apache.juneau;

+

+import static org.apache.juneau.testutils.TestUtils.*;

+import static org.junit.Assert.*;

+

+import org.apache.juneau.annotation.*;

+import org.apache.juneau.json.*;

+import org.apache.juneau.marshall.*;

+import org.apache.juneau.parser.*;

+import org.apache.juneau.serializer.*;

+import org.apache.juneau.utils.*;

+import org.junit.*;

+

+

+public class ReadWriteOnlyPropertiesTest {

+

+	//------------------------------------------------------------------------------------------------------------------

+	// @Beanp(ro/wo)

+	//------------------------------------------------------------------------------------------------------------------

+

+	public static class A {

+		@Beanp(ro="true")

+		public int f1;

+

+		@Beanp(wo="true")

+		public int f2;

+

+		static A create() {

+			A x = new A();

+			x.f1 = 1;

+			x.f2 = 2;

+			return x;

+		}

+	}

+

+	@Test

+	public void a01_beanpOnPrimitiveFields_serializer() throws Exception {

+		assertObjectEquals("{f1:1}", A.create());

+	}

+

+	@Test

+	public void a02_beanpOnPrimitiveFields_parser() throws Exception {

+		A x = SimpleJson.DEFAULT.read("{f1:1,f2:2}", A.class);

+		assertEquals(0, x.f1);

+		assertEquals(2, x.f2);

+	}

+

+	//------------------------------------------------------------------------------------------------------------------

+	// @Bean(bpro/bpwo)

+	//------------------------------------------------------------------------------------------------------------------

+

+	@Bean(bpro="f1", bpwo="f2")

+	public static class B {

+		@Beanp(ro="true")

+		public int f1;

+

+		@Beanp(wo="true")

+		public int f2;

+

+		static B create() {

+			B x = new B();

+			x.f1 = 1;

+			x.f2 = 2;

+			return x;

+		}

+	}

+

+	@Test

+	public void b01_beanAnnotation_serializer() throws Exception {

+		assertObjectEquals("{f1:1}", B.create());

+	}

+

+	@Test

+	public void b02_beanAnnotationParser() throws Exception {

+		B x = SimpleJson.DEFAULT.read("{f1:1,f2:2}", B.class);

+		assertEquals(0, x.f1);

+		assertEquals(2, x.f2);

+	}

+

+	//------------------------------------------------------------------------------------------------------------------

+	// @BeanContext.bpro()/bpwo()

+	//------------------------------------------------------------------------------------------------------------------

+

+	public static class C {

+		public int f1;

+		public int f2;

+

+		static C create() {

+			C x = new C();

+			x.f1 = 1;

+			x.f2 = 2;

+			return x;

+		}

+	}

+

+	@Test

+	public void c01_beanContext_serializer() throws Exception {

+		WriterSerializer sw;

+

+		sw = SimpleJsonSerializer.DEFAULT.builder()

+			.bpro(C.class.getName(), "f1")

+			.bpwo(C.class.getName(), "f2")

+			.build();

+		assertEquals("{f1:1}", sw.toString(C.create()));

+

+		sw = SimpleJsonSerializer.DEFAULT.builder()

+			.bpro("ReadWriteOnlyPropertiesTest$C", "f1")

+			.bpwo("ReadWriteOnlyPropertiesTest$C", "f2")

+			.build();

+		assertEquals("{f1:1}", sw.toString(C.create()));

+

+		sw = SimpleJsonSerializer.DEFAULT.builder()

+			.bpro(C.class, "f1")

+			.bpwo(C.class, "f2")

+			.build();

+		assertEquals("{f1:1}", sw.toString(C.create()));

+

+		sw = SimpleJsonSerializer.DEFAULT.builder()

+			.bpro(AMap.create(C.class.getName(), "f1"))

+			.bpwo(AMap.create(C.class.getName(), "f2"))

+			.build();

+		assertEquals("{f1:1}", sw.toString(C.create()));

+

+		sw = SimpleJsonSerializer.DEFAULT.builder()

+			.bpro(AMap.create("ReadWriteOnlyPropertiesTest$C", "f1"))

+			.bpwo(AMap.create("ReadWriteOnlyPropertiesTest$C", "f2"))

+			.build();

+		assertEquals("{f1:1}", sw.toString(C.create()));

+	}

+

+	@Test

+	public void c02_beanAnnotationParser() throws Exception {

+		ReaderParser rp;

+		C x;

+

+		rp = JsonParser.DEFAULT.builder()

+			.bpro(C.class.getName(), "f1")

+			.bpwo(C.class.getName(), "f2")

+			.build();

+		x = rp.parse("{f1:1,f2:2}", C.class);

+		assertEquals(0, x.f1);

+		assertEquals(2, x.f2);

+

+		rp = JsonParser.DEFAULT.builder()

+			.bpro("ReadWriteOnlyPropertiesTest$C", "f1")

+			.bpwo("ReadWriteOnlyPropertiesTest$C", "f2")

+			.build();

+		x = rp.parse("{f1:1,f2:2}", C.class);

+		assertEquals(0, x.f1);

+		assertEquals(2, x.f2);

+

+		rp = JsonParser.DEFAULT.builder()

+			.bpro(C.class, "f1")

+			.bpwo(C.class, "f2")

+			.build();

+		x = rp.parse("{f1:1,f2:2}", C.class);

+		assertEquals(0, x.f1);

+		assertEquals(2, x.f2);

+

+		rp = JsonParser.DEFAULT.builder()

+			.bpro(AMap.create(C.class.getName(), "f1"))

+			.bpwo(AMap.create(C.class.getName(), "f2"))

+			.build();

+		x = rp.parse("{f1:1,f2:2}", C.class);

+		assertEquals(0, x.f1);

+		assertEquals(2, x.f2);

+

+		rp = JsonParser.DEFAULT.builder()

+			.bpro(AMap.create("ReadWriteOnlyPropertiesTest$C", "f1"))

+			.bpwo(AMap.create("ReadWriteOnlyPropertiesTest$C", "f2"))

+			.build();

+		x = rp.parse("{f1:1,f2:2}", C.class);

+		assertEquals(0, x.f1);

+		assertEquals(2, x.f2);

+	}

+

+	//------------------------------------------------------------------------------------------------------------------

+	// @Bean(bpro="*")

+	//------------------------------------------------------------------------------------------------------------------

+

+	@Bean(bpro="*")

+	public static class D {

+		public int f1;

+		public int f2;

+

+		static D create() {

+			D x = new D();

+			x.f1 = 1;

+			x.f2 = 2;

+			return x;

+		}

+	}

+

+	@Test

+	public void d01_beanAnnotation_bproAll_serializer() throws Exception {

+		assertObjectEquals("{f1:1,f2:2}", D.create());

+	}

+

+	@Test

+	public void b02_beanAnnotation_bproAll_Parser() throws Exception {

+		D x = SimpleJson.DEFAULT.read("{f1:1,f2:2}", D.class);

+		assertEquals(0, x.f1);

+		assertEquals(0, x.f2);

+	}

+

+	//------------------------------------------------------------------------------------------------------------------

+	// @Bean(bpwo="*")

+	//------------------------------------------------------------------------------------------------------------------

+

+	@Bean(bpwo="*")

+	public static class E {

+		public int f1;

+		public int f2;

+

+		static E create() {

+			E x = new E();

+			x.f1 = 1;

+			x.f2 = 2;

+			return x;

+		}

+	}

+

+	@Test

+	public void e01_beanAnnotation_bpwoAll_serializer() throws Exception {

+		assertObjectEquals("{}", E.create());

+	}

+

+	@Test

+	public void e02_beanAnnotation_bpwoAll_Parser() throws Exception {

+		E x = SimpleJson.DEFAULT.read("{f1:1,f2:2}", E.class);

+		assertEquals(1, x.f1);

+		assertEquals(2, x.f2);

+	}

+}
\ No newline at end of file
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 8b9d5ff..bfc436e 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
@@ -1002,6 +1002,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public RdfParserBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public RdfParserBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public RdfParserBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public RdfParserBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public RdfParserBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public RdfParserBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public RdfParserBuilder debug() {
 		super.debug();
 		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 21f7b72..56fb2dd 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
@@ -1246,6 +1246,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public RdfSerializerBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public RdfSerializerBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public RdfSerializerBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public RdfSerializerBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public RdfSerializerBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public RdfSerializerBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public RdfSerializerBuilder debug() {
 		super.debug();
 		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 631a7f8..5034982 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
@@ -26,6 +26,7 @@
 import org.apache.juneau.http.*;
 import org.apache.juneau.internal.*;
 import org.apache.juneau.json.*;
+import org.apache.juneau.marshall.*;
 import org.apache.juneau.reflect.*;
 import org.apache.juneau.serializer.*;
 import org.apache.juneau.transform.*;
@@ -2985,15 +2986,13 @@
 	protected String[] getBpi(Class<?> c) {
 		if (bpi.isEmpty())
 			return null;
-		String[] s = null;
 		ClassInfo ci = ClassInfo.of(c);
 		for (ClassInfo c2 : ci.getAllParents()) {
-			s = bpi.get(c2.getFullName());
-			if (s != null)
-				return s;
-			s = bpi.get(c2.getSimpleName());
-			if (s != null)
-				return s;
+			for (String n : c2.getNames()) {
+				String[] s = bpi.get(n);
+				if (s != null)
+					return s;
+			}
 		}
 		return bpi.get("*");
 	}
@@ -3018,15 +3017,13 @@
 	protected String[] getBpx(Class<?> c) {
 		if (bpx.isEmpty())
 			return null;
-		String[] s = null;
 		ClassInfo ci = ClassInfo.of(c);
 		for (ClassInfo c2 : ci.getAllParents()) {
-			s = bpx.get(c2.getFullName());
-			if (s != null)
-				return s;
-			s = bpx.get(c2.getSimpleName());
-			if (s != null)
-				return s;
+			for (String n : c2.getNames()) {
+				String[] s = bpx.get(n);
+				if (s != null)
+					return s;
+			}
 		}
 		return bpx.get("*");
 	}
@@ -3038,20 +3035,15 @@
 	protected String[] getBpro(Class<?> c) {
 		if (bpro.isEmpty())
 			return null;
-		String[] s = null;
 		ClassInfo ci = ClassInfo.of(c);
 		for (ClassInfo c2 : ci.getAllParents()) {
-			s = bpro.get(c2.getFullName());
-			if (s != null)
-				return s;
-			s = bpro.get(c2.getSimpleName());
-			if (s != null)
-				return s;
+			for (String n : c2.getNames()) {
+				String[] s = bpro.get(n);
+				if (s != null)
+					return s;
+			}
 		}
-		s = bpro.get("*");
-		if (s != null)
-			return s;
-		return null;
+		return bpro.get("*");
 	}
 
 	protected final Map<String,String[]> getBpwo() {
@@ -3061,20 +3053,15 @@
 	protected String[] getBpwo(Class<?> c) {
 		if (bpwo.isEmpty())
 			return null;
-		String[] s = null;
 		ClassInfo ci = ClassInfo.of(c);
 		for (ClassInfo c2 : ci.getAllParents()) {
-			s = bpwo.get(c2.getFullName());
-			if (s != null)
-				return s;
-			s = bpwo.get(c2.getSimpleName());
-			if (s != null)
-				return s;
+			for (String n : c2.getNames()) {
+				String[] s = bpwo.get(n);
+				if (s != null)
+					return s;
+			}
 		}
-		s = bpwo.get("*");
-		if (s != null)
-			return s;
-		return null;
+		return bpwo.get("*");
 	}
 
 	/**
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 f2a3590..7807672 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
@@ -727,6 +727,30 @@
 		return addTo(BEAN_bpx, beanClassName, value);
 	}
 
+	public BeanContextBuilder bpro(Class<?> beanClass, String properties) {
+		return addTo(BEAN_bpro, beanClass.getName(), properties);
+	}
+
+	public BeanContextBuilder bpro(Map<String,String> values) {
+		return set(BEAN_bpro, values);
+	}
+
+	public BeanContextBuilder bpro(String beanClassName, String value) {
+		return addTo(BEAN_bpro, beanClassName, value);
+	}
+
+	public BeanContextBuilder bpwo(Class<?> beanClass, String properties) {
+		return addTo(BEAN_bpwo, beanClass.getName(), properties);
+	}
+
+	public BeanContextBuilder bpwo(Map<String,String> values) {
+		return set(BEAN_bpwo, values);
+	}
+
+	public BeanContextBuilder bpwo(String beanClassName, String value) {
+		return addTo(BEAN_bpwo, beanClassName, value);
+	}
+
 	/**
 	 * Configuration property:  Debug mode.
 	 *
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 c8760f0..36a14fc 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
@@ -1276,6 +1276,25 @@
 	}

 

 	/**

+	 * Configuration property:  Bean property excludes.

+	 *

+	 * @see BeanContext#BEAN_bpx

+	 * @return

+	 * 	The list of property names to exclude keyed by class name.

+	 */

+	protected final Map<String,String[]> getBpx() {

+		return ctx.getBpx();

+	}

+

+	protected final Map<String,String[]> getBpro() {

+		return ctx.getBpro();

+	}

+

+	protected final Map<String,String[]> getBpwo() {

+		return ctx.getBpwo();

+	}

+

+	/**

 	 * Configuration property:  Debug mode.

 	 *

 	 * @see BeanContext#BEAN_debug

@@ -1297,19 +1316,6 @@
 		return ctx.getExamples();

 	}

 

-

-	/**

-	 * Configuration property:  Bean property excludes.

-	 *

-	 * @see BeanContext#BEAN_bpx

-	 * @return

-	 * 	The list of property names to exclude keyed by class name.

-	 */

-	protected final Map<String,String[]> getBpx() {

-		return ctx.getBpx();

-	}

-

-

 	/**

 	 * Configuration property:  Find fluent setters.

 	 *

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 a9dd5e0..b56a2e7 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
@@ -367,6 +367,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public BeanTraverseBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public BeanTraverseBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public BeanTraverseBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public BeanTraverseBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public BeanTraverseBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public BeanTraverseBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public BeanTraverseBuilder debug() {
 		super.debug();
 		return this;
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 9712ccf..f05681f 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
@@ -618,6 +618,11 @@
 	 */
 	CS[] bpxMap() default {};
 
+	String[] bpro() default {};
+	CS[] bproMap() default {};
+	String[] bpwo() default {};
+	CS[] bpwoMap() default {};
+
 	/**
 	 * Configuration property:  Debug mode.
 	 *
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 33f6213..516a578 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
@@ -43,16 +43,22 @@
 	@Override
 	public void apply(AnnotationInfo<BeanConfig> ai, PropertyStoreBuilder psb) {
 		BeanConfig a = ai.getAnnotation();
-		if (! a.beanClassVisibility().isEmpty())
-			psb.set(BEAN_beanClassVisibility, visibility(a.beanClassVisibility(), "beanClassVisibility"));
-		if (! a.beanConstructorVisibility().isEmpty())
-			psb.set(BEAN_beanConstructorVisibility, visibility(a.beanConstructorVisibility(), "beanConstructorVisibility"));
+
+		for (CS e : a.excludeProperties())
+			psb.addTo(BEAN_bpx, e.k().getName(), string(e.v()));
+		for (CS e : a.includeProperties())
+			psb.addTo(BEAN_bpi, e.k().getName(), string(e.v()));
 		if (a.beanDictionary().length != 0)
 			psb.addTo(BEAN_beanDictionary, a.beanDictionary());
 		if (a.beanDictionary_replace().length != 0)
 			psb.set(BEAN_beanDictionary, a.beanDictionary_replace());
 		if (a.beanDictionary_remove().length != 0)
 			psb.removeFrom(BEAN_beanDictionary, a.beanDictionary_remove());
+
+		if (! a.beanClassVisibility().isEmpty())
+			psb.set(BEAN_beanClassVisibility, visibility(a.beanClassVisibility(), "beanClassVisibility"));
+		if (! a.beanConstructorVisibility().isEmpty())
+			psb.set(BEAN_beanConstructorVisibility, visibility(a.beanConstructorVisibility(), "beanConstructorVisibility"));
 		if (a.dictionary().length != 0)
 			psb.addTo(BEAN_beanDictionary, a.dictionary());
 		if (a.dictionary_replace().length != 0)
@@ -83,18 +89,26 @@
 			psb.set(BEAN_beanTypePropertyName, string(a.beanTypePropertyName()));
 		if (a.bpi().length > 0)
 			psb.addTo(BEAN_bpi, stringsMap(a.bpi(), "bpi"));
+		for (CS e : a.bpiMap())
+			psb.addTo(BEAN_bpi, e.k().getName(), string(e.v()));
 		if (a.bpx().length > 0)
 			psb.addTo(BEAN_bpx, stringsMap(a.bpi(), "bpx"));
+		for (CS e : a.bpxMap())
+			psb.addTo(BEAN_bpx, e.k().getName(), string(e.v()));
+		if (a.bpro().length > 0)
+			psb.addTo(BEAN_bpro, stringsMap(a.bpro(), "bpro"));
+		for (CS e : a.bproMap())
+			psb.addTo(BEAN_bpro, e.k().getName(), string(e.v()));
+		if (a.bpwo().length > 0)
+			psb.addTo(BEAN_bpwo, stringsMap(a.bpi(), "bpwo"));
+		for (CS e : a.bpwoMap())
+			psb.addTo(BEAN_bpwo, e.k().getName(), string(e.v()));
 		if (! a.debug().isEmpty())
 			psb.set(BEAN_debug, bool(a.debug()));
 		for (CS e : a.example())
 			psb.addTo(BEAN_examples, e.k().getName(), parse(e.k(), e.v(), "example"));
 		if (a.examples().length > 0)
 			psb.addTo(BEAN_examples, objectMap(a.examples(), "examples"));
-		for (CS e : a.excludeProperties())
-			psb.addTo(BEAN_bpx, e.k().getName(), string(e.v()));
-		for (CS e : a.bpxMap())
-			psb.addTo(BEAN_bpx, e.k().getName(), string(e.v()));
 		if (! a.fluentSetters().isEmpty())
 			psb.set(BEAN_fluentSetters, bool(a.fluentSetters()));
 		if (! a.ignoreInvocationExceptionsOnGetters().isEmpty())
@@ -109,10 +123,6 @@
 			psb.set(BEAN_ignoreUnknownNullBeanProperties, bool(a.ignoreUnknownNullBeanProperties()));
 		for (CC e : a.implClasses())
 			psb.addTo(BEAN_implClasses, e.k().getName(), e.v());
-		for (CS e : a.includeProperties())
-			psb.addTo(BEAN_bpi, e.k().getName(), string(e.v()));
-		for (CS e : a.bpiMap())
-			psb.addTo(BEAN_bpi, e.k().getName(), string(e.v()));
 		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 7ae685a..63aa49b 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
@@ -322,6 +322,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public CsvParserBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public CsvParserBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public CsvParserBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public CsvParserBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public CsvParserBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public CsvParserBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public CsvParserBuilder debug() {
 		super.debug();
 		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 1566729..91adc0d 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
@@ -448,6 +448,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public CsvSerializerBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public CsvSerializerBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public CsvSerializerBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public CsvSerializerBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public CsvSerializerBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public CsvSerializerBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public CsvSerializerBuilder debug() {
 		super.debug();
 		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 13cf8c4..d5815f4 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
@@ -969,6 +969,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public HtmlDocSerializerBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public HtmlDocSerializerBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public HtmlDocSerializerBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public HtmlDocSerializerBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public HtmlDocSerializerBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public HtmlDocSerializerBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public HtmlDocSerializerBuilder debug() {
 		super.debug();
 		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 bf42390..06008ff 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
@@ -344,6 +344,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public HtmlParserBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public HtmlParserBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public HtmlParserBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public HtmlParserBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public HtmlParserBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public HtmlParserBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public HtmlParserBuilder debug() {
 		super.debug();
 		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 f36d058..e119f20 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
@@ -599,6 +599,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public HtmlSchemaSerializerBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public HtmlSchemaSerializerBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public HtmlSchemaSerializerBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public HtmlSchemaSerializerBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public HtmlSchemaSerializerBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public HtmlSchemaSerializerBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public HtmlSchemaSerializerBuilder debug() {
 		super.debug();
 		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 e9f4bdb..8fb16c8 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
@@ -622,6 +622,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public HtmlSerializerBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public HtmlSerializerBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public HtmlSerializerBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public HtmlSerializerBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public HtmlSerializerBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public HtmlSerializerBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public HtmlSerializerBuilder debug() {
 		super.debug();
 		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 3c41a9f..16845ad 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
@@ -533,6 +533,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public HtmlStrippedDocSerializerBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public HtmlStrippedDocSerializerBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public HtmlStrippedDocSerializerBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public HtmlStrippedDocSerializerBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public HtmlStrippedDocSerializerBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public HtmlStrippedDocSerializerBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public HtmlStrippedDocSerializerBuilder debug() {
 		super.debug();
 		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 23ed78b..f0b4750 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
@@ -315,6 +315,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public JsoParserBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public JsoParserBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public JsoParserBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public JsoParserBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public JsoParserBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public JsoParserBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public JsoParserBuilder debug() {
 		super.debug();
 		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 2f5fa3a..29a6932 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
@@ -405,6 +405,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public JsoSerializerBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public JsoSerializerBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public JsoSerializerBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public JsoSerializerBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public JsoSerializerBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public JsoSerializerBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public JsoSerializerBuilder debug() {
 		super.debug();
 		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 2834976..38a9427 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
@@ -360,6 +360,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public JsonParserBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public JsonParserBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public JsonParserBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public JsonParserBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public JsonParserBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public JsonParserBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public JsonParserBuilder debug() {
 		super.debug();
 		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 10f1aef..948a13e 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
@@ -647,6 +647,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public JsonSchemaSerializerBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public JsonSchemaSerializerBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public JsonSchemaSerializerBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public JsonSchemaSerializerBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public JsonSchemaSerializerBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public JsonSchemaSerializerBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public JsonSchemaSerializerBuilder debug() {
 		super.debug();
 		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 245e9b1..ad9d4b7 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
@@ -537,6 +537,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public JsonSerializerBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public JsonSerializerBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public JsonSerializerBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public JsonSerializerBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public JsonSerializerBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public JsonSerializerBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public JsonSerializerBuilder debug() {
 		super.debug();
 		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 01baa1b..696e5ed 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
@@ -509,6 +509,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public JsonSchemaGeneratorBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public JsonSchemaGeneratorBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public JsonSchemaGeneratorBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public JsonSchemaGeneratorBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public JsonSchemaGeneratorBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public JsonSchemaGeneratorBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public JsonSchemaGeneratorBuilder debug() {
 		super.debug();
 		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 80ce174..344698a 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
@@ -315,6 +315,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public MsgPackParserBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public MsgPackParserBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public MsgPackParserBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public MsgPackParserBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public MsgPackParserBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public MsgPackParserBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public MsgPackParserBuilder debug() {
 		super.debug();
 		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 f8f004b..5f1c8b9 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
@@ -405,6 +405,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public MsgPackSerializerBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public MsgPackSerializerBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public MsgPackSerializerBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public MsgPackSerializerBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public MsgPackSerializerBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public MsgPackSerializerBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public MsgPackSerializerBuilder debug() {
 		super.debug();
 		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 8a3a5ca..f7b1daf 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
@@ -297,6 +297,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public OpenApiParserBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public OpenApiParserBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public OpenApiParserBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public OpenApiParserBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public OpenApiParserBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public OpenApiParserBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public OpenApiParserBuilder debug() {
 		super.debug();
 		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 d112f1f..1d5fb08 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
@@ -449,6 +449,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public OpenApiSerializerBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public OpenApiSerializerBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public OpenApiSerializerBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public OpenApiSerializerBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public OpenApiSerializerBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public OpenApiSerializerBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public OpenApiSerializerBuilder debug() {
 		super.debug();
 		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 c6a7b66..5de2e88 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
@@ -346,6 +346,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public InputStreamParserBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public InputStreamParserBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public InputStreamParserBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public InputStreamParserBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public InputStreamParserBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public InputStreamParserBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public InputStreamParserBuilder debug() {
 		super.debug();
 		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 a7173f8..ddb4373 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
@@ -425,6 +425,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public ParserBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public ParserBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public ParserBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public ParserBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public ParserBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public ParserBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public ParserBuilder debug() {
 		super.debug();
 		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 10b5329..6311847 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
@@ -569,6 +569,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public ParserGroupBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public ParserGroupBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public ParserGroupBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public ParserGroupBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public ParserGroupBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public ParserGroupBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder debug() {
 		super.debug();
 		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 5531086..b21240f 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
@@ -345,6 +345,42 @@
 	}

 

 	@Override /* BeanContextBuilder */

+	public ReaderParserBuilder bpro(Class<?> beanClass, String value) {

+		super.bpro(beanClass, value);

+		return this;

+	}

+

+	@Override /* BeanContextBuilder */

+	public ReaderParserBuilder bpro(Map<String,String> values) {

+		super.bpro(values);

+		return this;

+	}

+

+	@Override /* BeanContextBuilder */

+	public ReaderParserBuilder bpro(String beanClassName, String value) {

+		super.bpro(beanClassName, value);

+		return this;

+	}

+

+	@Override /* BeanContextBuilder */

+	public ReaderParserBuilder bpwo(Class<?> beanClass, String properties) {

+		super.bpwo(beanClass, properties);

+		return this;

+	}

+

+	@Override /* BeanContextBuilder */

+	public ReaderParserBuilder bpwo(Map<String,String> values) {

+		super.bpwo(values);

+		return this;

+	}

+

+	@Override /* BeanContextBuilder */

+	public ReaderParserBuilder bpwo(String beanClassName, String value) {

+		super.bpwo(beanClassName, value);

+		return this;

+	}

+

+	@Override /* BeanContextBuilder */

 	public ReaderParserBuilder debug() {

 		super.debug();

 		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 39ef7ee..d1d9580 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
@@ -322,6 +322,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public PlainTextParserBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public PlainTextParserBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public PlainTextParserBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public PlainTextParserBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public PlainTextParserBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public PlainTextParserBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public PlainTextParserBuilder debug() {
 		super.debug();
 		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 1bd876d..79dadf4 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
@@ -448,6 +448,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public PlainTextSerializerBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public PlainTextSerializerBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public PlainTextSerializerBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public PlainTextSerializerBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public PlainTextSerializerBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public PlainTextSerializerBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public PlainTextSerializerBuilder debug() {
 		super.debug();
 		return this;
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ClassInfo.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ClassInfo.java
index 06014db..55c8a15 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ClassInfo.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ClassInfo.java
@@ -1748,6 +1748,22 @@
 	}
 
 	/**
+	 * Returns all possible names for this class.
+	 *
+	 * @return
+	 * 	An array consisting of:
+	 * 	<ul>
+	 * 		<li>{@link #getFullName()}
+	 * 		<li>{@link Class#getName()} - Note that this might be a dup.
+	 * 		<li>{@link #getShortName()}
+	 * 		<li>{@link #getSimpleName()}
+	 * 	</ul>
+	 */
+	public String[] getNames() {
+		return new String[]{ getFullName(), c.getName(), getShortName(), getSimpleName() };
+	}
+
+	/**
 	 * Same as {@link #getFullName()} but appends to an existing string builder.
 	 *
 	 * @param sb The string builder to append to.
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 06faae7..ced7148 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
@@ -286,6 +286,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public OutputStreamSerializerBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public OutputStreamSerializerBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public OutputStreamSerializerBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public OutputStreamSerializerBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public OutputStreamSerializerBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public OutputStreamSerializerBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public OutputStreamSerializerBuilder debug() {
 		super.debug();
 		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 3d03ff0..60fca02 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
@@ -700,6 +700,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public SerializerBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public SerializerBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public SerializerBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public SerializerBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public SerializerBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public SerializerBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public SerializerBuilder debug() {
 		super.debug();
 		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 cc60f61..9ed107f 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
@@ -874,6 +874,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public SerializerGroupBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public SerializerGroupBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public SerializerGroupBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public SerializerGroupBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public SerializerGroupBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public SerializerGroupBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder debug() {
 		super.debug();
 		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 647adf3..70eed8a 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
@@ -395,6 +395,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public WriterSerializerBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public WriterSerializerBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public WriterSerializerBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public WriterSerializerBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public WriterSerializerBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public WriterSerializerBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public WriterSerializerBuilder debug() {
 		super.debug();
 		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 58c57ee..fe54a57 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
@@ -467,6 +467,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public SoapXmlSerializerBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public SoapXmlSerializerBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public SoapXmlSerializerBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public SoapXmlSerializerBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public SoapXmlSerializerBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public SoapXmlSerializerBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public SoapXmlSerializerBuilder debug() {
 		super.debug();
 		return this;
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserBuilder.java
index cd81c1a..d0dda7e 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
@@ -397,6 +397,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public UonParserBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public UonParserBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public UonParserBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public UonParserBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public UonParserBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public UonParserBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public UonParserBuilder debug() {
 		super.debug();
 		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 3075e13..1b357f1 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
@@ -539,6 +539,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public UonSerializerBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public UonSerializerBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public UonSerializerBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public UonSerializerBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public UonSerializerBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public UonSerializerBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public UonSerializerBuilder debug() {
 		super.debug();
 		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 b71f9fa..19d1629 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
@@ -342,6 +342,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public UrlEncodingParserBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public UrlEncodingParserBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public UrlEncodingParserBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public UrlEncodingParserBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public UrlEncodingParserBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public UrlEncodingParserBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public UrlEncodingParserBuilder debug() {
 		super.debug();
 		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 ae20abd..98ab65e 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
@@ -511,6 +511,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public UrlEncodingSerializerBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public UrlEncodingSerializerBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public UrlEncodingSerializerBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public UrlEncodingSerializerBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public UrlEncodingSerializerBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public UrlEncodingSerializerBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public UrlEncodingSerializerBuilder debug() {
 		super.debug();
 		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 b3e6939..82abb6a 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
@@ -500,6 +500,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public XmlParserBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public XmlParserBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public XmlParserBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public XmlParserBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public XmlParserBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public XmlParserBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public XmlParserBuilder debug() {
 		super.debug();
 		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 47ed478..8f5dc65 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
@@ -648,6 +648,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public XmlSerializerBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public XmlSerializerBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public XmlSerializerBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public XmlSerializerBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public XmlSerializerBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public XmlSerializerBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public XmlSerializerBuilder debug() {
 		super.debug();
 		return this;
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xmlschema/XmlSchemaSerializerBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xmlschema/XmlSchemaSerializerBuilder.java
index b32591d..956367b 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xmlschema/XmlSchemaSerializerBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xmlschema/XmlSchemaSerializerBuilder.java
@@ -491,6 +491,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public XmlSchemaSerializerBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public XmlSchemaSerializerBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public XmlSchemaSerializerBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public XmlSchemaSerializerBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public XmlSchemaSerializerBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public XmlSchemaSerializerBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public XmlSchemaSerializerBuilder debug() {
 		super.debug();
 		return this;
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
index 529e6cd..c4c04b0 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
@@ -2473,6 +2473,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public RestClientBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public RestClientBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public RestClientBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public RestClientBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public RestClientBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public RestClientBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public RestClientBuilder debug() {
 		super.debug();
 		return this;
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
index 9a4c09a..ba152c6 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
@@ -2543,6 +2543,42 @@
 	}
 
 	@Override /* BeanContextBuilder */
+	public RestContextBuilder bpro(Class<?> beanClass, String value) {
+		super.bpro(beanClass, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public RestContextBuilder bpro(Map<String,String> values) {
+		super.bpro(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public RestContextBuilder bpro(String beanClassName, String value) {
+		super.bpro(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public RestContextBuilder bpwo(Class<?> beanClass, String properties) {
+		super.bpwo(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public RestContextBuilder bpwo(Map<String,String> values) {
+		super.bpwo(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public RestContextBuilder bpwo(String beanClassName, String value) {
+		super.bpwo(beanClassName, value);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public RestContextBuilder debug() {
 		debug(Enablement.TRUE);
 		super.debug();