You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2019/11/20 12:39:24 UTC

[juneau] branch master updated: Rename @Bean(properties/excludeProperties) to bpi/bpx.

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


View the commit online:
https://github.com/apache/juneau/commit/1ca63267c26ca8b18e83380cade1c160fdba93d8

The following commit(s) were added to refs/heads/master by this push:
     new 1ca6326  Rename @Bean(properties/excludeProperties) to bpi/bpx.
1ca6326 is described below

commit 1ca63267c26ca8b18e83380cade1c160fdba93d8
Author: JamesBognar <ja...@apache.org>
AuthorDate: Wed Nov 20 07:39:11 2019 -0500

    Rename @Bean(properties/excludeProperties) to bpi/bpx.
---
 .../java/org/apache/juneau/AnnotationsTest.java    |  2 +-
 .../java/org/apache/juneau/BeanConfigTest.java     |  2 +-
 .../java/org/apache/juneau/BeanMapErrorsTest.java  |  4 +-
 .../test/java/org/apache/juneau/BeanMapTest.java   |  2 +-
 .../juneau/a/rttests/RoundTripBeanMapsTest.java    |  4 +-
 .../juneau/a/rttests/RoundTripGenericsTest.java    |  2 +-
 .../java/org/apache/juneau/html/BasicHtmlTest.java |  4 +-
 .../juneau/html/HtmlSchemaSerializerTest.java      |  4 +-
 .../apache/juneau/transforms/BeanFilterTest.java   |  2 +-
 .../java/org/apache/juneau/utils/PojoRestTest.java |  4 +-
 .../java/org/apache/juneau/xml/BasicXmlTest.java   |  6 +--
 .../java/org/apache/juneau/xml/CommonXmlTest.java  |  2 +-
 .../org/apache/juneau/xml/XmlCollapsedTest.java    |  4 +-
 .../test/java/org/apache/juneau/xml/XmlTest.java   |  8 ++--
 .../main/java/org/apache/juneau/BeanContext.java   |  4 +-
 .../src/main/java/org/apache/juneau/ClassMeta.java |  2 +-
 .../java/org/apache/juneau/annotation/Bean.java    | 54 ++++++++++++++++++++++
 .../transform/AnnotationBeanFilterBuilder.java     |  6 +++
 .../apache/juneau/transform/BeanFilterBuilder.java |  4 +-
 .../transform/InterfaceBeanFilterBuilder.java      |  6 +++
 .../java/org/apache/juneau/utils/BeanDiff.java     |  2 +-
 21 files changed, 97 insertions(+), 31 deletions(-)

diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/AnnotationsTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/AnnotationsTest.java
index a9b4a8b..3ea278d 100755
--- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/AnnotationsTest.java
+++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/AnnotationsTest.java
@@ -44,7 +44,7 @@ public class AnnotationsTest {
 	}
 
 	/** Class with explicitly specified properties */
-	@Bean(properties="age,name")
+	@Bean(bpi="age,name")
 	public static class Person1 {
 		public int age;
 		private String name;
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 f4ba0b4..be02bdc 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
@@ -406,7 +406,7 @@ public class BeanConfigTest {
 	}
 
 
-	@Bean(properties="name,age")
+	@Bean(bpi="name,age")
 	public static class ReadOnlyPerson {
 		private final String name;
 		private final int age;
diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BeanMapErrorsTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BeanMapErrorsTest.java
index dfc659f..34d0df0 100644
--- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BeanMapErrorsTest.java
+++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BeanMapErrorsTest.java
@@ -37,7 +37,7 @@ public class BeanMapErrorsTest {
 		}
 	}
 
-	@Bean(properties="f1")
+	@Bean(bpi="f1")
 	public static class A1 {
 		public int f1;
 
@@ -61,7 +61,7 @@ public class BeanMapErrorsTest {
 			assertEquals("org.apache.juneau.BeanMapErrorsTest$A2: Found @Beanp(\"f2\") but name was not found in @Bean(properties)", e.getMessage());
 		}
 	}
-	@Bean(properties="f1")
+	@Bean(bpi="f1")
 	public static class A2 {
 		public int f1;
 
diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BeanMapTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BeanMapTest.java
index cafb3a2..b37c760 100755
--- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BeanMapTest.java
+++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BeanMapTest.java
@@ -529,7 +529,7 @@ public class BeanMapTest {
 		assertEquals("{s:['foo'],s2:[['foo']],i:[0,0,0],i2:[[0,0,0],[0,0,0]]}", SimpleJsonSerializer.DEFAULT.serialize(t));
 	}
 
-	@Bean(properties="s,s2,i,i2")
+	@Bean(bpi="s,s2,i,i2")
 	public static class E {
 		public String[] s;
 		public String[][] s2;
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 5fa5126..3a30de1 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
@@ -476,7 +476,7 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
 		assertObjectEquals("{f3:'f3',f2:'f2'}", d);
 	}
 
-	@Bean(properties="f3,f2")
+	@Bean(bpi="f3,f2")
 	public static class D1 {
 		public String f1, f2, f3;
 		public D1 init() {
@@ -541,7 +541,7 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
 		assertObjectEquals("{f1:'f1',f3:'f3'}", e);
 	}
 
-	@Bean(excludeProperties="f2")
+	@Bean(bpx="f2")
 	public static class E1 {
 		public String f1, f2, f3;
 		public E1 init() {
diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripGenericsTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripGenericsTest.java
index 2840104..f1ea7f1 100755
--- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripGenericsTest.java
+++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/a/rttests/RoundTripGenericsTest.java
@@ -57,7 +57,7 @@ public class RoundTripGenericsTest extends RoundTripTest {
 	}
 
 	// Class with unbound type variables.
-	@Bean(properties="s,t")
+	@Bean(bpi="s,t")
 	public static class Pair<S,T> {
 		private S s;
 		private T t;
diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/html/BasicHtmlTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/html/BasicHtmlTest.java
index 49fc93c..d39c3b6 100644
--- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/html/BasicHtmlTest.java
+++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/html/BasicHtmlTest.java
@@ -2891,7 +2891,7 @@ public class BasicHtmlTest {
 		public String[] b;
 	}
 
-	@Bean(dictionary={A.class},properties="a,ia,aa,o")
+	@Bean(dictionary={A.class},bpi="a,ia,aa,o")
 	public static class BeanWithAbstractFields {
 		public A a;
 		public IA ia;
@@ -2907,7 +2907,7 @@ public class BasicHtmlTest {
 		}
 	}
 
-	@Bean(dictionary={A.class},properties="a,ia1,ia2,aa1,aa2,o1,o2")
+	@Bean(dictionary={A.class},bpi="a,ia1,ia2,aa1,aa2,o1,o2")
 	public static class BeanWithAbstractArrayFields {
 		public A[] a;
 		public IA[] ia1, ia2;
diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/html/HtmlSchemaSerializerTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/html/HtmlSchemaSerializerTest.java
index bdb2ba4..7886783 100755
--- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/html/HtmlSchemaSerializerTest.java
+++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/html/HtmlSchemaSerializerTest.java
@@ -53,14 +53,14 @@ public class HtmlSchemaSerializerTest {
 	// Documentation examples
 	//====================================================================================================
 
-	@Bean(properties="name,birthDate,addresses")
+	@Bean(bpi="name,birthDate,addresses")
 	public static class Person {
 		public String name;
 		public Calendar birthDate;
 		public List<Address> addresses;
 	}
 
-	@Bean(properties="street,city,state,zip,isCurrent")
+	@Bean(bpi="street,city,state,zip,isCurrent")
 	public static class Address {
 		public String street, city;
 		public StateEnum state;
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 cbc73f2..b0adb1b 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
@@ -173,7 +173,7 @@ public class BeanFilterTest {
 		public int getP2() { return 2; }
 	}
 
-	@Bean(excludeProperties="foo")
+	@Bean(bpx="foo")
 	public class E3 extends E2 {
 		public int f3 = 3;
 		public int getP3() { return 3; }
diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/utils/PojoRestTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/utils/PojoRestTest.java
index 6390405..722a55b 100755
--- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/utils/PojoRestTest.java
+++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/utils/PojoRestTest.java
@@ -220,7 +220,7 @@ public class PojoRestTest {
 		}
 	}
 
-	@Bean(properties="street,city,state,zip,isCurrent")
+	@Bean(bpi="street,city,state,zip,isCurrent")
 	public static class Address {
 		public String street;
 		public String city;
@@ -243,7 +243,7 @@ public class PojoRestTest {
 		}
 	}
 
-	@Bean(typeName="Person",properties="name,age,addresses")
+	@Bean(typeName="Person",bpi="name,age,addresses")
 	public static class Person {
 		public String name;
 		public int age;
diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/xml/BasicXmlTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/xml/BasicXmlTest.java
index 7018fc4..e1911ad 100644
--- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/xml/BasicXmlTest.java
+++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/xml/BasicXmlTest.java
@@ -1558,7 +1558,7 @@ public class BasicXmlTest {
 		public String[] b;
 	}
 
-	@Bean(dictionary={A.class},properties="a,ia,aa,o")
+	@Bean(dictionary={A.class},bpi="a,ia,aa,o")
 	public static class BeanWithAbstractFields {
 		public A a;
 		public IA ia;
@@ -1574,7 +1574,7 @@ public class BasicXmlTest {
 		}
 	}
 
-	@Bean(dictionary={A.class},properties="a,ia1,ia2,aa1,aa2,o1,o2")
+	@Bean(dictionary={A.class},bpi="a,ia1,ia2,aa1,aa2,o1,o2")
 	public static class BeanWithAbstractArrayFields {
 		public A[] a;
 		public IA[] ia1, ia2;
@@ -1610,7 +1610,7 @@ public class BasicXmlTest {
 		}
 	}
 
-	@Bean(dictionary={A.class},properties="a,ia,aa,o")
+	@Bean(dictionary={A.class},bpi="a,ia,aa,o")
 	public static class BeanWithAbstractMapArrayFields {
 		public Map<String,A[]> a;
 		public Map<String,IA[]> ia;
diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/xml/CommonXmlTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/xml/CommonXmlTest.java
index 994ca32..3b2e360 100755
--- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/xml/CommonXmlTest.java
+++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/xml/CommonXmlTest.java
@@ -44,7 +44,7 @@ public class CommonXmlTest {
 		validateXml(t, s);
 	}
 
-	@Bean(properties="url,id,name")
+	@Bean(bpi="url,id,name")
 	public static class A {
 		@Xml(format=XmlFormat.ATTR) public URL url;
 		@Xml(format=ATTR) public int id;
diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/xml/XmlCollapsedTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/xml/XmlCollapsedTest.java
index 0d53d00..f1bc5b6 100755
--- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/xml/XmlCollapsedTest.java
+++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/xml/XmlCollapsedTest.java
@@ -179,7 +179,7 @@ public class XmlCollapsedTest {
 		validateXml(t, s);
 	}
 
-	@Bean(properties="f1,f2,f3,f4")
+	@Bean(bpi="f1,f2,f3,f4")
 	public static class D {
 
 		private List<String> f1 = new LinkedList<>(), f3 = new LinkedList<>();
@@ -235,7 +235,7 @@ public class XmlCollapsedTest {
 		validateXml(t, s);
 	}
 
-	@Bean(properties="f1,f2")
+	@Bean(bpi="f1,f2")
 	public static class E {
 
 		private LinkedList<String> f1, f2;
diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/xml/XmlTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/xml/XmlTest.java
index 63aeffb..1821365 100755
--- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/xml/XmlTest.java
+++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/xml/XmlTest.java
@@ -158,7 +158,7 @@ public class XmlTest {
 	}
 
 	/** Class with explicitly specified properties */
-	@Bean(typeName="Person1", properties="name,age")
+	@Bean(typeName="Person1", bpi="name,age")
 	public static class Person1 {
 		public int age;
 		private String name;
@@ -440,7 +440,7 @@ public class XmlTest {
 		validateXml(t, s);
 	}
 
-	@Bean(properties="url,id,name")
+	@Bean(bpi="url,id,name")
 	public static class N {
 		@Rdf(beanUri=true) @Xml(format=ELEMENT) public URL url;
 		public int id;
@@ -473,7 +473,7 @@ public class XmlTest {
 		validateXml(t, s);
 	}
 
-	@Bean(properties="url2,id2,name")
+	@Bean(bpi="url2,id2,name")
 	public static class O {
 		@Beanp(name="url2") @Xml(format=ELEMENT) public URL url;
 		@Beanp(name="id2") public int id;
@@ -506,7 +506,7 @@ public class XmlTest {
 		validateXml(t, s);
 	}
 
-	@Bean(properties="url2,id2,name")
+	@Bean(bpi="url2,id2,name")
 	public static class P {
 		@Beanp(name="url2") @Xml(format=ATTR) public URL url;
 		@Beanp(name="id2") @Xml(format=ATTR) public int id;
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 1690ed2..f8991a9 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
@@ -859,7 +859,7 @@ public class BeanContext extends Context {
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Bean#excludeProperties()}
+	 * 			<li class='ja'>{@link Bean#bpx()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
@@ -1199,7 +1199,7 @@ public class BeanContext extends Context {
 	 * 	<li><b>Session property:</b>  <jk>false</jk>
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
-	 * 			<li class='ja'>{@link Bean#properties()}
+	 * 			<li class='ja'>{@link Bean#bpi()}
 	 * 			<li class='ja'>{@link Beanp#bpi()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
index 985cd07..385b703 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
@@ -55,7 +55,7 @@ import org.apache.juneau.utils.*;
  *
  * @param <T> The class type of the wrapped class.
  */
-@Bean(properties="innerClass,classCategory,elementType,keyType,valueType,notABeanReason,initException,beanMeta")
+@Bean(bpi="innerClass,classCategory,elementType,keyType,valueType,notABeanReason,initException,beanMeta")
 public final class ClassMeta<T> implements Type {
 
 	/** Class categories. */
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 bb6efc1..86fb575 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
@@ -52,6 +52,56 @@ public @interface Bean {
 	Class<?>[] beanDictionary() default {};
 
 	/**
+	 * Bean property includes.
+	 *
+	 * <p>
+	 * The set and order of names of properties associated with a bean class.
+	 *
+	 * <p>
+	 * The order specified is the same order that the entries will be returned by the {@link BeanMap#entrySet()} and
+	 * related methods.
+	 *
+	 * <p>
+	 * This value is entirely optional if you simply want to expose all the getters and public fields on
+	 * a class as bean properties.
+	 * <br>However, it's useful if you want certain getters to be ignored or you want the properties to be
+	 * serialized in a particular order.
+	 * <br>Note that on IBM JREs, the property order is the same as the order in the source code,
+	 * whereas on Oracle JREs, the order is entirely random.
+	 *
+	 * <h5 class='section'>Example:</h5>
+	 * <p class='bcode w800'>
+	 * 	<jc>// Address class with only street/city/state properties (in that order).</jc>
+	 * 	<ja>@Bean</ja>(bpi=<js>"street,city,state"</js>)
+	 * 	<jk>public class</jk> Address {...}
+	 * </p>
+	 *
+	 * <ul class='seealso'>
+	 * 	<li class='jf'>{@link BeanContext#BEAN_includeProperties}
+	 * </ul>
+	 */
+	String bpi() default "";
+
+	/**
+	 * Bean property excludes
+	 *
+	 * <p>
+	 * Specifies a list of properties that should be excluded from {@link BeanMap#entrySet()}.
+	 *
+	 * <h5 class='section'>Example:</h5>
+	 * <p class='bcode w800'>
+	 * 	<jc>// Exclude the 'city' and 'state' properties from the Address class.</jc>
+	 * 	<ja>@Bean</ja>(bpx=<js>"city,state"</js>})
+	 * 	<jk>public class</jk> Address {...}
+	 * </p>
+	 *
+	 * <ul class='seealso'>
+	 * 	<li class='jf'>{@link BeanContext#BEAN_excludeProperties}
+	 * </ul>
+	 */
+	String bpx() default "";
+
+	/**
 	 * Bean dictionary.
 	 *
 	 * <p>
@@ -76,7 +126,9 @@ public @interface Bean {
 	 * <ul class='seealso'>
 	 * 	<li class='jf'>{@link BeanContext#BEAN_excludeProperties}
 	 * </ul>
+	 * @deprecated Use {@link #bpx()}
 	 */
+	@Deprecated
 	String excludeProperties() default "";
 
 	/**
@@ -170,7 +222,9 @@ public @interface Bean {
 	 * <ul class='seealso'>
 	 * 	<li class='jf'>{@link BeanContext#BEAN_includeProperties}
 	 * </ul>
+	 * @deprecated Use {@link #bpi()}
 	 */
+	@Deprecated
 	String properties() default "";
 
 	/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/AnnotationBeanFilterBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/AnnotationBeanFilterBuilder.java
index f587fc4..2a919cc 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/AnnotationBeanFilterBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/AnnotationBeanFilterBuilder.java
@@ -48,6 +48,9 @@ public final class AnnotationBeanFilterBuilder<T> extends BeanFilterBuilder<T> {
 			if (! b.properties().isEmpty())
 				properties(split(b.properties()));
 
+			if (! b.bpi().isEmpty())
+				properties(split(b.bpi()));
+
 			if (! b.typeName().isEmpty())
 				typeName(b.typeName());
 
@@ -60,6 +63,9 @@ public final class AnnotationBeanFilterBuilder<T> extends BeanFilterBuilder<T> {
 			if (! b.excludeProperties().isEmpty())
 				excludeProperties(split(b.excludeProperties()));
 
+			if (! b.bpx().isEmpty())
+				excludeProperties(split(b.bpx()));
+
 			if (b.propertyNamer() != PropertyNamerDefault.class)
 				propertyNamer(b.propertyNamer());
 
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 66e6829..85b0a03 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
@@ -147,7 +147,7 @@ public class BeanFilterBuilder<T> {
 	 * </p>
 	 *
 	 * <ul class='seealso'>
-	 * 	<li class='ja'>{@link Bean#properties()}
+	 * 	<li class='ja'>{@link Bean#bpi()}
 	 * 	<li class='jf'>{@link BeanContext#BEAN_includeProperties}
 	 * </ul>
 	 *
@@ -187,7 +187,7 @@ public class BeanFilterBuilder<T> {
 	 * </p>
 	 *
 	 * <ul class='seealso'>
-	 * 	<li class='ja'>{@link Bean#excludeProperties()}
+	 * 	<li class='ja'>{@link Bean#bpx()}
 	 * 	<li class='jf'>{@link BeanContext#BEAN_excludeProperties}
 	 * </ul>
 	 *
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 36ddeaf..73c7c5c 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
@@ -63,6 +63,9 @@ public class InterfaceBeanFilterBuilder<T> extends BeanFilterBuilder<T> {
 			if (! b.properties().isEmpty())
 				properties(split(b.properties()));
 
+			if (! b.bpi().isEmpty())
+				properties(split(b.bpi()));
+
 			if (! b.typeName().isEmpty())
 				typeName(b.typeName());
 
@@ -75,6 +78,9 @@ public class InterfaceBeanFilterBuilder<T> extends BeanFilterBuilder<T> {
 			if (! b.excludeProperties().isEmpty())
 				excludeProperties(split(b.excludeProperties()));
 
+			if (! b.bpx().isEmpty())
+				excludeProperties(split(b.bpx()));
+
 			try {
 				if (b.propertyNamer() != PropertyNamerDefault.class)
 					propertyNamer(b.propertyNamer());
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/BeanDiff.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/BeanDiff.java
index eeb792b..3cb3e4f 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/BeanDiff.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/BeanDiff.java
@@ -39,7 +39,7 @@ import org.apache.juneau.marshall.SimpleJson;
  * 	System.<jsf>err</jsf>.println(bf);
  * </p>
  */
-@Bean(properties="v1,v2")
+@Bean(bpi="v1,v2")
 public class BeanDiff {
 
 	private ObjectMap v1 = new ObjectMap(), v2 = new ObjectMap();