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 02:46:56 UTC

[juneau] branch master updated: @Beanp annotation.

This is an automated email from the ASF dual-hosted git repository.

jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git


The following commit(s) were added to refs/heads/master by this push:
     new 6186268  @Beanp annotation.
6186268 is described below

commit 61862686fc79adb9dc078d928e5f5928fd3a52f2
Author: JamesBognar <ja...@apache.org>
AuthorDate: Tue Nov 19 21:46:39 2019 -0500

    @Beanp annotation.
---
 eclipse-preferences/user-dictionary.txt            |  1 +
 .../java/org/apache/juneau/BeanMapErrorsTest.java  | 12 ++--
 .../test/java/org/apache/juneau/BeanMapTest.java   | 36 +++++------
 .../java/org/apache/juneau/DynaBeanComboTest.java  | 18 +++---
 .../juneau/a/rttests/RoundTripBeanMapsTest.java    |  2 +-
 .../java/org/apache/juneau/html/BasicHtmlTest.java |  8 +--
 .../java/org/apache/juneau/html/CommonTest.java    | 18 +++---
 .../java/org/apache/juneau/jena/CommonTest.java    | 18 +++---
 .../java/org/apache/juneau/json/CommonTest.java    | 18 +++---
 .../apache/juneau/transforms/BuilderComboTest.java |  2 +-
 .../java/org/apache/juneau/uon/Common_UonTest.java | 18 +++---
 .../juneau/urlencoding/Common_UrlEncodingTest.java | 18 +++---
 .../urlencoding/UrlEncodingSerializerTest.java     |  8 +--
 .../java/org/apache/juneau/xml/BasicXmlTest.java   | 14 ++---
 .../java/org/apache/juneau/xml/CommonTest.java     | 18 +++---
 .../apache/juneau/xml/XmlIgnoreCommentsTest.java   | 14 ++---
 .../test/java/org/apache/juneau/xml/XmlTest.java   | 12 ++--
 .../test/java/org/apache/juneau/xml/xml1b/T7.java  | 12 ++--
 .../java/org/apache/juneau/dto/atom/Category.java  |  6 +-
 .../java/org/apache/juneau/dto/atom/Common.java    |  4 +-
 .../org/apache/juneau/dto/atom/CommonEntry.java    | 18 +++---
 .../java/org/apache/juneau/dto/atom/Content.java   |  2 +-
 .../java/org/apache/juneau/dto/atom/Entry.java     | 12 ++--
 .../main/java/org/apache/juneau/dto/atom/Feed.java | 12 ++--
 .../java/org/apache/juneau/dto/atom/Generator.java |  6 +-
 .../main/java/org/apache/juneau/dto/atom/Icon.java |  2 +-
 .../main/java/org/apache/juneau/dto/atom/Id.java   |  2 +-
 .../main/java/org/apache/juneau/dto/atom/Link.java | 12 ++--
 .../main/java/org/apache/juneau/dto/atom/Logo.java |  2 +-
 .../java/org/apache/juneau/dto/atom/Person.java    |  6 +-
 .../java/org/apache/juneau/dto/atom/Source.java    | 10 +--
 .../main/java/org/apache/juneau/dto/atom/Text.java |  4 +-
 .../java/org/apache/juneau/dto/cognos/DataSet.java |  8 +--
 .../org/apache/juneau/dto/html5/HtmlElement.java   |  4 +-
 .../juneau/dto/html5/HtmlElementContainer.java     |  4 +-
 .../apache/juneau/dto/html5/HtmlElementMixed.java  |  4 +-
 .../juneau/dto/html5/HtmlElementRawText.java       |  4 +-
 .../apache/juneau/dto/html5/HtmlElementText.java   |  4 +-
 .../main/java/org/apache/juneau/dto/html5/Pre.java |  2 +-
 .../apache/juneau/dto/jsonschema/JsonSchema.java   | 10 +--
 .../org/apache/juneau/dto/swagger/HeaderInfo.java  |  8 +--
 .../java/org/apache/juneau/dto/swagger/Items.java  |  4 +-
 .../apache/juneau/dto/swagger/ParameterInfo.java   |  8 +--
 .../apache/juneau/dto/swagger/ResponseInfo.java    |  4 +-
 .../org/apache/juneau/dto/swagger/SchemaInfo.java  |  4 +-
 .../apache/juneau/dto/swagger/SwaggerElement.java  |  6 +-
 .../main/java/org/apache/juneau/BeanContext.java   | 39 ++++++++++--
 .../src/main/java/org/apache/juneau/BeanMeta.java  | 55 +++++++++++------
 .../java/org/apache/juneau/BeanMetaFiltered.java   |  2 +-
 .../java/org/apache/juneau/BeanPropertyMeta.java   | 72 +++++++++++++++-------
 .../org/apache/juneau/annotation/BeanProperty.java |  3 +
 .../annotation/{BeanProperty.java => Beanp.java}   | 44 ++++++-------
 .../java/org/apache/juneau/annotation/Name.java    |  8 +--
 .../org/apache/juneau/http/annotation/Header.java  |  2 +-
 .../org/apache/juneau/parser/ParserSession.java    |  2 +-
 .../apache/juneau/transforms/StringFormatSwap.java |  2 +-
 .../java/org/apache/juneau/xml/annotation/Xml.java |  2 +-
 juneau-doc/docs/ReleaseNotes/5.0.0.07.html         |  4 +-
 juneau-doc/docs/ReleaseNotes/5.0.0.12.html         |  2 +-
 juneau-doc/docs/ReleaseNotes/5.1.0.03.html         |  4 +-
 juneau-doc/docs/ReleaseNotes/6.0.0.html            |  2 +-
 juneau-doc/docs/ReleaseNotes/6.1.0.html            |  2 +-
 juneau-doc/docs/ReleaseNotes/6.3.0.html            |  8 +--
 juneau-doc/docs/ReleaseNotes/6.4.0.html            |  2 +-
 juneau-doc/docs/ReleaseNotes/7.2.0.html            |  2 +-
 juneau-doc/docs/ReleaseNotes/7.2.1.html            |  2 +-
 juneau-doc/docs/ReleaseNotes/8.1.2.html            |  2 +
 .../11.Transforms/06.SwapAnnotation.html           |  4 +-
 ...ertyAnnotation.html => 10.BeanpAnnotation.html} | 46 +++++++-------
 .../11.Transforms/15.PojoBuilders.html             |  4 +-
 .../11.Transforms/16.BeanFilters.html              |  2 +-
 .../02.juneau-marshall/12.BeanDictionaries.html    |  2 +-
 .../02.juneau-marshall/18.JacksonComparison.html   |  4 +-
 .../21.XmlDetails/04.BeanTypeNameAnnotation.html   |  4 +-
 .../21.XmlDetails/06.XmlFormatAnnotation.html      |  2 +-
 .../01.RdfDetails/05.UriProperties.html            |  2 +-
 .../src/main/javadoc/resources/fragments/toc.html  |  2 +-
 .../juneau/rest/annotation/RestMethodBpiTest.java  |  4 +-
 78 files changed, 419 insertions(+), 337 deletions(-)

diff --git a/eclipse-preferences/user-dictionary.txt b/eclipse-preferences/user-dictionary.txt
index f879e8b..d146886 100644
--- a/eclipse-preferences/user-dictionary.txt
+++ b/eclipse-preferences/user-dictionary.txt
@@ -499,3 +499,4 @@ rollback
 enablement
 stacktraces
 timezones
+beanp
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 c7fd766..dfc659f 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
@@ -23,7 +23,7 @@ import org.junit.*;
 public class BeanMapErrorsTest {
 
 	//-----------------------------------------------------------------------------------------------------------------
-	// @BeanProperty(name) on method not in @Bean(properties)
+	// @Beanp(name) on method not in @Bean(properties)
 	//-----------------------------------------------------------------------------------------------------------------
 	@Test
 	public void beanPropertyMethodNotInBeanProperties() {
@@ -33,7 +33,7 @@ public class BeanMapErrorsTest {
 			bc.getClassMeta(A1.class);
 			fail();
 		} catch (Exception e) {
-			assertEquals("org.apache.juneau.BeanMapErrorsTest$A1: Found @BeanProperty(\"f2\") but name was not found in @Bean(properties)", e.getMessage());
+			assertEquals("org.apache.juneau.BeanMapErrorsTest$A1: Found @Beanp(\"f2\") but name was not found in @Bean(properties)", e.getMessage());
 		}
 	}
 
@@ -41,14 +41,14 @@ public class BeanMapErrorsTest {
 	public static class A1 {
 		public int f1;
 
-		@BeanProperty("f2")
+		@Beanp("f2")
 		public int f2() {
 			return -1;
 		};
 	}
 
 	//-----------------------------------------------------------------------------------------------------------------
-	// @BeanProperty(name) on field not in @Bean(properties)
+	// @Beanp(name) on field not in @Bean(properties)
 	//-----------------------------------------------------------------------------------------------------------------
 	@Test
 	public void beanPropertyFieldNotInBeanProperties() {
@@ -58,14 +58,14 @@ public class BeanMapErrorsTest {
 			bc.getClassMeta(A2.class);
 			fail();
 		} catch (Exception e) {
-			assertEquals("org.apache.juneau.BeanMapErrorsTest$A2: Found @BeanProperty(\"f2\") but name was not found in @Bean(properties)", e.getMessage());
+			assertEquals("org.apache.juneau.BeanMapErrorsTest$A2: Found @Beanp(\"f2\") but name was not found in @Bean(properties)", e.getMessage());
 		}
 	}
 	@Bean(properties="f1")
 	public static class A2 {
 		public int f1;
 
-		@BeanProperty("f2")
+		@Beanp("f2")
 		public int f2;
 	}
 }
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 84b90d8..ecb6383 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
@@ -559,7 +559,7 @@ public class BeanMapTest {
 	}
 
 	//====================================================================================================
-	// @BeanProperty tests
+	// @Beanp tests
 	//====================================================================================================
 	@Test
 	public void testBeanPropertyAnnotation() throws Exception {
@@ -620,10 +620,10 @@ public class BeanMapTest {
 
 		public List<G> l2 = new LinkedList<>();
 
-		@BeanProperty(type=List.class,params={G.class})
+		@Beanp(type=List.class,params={G.class})
 		public List<G> l3;
 
-		@BeanProperty(type=LinkedList.class,params={G.class})
+		@Beanp(type=LinkedList.class,params={G.class})
 		public List<G> l4;
 
 		private List<G> m1;
@@ -635,16 +635,16 @@ public class BeanMapTest {
 		public void setM2(List<G> m2) { this.m2 = m2; }
 
 		private List<G> m3;
-		@BeanProperty(type=List.class,params={G.class})
+		@Beanp(type=List.class,params={G.class})
 		public List<G> getM3() { return m3; }
 		public void setM3(List<G> m3) { this.m3 = m3; }
 
 		private List<G> m4;
-		@BeanProperty(type=LinkedList.class,params={G.class})
+		@Beanp(type=LinkedList.class,params={G.class})
 		public List<G> getM4() { return m4; }
 		public void setM4(List<G> m4) { this.m4 = m4; }
 
-		@BeanProperty(type=LinkedList.class,params={G.class})
+		@Beanp(type=LinkedList.class,params={G.class})
 		private List<G> m5;
 		public List<G> getM5() { return m5; }
 		public void setM5(List<G> m5) { this.m5 = m5; }
@@ -755,26 +755,26 @@ public class BeanMapTest {
 
 	public static class J {
 
-		@BeanProperty(params={Float.class})
+		@Beanp(params={Float.class})
 		public List<String> p1;
 
-		@BeanProperty(params={Float.class})
+		@Beanp(params={Float.class})
 		public List<Integer> getP2() {
 			return null;
 		}
 
-		@BeanProperty(params={Float.class})
+		@Beanp(params={Float.class})
 		public List<? extends Integer> p3;
 
-		@BeanProperty(params={Object.class, Float.class})
+		@Beanp(params={Object.class, Float.class})
 		public Map<String,Integer> p4;
 
-		@BeanProperty(params={Object.class, Float.class})
+		@Beanp(params={Object.class, Float.class})
 		public Map<String,Integer> getP5() {
 			return null;
 		}
 
-		@BeanProperty(params={String.class, Float.class})
+		@Beanp(params={String.class, Float.class})
 		public Map<String,? extends Integer> p6;
 	}
 
@@ -797,26 +797,26 @@ public class BeanMapTest {
 
 	public static class K {
 
-		@BeanProperty(params=Float.class)
+		@Beanp(params=Float.class)
 		public List<String> p1;
 
-		@BeanProperty(params=Float.class)
+		@Beanp(params=Float.class)
 		public List<Integer> getP2() {
 			return null;
 		}
 
-		@BeanProperty(params=Float.class)
+		@Beanp(params=Float.class)
 		public List<? extends Integer> p3;
 
-		@BeanProperty(params={String.class,Float.class})
+		@Beanp(params={String.class,Float.class})
 		public Map<String,Integer> p4;
 
-		@BeanProperty(params={String.class,Float.class})
+		@Beanp(params={String.class,Float.class})
 		public Map<String,Integer> getP5() {
 			return null;
 		}
 
-		@BeanProperty(params={String.class,Float.class})
+		@Beanp(params={String.class,Float.class})
 		public Map<String,? extends Integer> p6;
 	}
 
diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/DynaBeanComboTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/DynaBeanComboTest.java
index 172cf60..3812bcd 100644
--- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/DynaBeanComboTest.java
+++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/DynaBeanComboTest.java
@@ -261,7 +261,7 @@ public class DynaBeanComboTest extends ComboRoundTripTest {
 	@Bean(sort=true)
 	public static class BeanWithDynaField {
 		public int f1;
-		@BeanProperty(name="*")
+		@Beanp(name="*")
 		public Map<String,Object> f2 = new LinkedHashMap<>();
 		public int f3;
 
@@ -293,12 +293,12 @@ public class DynaBeanComboTest extends ComboRoundTripTest {
 			this.f3 = f3;
 		}
 
-		@BeanProperty(name="*")
+		@Beanp(name="*")
 		public Map<String, Object> xxx() {
 			return f2;
 		}
 
-		@BeanProperty(name="*")
+		@Beanp(name="*")
 		public void setYYY(String name, Object o) {
 			setterCalled = true;
 			this.f2.put(name, o);
@@ -332,18 +332,18 @@ public class DynaBeanComboTest extends ComboRoundTripTest {
 			this.f3 = f3;
 		}
 
-		@BeanProperty(name="*")
+		@Beanp(name="*")
 		public Object get(String name) {
 			return f2.get(name);
 		}
 
-		@BeanProperty(name="*")
+		@Beanp(name="*")
 		public void set(String name, Object o) {
 			setterCalled = true;
 			this.f2.put(name, o);
 		}
 
-		@BeanProperty(name="*")
+		@Beanp(name="*")
 		public Collection<String> getExtraKeys() {
 			return f2.keySet();
 		}
@@ -375,7 +375,7 @@ public class DynaBeanComboTest extends ComboRoundTripTest {
 			this.f3 = f3;
 		}
 
-		@BeanProperty(name="*")
+		@Beanp(name="*")
 		public Map<String, Object> xxx() {
 			return f2;
 		}
@@ -396,7 +396,7 @@ public class DynaBeanComboTest extends ComboRoundTripTest {
 
 	@Bean(sort=true)
 	public static class BeanWithDynaFieldSwapped {
-		@BeanProperty(name="*")
+		@Beanp(name="*")
 		@Swap(TemporalCalendarSwap.IsoInstant.class)
 		public Map<String,Calendar> f1 = new LinkedHashMap<>();
 
@@ -408,7 +408,7 @@ public class DynaBeanComboTest extends ComboRoundTripTest {
 
 	@Bean(sort=true)
 	public static class BeanWithDynaFieldStringList {
-		@BeanProperty(name="*")
+		@Beanp(name="*")
 		public Map<String,List<String>> f1 = new LinkedHashMap<>();
 
 		public BeanWithDynaFieldStringList init() {
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 6f40311..7e4c3b9 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
@@ -853,7 +853,7 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
 			return KEnum.FOO;
 		}
 
-		@BeanProperty(name="a")
+		@Beanp(name="a")
 		public String getA2() {
 			return a.toString();
 		}
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 96a7c93..692b010 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
@@ -2741,11 +2741,11 @@ public class BasicHtmlTest {
 	}
 
 	public static class BeanWithMapProperties {
-		@BeanProperty(type=MapWithStrings.class)
+		@Beanp(type=MapWithStrings.class)
 		public Map<String,String> a;
-		@BeanProperty(type=MapWithNumbers.class)
+		@Beanp(type=MapWithNumbers.class)
 		public Map<String,Number> b;
-		@BeanProperty(type=MapWithObjects.class)
+		@Beanp(type=MapWithObjects.class)
 		public Map<String,Object> c;
 
 		BeanWithMapProperties init() {
@@ -2877,7 +2877,7 @@ public class BasicHtmlTest {
 	@Bean(typeName="  \b\f\n\t\r  ")
 	public static class BeanWithSpecialCharacters2 {
 
-		@BeanProperty(name="  \b\f\n\t\r  ")
+		@Beanp(name="  \b\f\n\t\r  ")
 		public String a;
 
 		BeanWithSpecialCharacters2 init() {
diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/html/CommonTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/html/CommonTest.java
index b8ad67a..176d951 100755
--- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/html/CommonTest.java
+++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/html/CommonTest.java
@@ -227,7 +227,7 @@ public class CommonTest {
 	}
 
 	//====================================================================================================
-	// @BeanProperty.properties annotation.
+	// @Beanp.bpi annotation.
 	//====================================================================================================
 	@Test
 	public void testBeanPropertyProperties() throws Exception {
@@ -303,12 +303,12 @@ public class CommonTest {
 	}
 
 	public static class E1 {
-		@BeanProperty(properties="f1") public E2 x1 = new E2();
-		@BeanProperty(properties="f1") public Map<String,Integer> x2 = new AMap<String,Integer>().append("f1",3).append("f2",4);
-		@BeanProperty(properties="f1") public E2[] x3 = {new E2()};
-		@BeanProperty(properties="f1") public List<E2> x4 = new AList<E2>().append(new E2());
-		@BeanProperty(properties="f1") public ObjectMap[] x5 = {new ObjectMap().append("f1",5).append("f2",6)};
-		@BeanProperty(properties="f1") public List<ObjectMap> x6 = new AList<ObjectMap>().append(new ObjectMap().append("f1",7).append("f2",8));
+		@Beanp(bpi="f1") public E2 x1 = new E2();
+		@Beanp(bpi="f1") public Map<String,Integer> x2 = new AMap<String,Integer>().append("f1",3).append("f2",4);
+		@Beanp(bpi="f1") public E2[] x3 = {new E2()};
+		@Beanp(bpi="f1") public List<E2> x4 = new AList<E2>().append(new E2());
+		@Beanp(bpi="f1") public ObjectMap[] x5 = {new ObjectMap().append("f1",5).append("f2",6)};
+		@Beanp(bpi="f1") public List<ObjectMap> x6 = new AList<ObjectMap>().append(new ObjectMap().append("f1",7).append("f2",8));
 	}
 
 	public static class E2 {
@@ -317,7 +317,7 @@ public class CommonTest {
 	}
 
 	//====================================================================================================
-	// @BeanProperty.properties annotation on list of beans.
+	// @Beanp.bpi annotation on list of beans.
 	//====================================================================================================
 	@Test
 	public void testBeanPropertyPropertiesOnListOfBeans() throws Exception {
@@ -343,7 +343,7 @@ public class CommonTest {
 	}
 
 	public static class F {
-		@BeanProperty(properties="x2") public List<F> x1 = new LinkedList<>();
+		@Beanp(bpi="x2") public List<F> x1 = new LinkedList<>();
 		public int x2 = 2;
 	}
 
diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/jena/CommonTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/jena/CommonTest.java
index ca801ea..9bdb2e7 100755
--- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/jena/CommonTest.java
+++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/jena/CommonTest.java
@@ -197,7 +197,7 @@ public class CommonTest {
 	}
 
 	//====================================================================================================
-	// @BeanProperty.properties annotation.
+	// @Beanp.bpi annotation.
 	//====================================================================================================
 	@Test
 	public void testBeanPropertyProperties() throws Exception {
@@ -213,12 +213,12 @@ public class CommonTest {
 	}
 
 	public static class E1 {
-		@BeanProperty(properties="f1") public E2 x1;
-		@BeanProperty(properties="f1") public Map<String,Integer> x2;
-		@BeanProperty(properties="f1") public E2[] x3;
-		@BeanProperty(properties="f1") public List<E2> x4;
-		@BeanProperty(properties="f1") public ObjectMap[] x5;
-		@BeanProperty(properties="f1") public List<ObjectMap> x6;
+		@Beanp(bpi="f1") public E2 x1;
+		@Beanp(bpi="f1") public Map<String,Integer> x2;
+		@Beanp(bpi="f1") public E2[] x3;
+		@Beanp(bpi="f1") public List<E2> x4;
+		@Beanp(bpi="f1") public ObjectMap[] x5;
+		@Beanp(bpi="f1") public List<ObjectMap> x6;
 
 		public static E1 create() {
 			E1 t = new E1();
@@ -238,7 +238,7 @@ public class CommonTest {
 	}
 
 	//====================================================================================================
-	// @BeanProperty.properties annotation on list of beans.
+	// @Beanp.bpi annotation on list of beans.
 	//====================================================================================================
 	@Test
 	public void testBeanPropertyProperiesOnListOfBeans() throws Exception {
@@ -256,7 +256,7 @@ public class CommonTest {
 	}
 
 	public static class F {
-		@BeanProperty(properties="x2") public List<F> x1;
+		@Beanp(bpi="x2") public List<F> x1;
 		public int x2;
 
 		public static F create() {
diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/json/CommonTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/json/CommonTest.java
index dd5e885..794bee5 100755
--- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/json/CommonTest.java
+++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/json/CommonTest.java
@@ -180,7 +180,7 @@ public class CommonTest {
 	}
 
 	//====================================================================================================
-	// @BeanProperty.properties annotation.
+	// @Beanp.bpi annotation.
 	//====================================================================================================
 	@Test
 	public void testBeanPropertyProperies() throws Exception {
@@ -195,12 +195,12 @@ public class CommonTest {
 	}
 
 	public static class E1 {
-		@BeanProperty(properties="f1") public E2 x1 = new E2();
-		@BeanProperty(properties="f1") public Map<String,Integer> x2 = new AMap<String,Integer>().append("f1",1).append("f2",2);
-		@BeanProperty(properties="f1") public E2[] x3 = {new E2()};
-		@BeanProperty(properties="f1") public List<E2> x4 = new AList<E2>().append(new E2());
-		@BeanProperty(properties="f1") public ObjectMap[] x5 = {new ObjectMap().append("f1",1).append("f2",2)};
-		@BeanProperty(properties="f1") public List<ObjectMap> x6 = new AList<ObjectMap>().append(new ObjectMap().append("f1",1).append("f2",2));
+		@Beanp(bpi="f1") public E2 x1 = new E2();
+		@Beanp(bpi="f1") public Map<String,Integer> x2 = new AMap<String,Integer>().append("f1",1).append("f2",2);
+		@Beanp(bpi="f1") public E2[] x3 = {new E2()};
+		@Beanp(bpi="f1") public List<E2> x4 = new AList<E2>().append(new E2());
+		@Beanp(bpi="f1") public ObjectMap[] x5 = {new ObjectMap().append("f1",1).append("f2",2)};
+		@Beanp(bpi="f1") public List<ObjectMap> x6 = new AList<ObjectMap>().append(new ObjectMap().append("f1",1).append("f2",2));
 	}
 
 	public static class E2 {
@@ -209,7 +209,7 @@ public class CommonTest {
 	}
 
 	//====================================================================================================
-	// @BeanProperty.properties annotation on list of beans.
+	// @Beanp.bpi annotation on list of beans.
 	//====================================================================================================
 	@Test
 	public void testBeanPropertyProperiesOnListOfBeans() throws Exception {
@@ -223,7 +223,7 @@ public class CommonTest {
 	}
 
 	public static class F {
-		@BeanProperty(properties="x2") public List<F> x1 = new LinkedList<>();
+		@Beanp(bpi="x2") public List<F> x1 = new LinkedList<>();
 		public int x2 = 2;
 	}
 
diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/transforms/BuilderComboTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/transforms/BuilderComboTest.java
index c63027b..9e3b905 100644
--- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/transforms/BuilderComboTest.java
+++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/transforms/BuilderComboTest.java
@@ -434,7 +434,7 @@ public class BuilderComboTest extends ComboRoundTripTest {
 			return x;
 		}
 
-		@BeanProperty
+		@Beanp
 		public HBuilder fooBar(int fooBar) {
 			this.fooBar = fooBar;
 			return this;
diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/uon/Common_UonTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/uon/Common_UonTest.java
index a0836fa..c3d8892 100755
--- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/uon/Common_UonTest.java
+++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/uon/Common_UonTest.java
@@ -178,7 +178,7 @@ public class Common_UonTest {
 	}
 
 	//====================================================================================================
-	// @BeanProperty.properties annotation.
+	// @Beanp.bpi annotation.
 	//====================================================================================================
 	@Test
 	public void testBeanPropertyProperies() throws Exception {
@@ -188,12 +188,12 @@ public class Common_UonTest {
 	}
 
 	public static class E1 {
-		@BeanProperty(properties="f1") public E2 x1 = new E2();
-		@BeanProperty(properties="f1") public Map<String,Integer> x2 = new AMap<String,Integer>().append("f1",1).append("f2",2);
-		@BeanProperty(properties="f1") public E2[] x3 = {new E2()};
-		@BeanProperty(properties="f1") public List<E2> x4 = new AList<E2>().append(new E2());
-		@BeanProperty(properties="f1") public ObjectMap[] x5 = {new ObjectMap().append("f1",1).append("f2",2)};
-		@BeanProperty(properties="f1") public List<ObjectMap> x6 = new AList<ObjectMap>().append(new ObjectMap().append("f1",1).append("f2",2));
+		@Beanp(bpi="f1") public E2 x1 = new E2();
+		@Beanp(bpi="f1") public Map<String,Integer> x2 = new AMap<String,Integer>().append("f1",1).append("f2",2);
+		@Beanp(bpi="f1") public E2[] x3 = {new E2()};
+		@Beanp(bpi="f1") public List<E2> x4 = new AList<E2>().append(new E2());
+		@Beanp(bpi="f1") public ObjectMap[] x5 = {new ObjectMap().append("f1",1).append("f2",2)};
+		@Beanp(bpi="f1") public List<ObjectMap> x6 = new AList<ObjectMap>().append(new ObjectMap().append("f1",1).append("f2",2));
 	}
 
 	public static class E2 {
@@ -202,7 +202,7 @@ public class Common_UonTest {
 	}
 
 	//====================================================================================================
-	// @BeanProperty.properties annotation on list of beans.
+	// @Beanp.bpi annotation on list of beans.
 	//====================================================================================================
 	@Test
 	public void testBeanPropertyPropertiesOnListOfBeans() throws Exception {
@@ -216,7 +216,7 @@ public class Common_UonTest {
 	}
 
 	public static class F {
-		@BeanProperty(properties="x2") public List<F> x1 = new LinkedList<>();
+		@Beanp(bpi="x2") public List<F> x1 = new LinkedList<>();
 		public int x2 = 2;
 	}
 
diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/urlencoding/Common_UrlEncodingTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/urlencoding/Common_UrlEncodingTest.java
index 5504c3e..446c711 100755
--- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/urlencoding/Common_UrlEncodingTest.java
+++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/urlencoding/Common_UrlEncodingTest.java
@@ -177,7 +177,7 @@ public class Common_UrlEncodingTest {
 	}
 
 	//====================================================================================================
-	// @BeanProperty.properties annotation.
+	// @Beanp.bpi annotation.
 	//====================================================================================================
 	@Test
 	public void testBeanPropertyProperies() throws Exception {
@@ -187,12 +187,12 @@ public class Common_UrlEncodingTest {
 	}
 
 	public static class E1 {
-		@BeanProperty(properties="f1") public E2 x1 = new E2();
-		@BeanProperty(properties="f1") public Map<String,Integer> x2 = new AMap<String,Integer>().append("f1",1).append("f2",2);
-		@BeanProperty(properties="f1") public E2[] x3 = {new E2()};
-		@BeanProperty(properties="f1") public List<E2> x4 = new AList<E2>().append(new E2());
-		@BeanProperty(properties="f1") public ObjectMap[] x5 = {new ObjectMap().append("f1",1).append("f2",2)};
-		@BeanProperty(properties="f1") public List<ObjectMap> x6 = new AList<ObjectMap>().append(new ObjectMap().append("f1",1).append("f2",2));
+		@Beanp(bpi="f1") public E2 x1 = new E2();
+		@Beanp(bpi="f1") public Map<String,Integer> x2 = new AMap<String,Integer>().append("f1",1).append("f2",2);
+		@Beanp(bpi="f1") public E2[] x3 = {new E2()};
+		@Beanp(bpi="f1") public List<E2> x4 = new AList<E2>().append(new E2());
+		@Beanp(bpi="f1") public ObjectMap[] x5 = {new ObjectMap().append("f1",1).append("f2",2)};
+		@Beanp(bpi="f1") public List<ObjectMap> x6 = new AList<ObjectMap>().append(new ObjectMap().append("f1",1).append("f2",2));
 	}
 
 	public static class E2 {
@@ -201,7 +201,7 @@ public class Common_UrlEncodingTest {
 	}
 
 	//====================================================================================================
-	// @BeanProperty.properties annotation on list of beans.
+	// @Beanp.bpi annotation on list of beans.
 	//====================================================================================================
 	@Test
 	public void testBeanPropertyPropertiesOnListOfBeans() throws Exception {
@@ -218,7 +218,7 @@ public class Common_UrlEncodingTest {
 	}
 
 	public static class F {
-		@BeanProperty(properties="x2") public List<F> x1 = new LinkedList<>();
+		@Beanp(bpi="x2") public List<F> x1 = new LinkedList<>();
 		public int x2 = 2;
 	}
 
diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/urlencoding/UrlEncodingSerializerTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/urlencoding/UrlEncodingSerializerTest.java
index 15a40af..e0ac2ff 100755
--- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/urlencoding/UrlEncodingSerializerTest.java
+++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/urlencoding/UrlEncodingSerializerTest.java
@@ -475,16 +475,16 @@ public class UrlEncodingSerializerTest {
 	@Bean(sort=true)
 	public static class A {
 
-		@BeanProperty(name="foo")
+		@Beanp(name="foo")
 		public String f1 = "foo";
 
-		@BeanProperty(name="'foo'")
+		@Beanp(name="'foo'")
 		public String f2 = "'foo'";
 
-		@BeanProperty(name="(foo)")
+		@Beanp(name="(foo)")
 		public String f3 = "(foo)";
 
-		@BeanProperty(name="@(foo)")
+		@Beanp(name="@(foo)")
 		public String f4 = "@(foo)";
 	}
 }
\ No newline at end of file
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 d56df32..2e6ab7a 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
@@ -1264,11 +1264,11 @@ public class BasicXmlTest {
 	}
 
 	public static class BeanWithMapProperties {
-		@BeanProperty(type=MapWithStrings.class)
+		@Beanp(type=MapWithStrings.class)
 		public Map<String,String> a;
-		@BeanProperty(type=MapWithNumbers.class)
+		@Beanp(type=MapWithNumbers.class)
 		public Map<String,Number> b;
-		@BeanProperty(type=MapWithObjects.class)
+		@Beanp(type=MapWithObjects.class)
 		public Map<String,Object> c;
 
 		BeanWithMapProperties init() {
@@ -1357,10 +1357,10 @@ public class BasicXmlTest {
 
 	public static class BeanWithChildTypeNames {
 		public BeanX a;
-		@BeanProperty(beanDictionary=BeanX.class)
+		@Beanp(dictionary=BeanX.class)
 		public Object b;
 		public BeanX[] c;
-		@BeanProperty(beanDictionary=BeanX.class)
+		@Beanp(dictionary=BeanX.class)
 		public Object[] d;
 		BeanWithChildTypeNames init() {
 			a = new BeanX().init();
@@ -1480,7 +1480,7 @@ public class BasicXmlTest {
 
 	public static class BeanWithMixedContent {
 		@Xml(format=XmlFormat.MIXED)
-		@BeanProperty(beanDictionary={BeanXSimple.class, BeanYSimple.class})
+		@Beanp(dictionary={BeanXSimple.class, BeanYSimple.class})
 		public Object[] a;
 		BeanWithMixedContent init() {
 			a = new Object[]{
@@ -1544,7 +1544,7 @@ public class BasicXmlTest {
 	@Bean(typeName="  \b\f\n\t\r  ")
 	public static class BeanWithSpecialCharacters2 {
 
-		@BeanProperty(name="  \b\f\n\t\r  ")
+		@Beanp(name="  \b\f\n\t\r  ")
 		public String a;
 
 		BeanWithSpecialCharacters2 init() {
diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/xml/CommonTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/xml/CommonTest.java
index 1cae21c..17cb49d 100755
--- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/xml/CommonTest.java
+++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/xml/CommonTest.java
@@ -184,7 +184,7 @@ public class CommonTest {
 	}
 
 	//====================================================================================================
-	// @BeanProperty.properties annotation.
+	// @Beanp.bpi annotation.
 	//====================================================================================================
 	@Test
 	public void testBeanPropertyProperties() throws Exception {
@@ -205,12 +205,12 @@ public class CommonTest {
 	}
 
 	public static class E1 {
-		@BeanProperty(properties="f1,f2") public E2 x1 = new E2();
-		@BeanProperty(properties="f1,f2") public Map<String,Integer> x2 = new AMap<String,Integer>().append("f1",1).append("f3",3);
-		@BeanProperty(properties="f1,f2") public E2[] x3 = {new E2()};
-		@BeanProperty(properties="f1,f2") public List<E2> x4 = new AList<E2>().append(new E2());
-		@BeanProperty(properties="f1") public ObjectMap[] x5 = {new ObjectMap().append("f1",1).append("f3",3)};
-		@BeanProperty(properties="f1") public List<ObjectMap> x6 = new AList<ObjectMap>().append(new ObjectMap().append("f1",1).append("f3",3));
+		@Beanp(bpi="f1,f2") public E2 x1 = new E2();
+		@Beanp(bpi="f1,f2") public Map<String,Integer> x2 = new AMap<String,Integer>().append("f1",1).append("f3",3);
+		@Beanp(bpi="f1,f2") public E2[] x3 = {new E2()};
+		@Beanp(bpi="f1,f2") public List<E2> x4 = new AList<E2>().append(new E2());
+		@Beanp(bpi="f1") public ObjectMap[] x5 = {new ObjectMap().append("f1",1).append("f3",3)};
+		@Beanp(bpi="f1") public List<ObjectMap> x6 = new AList<ObjectMap>().append(new ObjectMap().append("f1",1).append("f3",3));
 	}
 
 	public static class E2 {
@@ -221,7 +221,7 @@ public class CommonTest {
 	}
 
 	//====================================================================================================
-	// @BeanProperty.properties annotation on list of beans.
+	// @Beanp.bpi annotation on list of beans.
 	//====================================================================================================
 	@Test
 	public void testBeanPropertyPropertiesOnListOfBeans() throws Exception {
@@ -235,7 +235,7 @@ public class CommonTest {
 	}
 
 	public static class Test7b {
-		@BeanProperty(properties="x2") public List<Test7b> x1 = new LinkedList<>();
+		@Beanp(bpi="x2") public List<Test7b> x1 = new LinkedList<>();
 		public int x2 = 2;
 	}
 
diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/xml/XmlIgnoreCommentsTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/xml/XmlIgnoreCommentsTest.java
index a071222..5b53e36 100644
--- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/xml/XmlIgnoreCommentsTest.java
+++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/xml/XmlIgnoreCommentsTest.java
@@ -814,11 +814,11 @@ public class XmlIgnoreCommentsTest {
 	}
 
 	public static class BeanWithMapProperties {
-		@BeanProperty(type=MapWithStrings.class)
+		@Beanp(type=MapWithStrings.class)
 		public Map<String,String> a;
-		@BeanProperty(type=MapWithNumbers.class)
+		@Beanp(type=MapWithNumbers.class)
 		public Map<String,Number> b;
-		@BeanProperty(type=MapWithObjects.class)
+		@Beanp(type=MapWithObjects.class)
 		public Map<String,Object> c;
 
 		BeanWithMapProperties init() {
@@ -907,10 +907,10 @@ public class XmlIgnoreCommentsTest {
 
 	public static class BeanWithChildTypeNames {
 		public BeanX a;
-		@BeanProperty(beanDictionary=BeanX.class)
+		@Beanp(dictionary=BeanX.class)
 		public Object b;
 		public BeanX[] c;
-		@BeanProperty(beanDictionary=BeanX.class)
+		@Beanp(dictionary=BeanX.class)
 		public Object[] d;
 		BeanWithChildTypeNames init() {
 			a = new BeanX().init();
@@ -1030,7 +1030,7 @@ public class XmlIgnoreCommentsTest {
 
 	public static class BeanWithMixedContent {
 		@Xml(format=XmlFormat.MIXED)
-		@BeanProperty(beanDictionary={BeanXSimple.class, BeanYSimple.class})
+		@Beanp(dictionary={BeanXSimple.class, BeanYSimple.class})
 		public Object[] a;
 		BeanWithMixedContent init() {
 			a = new Object[]{
@@ -1094,7 +1094,7 @@ public class XmlIgnoreCommentsTest {
 	@Bean(typeName="  \b\f\n\t\r  ")
 	public static class BeanWithSpecialCharacters2 {
 
-		@BeanProperty(name="  \b\f\n\t\r  ")
+		@Beanp(name="  \b\f\n\t\r  ")
 		public String a;
 
 		BeanWithSpecialCharacters2 init() {
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 8b7ad3b..63aeffb 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
@@ -294,7 +294,7 @@ public class XmlTest {
 
 	@Bean(typeName="foo")
 	public static class J1 {
-		@BeanProperty(properties="f2") public List<J2> f1 = new AList<J2>().append(new J2());
+		@Beanp(bpi="f2") public List<J2> f1 = new AList<J2>().append(new J2());
 	}
 
 	@Bean(typeName="bar")
@@ -475,8 +475,8 @@ public class XmlTest {
 
 	@Bean(properties="url2,id2,name")
 	public static class O {
-		@BeanProperty(name="url2") @Xml(format=ELEMENT) public URL url;
-		@BeanProperty(name="id2") public int id;
+		@Beanp(name="url2") @Xml(format=ELEMENT) public URL url;
+		@Beanp(name="id2") public int id;
 		public String name;
 		public O() {}
 		public O(String url, int id, String name) throws Exception {
@@ -508,8 +508,8 @@ public class XmlTest {
 
 	@Bean(properties="url2,id2,name")
 	public static class P {
-		@BeanProperty(name="url2") @Xml(format=ATTR) public URL url;
-		@BeanProperty(name="id2") @Xml(format=ATTR) public int id;
+		@Beanp(name="url2") @Xml(format=ATTR) public URL url;
+		@Beanp(name="id2") @Xml(format=ATTR) public int id;
 		public String name;
 		public P() {}
 		public P(String url, int id, String name) throws Exception {
@@ -1022,7 +1022,7 @@ public class XmlTest {
 		@Xml(format=ATTR)
 		public String f2;
 
-		@BeanProperty(name="x3")
+		@Beanp(name="x3")
 		@Xml(format=ATTR, prefix="nsf3", namespace="http://nsf3")
 		public String f3;
 
diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/xml/xml1b/T7.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/xml/xml1b/T7.java
index 1877883..38c6883 100755
--- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/xml/xml1b/T7.java
+++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/xml/xml1b/T7.java
@@ -18,17 +18,17 @@ import org.apache.juneau.xml.annotation.*;
 @Bean(sort=true)
 public class T7 {
 
-	@BeanProperty(name="g1") public int f1 = 1;
+	@Beanp(name="g1") public int f1 = 1;
 
-	@Xml(prefix="bar",namespace="http://bar") @BeanProperty(name="g2") public int f2 = 2;
+	@Xml(prefix="bar",namespace="http://bar") @Beanp(name="g2") public int f2 = 2;
 
 	private int f3 = 3;
-	@BeanProperty(name="g3") public int getF3() { return f3; }
-	@BeanProperty(name="g3") public void setF3(int f3) { this.f3 = f3; }
+	@Beanp(name="g3") public int getF3() { return f3; }
+	@Beanp(name="g3") public void setF3(int f3) { this.f3 = f3; }
 
 	private int f4 = 4;
-	@BeanProperty(name="g4") @Xml(prefix="baz",namespace="http://baz") public int getF4() { return f4; }
-	@BeanProperty(name="g4") public void setF4(int f4) { this.f4 = f4; }
+	@Beanp(name="g4") @Xml(prefix="baz",namespace="http://baz") public int getF4() { return f4; }
+	@Beanp(name="g4") public void setF4(int f4) { this.f4 = f4; }
 
 	public boolean equals(T7 x) {
 		return x.f1 == f1 && x.f2 == f2 && x.f3 == f3 && x.f4 == f4;
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Category.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Category.java
index ea39b5a..fc39182 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Category.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Category.java
@@ -80,7 +80,7 @@ public class Category extends Common {
 	 * @param term The category term.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("term")
+	@Beanp("term")
 	public Category term(String term) {
 		this.term = term;
 		return this;
@@ -109,7 +109,7 @@ public class Category extends Common {
 	 * @param scheme The category scheme.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("scheme")
+	@Beanp("scheme")
 	public Category scheme(Object scheme) {
 		this.scheme = toURI(scheme);
 		return this;
@@ -131,7 +131,7 @@ public class Category extends Common {
 	 * @param label The category label.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("label")
+	@Beanp("label")
 	public Category label(String label) {
 		this.label = label;
 		return this;
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Common.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Common.java
index 8ad44a4..3b824ab 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Common.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Common.java
@@ -72,7 +72,7 @@ public abstract class Common {
 	 * @param base The URI base of this object.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("base")
+	@Beanp("base")
 	public Common base(Object base) {
 		this.base = toURI(base);
 		return this;
@@ -94,7 +94,7 @@ public abstract class Common {
 	 * @param lang The language of this object.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("lang")
+	@Beanp("lang")
 	public Common lang(String lang) {
 		this.lang = lang;
 		return this;
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/CommonEntry.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/CommonEntry.java
index 52cbc41..80aadcc 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/CommonEntry.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/CommonEntry.java
@@ -86,7 +86,7 @@ public class CommonEntry extends Common {
 	 * @param authors The list of authors for this object.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("authors")
+	@Beanp("authors")
 	public CommonEntry authors(Person...authors) {
 		this.authors = authors;
 		return this;
@@ -108,7 +108,7 @@ public class CommonEntry extends Common {
 	 * @param categories The list of categories of this object.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("categories")
+	@Beanp("categories")
 	public CommonEntry categories(Category...categories) {
 		this.categories = categories;
 		return this;
@@ -130,7 +130,7 @@ public class CommonEntry extends Common {
 	 * @param contributors The list of contributors of this object.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("contributors")
+	@Beanp("contributors")
 	public CommonEntry contributors(Person...contributors) {
 		this.contributors = contributors;
 		return this;
@@ -151,7 +151,7 @@ public class CommonEntry extends Common {
 	 * @param id The ID of this object.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("id")
+	@Beanp("id")
 	public CommonEntry id(Id id) {
 		this.id = id;
 		return this;
@@ -184,7 +184,7 @@ public class CommonEntry extends Common {
 	 * @param links The list of links of this object.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("links")
+	@Beanp("links")
 	public CommonEntry links(Link...links) {
 		this.links = links;
 		return this;
@@ -205,7 +205,7 @@ public class CommonEntry extends Common {
 	 * @param rights The rights statement of this object.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("rights")
+	@Beanp("rights")
 	public CommonEntry rights(Text rights) {
 		this.rights = rights;
 		return this;
@@ -237,7 +237,7 @@ public class CommonEntry extends Common {
 	 * @param title The title of this object.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("title")
+	@Beanp("title")
 	public CommonEntry title(Text title) {
 		this.title = title;
 		return this;
@@ -269,7 +269,7 @@ public class CommonEntry extends Common {
 	 * @param updated The update timestamp of this object.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("updated")
+	@Beanp("updated")
 	public CommonEntry updated(Calendar updated) {
 		this.updated = updated;
 		return this;
@@ -281,7 +281,7 @@ public class CommonEntry extends Common {
 	 * @param updated The update timestamp of this object in ISO8601 format.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("updated")
+	@Beanp("updated")
 	public CommonEntry updated(String updated) {
 		this.updated = parseDateTime(updated);
 		return this;
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Content.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Content.java
index f6c6206..8a392d9 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Content.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Content.java
@@ -116,7 +116,7 @@ public class Content extends Text {
 	 * @param src The source URI.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("src")
+	@Beanp("src")
 	public Content src(Object src) {
 		this.src = toURI(src);
 		return this;
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Entry.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Entry.java
index e45f4e7..c017555 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Entry.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Entry.java
@@ -100,7 +100,7 @@ public class Entry extends CommonEntry {
 	 * @param content The content of this entry.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("content")
+	@Beanp("content")
 	public Entry content(Content content) {
 		this.content = content;
 		return this;
@@ -121,7 +121,7 @@ public class Entry extends CommonEntry {
 	 * @param published The publish timestamp of this entry.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("published")
+	@Beanp("published")
 	public Entry published(Calendar published) {
 		this.published = published;
 		return this;
@@ -133,7 +133,7 @@ public class Entry extends CommonEntry {
 	 * @param published The publish timestamp of this entry in ISO8601 format.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("published")
+	@Beanp("published")
 	public Entry published(String published) {
 		this.published = parseDateTime(published);
 		return this;
@@ -154,7 +154,7 @@ public class Entry extends CommonEntry {
 	 * @param source The source of this entry.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("source")
+	@Beanp("source")
 	public Entry source(Source source) {
 		this.source = source;
 		return this;
@@ -175,7 +175,7 @@ public class Entry extends CommonEntry {
 	 * @param summary The summary of this entry.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("summary")
+	@Beanp("summary")
 	public Entry summary(Text summary) {
 		this.summary = summary;
 		return this;
@@ -187,7 +187,7 @@ public class Entry extends CommonEntry {
 	 * @param summary The summary of this entry.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("summary")
+	@Beanp("summary")
 	public Entry summary(String summary) {
 		this.summary = new Text(summary);
 		return this;
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Feed.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Feed.java
index 41a62c7..4051462 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Feed.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Feed.java
@@ -106,7 +106,7 @@ public class Feed extends CommonEntry {
 	 * @param generator The generator information on this feed.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("generator")
+	@Beanp("generator")
 	public Feed generator(Generator generator) {
 		this.generator = generator;
 		return this;
@@ -127,7 +127,7 @@ public class Feed extends CommonEntry {
 	 * @param icon The feed icon.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("icon")
+	@Beanp("icon")
 	public Feed icon(Icon icon) {
 		this.icon = icon;
 		return this;
@@ -148,7 +148,7 @@ public class Feed extends CommonEntry {
 	 * @param logo The feed logo.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("logo")
+	@Beanp("logo")
 	public Feed logo(Logo logo) {
 		this.logo = logo;
 		return this;
@@ -159,7 +159,7 @@ public class Feed extends CommonEntry {
 	 *
 	 * @return The feed subtitle.
 	 */
-	@BeanProperty("subtitle")
+	@Beanp("subtitle")
 	public Text getSubTitle() {
 		return subtitle;
 	}
@@ -170,7 +170,7 @@ public class Feed extends CommonEntry {
 	 * @param subtitle The feed subtitle.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("subtitle")
+	@Beanp("subtitle")
 	public Feed subtitle(Text subtitle) {
 		this.subtitle = subtitle;
 		return this;
@@ -203,7 +203,7 @@ public class Feed extends CommonEntry {
 	 * @param entries The entries in the feed.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("entries")
+	@Beanp("entries")
 	public Feed entries(Entry...entries) {
 		this.entries = entries;
 		return this;
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Generator.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Generator.java
index e930feb..33925b6 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Generator.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Generator.java
@@ -88,7 +88,7 @@ public class Generator extends Common {
 	 * @param uri The URI of this generator statement.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("uri")
+	@Beanp("uri")
 	public Generator uri(Object uri) {
 		this.uri = toURI(uri);
 		return this;
@@ -110,7 +110,7 @@ public class Generator extends Common {
 	 * @param version The version of this generator statement.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("version")
+	@Beanp("version")
 	public Generator version(String version) {
 		this.version = version;
 		return this;
@@ -132,7 +132,7 @@ public class Generator extends Common {
 	 * @param text The content of this generator statement.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("text")
+	@Beanp("text")
 	public Generator text(String text) {
 		this.text = text;
 		return this;
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Icon.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Icon.java
index 3e2c520..e00217b 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Icon.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Icon.java
@@ -91,7 +91,7 @@ public class Icon extends Common {
 	 * @param uri The URI of this icon.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("uri")
+	@Beanp("uri")
 	public Icon uri(Object uri) {
 		this.uri = toURI(uri);
 		return this;
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Id.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Id.java
index 3b75a69..9739bf7 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Id.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Id.java
@@ -71,7 +71,7 @@ public class Id extends Common {
 	 * @param text The content of this identifier.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("text")
+	@Beanp("text")
 	public Id text(String text) {
 		this.text = text;
 		return this;
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Link.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Link.java
index efe0982..c3ec92e 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Link.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Link.java
@@ -86,7 +86,7 @@ public class Link extends Common {
 	 * @param href The href of the target of this link.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("href")
+	@Beanp("href")
 	public Link href(String href) {
 		this.href = href;
 		return this;
@@ -108,7 +108,7 @@ public class Link extends Common {
 	 * @param rel The rel of this link.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("rel")
+	@Beanp("rel")
 	public Link rel(String rel) {
 		this.rel = rel;
 		return this;
@@ -139,7 +139,7 @@ public class Link extends Common {
 	 * @param type The content type of the target of this link.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("type")
+	@Beanp("type")
 	public Link type(String type) {
 		this.type = type;
 		return this;
@@ -161,7 +161,7 @@ public class Link extends Common {
 	 * @param hreflang The language of the target of this link.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("hreflang")
+	@Beanp("hreflang")
 	public Link hreflang(String hreflang) {
 		this.hreflang = hreflang;
 		return this;
@@ -183,7 +183,7 @@ public class Link extends Common {
 	 * @param title The title of the target of this link.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("title")
+	@Beanp("title")
 	public Link title(String title) {
 		this.title = title;
 		return this;
@@ -205,7 +205,7 @@ public class Link extends Common {
 	 * @param length The length of the contents of the target of this link.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("length")
+	@Beanp("length")
 	public Link length(Integer length) {
 		this.length = length;
 		return this;
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Logo.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Logo.java
index 0e69714..b362408 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Logo.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Logo.java
@@ -91,7 +91,7 @@ public class Logo extends Common {
 	 * @param uri The URI of the logo.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("uri")
+	@Beanp("uri")
 	public Logo uri(Object uri) {
 		this.uri = toURI(uri);
 		return this;
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Person.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Person.java
index 826fdcd..3a19f1d 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Person.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Person.java
@@ -78,7 +78,7 @@ public class Person extends Common {
 	 * @param name The name of the person.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("name")
+	@Beanp("name")
 	public Person name(String name) {
 		this.name = name;
 		return this;
@@ -106,7 +106,7 @@ public class Person extends Common {
 	 * @param uri The URI of the person.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("uri")
+	@Beanp("uri")
 	public Person uri(Object uri) {
 		this.uri = toURI(uri);
 		return this;
@@ -127,7 +127,7 @@ public class Person extends Common {
 	 * @param email The email address of the person.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("email")
+	@Beanp("email")
 	public Person email(String email) {
 		this.email = email;
 		return this;
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Source.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Source.java
index fcf3cc9..d7fd4b6 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Source.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Source.java
@@ -72,7 +72,7 @@ public class Source extends CommonEntry {
 	 * @param generator The generator info of this source.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("generator")
+	@Beanp("generator")
 	public Source generator(Generator generator) {
 		this.generator = generator;
 		return this;
@@ -93,7 +93,7 @@ public class Source extends CommonEntry {
 	 * @param icon The icon of this source.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("icon")
+	@Beanp("icon")
 	public Source icon(Icon icon) {
 		this.icon = icon;
 		return this;
@@ -114,7 +114,7 @@ public class Source extends CommonEntry {
 	 * @param logo The logo of this source.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("logo")
+	@Beanp("logo")
 	public Source logo(Logo logo) {
 		this.logo = logo;
 		return this;
@@ -135,7 +135,7 @@ public class Source extends CommonEntry {
 	 * @param subtitle The subtitle of this source.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("subtitle")
+	@Beanp("subtitle")
 	public Source subtitle(Text subtitle) {
 		this.subtitle = subtitle;
 		return this;
@@ -147,7 +147,7 @@ public class Source extends CommonEntry {
 	 * @param subtitle The subtitle of this source.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("subtitle")
+	@Beanp("subtitle")
 	public Source subtitle(String subtitle) {
 		this.subtitle = new Text(subtitle);
 		return this;
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Text.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Text.java
index 53428bb..07c79f5 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Text.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/Text.java
@@ -93,7 +93,7 @@ public class Text extends Common {
 	 * @param type The content type of this content.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("type")
+	@Beanp("type")
 	public Text type(String type) {
 		this.type = type;
 		return this;
@@ -115,7 +115,7 @@ public class Text extends Common {
 	 * @param text The content of this content.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("text")
+	@Beanp("text")
 	public Text text(String text) {
 		this.text = text;
 		return this;
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/DataSet.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/DataSet.java
index c59a23a..28b1693 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/DataSet.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/cognos/DataSet.java
@@ -166,7 +166,7 @@ public class DataSet {
 	 *
 	 * @return The value of the <property>metadata</property> property on this bean, or <jk>null</jk> if it is not set.
 	 */
-	@BeanProperty("metadata")
+	@Beanp("metadata")
 	public Column[] getMetaData() {
 		return metaData;
 	}
@@ -177,7 +177,7 @@ public class DataSet {
 	 * @param metaData The new value for the <property>metadata</property> property on this bean.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("metadata")
+	@Beanp("metadata")
 	public DataSet setMetaData(Column[] metaData) {
 		this.metaData = metaData;
 		return this;
@@ -188,7 +188,7 @@ public class DataSet {
 	 *
 	 * @return The value of the <property>data</property> property on this bean, or <jk>null</jk> if it is not set.
 	 */
-	@BeanProperty("data")
+	@Beanp("data")
 	public List<Row> getData() {
 		return data;
 	}
@@ -199,7 +199,7 @@ public class DataSet {
 	 * @param data The new value for the <property>data</property> property on this bean.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("data")
+	@Beanp("data")
 	public DataSet setData(List<Row> data) {
 		this.data = data;
 		return this;
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElement.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElement.java
index 9798871..912d939 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElement.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElement.java
@@ -47,7 +47,7 @@ public abstract class HtmlElement {
 	 * @return The attributes of this element.
 	 */
 	@Xml(format=ATTRS)
-	@BeanProperty("a")
+	@Beanp("a")
 	public LinkedHashMap<String,Object> getAttrs() {
 		return attrs;
 	}
@@ -58,7 +58,7 @@ public abstract class HtmlElement {
 	 * @param attrs The new attributes for this element.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("a")
+	@Beanp("a")
 	public HtmlElement setAttrs(LinkedHashMap<String,Object> attrs) {
 		for (Entry<String,Object> e : attrs.entrySet()) {
 			String key = e.getKey();
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElementContainer.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElementContainer.java
index e1cd29c..034d64a 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElementContainer.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElementContainer.java
@@ -38,7 +38,7 @@ public class HtmlElementContainer extends HtmlElement {
 	 * @return The children of this element.
 	 */
 	@Xml(format=ELEMENTS)
-	@BeanProperty(beanDictionary=HtmlBeanDictionary.class, name="c")
+	@Beanp(dictionary=HtmlBeanDictionary.class, name="c")
 	public LinkedList<Object> getChildren() {
 		return children;
 	}
@@ -49,7 +49,7 @@ public class HtmlElementContainer extends HtmlElement {
 	 * @param children The new children for this container.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("c")
+	@Beanp("c")
 	public HtmlElementContainer setChildren(LinkedList<Object> children) {
 		this.children = children;
 		return this;
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElementMixed.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElementMixed.java
index 278203c..57c8244 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElementMixed.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElementMixed.java
@@ -38,7 +38,7 @@ public class HtmlElementMixed extends HtmlElement {
 	 * @return The children of this element.
 	 */
 	@Xml(format=MIXED)
-	@BeanProperty(beanDictionary=HtmlBeanDictionary.class, name="c")
+	@Beanp(dictionary=HtmlBeanDictionary.class, name="c")
 	public LinkedList<Object> getChildren() {
 		return children;
 	}
@@ -49,7 +49,7 @@ public class HtmlElementMixed extends HtmlElement {
 	 * @param children The new children of this element.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("c")
+	@Beanp("c")
 	public HtmlElement setChildren(LinkedList<Object> children) {
 		this.children = children;
 		return this;
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElementRawText.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElementRawText.java
index 269b447..d3a33b5 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElementRawText.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElementRawText.java
@@ -33,7 +33,7 @@ public class HtmlElementRawText extends HtmlElement {
 	 * @return The inner text of this element, or <jk>null</jk> if no text is set.
 	 */
 	@Xml(format=XmlFormat.TEXT_PWS)
-	@BeanProperty("c")
+	@Beanp("c")
 	public Object getText() {
 		return text;
 	}
@@ -44,7 +44,7 @@ public class HtmlElementRawText extends HtmlElement {
 	 * @param text The inner text of this element, or <jk>null</jk> if no text is set.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("c")
+	@Beanp("c")
 	public HtmlElement setText(Object text) {
 		this.text = text;
 		return this;
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElementText.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElementText.java
index b86fc64..1b4475d 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElementText.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElementText.java
@@ -32,7 +32,7 @@ public class HtmlElementText extends HtmlElement {
 	 * @return The inner text of this element, or <jk>null</jk> if no text is set.
 	 */
 	@Xml(format=XmlFormat.TEXT)
-	@BeanProperty("c")
+	@Beanp("c")
 	public Object getText() {
 		return text;
 	}
@@ -43,7 +43,7 @@ public class HtmlElementText extends HtmlElement {
 	 * @param text The inner text of this element, or <jk>null</jk> if no text is set.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("c")
+	@Beanp("c")
 	public HtmlElement setText(Object text) {
 		this.text = text;
 		return this;
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Pre.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Pre.java
index 461bb6d..4687d2a 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Pre.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/Pre.java
@@ -35,7 +35,7 @@ public class Pre extends HtmlElementMixed {
 	//-----------------------------------------------------------------------------------------------------------------
 
 	@Xml(format=MIXED_PWS)
-	@BeanProperty(beanDictionary=HtmlBeanDictionary.class, name="c")
+	@Beanp(dictionary=HtmlBeanDictionary.class, name="c")
 	@Override
 	public LinkedList<Object> getChildren() {
 		return super.getChildren();
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/jsonschema/JsonSchema.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/jsonschema/JsonSchema.java
index 34284f9..1fbf719 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/jsonschema/JsonSchema.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/jsonschema/JsonSchema.java
@@ -144,7 +144,7 @@ public class JsonSchema {
 	 *
 	 * @return The value of the <property>$schema</property> property on this bean, or <jk>null</jk> if it is not set.
 	 */
-	@BeanProperty("$schema")
+	@Beanp("$schema")
 	public URI getSchemaVersionUri() {
 		return schemaVersion;
 	}
@@ -162,7 +162,7 @@ public class JsonSchema {
 	 * @param schemaVersion The new value for the <property>schemaVersion</property> property on this bean.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("$schema")
+	@Beanp("$schema")
 	public JsonSchema setSchemaVersionUri(Object schemaVersion) {
 		this.schemaVersion = toURI(schemaVersion);
 		return this;
@@ -1140,7 +1140,7 @@ public class JsonSchema {
 	 * @return This object (for method chaining).
 	 * @throws BeanRuntimeException If invalid object type passed in.
 	 */
-	@BeanProperty(beanDictionary={JsonSchema.class})
+	@Beanp(dictionary={JsonSchema.class})
 	public JsonSchema setAdditionalProperties(Object additionalProperties) {
 		this.additionalPropertiesBoolean = null;
 		this.additionalPropertiesSchema = null;
@@ -1357,7 +1357,7 @@ public class JsonSchema {
 	 *
 	 * @return The value of the <property>$ref</property> property on this bean, or <jk>null</jk> if it is not set.
 	 */
-	@BeanProperty("$ref")
+	@Beanp("$ref")
 	public URI getRef() {
 		return ref;
 	}
@@ -1375,7 +1375,7 @@ public class JsonSchema {
 	 * @param ref The new value for the <property>$ref</property> property on this bean.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("$ref")
+	@Beanp("$ref")
 	public JsonSchema setRef(Object ref) {
 		this.ref = toURI(ref);
 		return this;
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/HeaderInfo.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/HeaderInfo.java
index c709e11..64391f7 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/HeaderInfo.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/HeaderInfo.java
@@ -993,7 +993,7 @@ public class HeaderInfo extends SwaggerElement {
 	 *
 	 * @return The property value, or <jk>null</jk> if it is not set.
 	 */
-	@BeanProperty("$ref")
+	@Beanp("$ref")
 	public String getRef() {
 		return ref;
 	}
@@ -1015,7 +1015,7 @@ public class HeaderInfo extends SwaggerElement {
 	 * 	<br>Can be <jk>null</jk> to unset the property.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("$ref")
+	@Beanp("$ref")
 	public HeaderInfo setRef(Object value) {
 		ref = StringUtils.stringify(value);
 		return this;
@@ -1038,7 +1038,7 @@ public class HeaderInfo extends SwaggerElement {
 	 *
 	 * @return The property value, or <jk>null</jk> if it is not set.
 	 */
-	@BeanProperty("x-example")
+	@Beanp("x-example")
 	public Object getExample() {
 		return example;
 	}
@@ -1051,7 +1051,7 @@ public class HeaderInfo extends SwaggerElement {
 	 * 	<br>Can be <jk>null</jk> to unset the property.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("x-example")
+	@Beanp("x-example")
 	public HeaderInfo setExample(Object value) {
 		example = value;
 		return this;
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Items.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Items.java
index a3c1904..abb44e0 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Items.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Items.java
@@ -971,7 +971,7 @@ public class Items extends SwaggerElement {
 	 *
 	 * @return The property value, or <jk>null</jk> if it is not set.
 	 */
-	@BeanProperty("$ref")
+	@Beanp("$ref")
 	public String getRef() {
 		return ref;
 	}
@@ -993,7 +993,7 @@ public class Items extends SwaggerElement {
 	 * 	<br>Can be <jk>null</jk> to unset the property.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("$ref")
+	@Beanp("$ref")
 	public Items setRef(Object value) {
 		ref = StringUtils.stringify(value);
 		return this;
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ParameterInfo.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ParameterInfo.java
index 769dfde..d65b3ee 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ParameterInfo.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ParameterInfo.java
@@ -1396,7 +1396,7 @@ public class ParameterInfo extends SwaggerElement {
 	 *
 	 * @return The property value, or <jk>null</jk> if it is not set.
 	 */
-	@BeanProperty("x-example")
+	@Beanp("x-example")
 	public String getExample() {
 		return example;
 	}
@@ -1409,7 +1409,7 @@ public class ParameterInfo extends SwaggerElement {
 	 * 	<br>Can be <jk>null</jk> to unset the property.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("x-example")
+	@Beanp("x-example")
 	public ParameterInfo setExample(String value) {
 		example = value;
 		return this;
@@ -1431,7 +1431,7 @@ public class ParameterInfo extends SwaggerElement {
 	 *
 	 * @return The property value, or <jk>null</jk> if it is not set.
 	 */
-	@BeanProperty("x-examples")
+	@Beanp("x-examples")
 	public Map<String,String> getExamples() {
 		return examples;
 	}
@@ -1444,7 +1444,7 @@ public class ParameterInfo extends SwaggerElement {
 	 * 	<br>Can be <jk>null</jk> to unset the property.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("x-examples")
+	@Beanp("x-examples")
 	public ParameterInfo setExamples(Map<String,String> value) {
 		examples = newMap(value);
 		return this;
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ResponseInfo.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ResponseInfo.java
index 8f3cef2..80a77d0 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ResponseInfo.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ResponseInfo.java
@@ -337,7 +337,7 @@ public class ResponseInfo extends SwaggerElement {
 	 *
 	 * @return The property value, or <jk>null</jk> if it is not set.
 	 */
-	@BeanProperty("x-example")
+	@Beanp("x-example")
 	public Object getExample() {
 		return example;
 	}
@@ -350,7 +350,7 @@ public class ResponseInfo extends SwaggerElement {
 	 * 	<br>Can be <jk>null</jk> to unset the property.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("x-example")
+	@Beanp("x-example")
 	public ResponseInfo setExample(Object value) {
 		example = value;
 		return this;
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SchemaInfo.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SchemaInfo.java
index c1ef8fd..4281826 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SchemaInfo.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SchemaInfo.java
@@ -1369,7 +1369,7 @@ public class SchemaInfo extends SwaggerElement {
 	 *
 	 * @return The property value, or <jk>null</jk> if it is not set.
 	 */
-	@BeanProperty("$ref")
+	@Beanp("$ref")
 	public String getRef() {
 		return ref;
 	}
@@ -1391,7 +1391,7 @@ public class SchemaInfo extends SwaggerElement {
 	 * 	<br>Can be <jk>null</jk> to unset the property.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("$ref")
+	@Beanp("$ref")
 	public SchemaInfo setRef(Object value) {
 		ref = StringUtils.stringify(value);
 		return this;
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SwaggerElement.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SwaggerElement.java
index 2e5a7a7..1f39cfd 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SwaggerElement.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SwaggerElement.java
@@ -101,7 +101,7 @@ public abstract class SwaggerElement {
 	 * @param property The property name to retrieve.
 	 * @return The property value, or <jk>null</jk> if the property does not exist or is not set.
 	 */
-	@BeanProperty("*")
+	@Beanp("*")
 	public Object get(String property) {
 		if (property == null || extra == null)
 			return null;
@@ -118,7 +118,7 @@ public abstract class SwaggerElement {
 	 * @param value The new value for the property.
 	 * @return This object (for method chaining).
 	 */
-	@BeanProperty("*")
+	@Beanp("*")
 	public SwaggerElement set(String property, Object value) {
 		if (property == null)
 			return this;
@@ -139,7 +139,7 @@ public abstract class SwaggerElement {
 	 * 	All the non-standard keys on this element.
 	 * 	<br>Never <jk>null</jk>.
 	 */
-	@BeanProperty("*")
+	@Beanp("*")
 	public Set<String> extraKeys() {
 		return extra == null ? Collections.emptySet() : extra.keySet();
 	}
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 641d820..cb2f18b 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
@@ -244,7 +244,7 @@ public class BeanContext extends Context {
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
 	 * 			<li class='ja'>{@link Bean#beanDictionary()}
-	 * 			<li class='ja'>{@link BeanProperty#beanDictionary()}
+	 * 			<li class='ja'>{@link Beanp#dictionary()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
@@ -1200,7 +1200,7 @@ public class BeanContext extends Context {
 	 * 	<li><b>Annotations:</b>
 	 * 		<ul>
 	 * 			<li class='ja'>{@link Bean#properties()}
-	 * 			<li class='ja'>{@link BeanProperty#properties()}
+	 * 			<li class='ja'>{@link Beanp#bpi()}
 	 * 		</ul>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
@@ -2529,9 +2529,10 @@ public class BeanContext extends Context {
 
 
 	/**
-	 * Used for determining the class type on a method or field where a {@code @BeanProperty} annotation may be present.
+	 * Used for determining the class type on a method or field where a {@code @Beanp} annotation may be present.
 	 *
 	 * @param <T> The class type we're wrapping.
+	 * @param px The property annotation on the type if there is one.
 	 * @param p The property annotation on the type if there is one.
 	 * @param t The type.
 	 * @param typeVarImpls
@@ -2540,9 +2541,39 @@ public class BeanContext extends Context {
 	 * 	Can be <jk>null</jk> if the information is not known.
 	 * @return The new {@code ClassMeta} object wrapped around the {@code Type} object.
 	 */
-	protected final <T> ClassMeta<T> resolveClassMeta(BeanProperty p, Type t, Map<Class<?>,Class<?>[]> typeVarImpls) {
+	@SuppressWarnings("deprecation")
+	protected final <T> ClassMeta<T> resolveClassMeta(BeanProperty px, Beanp p, Type t, Map<Class<?>,Class<?>[]> typeVarImpls) {
 		ClassMeta<T> cm = resolveClassMeta(t, typeVarImpls);
 		ClassMeta<T> cm2 = cm;
+		if (px != null) {
+
+			if (px.type() != Object.class)
+				cm2 = resolveClassMeta(px.type(), typeVarImpls);
+
+			if (cm2.isMap()) {
+				Class<?>[] pParams = (px.params().length == 0 ? new Class[]{Object.class, Object.class} : px.params());
+				if (pParams.length != 2)
+					throw new FormattedRuntimeException("Invalid number of parameters specified for Map (must be 2): {0}", pParams.length);
+				ClassMeta<?> keyType = resolveType(pParams[0], cm2.getKeyType(), cm.getKeyType());
+				ClassMeta<?> valueType = resolveType(pParams[1], cm2.getValueType(), cm.getValueType());
+				if (keyType.isObject() && valueType.isObject())
+					return cm2;
+				return new ClassMeta<>(cm2, keyType, valueType, null);
+			}
+
+			if (cm2.isCollection() || cm2.isOptional()) {
+				Class<?>[] pParams = (px.params().length == 0 ? new Class[]{Object.class} : px.params());
+				if (pParams.length != 1)
+					throw new FormattedRuntimeException("Invalid number of parameters specified for "+(cm2.isCollection() ? "Collection" : cm2.isOptional() ? "Optional" : "Array")+" (must be 1): {0}", pParams.length);
+				ClassMeta<?> elementType = resolveType(pParams[0], cm2.getElementType(), cm.getElementType());
+				if (elementType.isObject())
+					return cm2;
+				return new ClassMeta<>(cm2, null, null, elementType);
+			}
+
+			return cm2;
+		}
+
 		if (p != null) {
 
 			if (p.type() != Object.class)
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java
index 12b42b8..70682d0 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java
@@ -51,7 +51,7 @@ import org.apache.juneau.utils.*;
  * 		<ul>
  * 			<li>Public fields (same order as {@code Class.getFields()}).
  * 			<li>Properties returned by {@code BeanInfo.getPropertyDescriptors()}.
- * 			<li>Non-standard getters/setters with {@link BeanProperty @BeanProperty} annotation defined on them.
+ * 			<li>Non-standard getters/setters with {@link Beanp @Beanp} annotation defined on them.
  * 		</ul>
  * </ul>
  *
@@ -163,6 +163,7 @@ public class BeanMeta<T> {
 			this.pNames = pNames;
 		}
 
+		@SuppressWarnings("deprecation")
 		String init(BeanMeta<T> beanMeta) {
 			Class<?> c = classMeta.getInnerClass();
 			ClassInfo ci = classMeta.getInfo();
@@ -326,6 +327,9 @@ public class BeanMeta<T> {
 								if (m.getAnnotation(BeanProperty.class) == null && bpm.getter.getAnnotation(BeanProperty.class) != null)
 									m = bpm.getter;  // @BeanProperty annotated method takes precedence.
 
+								else if (m.getAnnotation(Beanp.class) == null && bpm.getter.getAnnotation(Beanp.class) != null)
+									m = bpm.getter;  // @Beanp annotated method takes precedence.
+
 								else if (m.getName().startsWith("is") && bpm.getter.getName().startsWith("get"))
 									m = bpm.getter;  // getX() overrides isX().
 							}
@@ -485,9 +489,11 @@ public class BeanMeta<T> {
 		 * Returns null if the field isn't a valid property.
 		 */
 		private String findPropertyName(Field f, Set<String> fixedBeanProps) {
-			BeanProperty bp = f.getAnnotation(BeanProperty.class);
+			@SuppressWarnings("deprecation")
+			BeanProperty px = f.getAnnotation(BeanProperty.class);
+			Beanp p = f.getAnnotation(Beanp.class);
 			Name n = f.getAnnotation(Name.class);
-			String name = bpName(bp, n);
+			String name = bpName(px, p, n);
 			if (isNotEmpty(name)) {
 				if (fixedBeanProps.isEmpty() || fixedBeanProps.contains(name))
 					return name;
@@ -624,9 +630,11 @@ public class BeanMeta<T> {
 				if (bi != null)
 					continue;
 
-				BeanProperty bp = m.getAnnotation(BeanProperty.class);
+				@SuppressWarnings("deprecation")
+				BeanProperty px = m.getAnnotation(BeanProperty.class);
+				Beanp p = m.getAnnotation(Beanp.class);
 				Name n2 = m.getAnnotation(Name.class);
-				if (! (m.isVisible(v) || bp != null || n2 != null))
+				if (! (m.isVisible(v) || px != null || p != null || n2 != null))
 					continue;
 
 				String n = m.getSimpleName();
@@ -634,10 +642,10 @@ public class BeanMeta<T> {
 				List<ClassInfo> pt = m.getParamTypes();
 				ClassInfo rt = m.getReturnType();
 				MethodType methodType = UNKNOWN;
-				String bpName = bpName(bp, n2);
+				String bpName = bpName(px, p, n2);
 
 				if (! (isEmpty(bpName) || filterProps.isEmpty() || filterProps.contains(bpName)))
-					throw new BeanRuntimeException(c, "Found @BeanProperty(\"{0}\") but name was not found in @Bean(properties)", bpName);
+					throw new BeanRuntimeException(c, "Found @Beanp(\"{0}\") but name was not found in @Bean(properties)", bpName);
 
 				if (pt.size() == 0) {
 					if ("*".equals(bpName)) {
@@ -702,7 +710,7 @@ public class BeanMeta<T> {
 				n = pn.getPropertyName(n);
 
 				if ("*".equals(bpName) && methodType == UNKNOWN)
-					throw new BeanRuntimeException(c, "Found @BeanProperty(\"*\") but could not determine method type on method ''{0}''.", m.getSimpleName());
+					throw new BeanRuntimeException(c, "Found @Beanp(\"*\") but could not determine method type on method ''{0}''.", m.getSimpleName());
 
 				if (methodType != UNKNOWN) {
 					if (bpName != null && ! bpName.isEmpty()) {
@@ -728,15 +736,17 @@ public class BeanMeta<T> {
 				if (f.hasAnnotation(BeanIgnore.class))
 					continue;
 
-				BeanProperty bp = f.getAnnotation(BeanProperty.class);
+				@SuppressWarnings("deprecation")
+				BeanProperty px = f.getAnnotation(BeanProperty.class);
+				Beanp p = f.getAnnotation(Beanp.class);
 				Name n = f.getAnnotation(Name.class);
-				String bpName = bpName(bp, n);
+				String bpName = bpName(px, p, n);
 
-				if (! (v.isVisible(f.inner()) || bp != null))
+				if (! (v.isVisible(f.inner()) || px != null || p != null))
 					continue;
 
 				if (! (isEmpty(bpName) || filterProps.isEmpty() || filterProps.contains(bpName)))
-					throw new BeanRuntimeException(c, "Found @BeanProperty(\"{0}\") but name was not found in @Bean(properties)", bpName);
+					throw new BeanRuntimeException(c, "Found @Beanp(\"{0}\") but name was not found in @Bean(properties)", bpName);
 
 				l.add(f.inner());
 			}
@@ -906,16 +916,23 @@ public class BeanMeta<T> {
 		}
 	}
 
-	static final String bpName(BeanProperty bp, Name n) {
-		if (bp == null && n == null)
+	@SuppressWarnings("deprecation")
+	static final String bpName(BeanProperty px, Beanp p, Name n) {
+		if (px == null && p == null && n == null)
 			return null;
 		if (n != null)
 			return n.value();
-		if (bp == null)
-			return null;
-		if (! bp.name().isEmpty())
-			return bp.name();
-		return bp.value();
+		if (p != null) {
+			if (! p.name().isEmpty())
+				return p.name();
+			return p.value();
+		}
+		if (px != null) {
+			if (! px.name().isEmpty())
+				return px.name();
+			return px.value();
+		}
+		return null;
 	}
 
 	@Override /* Object */
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMetaFiltered.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMetaFiltered.java
index eefaa50..45eac2b 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMetaFiltered.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMetaFiltered.java
@@ -17,7 +17,7 @@ import java.util.*;
 import org.apache.juneau.annotation.*;
 
 /**
- * Same as {@link BeanMeta}, except the list of bean properties are limited by a  {@link BeanProperty#properties() @BeanProperty(properties)} annotation.
+ * Same as {@link BeanMeta}, except the list of bean properties are limited by a  {@link Beanp#bpi() @Beanp(bpi)} annotation.
  *
  * @param <T> The class type that this metadata applies to.
  */
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
index eb8c047..e41f80b 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
@@ -61,8 +61,8 @@ public final class BeanPropertyMeta {
 		rawTypeMeta,                                           // The real class type of the bean property.
 		typeMeta;                                              // The transformed class type of the bean property.
 
-	private final String[] properties;                        // The value of the @BeanProperty(properties) annotation.
-	private final PojoSwap swap;                              // PojoSwap defined only via @BeanProperty annotation.
+	private final String[] properties;                        // The value of the @Beanp(properties) annotation.
+	private final PojoSwap swap;                              // PojoSwap defined only via @Beanp annotation.
 
 	private final MetadataMap extMeta;                        // Extended metadata
 	private final BeanRegistry beanRegistry;
@@ -162,6 +162,7 @@ public final class BeanPropertyMeta {
 			return this;
 		}
 
+		@SuppressWarnings("deprecation")
 		boolean validate(BeanContext f, BeanRegistry parentBeanRegistry, Map<Class<?>,Class<?>[]> typeVarImpls) throws Exception {
 
 			List<Class<?>> bdClasses = new ArrayList<>();
@@ -176,17 +177,23 @@ public final class BeanPropertyMeta {
 			canWrite |= (field != null || setter != null);
 
 			if (innerField != null) {
-				BeanProperty p = innerField.getAnnotation(BeanProperty.class);
-				if (field != null || p != null) {
-					// Only use field type if it's a bean property or has @BeanProperty annotation.
+				BeanProperty px = innerField.getAnnotation(BeanProperty.class);
+				Beanp p = innerField.getAnnotation(Beanp.class);
+				if (field != null || px != null || p != null) {
+					// Only use field type if it's a bean property or has @Beanp annotation.
 					// Otherwise, we want to infer the type from the getter or setter.
-					rawTypeMeta = f.resolveClassMeta(p, innerField.getGenericType(), typeVarImpls);
+					rawTypeMeta = f.resolveClassMeta(px, p, innerField.getGenericType(), typeVarImpls);
 					isUri |= (rawTypeMeta.isUri());
 				}
+				if (px != null) {
+					if (! px.properties().isEmpty())
+						properties = split(px.properties());
+					bdClasses.addAll(Arrays.asList(px.beanDictionary()));
+				}
 				if (p != null) {
-					if (! p.properties().isEmpty())
-						properties = split(p.properties());
-					bdClasses.addAll(Arrays.asList(p.beanDictionary()));
+					if (! p.bpi().isEmpty())
+						properties = split(p.bpi());
+					bdClasses.addAll(Arrays.asList(p.dictionary()));
 				}
 				Swap s = innerField.getAnnotation(Swap.class);
 				if (s != null) {
@@ -196,14 +203,20 @@ public final class BeanPropertyMeta {
 			}
 
 			if (getter != null) {
-				BeanProperty p = MethodInfo.of(getter).getAnnotation(BeanProperty.class);
+				BeanProperty px = MethodInfo.of(getter).getAnnotation(BeanProperty.class);
+				Beanp p = MethodInfo.of(getter).getAnnotation(Beanp.class);
 				if (rawTypeMeta == null)
-					rawTypeMeta = f.resolveClassMeta(p, getter.getGenericReturnType(), typeVarImpls);
+					rawTypeMeta = f.resolveClassMeta(px, p, getter.getGenericReturnType(), typeVarImpls);
 				isUri |= (rawTypeMeta.isUri() || getter.isAnnotationPresent(org.apache.juneau.annotation.URI.class));
+				if (px != null) {
+					if (properties != null && ! px.properties().isEmpty())
+						properties = split(px.properties());
+					bdClasses.addAll(Arrays.asList(px.beanDictionary()));
+				}
 				if (p != null) {
-					if (properties != null && ! p.properties().isEmpty())
-						properties = split(p.properties());
-					bdClasses.addAll(Arrays.asList(p.beanDictionary()));
+					if (properties != null && ! p.bpi().isEmpty())
+						properties = split(p.bpi());
+					bdClasses.addAll(Arrays.asList(p.dictionary()));
 				}
 				Swap s = getter.getAnnotation(Swap.class);
 				if (s != null && swap == null) {
@@ -212,16 +225,24 @@ public final class BeanPropertyMeta {
 			}
 
 			if (setter != null) {
-				BeanProperty p = MethodInfo.of(setter).getAnnotation(BeanProperty.class);
+				BeanProperty px = MethodInfo.of(setter).getAnnotation(BeanProperty.class);
+				Beanp p = MethodInfo.of(setter).getAnnotation(Beanp.class);
 				if (rawTypeMeta == null)
-					rawTypeMeta = f.resolveClassMeta(p, setter.getGenericParameterTypes()[0], typeVarImpls);
+					rawTypeMeta = f.resolveClassMeta(px, p, setter.getGenericParameterTypes()[0], typeVarImpls);
 				isUri |= (rawTypeMeta.isUri() || setter.isAnnotationPresent(org.apache.juneau.annotation.URI.class));
+				if (px != null) {
+					if (swap == null)
+						swap = getPropertyPojoSwap(px);
+					if (properties != null && ! px.properties().isEmpty())
+						properties = split(px.properties());
+					bdClasses.addAll(Arrays.asList(px.beanDictionary()));
+				}
 				if (p != null) {
 					if (swap == null)
 						swap = getPropertyPojoSwap(p);
-					if (properties != null && ! p.properties().isEmpty())
-						properties = split(p.properties());
-					bdClasses.addAll(Arrays.asList(p.beanDictionary()));
+					if (properties != null && ! p.bpi().isEmpty())
+						properties = split(p.bpi());
+					bdClasses.addAll(Arrays.asList(p.dictionary()));
 				}
 				Swap s = setter.getAnnotation(Swap.class);
 				if (s != null && swap == null) {
@@ -301,12 +322,19 @@ public final class BeanPropertyMeta {
 			return new BeanPropertyMeta(this);
 		}
 
+		@SuppressWarnings("deprecation")
 		private PojoSwap getPropertyPojoSwap(BeanProperty p) throws Exception {
 			if (! p.format().isEmpty())
 				return castOrCreate(PojoSwap.class, StringFormatSwap.class, false, p.format());
 			return null;
 		}
 
+		private PojoSwap getPropertyPojoSwap(Beanp p) throws Exception {
+			if (! p.format().isEmpty())
+				return castOrCreate(PojoSwap.class, StringFormatSwap.class, false, p.format());
+			return null;
+		}
+
 		private PojoSwap getPropertyPojoSwap(Swap s) throws Exception {
 			Class<?> c = s.value();
 			if (c == Null.class)
@@ -472,7 +500,7 @@ public final class BeanPropertyMeta {
 	 * <p>
 	 * The order of lookup for the dictionary is as follows:
 	 * <ol>
-	 * 	<li>Dictionary defined via {@link BeanProperty#beanDictionary() @BeanProperty(beanDictionary)}.
+	 * 	<li>Dictionary defined via {@link Beanp#dictionary() @Beanp(dictionary)}.
 	 * 	<li>Dictionary defined via {@link BeanContext#BEAN_beanDictionary} context property.
 	 * </ol>
 	 *
@@ -509,7 +537,7 @@ public final class BeanPropertyMeta {
 	}
 
 	/**
-	 * Returns the override list of properties defined through a {@link BeanProperty#properties() @BeanProperty(properties)} annotation
+	 * Returns the override list of properties defined through a {@link Beanp#bpi() @Beanp(bpi)} annotation
 	 * on this property.
 	 *
 	 * @return The list of override properties, or <jk>null</jk> if annotation not specified.
@@ -1116,7 +1144,7 @@ public final class BeanPropertyMeta {
 
 	private Object transform(BeanSession session, Object o) throws SerializeException {
 		try {
-			// First use swap defined via @BeanProperty.
+			// First use swap defined via @Beanp.
 			if (swap != null)
 				return swap.swap(session, o);
 			if (o == null)
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanProperty.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanProperty.java
index dcb412b..6970ed7 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanProperty.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanProperty.java
@@ -28,11 +28,14 @@ import org.apache.juneau.*;
  * <ul class='seealso'>
  * 	<li class='link'>{@doc juneau-marshall.Transforms.BeanPropertyAnnotation}
  * </ul>
+ *
+ * @deprecated Use {@link Beanp}
  */
 @Documented
 @Target({FIELD,METHOD,PARAMETER})
 @Retention(RUNTIME)
 @Inherited
+@Deprecated
 public @interface BeanProperty {
 
 	/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanProperty.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Beanp.java
similarity index 86%
copy from juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanProperty.java
copy to juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Beanp.java
index dcb412b..ec66cbb 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanProperty.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Beanp.java
@@ -33,7 +33,7 @@ import org.apache.juneau.*;
 @Target({FIELD,METHOD,PARAMETER})
 @Retention(RUNTIME)
 @Inherited
-public @interface BeanProperty {
+public @interface Beanp {
 
 	/**
 	 * Identifies the name of the property.
@@ -62,7 +62,7 @@ public @interface BeanProperty {
 	 * 	// The field name can be anything.</jc>
 	 * 	<jk>public class</jk> BeanWithDynaField {
 	 *
-	 * 		<ja>@BeanProperty</ja>(name=<js>"*"</js>)
+	 * 		<ja>@Beanp</ja>(name=<js>"*"</js>)
 	 * 		<jk>public</jk> Map&lt;String,Object&gt; extraStuff = <jk>new</jk> LinkedHashMap&lt;String,Object&gt;();
 	 * 	}
 	 *
@@ -72,12 +72,12 @@ public @interface BeanProperty {
 	 * 	// Setter must take in two arguments.</jc>
 	 * 	<jk>public class</jk> BeanWithDynaMethods {
 	 *
-	 * 		<ja>@BeanProperty</ja>(name=<js>"*"</js>)
+	 * 		<ja>@Beanp</ja>(name=<js>"*"</js>)
 	 * 		<jk>public</jk> Map&lt;String,Object&gt; getMyExtraStuff() {
 	 * 			...
 	 * 		}
 	 *
-	 * 		<ja>@BeanProperty</ja>(name=<js>"*"</js>)
+	 * 		<ja>@Beanp</ja>(name=<js>"*"</js>)
 	 * 		<jk>public void</jk> setAnExtraField(String name, Object value) {
 	 * 			...
 	 * 		}
@@ -87,7 +87,7 @@ public @interface BeanProperty {
 	 * 	// Properties will be added through the getter.</jc>
 	 * 	<jk>public class</jk> BeanWithDynaGetterOnly {
 	 *
-	 * 		<ja>@BeanProperty</ja>(name=<js>"*"</js>)
+	 * 		<ja>@Beanp</ja>(name=<js>"*"</js>)
 	 * 		<jk>public</jk> Map&lt;String,Object&gt; getMyExtraStuff() {
 	 * 			...
 	 * 		}
@@ -97,17 +97,17 @@ public @interface BeanProperty {
 	 * 	// Define a method that returns a Collection&lt;String&gt; with currently-set property names.</jc>
 	 * 	<jk>public class</jk> BeanWithDynaExtraKeys {
 	 *
-	 * 		<ja>@BeanProperty</ja>(name=<js>"*"</js>)
+	 * 		<ja>@Beanp</ja>(name=<js>"*"</js>)
 	 * 		<jk>public</jk> Object get(String name) {
 	 * 			...
 	 * 		}
 	 *
-	 * 		<ja>@BeanProperty</ja>(name=<js>"*"</js>)
+	 * 		<ja>@Beanp</ja>(name=<js>"*"</js>)
 	 * 		<jk>public void</jk> set(String name, Object value) {
 	 * 			...
 	 * 		}
 	 *
-	 * 		<ja>@BeanProperty</ja>(name=<js>"*"</js>)
+	 * 		<ja>@Beanp</ja>(name=<js>"*"</js>)
 	 * 		<jk>public</jk> Collection&lt;String&gt; extraKeys() {
 	 * 			...
 	 * 		}
@@ -121,7 +121,7 @@ public @interface BeanProperty {
 	 * 	<jc>// A serializable type other than Object.</jc>
 	 * 	<jk>public class</jk> BeanWithDynaFieldWithListValues {
 	 *
-	 * 		<ja>@BeanProperty</ja>(name=<js>"*"</js>)
+	 * 		<ja>@Beanp</ja>(name=<js>"*"</js>)
 	 * 		<jk>public</jk> Map&lt;String,List&lt;String&gt;&gt; getMyExtraStuff() {
 	 * 			...
 	 * 		}
@@ -130,7 +130,7 @@ public @interface BeanProperty {
 	 * 	<jc>// A swapped value.</jc>
 	 * 	<jk>public class</jk> BeanWithDynaFieldWithSwappedValues {
 	 *
-	 * 		<ja>@BeanProperty</ja>(name=<js>"*"</js>, swap=TemporalCalendarSwap.IsoLocalDateTime.<jk>class</jk>)
+	 * 		<ja>@Beanp</ja>(name=<js>"*"</js>, swap=TemporalCalendarSwap.IsoLocalDateTime.<jk>class</jk>)
 	 * 		<jk>public</jk> Map&lt;String,Calendar&gt; getMyExtraStuff() {
 	 * 			...
 	 * 		}
@@ -155,9 +155,9 @@ public @interface BeanProperty {
 	 * The following annotations are equivalent:
 	 *
 	 * <p class='bcode w800'>
-	 * 	<ja>@BeanProperty</ja>(name=<js>"foo"</js>)
+	 * 	<ja>@Beanp</ja>(name=<js>"foo"</js>)
 	 *
-	 * 	<ja>@BeanProperty</ja>(<js>"foo"</js>)
+	 * 	<ja>@Beanp</ja>(<js>"foo"</js>)
 	 * </p>
 	 */
 	String value() default "";
@@ -179,7 +179,7 @@ public @interface BeanProperty {
 	 * 	<jk>public class</jk> MyBean {
 	 *
 	 * 		<jc>// Identify concrete map type.</jc>
-	 * 		<ja>@BeanProperty</ja>(type=HashMap.<jk>class</jk>)
+	 * 		<ja>@Beanp</ja>(type=HashMap.<jk>class</jk>)
 	 * 		<jk>public</jk> Map <jf>p1</jf>;
 	 * 	}
 	 * </p>
@@ -191,7 +191,7 @@ public @interface BeanProperty {
 	 * <p class='bcode w800'>
 	 * 	<jk>public class</jk> MyBean {
 	 *
-	 * 		<ja>@BeanProperty</ja>(type=HashMap.<jk>class</jk>)
+	 * 		<ja>@Beanp</ja>(type=HashMap.<jk>class</jk>)
 	 * 		<jk>private</jk> Map <jf>p1</jf>;
 	 *
 	 * 		<jk>public</jk> Map getP1() {
@@ -211,7 +211,7 @@ public @interface BeanProperty {
 	 * 	<jk>public class</jk> MyBean {
 	 *
 	 * 		<jc>// Identify concrete map type with String keys and Integer values.</jc>
-	 * 		<ja>@BeanProperty</ja>(type=HashMap.<jk>class</jk>, params={String.<jk>class</jk>,Integer.<jk>class</jk>})
+	 * 		<ja>@Beanp</ja>(type=HashMap.<jk>class</jk>, params={String.<jk>class</jk>,Integer.<jk>class</jk>})
 	 * 		<jk>public</jk> Map <jf>p1</jf>;
 	 * 	}
 	 * </p>
@@ -223,7 +223,7 @@ public @interface BeanProperty {
 	 * <p class='bcode w800'>
 	 * 	<jk>public class</jk> MyBean {
 	 *
-	 * 		<ja>@BeanProperty</ja>(type=HashMap.<jk>class</jk>, params={String.<jk>class</jk>,Integer.<jk>class</jk>})
+	 * 		<ja>@Beanp</ja>(type=HashMap.<jk>class</jk>, params={String.<jk>class</jk>,Integer.<jk>class</jk>})
 	 * 		<jk>private</jk> Map <jf>p1</jf>;
 	 *
 	 * 		<jk>public</jk> Map getP1() {
@@ -251,7 +251,7 @@ public @interface BeanProperty {
 	 * 	<jk>public class</jk> MyClass {
 	 *
 	 * 		<jc>// Only render 'f1' when serializing this bean property.</jc>
-	 * 		<ja>@BeanProperty</ja>(properties=<js>"f1"</js>)
+	 * 		<ja>@Beanp</ja>(bpi=<js>"f1"</js>)
 	 * 		<jk>public</jk> MyChildClass x1 = <jk>new</jk> MyChildClass();
 	 * 	}
 	 *
@@ -271,7 +271,7 @@ public @interface BeanProperty {
 	 * <p class='bcode w800'>
 	 * 	<jk>public class</jk> MyBean {
 	 *
-	 * 		<ja>@BeanProperty</ja>(properties=<js>"f1"</js>)
+	 * 		<ja>@Beanp</ja>(bpi=<js>"f1"</js>)
 	 * 		<jk>private</jk> MyChildClass <jf>x1</jf>;
 	 *
 	 * 		<jk>public</jk> MyChildClass getX1() {
@@ -280,7 +280,7 @@ public @interface BeanProperty {
 	 * 	}
 	 * </p>
 	 */
-	String properties() default "";
+	String bpi() default "";
 
 	/**
 	 * Bean dictionary.
@@ -295,7 +295,7 @@ public @interface BeanProperty {
 	 * <p>
 	 * This annotation can also be used on private fields of a property.
 	 */
-	Class<?>[] beanDictionary() default {};
+	Class<?>[] dictionary() default {};
 
 	/**
 	 * Specifies a String format for converting the bean property value to a formatted string.
@@ -309,7 +309,7 @@ public @interface BeanProperty {
 	 *
 	 * <h5 class='section'>Example:</h5>
 	 * <p class='bcode w800'>
-	 * 	<ja>@BeanProperty</ja>(format=<js>"$%.2f"</js>)
+	 * 	<ja>@Beanp</ja>(format=<js>"$%.2f"</js>)
 	 * 	<jk>public float</jk> <jf>price</jf>;
 	 * </p>
 	 *
@@ -320,7 +320,7 @@ public @interface BeanProperty {
 	 * <p class='bcode w800'>
 	 * 	<jk>public class</jk> MyBean {
 	 *
-	 * 		<ja>@BeanProperty</ja>(format=<js>"$%.2f"</js>)
+	 * 		<ja>@Beanp</ja>(format=<js>"$%.2f"</js>)
 	 * 		<jk>private float</jk> <jf>price</jf>;
 	 *
 	 * 		<jk>public float</jk> gePrice() {
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Name.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Name.java
index 5e1c411..2f24186 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Name.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Name.java
@@ -23,7 +23,7 @@ import java.lang.annotation.*;
  * <p>
  * Can be used in the following locations:
  * <ul>
- * 	<li>In place of <code><ja>@BeanProperty</ja>(name=<js>"foo"</js>)</code> when just the name is specified.
+ * 	<li>In place of <code><ja>@Beanp</ja>(name=<js>"foo"</js>)</code> when just the name is specified.
  * 	<li>On constructor and method arguments when the parameter names are not in the compiled bytecode.
  * </ul>
  *
@@ -33,13 +33,13 @@ import java.lang.annotation.*;
  * 	// The field name can be anything.</jc>
  * 	<jk>public class</jk> MyBean {
  *
- * 		<jc>// Same as @BeanProperty(properties="bar")</jc>
+ * 		<jc>// Same as @Beanp(bpi="bar")</jc>
  * 		<jk>public</jk> MyBean(@Name("bar") <jk>int</jk> foo) {}
  *
- * 		<ja>@Name</ja>(<js>"bar"</js>) <jc>// Same as @BeanProperty(name="bar")</jc>
+ * 		<ja>@Name</ja>(<js>"bar"</js>) <jc>// Same as @Beanp(name="bar")</jc>
  * 		<jk>public int</jk> foo;
  *
- * 		<ja>@Name</ja>(<js>"*"</js>) <jc>// Same as @BeanProperty(name="*")</jc>
+ * 		<ja>@Name</ja>(<js>"*"</js>) <jc>// Same as @Beanp(name="*")</jc>
  * 		<jk>public</jk> Map&lt;String,Object&gt; extraStuff = <jk>new</jk> LinkedHashMap&lt;String,Object&gt;();
  * 	}
  * </p>
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Header.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Header.java
index 5523b3b..b2cf142 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Header.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/annotation/Header.java
@@ -173,7 +173,7 @@ public @interface Header {
 	 *
 	 * 		<jc>// Equivalent to @Header("Foo")</jc>
 	 * 		<ja>@Header</ja>
-	 * 		<ja>@BeanProperty</ja>(<js>"Foo"</js>)
+	 * 		<ja>@@Beanp</ja>(<js>"Foo"</js>)
 	 * 		String getFoo();
 	 * 	}
 	 * 		</p>
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java
index 9621926..f39be54 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java
@@ -277,7 +277,7 @@ public abstract class ParserSession extends BeanSession {
 	protected final ClassMeta<?> getClassMeta(String typeName, BeanPropertyMeta pMeta, ClassMeta<?> eType) {
 		BeanRegistry br = null;
 
-		// Resolve via @BeanProperty(beanDictionary={})
+		// Resolve via @@Beanp(dictionary={})
 		if (pMeta != null) {
 			br = pMeta.getBeanRegistry();
 			if (br != null && br.hasName(typeName))
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transforms/StringFormatSwap.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transforms/StringFormatSwap.java
index 87ac7ab..93dc62a 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transforms/StringFormatSwap.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transforms/StringFormatSwap.java
@@ -17,7 +17,7 @@ import org.apache.juneau.annotation.*;
 import org.apache.juneau.transform.*;
 
 /**
- * Built-in POJO swap implementation class for the {@link BeanProperty#format() @BeanProperty(format)} annotation.
+ * Built-in POJO swap implementation class for the {@link Beanp#format() @Beanp(format)} annotation.
  */
 public class StringFormatSwap extends StringSwap<Object> {
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/annotation/Xml.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/annotation/Xml.java
index 50f01c2..e2610f9 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/annotation/Xml.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/annotation/Xml.java
@@ -89,7 +89,7 @@ public @interface Xml {
 	 *
 	 * 		<jc>// Normally, bean URL properties would be rendered as XML attributes on the bean element.</jc>
 	 * 		<jc>// Override so that it's rendered as an &lt;href&gt;http://foo&lt;/href&gt; child element instead.</jc>
-	 * 		<ja>@BeanProperty</ja>(uri=<jk>true</jk>)
+	 * 		<ja>@@Beanp</ja>(uri=<jk>true</jk>)
 	 * 		<ja>@Xml</ja>(format=XmlFormat.<jsf>ELEMENT</jsf>}
 	 * 		<jk>public</jk> URL <jf>href</jf> = <jk>new</jk> URL(<js>"http://foo"</js>);
 	 *
diff --git a/juneau-doc/docs/ReleaseNotes/5.0.0.07.html b/juneau-doc/docs/ReleaseNotes/5.0.0.07.html
index 6a82ac3..2da379c 100644
--- a/juneau-doc/docs/ReleaseNotes/5.0.0.07.html
+++ b/juneau-doc/docs/ReleaseNotes/5.0.0.07.html
@@ -73,7 +73,7 @@
 		Enhancements to {@link oaj.BeanContext}:
 		<ul>
 			<li>
-				Ability to mark bean properties as hidden using <c>@BeanProperty(hidden)</c> so that they don't get serialized.
+				Ability to mark bean properties as hidden using <dc>@BeanProperty(hidden)</dc> so that they don't get serialized.
 			</li>
 			<li>
 				Simplified <c>ClassType</c> {@link oaj.ClassMeta} API.<br>
@@ -94,7 +94,7 @@
 				Used by RDF/XML serializer to construct <c>rdf:resource</c> attributes.
 			</li>
 			<li>
-				New {@link oaj.annotation.BeanProperty#properties() @BeanProperty(properties)} annotation.
+				New <dc>BeanProperty.properties()</dc> annotation.
 				Used for limiting properties on child elements.
 			</li>	
 		</ul>
diff --git a/juneau-doc/docs/ReleaseNotes/5.0.0.12.html b/juneau-doc/docs/ReleaseNotes/5.0.0.12.html
index 8a81025..63357bf 100644
--- a/juneau-doc/docs/ReleaseNotes/5.0.0.12.html
+++ b/juneau-doc/docs/ReleaseNotes/5.0.0.12.html
@@ -21,7 +21,7 @@
 <h5 class='topic w800'>Core API changes</h5>
 <ul class='spaced-list'>
 	<li>
-		Relaxed method naming conventions when using {@link oaj.annotation.BeanProperty @BeanProperty} annotation.<br>
+		Relaxed method naming conventions when using <dc>@BeanProperty</dc> annotation.<br>
 		Methods with zero parameters are interpreted as getters, and methods with one parameter are interpreted as setters.<br>
 		Eliminated the <c>BeanProperty.method</c> annotation, since it's now unnecessary.
 			</li>
diff --git a/juneau-doc/docs/ReleaseNotes/5.1.0.03.html b/juneau-doc/docs/ReleaseNotes/5.1.0.03.html
index 8b9d01e..35622e6 100644
--- a/juneau-doc/docs/ReleaseNotes/5.1.0.03.html
+++ b/juneau-doc/docs/ReleaseNotes/5.1.0.03.html
@@ -30,14 +30,14 @@
 		</ul>
 		Removed <c>BeanContext.<jsf>INCLUDE_BEAN_FIELD_PROPERTIES</jsf></c> and <c>BeanContext.<jsf>INCLUDE_BEAN_METHOD_PROPERTIES</jsf></c> properties, since ignoring fields and methods
 		can be accomplished by setting the appropriate properties above to {@link oaj.Visibility#NONE NONE}.
-		Also, the {@link oaj.annotation.BeanProperty @BeanProperty} annotation can now be used on non-public fields/getters/setters to override
+		Also, the <dc>@BeanProperty</dc> annotation can now be used on non-public fields/getters/setters to override
 		the default behavior defined by the <c>VISIBILITY</c> properties identified above.  This is a convenient way of identifying protected or
 		private fields or methods as bean properties.  Previously, you could only identify public fields/getters/setters using this annotation.
 	</li>
 	<li>New {@link oaj.BeanContext#BEAN_useJavaBeanIntrospector} property that lets Juno use the Java bean <c>Introspector</c>
 		class to determine bean properties.  In the previous release, the method for determining bean properties was a mixture of Juno-based and Introspector-based.
 		Now it's either pure Juno-based or pure Introspector-based.  The result is considerably cleaner code and consistent behavior.
-	<li>New {@link oaj.annotation.BeanIgnore @BeanIgnore} annotation.  Replaces the previous <c><ja>@BeanProperty</ja>(hidden=<jk>true</jk>)</c> annotation
+	<li>New {@link oaj.annotation.BeanIgnore @BeanIgnore} annotation.  Replaces the previous <dc>@BeanProperty(hidden=true)</dc> annotation
 		for ignoring bean properties.  Can also be used on classes that look like beans so that they're not treated as beans.
 	<li>Support for parsing into non-static member classes.  This applies to all parsers.
 	<li>New {@link oaj.json.annotation.Json#wrapperAttr() @Json(wrapperAttr)}	annotation that automatically wraps beans and objects in a wrapper
diff --git a/juneau-doc/docs/ReleaseNotes/6.0.0.html b/juneau-doc/docs/ReleaseNotes/6.0.0.html
index 1353380..bc8b9cc 100644
--- a/juneau-doc/docs/ReleaseNotes/6.0.0.html
+++ b/juneau-doc/docs/ReleaseNotes/6.0.0.html
@@ -56,7 +56,7 @@
 			<li>{@link oaj.BeanContext#BEAN_beanDictionary} - List of bean classes that make up the bean dictionary for lookup
 				during parsing. 
 			<li>{@link oaj.BeanContext#BEAN_beanTypePropertyName} - The overridable type property name.  Default is <js>"_type"</js>.
-			<li>{@link oaj.annotation.BeanProperty#beanDictionary() @BeanProperty(beanDictionary)} - Define a type dictionary
+			<li><dc>@BeanProperty(beanDictionary)</dc> - Define a type dictionary
 				for a particular bean property value.  This overrides the value specified using {@link oaj.BeanContext#BEAN_beanDictionary}.
 			<li><dc>SerializerContext.SERIALIZER_addBeanTypeProperties</dc> - Controls whether type properties are serialized.
 		</ul>
diff --git a/juneau-doc/docs/ReleaseNotes/6.1.0.html b/juneau-doc/docs/ReleaseNotes/6.1.0.html
index 18979f9..45f587c 100644
--- a/juneau-doc/docs/ReleaseNotes/6.1.0.html
+++ b/juneau-doc/docs/ReleaseNotes/6.1.0.html
@@ -175,7 +175,7 @@
 				of classes not annotated with {@link oaj.annotation.Bean#typeName() @Bean(typeName)}.
 			<li>New {@link oaj.annotation.Bean#beanDictionary() @Bean(beanDictionary)} annotation.
 		</ul>
-	<li>Removed restriction on getters and setters to be prefixed with "getX/setX/isX" if a {@link oaj.annotation.BeanProperty#name() @BeanProperty(name)} annotation is used.
+	<li>Removed restriction on getters and setters to be prefixed with "getX/setX/isX" if a <dc>@BeanProperty(name)</dc> annotation is used.
 	<li>Improvements to ATOM DTO:
 		<ul>
 			<li>New {@link oaj.dto.atom.AtomBuilder} class.
diff --git a/juneau-doc/docs/ReleaseNotes/6.3.0.html b/juneau-doc/docs/ReleaseNotes/6.3.0.html
index 367ca36..527694f 100644
--- a/juneau-doc/docs/ReleaseNotes/6.3.0.html
+++ b/juneau-doc/docs/ReleaseNotes/6.3.0.html
@@ -25,7 +25,7 @@
 	<li>
 		New package:  {@link oaj.http}.
 	<li>
-		Support for dynamic beans.  See {@link oaj.annotation.BeanProperty#name() @BeanProperty(name)}.
+		Support for dynamic beans.  See <dc>@BeanProperty(name)</dc>.
 	<li>
 		New doc: <dc>2.8 - Virtual Beans</dc>
 	<li>
@@ -55,7 +55,7 @@
 			<li><dc>ConfigFile.getObjectWithDefault(String,Parser,Object,Class)</dc> 
 		</ul>
 	<li>New ability to interact with config file sections with proxy interfaces with new method <dc>ConfigFile.getSectionAsInterface(String,Class)</dc>.
-	<li>{@link oaj.annotation.BeanProperty @BeanProperty} annotation can now be applied to getters
+	<li><dc>@BeanProperty</dc> annotation can now be applied to getters
 		and setters defined on interfaces.
 	<li>New methods on {@link oaj.serializer.SerializerSession} and {@link oaj.parser.ParserSession}
 		for retrieving context and runtime-override properties:
@@ -113,7 +113,7 @@
 				<li><dc>SerializerContext.SERIALIZER_uriResolution</dc>
 				<li><dc>SerializerContext.SERIALIZER_maxIndent</dc>
 		</ul>
-	<li>New annotation property: {@link oaj.annotation.BeanProperty#value() @BeanProperty(value)}.
+	<li>New annotation property: <dc>@BeanProperty(value)</dc>.
 		<br>The following two annotations are considered equivalent:
 		<p class='bcode w800'>
 	<ja>@BeanProperty</ja>(name=<js>"foo"</js>)
@@ -171,7 +171,7 @@
 			<li>{@link oaj.BeanContext#BEAN_includeProperties BEAN_includeProperties}
 			<li>{@link oaj.BeanContext#BEAN_excludeProperties BEAN_excludeProperties}
 		</ul>
-	<li>New annotation property: {@link oaj.annotation.BeanProperty#format() @BeanProperty(format)}.
+	<li>New annotation property: <dc>@BeanProperty(format)</dc>.
 </ul>
 
 <h5 class='topic w800'>org.apache.juneau.rest</h5>
diff --git a/juneau-doc/docs/ReleaseNotes/6.4.0.html b/juneau-doc/docs/ReleaseNotes/6.4.0.html
index c13ae9a..0c830e9 100644
--- a/juneau-doc/docs/ReleaseNotes/6.4.0.html
+++ b/juneau-doc/docs/ReleaseNotes/6.4.0.html
@@ -203,7 +203,7 @@
 		Improvements to swap support.
 		<ul>
 			<li>New {@link oaj.annotation.Swap @Swap} annotation.
-				<br>Replaces the <c>@Pojo</c> and <c>@BeanProperty(swap)</c> annotations.
+				<br>Replaces the <c>@Pojo</c> and <dc>@BeanProperty(swap)</dc> annotations.
 			<li>Support for per-media-type swaps.
 				<br>Programmatic example:
 				<p class='bcode w800'>
diff --git a/juneau-doc/docs/ReleaseNotes/7.2.0.html b/juneau-doc/docs/ReleaseNotes/7.2.0.html
index 89ed2a7..fdebc44 100644
--- a/juneau-doc/docs/ReleaseNotes/7.2.0.html
+++ b/juneau-doc/docs/ReleaseNotes/7.2.0.html
@@ -84,7 +84,7 @@
 	<li>
 		Fixed bug where parsers could report the wrong line number when an error occurred.
 	<li>
-		A runtime exception is now thrown if you define a <c><ja>@BeanProperty</ja>(name)</c> but forget to
+		A runtime exception is now thrown if you define a <dc>@BeanProperty(name)</dc> but forget to
 		add it to your <c><ja>@Bean</ja>(properties)</c> annotation.
 	<li>
 		<c><ja>@Html</ja>(asXml)</c> and <c><ja>@Html</ja>(asPlainText)</c> replaced with
diff --git a/juneau-doc/docs/ReleaseNotes/7.2.1.html b/juneau-doc/docs/ReleaseNotes/7.2.1.html
index bd1bdcf..6db4c18 100644
--- a/juneau-doc/docs/ReleaseNotes/7.2.1.html
+++ b/juneau-doc/docs/ReleaseNotes/7.2.1.html
@@ -27,7 +27,7 @@
 	<li>
 		Annotations typically used on bean properties (getters/setters/public fields) can now be used on private fields.
 		This is inline with behavior on JPA-annotated beans.
-		These include:  <ja>@Swap</ja>, <ja>@Html</ja>, <ja>@Xml</ja>, <ja>@BeanProperty</ja>.
+		These include:  <ja>@Swap</ja>, <ja>@Html</ja>, <ja>@Xml</ja>, <jd>@BeanProperty</jd>.
 </ul>
 
 <h5 class='topic w800'>juneau-rest-server</h5>
diff --git a/juneau-doc/docs/ReleaseNotes/8.1.2.html b/juneau-doc/docs/ReleaseNotes/8.1.2.html
index 02cb465..8d9e77b 100644
--- a/juneau-doc/docs/ReleaseNotes/8.1.2.html
+++ b/juneau-doc/docs/ReleaseNotes/8.1.2.html
@@ -29,6 +29,8 @@
 		</ul>
 	<li>
 		{@link oaj.marshall.CharMarshall} and {@link oaj.marshall.StreamMarshall} now have public constructors.
+	<li>
+		{@link oaj.annotation.Beanp @Beanp} replaces {@link oaj.annotation.BeanProperty @BeanProperty} with shorter syntax.
 </ul>
 
 <h5 class='topic w800'>juneau-rest-server</h5>
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/06.SwapAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/06.SwapAnnotation.html
index d1c8d4e..c824367 100644
--- a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/06.SwapAnnotation.html
+++ b/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/06.SwapAnnotation.html
@@ -74,7 +74,7 @@
 		<jk>private</jk> MyPojo <jf>myPojo</jf>;
 	
 		<jc>// Swap applied to bean property.	
-		<ja>@BeanProperty</ja>(swap=MyPojoSwap.<jk>class</jk>)
+		<ja>@Beanp</ja>(swap=MyPojoSwap.<jk>class</jk>)
 		<jk>public</jk> MyPojo getMyPojo() {
 			<jk>return</jk> <jf>myPojo</jf>;
 		}
@@ -89,7 +89,7 @@
 <p class='bpcode w800'>
 	<jk>public class</jk> MyBean {
 
-		<ja>@BeanProperty</ja>(swap=MyPojoSwap.<jk>class</jk>)
+		<ja>@Beanp</ja>(swap=MyPojoSwap.<jk>class</jk>)
 		<jk>private</jk> MyPojo <jf>myPojo</jf>;
 	
 		<jk>public</jk> MyPojo getMyPojo() {
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/10.BeanPropertyAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/10.BeanpAnnotation.html
similarity index 82%
rename from juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/10.BeanPropertyAnnotation.html
rename to juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/10.BeanpAnnotation.html
index c20764e..22805fe 100644
--- a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/10.BeanPropertyAnnotation.html
+++ b/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/10.BeanpAnnotation.html
@@ -13,19 +13,19 @@
  ***************************************************************************************************************************/
  -->
 
-@BeanProperty Annotation
+{updated} @Beanp Annotation
 
 <p>
-	The {@link oaj.annotation.BeanProperty @BeanProperty} annotation is used to tailor how 
+	The {@link oaj.annotation.Beanp @Beanp} annotation is used to tailor how 
 	individual bean properties are interpreted by the framework.
 </p>
 <p>
-	The {@link oaj.annotation.BeanProperty#name() @BeanProperty(name)} annotation
+	The {@link oaj.annotation.Beanp#name() @Beanp(name)} annotation
 	is used to override the name of the bean property.
 </p>
 <p class='bpcode w800'>
 	<jk>public class</jk> MyBean {
-		<ja>@BeanProperty</ja>(name=<js>"Bar"</js>)
+		<ja>@Beanp</ja>(name=<js>"Bar"</js>)
 		<jk>public</jk> String getFoo() {...}
 	}
 </p>
@@ -45,7 +45,7 @@
 </p>
 <p class='bpcode w800'>
 	<jk>public class</jk> MyBean {
-		<ja>@BeanProperty</ja>
+		<ja>@Beanp</ja>
 		<jk>protected</jk> String getFoo() {...}
 	}
 </p>
@@ -65,7 +65,7 @@
 	<jc>// The field name can be anything.</jc>
 	<jk>public class</jk> BeanWithDynaField {
 
-		<ja>@BeanProperty</ja>(name=<js>"*"</js>)
+		<ja>@Beanp</ja>(name=<js>"*"</js>)
 		<jk>public</jk> Map&lt;String,Object&gt; extraStuff = <jk>new</jk> LinkedHashMap&lt;String,Object&gt;();
 	}
 
@@ -75,12 +75,12 @@
 	<jc>// Setter must take in two arguments, a String and Object.</jc>
 	<jk>public class</jk> BeanWithDynaMethods {
 
-		<ja>@BeanProperty</ja>(name=<js>"*"</js>)
+		<ja>@Beanp</ja>(name=<js>"*"</js>)
 		<jk>public</jk> Map&lt;String,Object&gt; getMyExtraStuff() {
 			...
 		}
 
-		<ja>@BeanProperty</ja>(name=<js>"*"</js>)
+		<ja>@Beanp</ja>(name=<js>"*"</js>)
 		<jk>public void</jk> setAnExtraField(String name, Object value) {
 			...
 		}
@@ -90,7 +90,7 @@
 	<jc>// Properties will be added through the getter.</jc>
 	<jk>public class</jk> BeanWithDynaGetterOnly {
 
-		<ja>@BeanProperty</ja>(name=<js>"*"</js>)
+		<ja>@Beanp</ja>(name=<js>"*"</js>)
 		<jk>public</jk> Map&lt;String,Object&gt; getMyExtraStuff() {
 			...
 		}
@@ -104,7 +104,7 @@
 	<jc>// A serializable type other than Object.</jc>
 	<jk>public class</jk> BeanWithDynaFieldWithListValues {
 
-		<ja>@BeanProperty</ja>(name=<js>"*"</js>)
+		<ja>@Beanp</ja>(name=<js>"*"</js>)
 		<jk>public</jk> Map&lt;String,List&lt;String&gt;&gt; getMyExtraStuff() {
 			...
 		}
@@ -113,7 +113,7 @@
 	<jc>// A swapped value.</jc>
 	<jk>public class</jk> BeanWithDynaFieldWithSwappedValues {
 
-		<ja>@BeanProperty</ja>(name=<js>"*"</js>, swap=TemporalCalendarSwap.IsoOffsetDateTime.<jk>class</jk>)
+		<ja>@Beanp</ja>(name=<js>"*"</js>, swap=TemporalCalendarSwap.IsoOffsetDateTime.<jk>class</jk>)
 		<jk>public</jk> Map&lt;String,Calendar&gt; getMyExtraStuff() {
 			...
 		}
@@ -125,20 +125,20 @@
 	that don't fit into existing properties.
 </div>
 <p>
-	The {@link oaj.annotation.BeanProperty#value() @BeanProperty(value)} annotation
-	is a synonym for {@link oaj.annotation.BeanProperty#name() @BeanProperty(name)}.
+	The {@link oaj.annotation.Beanp#value() @Beanp(value)} annotation
+	is a synonym for {@link oaj.annotation.Beanp#name() @Beanp(name)}.
 	Use it in cases where you're only specifying a name so that you can shorten your annotation.
 </p>
 <p>
 	The following annotations are equivalent:
 </p>
 <p class='bpcode w800'>
-	<ja>@BeanProperty</ja>(name=<js>"foo"</js>)
+	<ja>@Beanp</ja>(name=<js>"foo"</js>)
 
-	<ja>@BeanProperty</ja>(<js>"foo"</js>)
+	<ja>@Beanp</ja>(<js>"foo"</js>)
 </p>
 <p>
-	The {@link oaj.annotation.BeanProperty#type() @BeanProperty(type)} annotation
+	The {@link oaj.annotation.Beanp#type() @Beanp(type)} annotation
 	is used to identify a specialized class type for a generalized property.
 	Normally the type is inferred through reflection of the field type or getter return type.
 	However, you'll want to specify this value if you're parsing beans where the bean property class 
@@ -152,12 +152,12 @@
 	<jk>public class</jk> MyBean {
 
 		<jc>// Identify concrete type as a HashMap.</jc>
-		<ja>@BeanProperty</ja>(type=HashMap.<jk>class</jk>)
+		<ja>@Beanp</ja>(type=HashMap.<jk>class</jk>)
 		<jk>public</jk> Map <jf>p1</jf>;
 	}
 </p>
 <p>
-	The {@link oaj.annotation.BeanProperty#params() @BeanProperty(params)} annotation
+	The {@link oaj.annotation.BeanProperty#params() @Beanp(params)} annotation
 	is for bean properties of type map or collection.
 	It's used to identify the class types of the contents of the bean property object when
 	the general parameter types are interfaces or abstract classes.
@@ -166,12 +166,12 @@
 	<jk>public class</jk> MyBean {
 
 		<jc>// This is a HashMap&lt;String,Integer&gt;.</jc>
-		<ja>@BeanProperty</ja>(type=HashMap.<jk>class</jk>, params={String.<jk>class</jk>,Integer.<jk>class</jk>})
+		<ja>@Beanp</ja>(type=HashMap.<jk>class</jk>, params={String.<jk>class</jk>,Integer.<jk>class</jk>})
 		<jk>public</jk> Map <jf>p1</jf>;
 	}
 </p>
 <p>
-	The {@link oaj.annotation.BeanProperty#properties() @BeanProperty(properties)} 
+	The {@link oaj.annotation.Beanp#bpi() @Beanp(bpi)} 
 	annotation is used to limit which child properties are rendered by the serializers.
 	It can be used on any of the following bean property types:
 </p>
@@ -185,7 +185,7 @@
 	<jk>public class</jk> MyClass {
 
 		<jc>// Only render 'f1' when serializing this bean property.</jc>
-		<ja>@BeanProperty</ja>(properties={<js>"f1"</js>})
+		<ja>@Beanp</ja>(bpi={<js>"f1"</js>})
 		<jk>public</jk> MyChildClass x1 = <jk>new</jk> MyChildClass();
 	}
 
@@ -198,11 +198,11 @@
 	String json = JsonSerializer.<jsf>DEFAULT</jsf>.serialize(<jk>new</jk> MyClass());
 </p>
 <p>
-	The {@link oaj.annotation.BeanProperty#format() @BeanProperty(format)} 
+	The {@link oaj.annotation.Beanp#format() @Beanp(format)} 
 	annotation specifies a String format for converting a bean property value to a formatted string.
 </p>
 <p class='bpcode w800'>
 	<jc>// Serialize a float as a string with 2 decimal places.</jc>
-	<ja>@BeanProperty</ja>(format=<js>"$%.2f"</js>)
+	<ja>@Beanp</ja>(format=<js>"$%.2f"</js>)
 	<jk>public float</jk> <jf>price</jf>;
 </p>
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/15.PojoBuilders.html b/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/15.PojoBuilders.html
index 82004b0..65f84e4 100644
--- a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/15.PojoBuilders.html
+++ b/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/15.PojoBuilders.html
@@ -60,13 +60,13 @@ POJO Builders
 			
 			<jc>// Bean property setters.</jc>
 			
-			<ja>@BeanProperty</ja>
+			<ja>@Beanp</ja>
 			<jk>public</jk> MyBeanBuilder foo(String foo) {
 				<jk>this</jk>.<jf>foo</jf> = foo;
 				<jk>return this</jk>;
 			}
 			
-			<ja>@BeanProperty</ja>
+			<ja>@Beanp</ja>
 			<jk>public</jk> MyBeanBuilder bar(<jk>int</jk> bar) {
 				<jk>this</jk>.<jf>bar</jf> = bar;
 				<jk>return this</jk>;
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/16.BeanFilters.html b/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/16.BeanFilters.html
index fa63d58..ad35363 100644
--- a/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/16.BeanFilters.html
+++ b/juneau-doc/docs/Topics/02.juneau-marshall/11.Transforms/16.BeanFilters.html
@@ -21,7 +21,7 @@ BeanFilter Class
 </p>
 <p>
 	In practice, it's usually simpler to use the {@link oaj.annotation.Bean @Bean} and 
-	{@link oaj.annotation.BeanProperty @BeanProperty} annotations on your bean classes.
+	{@link oaj.annotation.Beanp @Beanp} annotations on your bean classes.
 	However, bean filters make it possible to accomplish the same when you can't add annotations
 	to existing code.
 </p>
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/12.BeanDictionaries.html b/juneau-doc/docs/Topics/02.juneau-marshall/12.BeanDictionaries.html
index 65e33c5..1f6afd2 100644
--- a/juneau-doc/docs/Topics/02.juneau-marshall/12.BeanDictionaries.html
+++ b/juneau-doc/docs/Topics/02.juneau-marshall/12.BeanDictionaries.html
@@ -43,7 +43,7 @@ Bean Names and Dictionaries
  	<ja>@Bean</ja>(typeName=<js>"foo"</js>)
  	<jk>public class</jk> Foo {
  		<jc>// A bean property where the object types cannot be inferred since it's an Object[].</jc>
- 		<ja>@BeanProperty</ja>(beanDictionary={Bar.<jk>class</jk>,Baz.<jk>class</jk>})
+ 		<ja>@Beanp</ja>(dictionary={Bar.<jk>class</jk>,Baz.<jk>class</jk>})
  		<jk>public</jk> Object[] x = <jk>new</jk> Object[]{<jk>new</jk> Bar(), <jk>new</jk> Baz()};
  	}
  		
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/18.JacksonComparison.html b/juneau-doc/docs/Topics/02.juneau-marshall/18.JacksonComparison.html
index dcb3873..587ba6a 100644
--- a/juneau-doc/docs/Topics/02.juneau-marshall/18.JacksonComparison.html
+++ b/juneau-doc/docs/Topics/02.juneau-marshall/18.JacksonComparison.html
@@ -33,7 +33,7 @@ Comparison with Jackson
 			<br><ja>@JsonSetter</ja>
 		</td>
 		<td>
-			{@link oaj.annotation.BeanProperty @BeanProperty}
+			{@link oaj.annotation.Beanp @Beanp}
 		</td>
 	</tr>
 	<tr>
@@ -42,7 +42,7 @@ Comparison with Jackson
 			<br><ja>@JsonAnySetter</ja>
 		</td>
 		<td>
-			{@link oaj.annotation.BeanProperty#name() @BeanProperty(name="*")}
+			{@link oaj.annotation.Beanp#name() @Beanp(name="*")}
 		</td>
 	</tr>
 	<tr>
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/04.BeanTypeNameAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/04.BeanTypeNameAnnotation.html
index b91c337..806663c 100644
--- a/juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/04.BeanTypeNameAnnotation.html
+++ b/juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/04.BeanTypeNameAnnotation.html
@@ -120,7 +120,7 @@
 <p>
 	Beans with type names are often used in conjunction with the 
 	{@link oaj.annotation.Bean#beanDictionary() @Bean(beanDictionary)} and 
-	{@link oaj.annotation.BeanProperty#beanDictionary() @BeanProperty(beanDictionary)} 
+	{@link oaj.annotation.Beanp#dictionary() @Beanp(dictionary)} 
 	annotations so that the beans can be resolved at parse time.  
 	These annotations are not necessary during serialization, but are needed during parsing in order to 
 	resolve the bean types.
@@ -473,7 +473,7 @@
 		<td class='code'>
 	<ja>@Bean</ja>(typeName=<js>"  \b\f\n\t\r  "</js>)
 	<jk>class</jk> BeanWithNamesWithSpecialCharacters {
-		<ja>@BeanProperty</ja>(name=<js>"  \b\f\n\t\r  "</js>)
+		<ja>@Beanp</ja>(name=<js>"  \b\f\n\t\r  "</js>)
 		<jk>public</jk> String a = <js>"  \b\f\n\t\r  "</js>;
 	}
 		</td>
diff --git a/juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/06.XmlFormatAnnotation.html b/juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/06.XmlFormatAnnotation.html
index ae22b1c..fcc0b27 100644
--- a/juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/06.XmlFormatAnnotation.html
+++ b/juneau-doc/docs/Topics/02.juneau-marshall/21.XmlDetails/06.XmlFormatAnnotation.html
@@ -326,7 +326,7 @@
 		<td class='code'>
 	<jk>class</jk> MyBean {
 		<ja>@Xml</ja>(format=XmlFormat.<jsf>MIXED</jsf>)
-		<ja>@BeanProperty</ja>(beanDictionary={MyBeanX.<jk>class</jk>, MyBeanY.<jk>class</jk>})	
+		<ja>@Beanp</ja>(dictionary={MyBeanX.<jk>class</jk>, MyBeanY.<jk>class</jk>})	
 		<jk>public</jk> Object[] a;
 	}
 	
diff --git a/juneau-doc/docs/Topics/03.juneau-marshall-rdf/01.RdfDetails/05.UriProperties.html b/juneau-doc/docs/Topics/03.juneau-marshall-rdf/01.RdfDetails/05.UriProperties.html
index 69986e6..beceadc 100644
--- a/juneau-doc/docs/Topics/03.juneau-marshall-rdf/01.RdfDetails/05.UriProperties.html
+++ b/juneau-doc/docs/Topics/03.juneau-marshall-rdf/01.RdfDetails/05.UriProperties.html
@@ -22,7 +22,7 @@ URI Properties
 </p>
 <p>
 	In the following code, we're adding 2 new properties.
-	The first property is annotated with <ja>@BeanProperty</ja> to identify that this property is the resource 
+	The first property is annotated with <ja>@Beanp</ja> to identify that this property is the resource 
 	identifier for this bean.
 	The second un-annotated property is interpreted as a reference to another resource.
 </p>
diff --git a/juneau-doc/src/main/javadoc/resources/fragments/toc.html b/juneau-doc/src/main/javadoc/resources/fragments/toc.html
index 6c6ee45..d183b2f 100644
--- a/juneau-doc/src/main/javadoc/resources/fragments/toc.html
+++ b/juneau-doc/src/main/javadoc/resources/fragments/toc.html
@@ -46,7 +46,7 @@
 			<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.Transforms.TemplatedSwaps'>Templated Swaps</a></p>
 			<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.Transforms.SurrogateClasses'>Surrogate Classes</a></p>
 			<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.Transforms.BeanAnnotation'>@Bean Annotation</a></p>
-			<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.Transforms.BeanPropertyAnnotation'>@BeanProperty Annotation</a></p>
+			<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.Transforms.BeanpAnnotation'>@Beanp Annotation</a></p>
 			<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.Transforms.BeanConstructorAnnotation'>@BeanConstructor Annotation</a></p>
 			<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.Transforms.BeanIgnoreAnnotation'>@BeanIgnore Annotation</a></p>
 			<li><p class=''><a class='doclink' href='{OVERVIEW_URL}#juneau-marshall.Transforms.NamePropertyAnnotation'>@NameProperty Annotation</a></p>
diff --git a/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/annotation/RestMethodBpiTest.java b/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/annotation/RestMethodBpiTest.java
index 9f23e92..2488371 100644
--- a/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/annotation/RestMethodBpiTest.java
+++ b/juneau-rest/juneau-rest-server-utest/src/test/java/org/apache/juneau/rest/annotation/RestMethodBpiTest.java
@@ -301,7 +301,7 @@ public class RestMethodBpiTest {
 
 	public static class MyBeanA {
 		public int a;
-		@BeanProperty("_b") public String b;
+		@Beanp("_b") public String b;
 
 		MyBeanA init() {
 			a = 1;
@@ -313,7 +313,7 @@ public class RestMethodBpiTest {
 	@Bean(properties="_b,a")
 	public static class MyBeanB {
 		public int a;
-		@BeanProperty("_b") public String b;
+		@Beanp("_b") public String b;
 
 		MyBeanB init() {
 			a = 1;