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 2016/08/27 21:11:35 UTC

[1/2] incubator-juneau git commit: Split BeanFilters from PojoSwaps in API.

Repository: incubator-juneau
Updated Branches:
  refs/heads/master bea31abd8 -> d87240712


http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripTransformBeansTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripTransformBeansTest.java b/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripTransformBeansTest.java
index 12561cb..eb03b41 100755
--- a/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripTransformBeansTest.java
+++ b/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripTransformBeansTest.java
@@ -41,18 +41,18 @@ public class RoundTripTransformBeansTest extends RoundTripTest {
 	}
 
 	//====================================================================================================
-	// testTransformBeans1
+	// testSwapBeans1
 	//====================================================================================================
 	@Test
-	public void testTransformBeans1() throws Exception {
+	public void testSwapBeans1() throws Exception {
 		Class<?>[] f = {
 			ByteArrayBase64Swap.class,
 			CalendarSwap.ISO8601DTZ.class,
 			DateSwap.ISO8601DTZ.class
 		};
-		s.addTransforms(f);
+		s.addPojoSwaps(f);
 		if (p != null)
-			p.addTransforms(f);
+			p.addPojoSwaps(f);
 		A t = new A().init();
 		t = roundTrip(t, A.class);
 
@@ -161,18 +161,18 @@ public class RoundTripTransformBeansTest extends RoundTripTest {
 
 
 	//====================================================================================================
-	// testTransformBeans2
+	// testSwapBeans2
 	//====================================================================================================
 	@Test
-	public void testTransformBeans2() throws Exception {
+	public void testSwapBeans2() throws Exception {
 		Class<?>[] f = {
 			ByteArrayBase64Swap.class,
 			CalendarSwap.Medium.class,
 			DateSwap.RFC2822DT.class,
 		};
-		s.addTransforms(f);
+		s.addPojoSwaps(f);
 		if (p != null)
-			p.addTransforms(f);
+			p.addPojoSwaps(f);
 		A t = new A().init();
 		t = roundTrip(t, A.class);
 
@@ -258,8 +258,8 @@ public class RoundTripTransformBeansTest extends RoundTripTest {
 		GregorianCalendar gc = new GregorianCalendar();
 		XMLGregorianCalendar c = DatatypeFactory.newInstance().newXMLGregorianCalendar(gc);
 
-		Serializer s = getSerializer().clone().addTransforms(XMLGregorianCalendarSwap.class);
-		Parser p = getParser().clone().addTransforms(XMLGregorianCalendarSwap.class);
+		Serializer s = getSerializer().clone().addPojoSwaps(XMLGregorianCalendarSwap.class);
+		Parser p = getParser().clone().addPojoSwaps(XMLGregorianCalendarSwap.class);
 
 		Object r = s.serialize(c);
 		XMLGregorianCalendar c2 = p.parse(r, XMLGregorianCalendar.class);
@@ -337,10 +337,10 @@ public class RoundTripTransformBeansTest extends RoundTripTest {
 	//====================================================================================================
 	@Test
 	public void testSurrogateTransform() throws Exception {
-		addTransforms(D2.class);
+		addPojoSwaps(D2.class);
 
-		JsonSerializer s = new JsonSerializer.Simple().addTransforms(D2.class);
-		JsonParser p = new JsonParser().addTransforms(D2.class);
+		JsonSerializer s = new JsonSerializer.Simple().addPojoSwaps(D2.class);
+		JsonParser p = new JsonParser().addPojoSwaps(D2.class);
 		Object r;
 		D1 d1 = D1.create();
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/test/java/org/apache/juneau/transforms/BeanFilterTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/test/java/org/apache/juneau/transforms/BeanFilterTest.java b/juneau-core/src/test/java/org/apache/juneau/transforms/BeanFilterTest.java
index ec2da25..18f6a0f 100755
--- a/juneau-core/src/test/java/org/apache/juneau/transforms/BeanFilterTest.java
+++ b/juneau-core/src/test/java/org/apache/juneau/transforms/BeanFilterTest.java
@@ -30,13 +30,13 @@ public class BeanFilterTest {
 		BeanContext bc;
 		BeanMap<A3> bm;
 
-		bc = ContextFactory.create().addTransforms(A1.class).getBeanContext();
+		bc = ContextFactory.create().addBeanFilters(A1.class).getBeanContext();
 		bm = bc.newBeanMap(A3.class);
 		assertEquals("f1", bm.get("f1"));
 		assertNull(bm.get("f2"));
 		assertNull(bm.get("f3"));
 
-		bc = ContextFactory.create().addTransforms(A2.class).getBeanContext();
+		bc = ContextFactory.create().addBeanFilters(A2.class).getBeanContext();
 		bm = bc.newBeanMap(A3.class);
 		assertEquals("f1", bm.get("f1"));
 		assertEquals("f2", bm.get("f2"));
@@ -73,13 +73,13 @@ public class BeanFilterTest {
 		BeanContext bc;
 		BeanMap<Test2> bm;
 
-		bc = ContextFactory.create().addTransforms(B1.class).getBeanContext();
+		bc = ContextFactory.create().addBeanFilters(B1.class).getBeanContext();
 		bm = bc.newBeanMap(Test2.class);
 		assertEquals("f1", bm.get("f1"));
 		assertNull(bm.get("f2"));
 		assertNull(bm.get("f3"));
 
-		bc = ContextFactory.create().addTransforms(B2.class).getBeanContext();
+		bc = ContextFactory.create().addBeanFilters(B2.class).getBeanContext();
 		bm = bc.newBeanMap(Test2.class);
 		assertEquals("f1", bm.get("f1"));
 		assertEquals("f2", bm.get("f2"));

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/test/java/org/apache/juneau/transforms/BeanMapTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/test/java/org/apache/juneau/transforms/BeanMapTest.java b/juneau-core/src/test/java/org/apache/juneau/transforms/BeanMapTest.java
index e3f5942..daa320f 100755
--- a/juneau-core/src/test/java/org/apache/juneau/transforms/BeanMapTest.java
+++ b/juneau-core/src/test/java/org/apache/juneau/transforms/BeanMapTest.java
@@ -26,7 +26,7 @@ public class BeanMapTest {
 	//====================================================================================================
 	@Test
 	public void testFilteredEntry() throws Exception {
-		BeanContext bc = ContextFactory.create().addTransforms(ByteArrayBase64Swap.class).getBeanContext();
+		BeanContext bc = ContextFactory.create().addPojoSwaps(ByteArrayBase64Swap.class).getBeanContext();
 		BeanMap<A> m = bc.forBean(new A());
 
 		assertEquals("AQID", m.get("f1"));
@@ -48,12 +48,12 @@ public class BeanMapTest {
 	//====================================================================================================
 	@Test
 	public void testFilteredEntryWithMultipleMatchingFilters() throws Exception {
-		BeanContext bc = ContextFactory.create().addTransforms(B2Filter.class,B1Filter.class).getBeanContext();
+		BeanContext bc = ContextFactory.create().addPojoSwaps(B2Swap.class,B1Swap.class).getBeanContext();
 		BeanMap<B> bm = bc.forBean(B.create());
 		ObjectMap om = (ObjectMap)bm.get("b1");
 		assertEquals("b2", om.getString("type"));
 
-		bc = ContextFactory.create().addTransforms(B1Filter.class,B2Filter.class).getBeanContext();
+		bc = ContextFactory.create().addPojoSwaps(B1Swap.class,B2Swap.class).getBeanContext();
 		bm = bc.forBean(B.create());
 		om = (ObjectMap)bm.get("b1");
 		assertEquals("b1", om.getString("type"));
@@ -81,14 +81,14 @@ public class BeanMapTest {
 		public String f2;
 	}
 
-	public static class B1Filter extends PojoSwap<B1,ObjectMap> {
+	public static class B1Swap extends PojoSwap<B1,ObjectMap> {
 		@Override /* PojoSwap */
 		public ObjectMap swap(B1 b1) {
 			return new ObjectMap().append("type", "b1").append("f1", b1.f1);
 		}
 	}
 
-	public static class B2Filter extends PojoSwap<B2,ObjectMap> {
+	public static class B2Swap extends PojoSwap<B2,ObjectMap> {
 		@Override /* PojoSwap */
 		public ObjectMap swap(B2 b2) {
 			return new ObjectMap().append("type", "b2").append("f1", b2.f1);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/test/java/org/apache/juneau/transforms/ByteArrayBase64SwapTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/test/java/org/apache/juneau/transforms/ByteArrayBase64SwapTest.java b/juneau-core/src/test/java/org/apache/juneau/transforms/ByteArrayBase64SwapTest.java
index 0e3c90d..49a8815 100755
--- a/juneau-core/src/test/java/org/apache/juneau/transforms/ByteArrayBase64SwapTest.java
+++ b/juneau-core/src/test/java/org/apache/juneau/transforms/ByteArrayBase64SwapTest.java
@@ -31,7 +31,7 @@ public class ByteArrayBase64SwapTest extends RoundTripTest {
 	}
 
 	@Override /* RoundTripTest */
-	public Class<?>[] getTransforms() {
+	public Class<?>[] getPojoSwaps() {
 		return new Class<?>[] {
 			ByteArrayBase64Swap.class
 		};
@@ -42,7 +42,7 @@ public class ByteArrayBase64SwapTest extends RoundTripTest {
 	//====================================================================================================
 	@Test
 	public void testPrimitiveArrays() throws Exception {
-		WriterSerializer s = new JsonSerializer.Simple().addTransforms(ByteArrayBase64Swap.class).setProperty(SERIALIZER_trimNullProperties, false);
+		WriterSerializer s = new JsonSerializer.Simple().addPojoSwaps(ByteArrayBase64Swap.class).setProperty(SERIALIZER_trimNullProperties, false);
 
 		byte[] a1 = {1,2,3};
 		assertEquals("'AQID'", s.serialize(a1));

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/test/java/org/apache/juneau/transforms/CalendarSwapTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/test/java/org/apache/juneau/transforms/CalendarSwapTest.java b/juneau-core/src/test/java/org/apache/juneau/transforms/CalendarSwapTest.java
index 72cf3eb..a0ed56e 100755
--- a/juneau-core/src/test/java/org/apache/juneau/transforms/CalendarSwapTest.java
+++ b/juneau-core/src/test/java/org/apache/juneau/transforms/CalendarSwapTest.java
@@ -141,8 +141,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testDefaultStringJson() throws Exception {
 		Class<?> f = CalendarSwap.ToString.class;
-		WriterSerializer s = new JsonSerializer.Simple().addTransforms(f);
-		ReaderParser p = new JsonParser().addTransforms(f);
+		WriterSerializer s = new JsonSerializer.Simple().addPojoSwaps(f);
+		ReaderParser p = new JsonParser().addPojoSwaps(f);
 		doTest(s, p, true, "'Sun Mar 03 10:11:12 PST 1901'");
 	}
 
@@ -152,8 +152,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testDefaultStringXml() throws Exception {
 		Class<?> f = CalendarSwap.ToString.class;
-		WriterSerializer s = new XmlSerializer.SimpleSq().addTransforms(f);
-		ReaderParser p = new XmlParser().addTransforms(f);
+		WriterSerializer s = new XmlSerializer.SimpleSq().addPojoSwaps(f);
+		ReaderParser p = new XmlParser().addPojoSwaps(f);
 		doTest(s, p, true, "<string>Sun Mar 03 10:11:12 PST 1901</string>");
 	}
 
@@ -163,8 +163,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testDefaultStringHtml() throws Exception {
 		Class<?> f = CalendarSwap.ToString.class;
-		WriterSerializer s = new HtmlSerializer().addTransforms(f);
-		ReaderParser p = new HtmlParser().addTransforms(f);
+		WriterSerializer s = new HtmlSerializer().addPojoSwaps(f);
+		ReaderParser p = new HtmlParser().addPojoSwaps(f);
 		doTest(s, p, true, "<string>Sun Mar 03 10:11:12 PST 1901</string>");
 	}
 
@@ -174,8 +174,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testDefaultStringUon() throws Exception {
 		Class<?> f = CalendarSwap.ToString.class;
-		WriterSerializer s = new UonSerializer.Encoding().addTransforms(f);
-		ReaderParser p = UonParser.DEFAULT_DECODING.clone().addTransforms(f);
+		WriterSerializer s = new UonSerializer.Encoding().addPojoSwaps(f);
+		ReaderParser p = UonParser.DEFAULT_DECODING.clone().addPojoSwaps(f);
 		doTest(s, p, true, "Sun+Mar+03+10:11:12+PST+1901");
 	}
 
@@ -185,8 +185,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testDefaultStringUrlEncoding() throws Exception {
 		Class<?> f = CalendarSwap.ToString.class;
-		WriterSerializer s = new UrlEncodingSerializer().addTransforms(f);
-		ReaderParser p = UrlEncodingParser.DEFAULT.clone().addTransforms(f);
+		WriterSerializer s = new UrlEncodingSerializer().addPojoSwaps(f);
+		ReaderParser p = UrlEncodingParser.DEFAULT.clone().addPojoSwaps(f);
 		doTest(s, p, true, "_value=Sun+Mar+03+10:11:12+PST+1901");
 	}
 
@@ -196,8 +196,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testDefaultStringRdfXml() throws Exception {
 		Class<?> f = CalendarSwap.ToString.class;
-		WriterSerializer s = getRdfSerializer().addTransforms(f);
-		ReaderParser p = new RdfParser.Xml().addTransforms(f);
+		WriterSerializer s = getRdfSerializer().addPojoSwaps(f);
+		ReaderParser p = new RdfParser.Xml().addPojoSwaps(f);
 		doTest(s, p, true, "<rdf:Description><j:value>Sun Mar 03 10:11:12 PST 1901</j:value></rdf:Description>");
 	}
 
@@ -207,8 +207,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testISO8601DTJson() throws Exception {
 		Class<?> f = CalendarSwap.ISO8601DT.class;
-		WriterSerializer s = new JsonSerializer.Simple().addTransforms(f);
-		ReaderParser p = new JsonParser().addTransforms(f);
+		WriterSerializer s = new JsonSerializer.Simple().addPojoSwaps(f);
+		ReaderParser p = new JsonParser().addPojoSwaps(f);
 		String x = "'1901-03-03T10:11:12-08:00'";
 		doTest(s, p, true, x);
 	}
@@ -219,8 +219,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testISO8601DTXml() throws Exception {
 		Class<?> f = CalendarSwap.ISO8601DT.class;
-		WriterSerializer s = new XmlSerializer.SimpleSq().addTransforms(f);
-		ReaderParser p = new XmlParser().addTransforms(f);
+		WriterSerializer s = new XmlSerializer.SimpleSq().addPojoSwaps(f);
+		ReaderParser p = new XmlParser().addPojoSwaps(f);
 		doTest(s, p, true, "<string>1901-03-03T10:11:12-08:00</string>");
 	}
 
@@ -230,8 +230,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testISO8601DTHtml() throws Exception {
 		Class<?> f = CalendarSwap.ISO8601DT.class;
-		WriterSerializer s = new HtmlSerializer().addTransforms(f);
-		ReaderParser p = new HtmlParser().addTransforms(f);
+		WriterSerializer s = new HtmlSerializer().addPojoSwaps(f);
+		ReaderParser p = new HtmlParser().addPojoSwaps(f);
 		doTest(s, p, true, "<string>1901-03-03T10:11:12-08:00</string>");
 	}
 
@@ -241,8 +241,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testISO8601DTUon() throws Exception {
 		Class<?> f = CalendarSwap.ISO8601DT.class;
-		WriterSerializer s = new UonSerializer().addTransforms(f);
-		ReaderParser p = new UonParser().addTransforms(f);
+		WriterSerializer s = new UonSerializer().addPojoSwaps(f);
+		ReaderParser p = new UonParser().addPojoSwaps(f);
 		doTest(s, p, true, "1901-03-03T10:11:12-08:00");
 	}
 
@@ -252,8 +252,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testISO8601DTUrlEncoding() throws Exception {
 		Class<?> f = CalendarSwap.ISO8601DT.class;
-		WriterSerializer s = new UrlEncodingSerializer().addTransforms(f);
-		ReaderParser p = new UrlEncodingParser().addTransforms(f);
+		WriterSerializer s = new UrlEncodingSerializer().addPojoSwaps(f);
+		ReaderParser p = new UrlEncodingParser().addPojoSwaps(f);
 		doTest(s, p, true, "_value=1901-03-03T10:11:12-08:00");
 	}
 
@@ -263,8 +263,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testISO8601DTRdfXml() throws Exception {
 		Class<?> f = CalendarSwap.ISO8601DT.class;
-		WriterSerializer s = getRdfSerializer().addTransforms(f);
-		ReaderParser p = new RdfParser.Xml().addTransforms(f);
+		WriterSerializer s = getRdfSerializer().addPojoSwaps(f);
+		ReaderParser p = new RdfParser.Xml().addPojoSwaps(f);
 		doTest(s, p, true, "<rdf:Description><j:value>1901-03-03T10:11:12-08:00</j:value></rdf:Description>");
 	}
 
@@ -274,8 +274,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testRFC2822DTJson() throws Exception {
 		Class<?> f = CalendarSwap.RFC2822DTZ.class;
-		WriterSerializer s = new JsonSerializer.Simple().addTransforms(f);
-		ReaderParser p = new JsonParser().addTransforms(f);
+		WriterSerializer s = new JsonSerializer.Simple().addPojoSwaps(f);
+		ReaderParser p = new JsonParser().addPojoSwaps(f);
 		doTest(s, p, true, "'Sun, 03 Mar 1901 18:11:12 GMT'");
 	}
 
@@ -285,8 +285,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testRFC2822DTXml() throws Exception {
 		Class<?> f = CalendarSwap.RFC2822DTZ.class;
-		WriterSerializer s = new XmlSerializer.SimpleSq().addTransforms(f);
-		ReaderParser p = new XmlParser().addTransforms(f);
+		WriterSerializer s = new XmlSerializer.SimpleSq().addPojoSwaps(f);
+		ReaderParser p = new XmlParser().addPojoSwaps(f);
 		doTest(s, p, true, "<string>Sun, 03 Mar 1901 18:11:12 GMT</string>");
 	}
 
@@ -296,8 +296,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testRFC2822DTHtml() throws Exception {
 		Class<?> f = CalendarSwap.RFC2822DTZ.class;
-		WriterSerializer s = new HtmlSerializer().addTransforms(f);
-		ReaderParser p = new HtmlParser().addTransforms(f);
+		WriterSerializer s = new HtmlSerializer().addPojoSwaps(f);
+		ReaderParser p = new HtmlParser().addPojoSwaps(f);
 		doTest(s, p, true, "<string>Sun, 03 Mar 1901 18:11:12 GMT</string>");
 	}
 
@@ -307,8 +307,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testRFC2822DTUon() throws Exception {
 		Class<?> f = CalendarSwap.RFC2822DTZ.class;
-		WriterSerializer s = new UonSerializer.Encoding().addTransforms(f);
-		ReaderParser p = UonParser.DEFAULT_DECODING.clone().addTransforms(f);
+		WriterSerializer s = new UonSerializer.Encoding().addPojoSwaps(f);
+		ReaderParser p = UonParser.DEFAULT_DECODING.clone().addPojoSwaps(f);
 		doTest(s, p, true, "Sun,+03+Mar+1901+18:11:12+GMT");
 	}
 
@@ -318,8 +318,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testRFC2822DTUrlEncoding() throws Exception {
 		Class<?> f = CalendarSwap.RFC2822DTZ.class;
-		WriterSerializer s = new UrlEncodingSerializer().addTransforms(f);
-		ReaderParser p = UrlEncodingParser.DEFAULT.clone().addTransforms(f);
+		WriterSerializer s = new UrlEncodingSerializer().addPojoSwaps(f);
+		ReaderParser p = UrlEncodingParser.DEFAULT.clone().addPojoSwaps(f);
 		doTest(s, p, true, "_value=Sun,+03+Mar+1901+18:11:12+GMT");
 	}
 
@@ -329,8 +329,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testRFC2822DTRdfXml() throws Exception {
 		Class<?> f = CalendarSwap.RFC2822DTZ.class;
-		WriterSerializer s = getRdfSerializer().addTransforms(f);
-		ReaderParser p = new RdfParser.Xml().addTransforms(f);
+		WriterSerializer s = getRdfSerializer().addPojoSwaps(f);
+		ReaderParser p = new RdfParser.Xml().addPojoSwaps(f);
 		doTest(s, p, true, "<rdf:Description><j:value>Sun, 03 Mar 1901 18:11:12 GMT</j:value></rdf:Description>");
 	}
 
@@ -340,8 +340,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testDefaultLongJson() throws Exception {
 		Class<?> f = CalendarLongSwap.class;
-		WriterSerializer s = new JsonSerializer.Simple().addTransforms(f);
-		ReaderParser p = new JsonParser().addTransforms(f);
+		WriterSerializer s = new JsonSerializer.Simple().addPojoSwaps(f);
+		ReaderParser p = new JsonParser().addPojoSwaps(f);
 		doTest(s, p, true, "-2172116928000");
 	}
 
@@ -351,8 +351,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testDefaultLongXml() throws Exception {
 		Class<?> f = CalendarLongSwap.class;
-		WriterSerializer s = new XmlSerializer.SimpleSq().addTransforms(f);
-		ReaderParser p = new XmlParser().addTransforms(f);
+		WriterSerializer s = new XmlSerializer.SimpleSq().addPojoSwaps(f);
+		ReaderParser p = new XmlParser().addPojoSwaps(f);
 		doTest(s, p, true, "<number>-2172116928000</number>");
 	}
 
@@ -362,8 +362,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testDefaultLongHtml() throws Exception {
 		Class<?> f = CalendarLongSwap.class;
-		WriterSerializer s = new HtmlSerializer().addTransforms(f);
-		ReaderParser p = new HtmlParser().addTransforms(f);
+		WriterSerializer s = new HtmlSerializer().addPojoSwaps(f);
+		ReaderParser p = new HtmlParser().addPojoSwaps(f);
 		doTest(s, p, true, "<number>-2172116928000</number>");
 	}
 
@@ -373,8 +373,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testDefaultLongUon() throws Exception {
 		Class<?> f = CalendarLongSwap.class;
-		WriterSerializer s = UonSerializer.DEFAULT_SIMPLE.clone().addTransforms(f);
-		ReaderParser p = new UonParser().addTransforms(f);
+		WriterSerializer s = UonSerializer.DEFAULT_SIMPLE.clone().addPojoSwaps(f);
+		ReaderParser p = new UonParser().addPojoSwaps(f);
 		doTest(s, p, true, "-2172116928000");
 	}
 
@@ -384,8 +384,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testDefaultLongUrlEncoding() throws Exception {
 		Class<?> f = CalendarLongSwap.class;
-		WriterSerializer s = UrlEncodingSerializer.DEFAULT_SIMPLE.clone().addTransforms(f);
-		ReaderParser p = new UrlEncodingParser().addTransforms(f);
+		WriterSerializer s = UrlEncodingSerializer.DEFAULT_SIMPLE.clone().addPojoSwaps(f);
+		ReaderParser p = new UrlEncodingParser().addPojoSwaps(f);
 		doTest(s, p, true, "_value=-2172116928000");
 	}
 
@@ -395,8 +395,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testDefaultLongRdfXml() throws Exception {
 		Class<?> f = CalendarLongSwap.class;
-		WriterSerializer s = getRdfSerializer().addTransforms(f);
-		ReaderParser p = new RdfParser.Xml().addTransforms(f);
+		WriterSerializer s = getRdfSerializer().addPojoSwaps(f);
+		ReaderParser p = new RdfParser.Xml().addPojoSwaps(f);
 		doTest(s, p, true, "<rdf:Description><j:value>-2172116928000</j:value></rdf:Description>");
 	}
 
@@ -406,8 +406,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testDefaultMapJson() throws Exception {
 		Class<?> f = CalendarMapSwap.class;
-		WriterSerializer s = new JsonSerializer.Simple().addTransforms(f);
-		ReaderParser p = new JsonParser().addTransforms(f);
+		WriterSerializer s = new JsonSerializer.Simple().addPojoSwaps(f);
+		ReaderParser p = new JsonParser().addPojoSwaps(f);
 		doTest(s, p, true, "{time:-2172116928000,timeZone:'PST'}");
 	}
 
@@ -417,8 +417,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testDefaultMapXml() throws Exception {
 		Class<?> f = CalendarMapSwap.class;
-		WriterSerializer s = new XmlSerializer.SimpleXmlJsonSq().addTransforms(f);
-		ReaderParser p = new XmlParser().addTransforms(f);
+		WriterSerializer s = new XmlSerializer.SimpleXmlJsonSq().addPojoSwaps(f);
+		ReaderParser p = new XmlParser().addPojoSwaps(f);
 		doTest(s, p, true, "<object><time type='number'>-2172116928000</time><timeZone>PST</timeZone></object>");
 	}
 
@@ -428,8 +428,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testDefaultMapHtml() throws Exception {
 		Class<?> f = CalendarMapSwap.class;
-		WriterSerializer s = new HtmlSerializer.Sq().addTransforms(f);
-		ReaderParser p = new HtmlParser().addTransforms(f);
+		WriterSerializer s = new HtmlSerializer.Sq().addPojoSwaps(f);
+		ReaderParser p = new HtmlParser().addPojoSwaps(f);
 		doTest(s, p, true, "<table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>time</string></td><td><number>-2172116928000</number></td></tr><tr><td><string>timeZone</string></td><td><string>PST</string></td></tr></table>");
 	}
 
@@ -439,8 +439,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testDefaultMapUon() throws Exception {
 		Class<?> f = CalendarMapSwap.class;
-		WriterSerializer s = UonSerializer.DEFAULT_SIMPLE.clone().addTransforms(f);
-		ReaderParser p = new UonParser().addTransforms(f);
+		WriterSerializer s = UonSerializer.DEFAULT_SIMPLE.clone().addPojoSwaps(f);
+		ReaderParser p = new UonParser().addPojoSwaps(f);
 		doTest(s, p, true, "(time=-2172116928000,timeZone=PST)");
 	}
 
@@ -450,8 +450,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testDefaultMapUrlEncoding() throws Exception {
 		Class<?> f = CalendarMapSwap.class;
-		WriterSerializer s = UrlEncodingSerializer.DEFAULT_SIMPLE.clone().addTransforms(f);
-		ReaderParser p = new UrlEncodingParser().addTransforms(f);
+		WriterSerializer s = UrlEncodingSerializer.DEFAULT_SIMPLE.clone().addPojoSwaps(f);
+		ReaderParser p = new UrlEncodingParser().addPojoSwaps(f);
 		doTest(s, p, true, "time=-2172116928000&timeZone=PST");
 	}
 
@@ -461,8 +461,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testDefaultMapRdfXml() throws Exception {
 		Class<?> f = CalendarMapSwap.class;
-		WriterSerializer s = getRdfSerializer().addTransforms(f);
-		ReaderParser p = new RdfParser.Xml().addTransforms(f);
+		WriterSerializer s = getRdfSerializer().addPojoSwaps(f);
+		ReaderParser p = new RdfParser.Xml().addPojoSwaps(f);
 		doTest(s, p, true, "<rdf:Description><jp:time>-2172116928000</jp:time><jp:timeZone>PST</jp:timeZone></rdf:Description>");
 	}
 
@@ -472,8 +472,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testDefaultMediumJson() throws Exception {
 		Class<?> f = CalendarSwap.Medium.class;
-		WriterSerializer s = new JsonSerializer.Simple().addTransforms(f);
-		ReaderParser p = new JsonParser().addTransforms(f);
+		WriterSerializer s = new JsonSerializer.Simple().addPojoSwaps(f);
+		ReaderParser p = new JsonParser().addPojoSwaps(f);
 		doTest(s, p, false, "'Mar 3, 1901'");
 	}
 
@@ -483,8 +483,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testDefaultMediumXml() throws Exception {
 		Class<?> f = CalendarSwap.Medium.class;
-		WriterSerializer s = new XmlSerializer.SimpleSq().addTransforms(f);
-		ReaderParser p = new XmlParser().addTransforms(f);
+		WriterSerializer s = new XmlSerializer.SimpleSq().addPojoSwaps(f);
+		ReaderParser p = new XmlParser().addPojoSwaps(f);
 		doTest(s, p, false, "<string>Mar 3, 1901</string>");
 	}
 
@@ -494,8 +494,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testDefaultMediumHtml() throws Exception {
 		Class<?> f = CalendarSwap.Medium.class;
-		WriterSerializer s = new HtmlSerializer().addTransforms(f);
-		ReaderParser p = new HtmlParser().addTransforms(f);
+		WriterSerializer s = new HtmlSerializer().addPojoSwaps(f);
+		ReaderParser p = new HtmlParser().addPojoSwaps(f);
 		doTest(s, p, false, "<string>Mar 3, 1901</string>");
 	}
 
@@ -505,8 +505,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testDefaultMediumUon() throws Exception {
 		Class<?> f = CalendarSwap.Medium.class;
-		WriterSerializer s = new UonSerializer.Encoding().addTransforms(f);
-		ReaderParser p = UonParser.DEFAULT_DECODING.clone().addTransforms(f);
+		WriterSerializer s = new UonSerializer.Encoding().addPojoSwaps(f);
+		ReaderParser p = UonParser.DEFAULT_DECODING.clone().addPojoSwaps(f);
 		doTest(s, p, false, "Mar+3,+1901");
 	}
 
@@ -516,8 +516,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testDefaultMediumUrlEncoding() throws Exception {
 		Class<?> f = CalendarSwap.Medium.class;
-		WriterSerializer s = new UrlEncodingSerializer().addTransforms(f);
-		ReaderParser p = UrlEncodingParser.DEFAULT.clone().addTransforms(f);
+		WriterSerializer s = new UrlEncodingSerializer().addPojoSwaps(f);
+		ReaderParser p = UrlEncodingParser.DEFAULT.clone().addPojoSwaps(f);
 		doTest(s, p, false, "_value=Mar+3,+1901");
 	}
 
@@ -527,8 +527,8 @@ public class CalendarSwapTest {
 	@Test
 	public void testDefaultMediumRdfXml() throws Exception {
 		Class<?> f = CalendarSwap.Medium.class;
-		WriterSerializer s = getRdfSerializer().addTransforms(f);
-		ReaderParser p = new RdfParser.Xml().addTransforms(f);
+		WriterSerializer s = getRdfSerializer().addPojoSwaps(f);
+		ReaderParser p = new RdfParser.Xml().addPojoSwaps(f);
 		doTest(s, p, false, "<rdf:Description><j:value>Mar 3, 1901</j:value></rdf:Description>");
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/test/java/org/apache/juneau/transforms/DateFilterTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/test/java/org/apache/juneau/transforms/DateFilterTest.java b/juneau-core/src/test/java/org/apache/juneau/transforms/DateFilterTest.java
index 603837c..2d93b12 100755
--- a/juneau-core/src/test/java/org/apache/juneau/transforms/DateFilterTest.java
+++ b/juneau-core/src/test/java/org/apache/juneau/transforms/DateFilterTest.java
@@ -48,8 +48,8 @@ public class DateFilterTest {
 	@Test
 	public void testString() throws Exception {
 		Class<?> f = DateSwap.ToString.class;
-		WriterSerializer s = new JsonSerializer.Simple().addTransforms(f);
-		ReaderParser p = new JsonParser().addTransforms(f);
+		WriterSerializer s = new JsonSerializer.Simple().addPojoSwaps(f);
+		ReaderParser p = new JsonParser().addPojoSwaps(f);
 		doTest(s, p, "'Sun Mar 03 04:05:06 "+tz1+" 1901'");
 	}
 
@@ -59,8 +59,8 @@ public class DateFilterTest {
 	@Test
 	public void testISO8601DTZ() throws Exception {
 		Class<?> f = DateSwap.ISO8601DTZ.class;
-		WriterSerializer s = new JsonSerializer.Simple().addTransforms(f);
-		ReaderParser p = new JsonParser().addTransforms(f);
+		WriterSerializer s = new JsonSerializer.Simple().addPojoSwaps(f);
+		ReaderParser p = new JsonParser().addPojoSwaps(f);
 		doTest(s, p, "'1901-03-03T09:05:06Z'");
 	}
 
@@ -70,8 +70,8 @@ public class DateFilterTest {
 	@Test
 	public void testRFC2822DT() throws Exception {
 		Class<?> f = DateSwap.RFC2822DT.class;
-		WriterSerializer s = new JsonSerializer.Simple().addTransforms(f);
-		ReaderParser p = new JsonParser().addTransforms(f);
+		WriterSerializer s = new JsonSerializer.Simple().addPojoSwaps(f);
+		ReaderParser p = new JsonParser().addPojoSwaps(f);
 		doTest(s, p, "'Sun, 03 Mar 1901 04:05:06 "+tz1+"'");
 	}
 
@@ -81,8 +81,8 @@ public class DateFilterTest {
 	@Test
 	public void testLong() throws Exception {
 		Class<?> f = DateLongSwap.class;
-		WriterSerializer s = new JsonSerializer.Simple().addTransforms(f);
-		ReaderParser p = new JsonParser().addTransforms(f);
+		WriterSerializer s = new JsonSerializer.Simple().addPojoSwaps(f);
+		ReaderParser p = new JsonParser().addPojoSwaps(f);
 		doTest(s, p, "-2172149694000");
 	}
 
@@ -92,8 +92,8 @@ public class DateFilterTest {
 	@Test
 	public void testMap() throws Exception {
 		Class<?> f = DateMapSwap.class;
-		WriterSerializer s = new JsonSerializer.Simple().addTransforms(f);
-		ReaderParser p = new JsonParser().addTransforms(f);
+		WriterSerializer s = new JsonSerializer.Simple().addPojoSwaps(f);
+		ReaderParser p = new JsonParser().addPojoSwaps(f);
 		doTest(s, p, "{time:-2172149694000}");
 	}
 
@@ -146,9 +146,9 @@ public class DateFilterTest {
 	public void testBeanWithDate() throws Exception {
 		A testBeanA = new A().init();
 
-		final String jsonData = new JsonSerializer().addTransforms(
+		final String jsonData = new JsonSerializer().addPojoSwaps(
 			DateSwap.ISO8601DT.class).serialize(testBeanA);
-		final ObjectMap data = new JsonParser().addTransforms(
+		final ObjectMap data = new JsonParser().addPojoSwaps(
 			DateSwap.ISO8601DT.class).parse(jsonData, ObjectMap.class);
 
 		final DateSwap.ISO8601DT dateSwap = new DateSwap.ISO8601DT();

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/test/java/org/apache/juneau/transforms/EnumerationSwapTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/test/java/org/apache/juneau/transforms/EnumerationSwapTest.java b/juneau-core/src/test/java/org/apache/juneau/transforms/EnumerationSwapTest.java
index f9d36d4..d4b8442 100755
--- a/juneau-core/src/test/java/org/apache/juneau/transforms/EnumerationSwapTest.java
+++ b/juneau-core/src/test/java/org/apache/juneau/transforms/EnumerationSwapTest.java
@@ -28,7 +28,7 @@ public class EnumerationSwapTest {
 	//====================================================================================================
 	@Test
 	public void test() throws Exception {
-		WriterSerializer s = new JsonSerializer.Simple().addTransforms(EnumerationSwap.class);
+		WriterSerializer s = new JsonSerializer.Simple().addPojoSwaps(EnumerationSwap.class);
 		Vector<String> v = new Vector<String>(Arrays.asList(new String[]{"foo","bar","baz"}));
 		Enumeration<String> e = v.elements();
 		assertEquals("['foo','bar','baz']", s.serialize(e));

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/test/java/org/apache/juneau/transforms/IteratorSwapTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/test/java/org/apache/juneau/transforms/IteratorSwapTest.java b/juneau-core/src/test/java/org/apache/juneau/transforms/IteratorSwapTest.java
index cba40ce..83417ec 100755
--- a/juneau-core/src/test/java/org/apache/juneau/transforms/IteratorSwapTest.java
+++ b/juneau-core/src/test/java/org/apache/juneau/transforms/IteratorSwapTest.java
@@ -28,7 +28,7 @@ public class IteratorSwapTest {
 	//====================================================================================================
 	@Test
 	public void test() throws Exception {
-		WriterSerializer s = new JsonSerializer.Simple().addTransforms(IteratorSwap.class);
+		WriterSerializer s = new JsonSerializer.Simple().addPojoSwaps(IteratorSwap.class);
 
 		// Iterators
 		List<String> l = new ArrayList<String>(Arrays.asList(new String[]{"foo","bar","baz"}));

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/test/java/org/apache/juneau/transforms/ReaderFilterTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/test/java/org/apache/juneau/transforms/ReaderFilterTest.java b/juneau-core/src/test/java/org/apache/juneau/transforms/ReaderFilterTest.java
index e6cc356..00a2eba 100755
--- a/juneau-core/src/test/java/org/apache/juneau/transforms/ReaderFilterTest.java
+++ b/juneau-core/src/test/java/org/apache/juneau/transforms/ReaderFilterTest.java
@@ -29,7 +29,7 @@ public class ReaderFilterTest {
 	//====================================================================================================
 	@Test
 	public void test() throws Exception {
-		WriterSerializer s = new JsonSerializer.Simple().addTransforms(ReaderSwap.Json.class);
+		WriterSerializer s = new JsonSerializer.Simple().addPojoSwaps(ReaderSwap.Json.class);
 
 		Reader r;
 		Map<String,Object> m;
@@ -39,7 +39,7 @@ public class ReaderFilterTest {
 		m.put("X", r);
 		assertEquals("{X:{foo:'bar',baz:'quz'}}", s.serialize(m));
 
-		s.addTransforms(ReaderSwap.Xml.class);
+		s.addPojoSwaps(ReaderSwap.Xml.class);
 		r = new StringReader("<object><foo type='string'>bar</foo><baz type='string'>quz</baz></object>");
 		m = new HashMap<String,Object>();
 		m.put("X", r);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/test/java/org/apache/juneau/utils/PojoQueryTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/test/java/org/apache/juneau/utils/PojoQueryTest.java b/juneau-core/src/test/java/org/apache/juneau/utils/PojoQueryTest.java
index ae86925..3f0f0b3 100755
--- a/juneau-core/src/test/java/org/apache/juneau/utils/PojoQueryTest.java
+++ b/juneau-core/src/test/java/org/apache/juneau/utils/PojoQueryTest.java
@@ -87,7 +87,7 @@ public class PojoQueryTest {
 		int limit = 0;
 		boolean ignoreCase = false;
 		BeanContext bc = BeanContext.DEFAULT;
-		WriterSerializer s = new JsonSerializer.Simple().addTransforms(CalendarSwap.Simple.class);
+		WriterSerializer s = new JsonSerializer.Simple().addPojoSwaps(CalendarSwap.Simple.class);
 		B[] in;
 		PojoQuery filter;
 
@@ -603,7 +603,7 @@ public class PojoQueryTest {
 		int limit = 0;
 		boolean ignoreCase = false;
 		BeanContext bc = BeanContext.DEFAULT;
-		WriterSerializer s = new JsonSerializer.Simple().addTransforms(CalendarSwap.Simple.class);
+		WriterSerializer s = new JsonSerializer.Simple().addPojoSwaps(CalendarSwap.Simple.class);
 		List results;
 
 		I[] in = new I[] {

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/test/java/org/apache/juneau/utils/StringUtilsTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/test/java/org/apache/juneau/utils/StringUtilsTest.java b/juneau-core/src/test/java/org/apache/juneau/utils/StringUtilsTest.java
index 3ce3663..e66a047 100755
--- a/juneau-core/src/test/java/org/apache/juneau/utils/StringUtilsTest.java
+++ b/juneau-core/src/test/java/org/apache/juneau/utils/StringUtilsTest.java
@@ -617,7 +617,7 @@ public class StringUtilsTest {
 	//====================================================================================================
 	@Test
 	public void testParseISO8601Date() throws Exception {
-		WriterSerializer s = new JsonSerializer.Simple().addTransforms(DateSwap.ISO8601DTPNZ.class);
+		WriterSerializer s = new JsonSerializer.Simple().addPojoSwaps(DateSwap.ISO8601DTPNZ.class);
 
 		assertNull(parseISO8601Date(null));
 		assertNull(parseISO8601Date(""));

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
----------------------------------------------------------------------
diff --git a/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java b/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
index dd64a0d..3dd63b4 100755
--- a/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
+++ b/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
@@ -44,7 +44,7 @@ import org.apache.juneau.transforms.*;
 		@Property(name=HTML_uriAnchorText, value=PROPERTY_NAME),
 		@Property(name=REST_allowMethodParam, value="true")
 	},
-	transforms={
+	pojoSwaps={
 		IteratorSwap.class,       // Allows Iterators and Iterables to be serialized.
 		DateSwap.ISO8601DT.class  // Serialize Date objects as ISO8601 strings.
 	}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-samples/src/main/java/org/apache/juneau/server/samples/RequestEchoResource.java
----------------------------------------------------------------------
diff --git a/juneau-samples/src/main/java/org/apache/juneau/server/samples/RequestEchoResource.java b/juneau-samples/src/main/java/org/apache/juneau/server/samples/RequestEchoResource.java
index ef216e0..5f0554a 100755
--- a/juneau-samples/src/main/java/org/apache/juneau/server/samples/RequestEchoResource.java
+++ b/juneau-samples/src/main/java/org/apache/juneau/server/samples/RequestEchoResource.java
@@ -35,9 +35,11 @@ import org.apache.juneau.transforms.*;
 		@Property(name=SERIALIZER_detectRecursions, value="true"),
 		@Property(name=HTMLDOC_links, value="{up:'$R{requestParentURI}',options:'?method=OPTIONS',source:'$R{servletParentURI}/source?classes=(org.apache.juneau.server.samples.RequestEchoResource)'}")
 	},
-	transforms={
+	beanFilters={
 		// Interpret these as their parent classes, not subclasses
 		HttpServletRequest.class, HttpSession.class, ServletContext.class,
+	},
+	pojoSwaps={
 		// Add a special filter for Enumerations
 		EnumerationSwap.class
 	}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-samples/src/test/java/org/apache/juneau/server/samples/AddressBookResourceTest.java
----------------------------------------------------------------------
diff --git a/juneau-samples/src/test/java/org/apache/juneau/server/samples/AddressBookResourceTest.java b/juneau-samples/src/test/java/org/apache/juneau/server/samples/AddressBookResourceTest.java
index 83dfe8a..e51355d 100755
--- a/juneau-samples/src/test/java/org/apache/juneau/server/samples/AddressBookResourceTest.java
+++ b/juneau-samples/src/test/java/org/apache/juneau/server/samples/AddressBookResourceTest.java
@@ -43,8 +43,8 @@ public class AddressBookResourceTest {
 			new SamplesRestClient(XmlSerializer.class,  HtmlParser.class).setAccept("text/html+stripped")
 		};
 		for (RestClient c : clients) {
-			c.getSerializer().addTransforms(CalendarSwap.Medium.class);
-			c.getParser().addTransforms(CalendarSwap.Medium.class);
+			c.getSerializer().addPojoSwaps(CalendarSwap.Medium.class);
+			c.getParser().addPojoSwaps(CalendarSwap.Medium.class);
 			c.getSerializer().setProperty(XmlSerializerContext.XML_autoDetectNamespaces, true);
 		}
 	}
@@ -62,7 +62,7 @@ public class AddressBookResourceTest {
 	@Test
 	public void testBasic() throws Exception {
 		String in = IOUtils.read(getClass().getResourceAsStream("/org/apache/juneau/server/test/AddressBookResource_test0Test.json"));
-		JsonParser p = new JsonParser().addTransforms(CalendarSwap.Medium.class);
+		JsonParser p = new JsonParser().addPojoSwaps(CalendarSwap.Medium.class);
 		Person person = p.parse(in, Person.class);
 		if (debug) System.err.println(person);
 	}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-samples/src/test/java/org/apache/juneau/server/samples/SampleRemoteableServicesResourceTest.java
----------------------------------------------------------------------
diff --git a/juneau-samples/src/test/java/org/apache/juneau/server/samples/SampleRemoteableServicesResourceTest.java b/juneau-samples/src/test/java/org/apache/juneau/server/samples/SampleRemoteableServicesResourceTest.java
index d3f4329..f058b89 100755
--- a/juneau-samples/src/test/java/org/apache/juneau/server/samples/SampleRemoteableServicesResourceTest.java
+++ b/juneau-samples/src/test/java/org/apache/juneau/server/samples/SampleRemoteableServicesResourceTest.java
@@ -35,7 +35,7 @@ public class SampleRemoteableServicesResourceTest {
 			new SamplesRestClient(UonSerializer.class, UonParser.class),
 		};
 		for (RestClient c : clients) {
-			c.addTransforms(CalendarSwap.Medium.class);
+			c.addPojoSwaps(CalendarSwap.Medium.class);
 			c.setRemoteableServletUri("/remoteable");
 			c.setProperty(XmlSerializerContext.XML_autoDetectNamespaces, true);
 		}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-samples/src/test/java/org/apache/juneau/server/samples/TestUtils.java
----------------------------------------------------------------------
diff --git a/juneau-samples/src/test/java/org/apache/juneau/server/samples/TestUtils.java b/juneau-samples/src/test/java/org/apache/juneau/server/samples/TestUtils.java
index dd964d0..3e9892c 100755
--- a/juneau-samples/src/test/java/org/apache/juneau/server/samples/TestUtils.java
+++ b/juneau-samples/src/test/java/org/apache/juneau/server/samples/TestUtils.java
@@ -52,10 +52,10 @@ public class TestUtils {
 
 
 	private static JsonSerializer js2 = new JsonSerializer.Simple()
-		.addTransforms(IteratorSwap.class, EnumerationSwap.class);
+		.addPojoSwaps(IteratorSwap.class, EnumerationSwap.class);
 
 	private static JsonSerializer js3 = new JsonSerializer.Simple()
-		.addTransforms(IteratorSwap.class, EnumerationSwap.class)
+		.addPojoSwaps(IteratorSwap.class, EnumerationSwap.class)
 		.setProperty(BEAN_sortProperties, true);
 
 	/**

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-server-test/src/main/java/org/apache/juneau/server/BeanContextPropertiesResource.java
----------------------------------------------------------------------
diff --git a/juneau-server-test/src/main/java/org/apache/juneau/server/BeanContextPropertiesResource.java b/juneau-server-test/src/main/java/org/apache/juneau/server/BeanContextPropertiesResource.java
index 519715a..9541149 100755
--- a/juneau-server-test/src/main/java/org/apache/juneau/server/BeanContextPropertiesResource.java
+++ b/juneau-server-test/src/main/java/org/apache/juneau/server/BeanContextPropertiesResource.java
@@ -23,7 +23,7 @@ import org.apache.juneau.transforms.*;
  */
 @RestResource(
 	path="/testBeanContext",
-	transforms=DateSwap.ISO8601DTZ.class
+	pojoSwaps=DateSwap.ISO8601DTZ.class
 )
 public class BeanContextPropertiesResource extends RestServletDefault {
 	private static final long serialVersionUID = 1L;

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-server-test/src/main/java/org/apache/juneau/server/GroupsResource.java
----------------------------------------------------------------------
diff --git a/juneau-server-test/src/main/java/org/apache/juneau/server/GroupsResource.java b/juneau-server-test/src/main/java/org/apache/juneau/server/GroupsResource.java
index be2df77..759fa5c 100755
--- a/juneau-server-test/src/main/java/org/apache/juneau/server/GroupsResource.java
+++ b/juneau-server-test/src/main/java/org/apache/juneau/server/GroupsResource.java
@@ -47,13 +47,13 @@ public class GroupsResource extends RestServlet {
 
 
 	@Override /* RestServlet */
-	public SerializerGroup createSerializers(ObjectMap properties, Class<?>[] filters) throws Exception {
-		return new SerializerGroup().append(SSerializer.class).setProperties(properties).addTransforms(filters);
+	public SerializerGroup createSerializers(ObjectMap properties, Class<?>[] beanFilters, Class<?>[] pojoSwaps) throws Exception {
+		return new SerializerGroup().append(SSerializer.class).setProperties(properties).addBeanFilters(beanFilters).addPojoSwaps(pojoSwaps);
 	}
 
 	@Override /* RestServlet */
-	public ParserGroup createParsers(ObjectMap properties, Class<?>[] filters) throws Exception {
-		return new ParserGroup().append(PParser.class).setProperties(properties).addTransforms(filters);
+	public ParserGroup createParsers(ObjectMap properties, Class<?>[] beanFilters, Class<?>[] pojoSwaps) throws Exception {
+		return new ParserGroup().append(PParser.class).setProperties(properties).addBeanFilters(beanFilters).addPojoSwaps(pojoSwaps);
 	}
 
 	//====================================================================================================

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-server-test/src/main/java/org/apache/juneau/server/InheritanceResource.java
----------------------------------------------------------------------
diff --git a/juneau-server-test/src/main/java/org/apache/juneau/server/InheritanceResource.java b/juneau-server-test/src/main/java/org/apache/juneau/server/InheritanceResource.java
index 4c25acc..192f2b3 100755
--- a/juneau-server-test/src/main/java/org/apache/juneau/server/InheritanceResource.java
+++ b/juneau-server-test/src/main/java/org/apache/juneau/server/InheritanceResource.java
@@ -35,7 +35,7 @@ import org.apache.juneau.transform.*;
 	serializers={InheritanceResource.S1.class,InheritanceResource.S2.class},
 	parsers={InheritanceResource.P1.class,InheritanceResource.P2.class},
 	encoders={InheritanceResource.E1.class,InheritanceResource.E2.class},
-	transforms={InheritanceResource.F1.class},
+	pojoSwaps={InheritanceResource.F1Swap.class},
 	properties={@Property(name="p1",value="v1"), @Property(name="p2",value="v2")}
 )
 public class InheritanceResource extends RestServlet {
@@ -45,7 +45,7 @@ public class InheritanceResource extends RestServlet {
 		serializers={S3.class,S4.class},
 		parsers={P3.class,P4.class},
 		encoders={E3.class,E4.class},
-		transforms={F2.class},
+		pojoSwaps={F2Swap.class},
 		properties={@Property(name="p2",value="v2a"), @Property(name="p3",value="v3"), @Property(name="p4",value="v4")}
 	)
 	public static class Sub extends InheritanceResource {
@@ -149,35 +149,35 @@ public class InheritanceResource extends RestServlet {
 	public static class TestTransforms extends Sub {
 		private static final long serialVersionUID = 1L;
 
-		// Should show ['F1','F2','Foo3']
+		// Should show ['F1Swap','F2Swap','Foo3']
 		@RestMethod(name="GET", path="/test1")
 		public Object[] test1() {
 			return new Object[]{new Foo1(), new Foo2(), new Foo3()};
 		}
 
-		// Should show ['F1','F2','F3']
+		// Should show ['F1Swap','F2Swap','F3Swap']
 		// Inherited serializer already has parent filters applied.
-		@RestMethod(name="GET", path="/test2", transforms=F3.class)
+		@RestMethod(name="GET", path="/test2", pojoSwaps=F3Swap.class)
 		public Object[] test2() {
 			return new Object[]{new Foo1(), new Foo2(), new Foo3()};
 		}
 
-		// Should show ['F1','F2','F3']
-		@RestMethod(name="GET", path="/test3", transforms=F3.class, serializersInherit=TRANSFORMS)
+		// Should show ['F1Swap','F2Swap','F3Swap']
+		@RestMethod(name="GET", path="/test3", pojoSwaps=F3Swap.class, serializersInherit=TRANSFORMS)
 		public Object[] test3() {
 			return new Object[]{new Foo1(), new Foo2(), new Foo3()};
 		}
 
-		// Should show ['Foo1','Foo2','F3']
+		// Should show ['Foo1','Foo2','F3Swap']
 		// Overriding serializer does not have parent filters applied.
-		@RestMethod(name="GET", path="/test4", serializers=JsonSerializer.Simple.class, transforms=F3.class)
+		@RestMethod(name="GET", path="/test4", serializers=JsonSerializer.Simple.class, pojoSwaps=F3Swap.class)
 		public Object[] test4() {
 			return new Object[]{new Foo1(), new Foo2(), new Foo3()};
 		}
 
-		// Should show ['F1','F2','F3']
+		// Should show ['F1Swap','F2Swap','F3Swap']
 		// Overriding serializer does have parent filters applied.
-		@RestMethod(name="GET", path="/test5", serializers=JsonSerializer.Simple.class, transforms=F3.class, serializersInherit=TRANSFORMS)
+		@RestMethod(name="GET", path="/test5", serializers=JsonSerializer.Simple.class, pojoSwaps=F3Swap.class, serializersInherit=TRANSFORMS)
 		public Object[] test5() {
 			return new Object[]{new Foo1(), new Foo2(), new Foo3()};
 		}
@@ -293,21 +293,21 @@ public class InheritanceResource extends RestServlet {
 	public static class Foo2 {@Override public String toString(){return "Foo2";}}
 	public static class Foo3 {@Override public String toString(){return "Foo3";}}
 
-	public static class F1 extends PojoSwap<Foo1,String> {
+	public static class F1Swap extends PojoSwap<Foo1,String> {
 		@Override /* PojoSwap */
 		public String swap(Foo1 o) throws SerializeException {
 			return "F1";
 		}
 	}
 
-	public static class F2 extends PojoSwap<Foo2,String> {
+	public static class F2Swap extends PojoSwap<Foo2,String> {
 		@Override /* PojoSwap */
 		public String swap(Foo2 o) throws SerializeException {
 			return "F2";
 		}
 	}
 
-	public static class F3 extends PojoSwap<Foo3,String> {
+	public static class F3Swap extends PojoSwap<Foo3,String> {
 		@Override /* PojoSwap */
 		public String swap(Foo3 o) throws SerializeException {
 			return "F3";

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-server-test/src/main/java/org/apache/juneau/server/MessagesResource.java
----------------------------------------------------------------------
diff --git a/juneau-server-test/src/main/java/org/apache/juneau/server/MessagesResource.java b/juneau-server-test/src/main/java/org/apache/juneau/server/MessagesResource.java
index 28a85bf..87b5bdd 100755
--- a/juneau-server-test/src/main/java/org/apache/juneau/server/MessagesResource.java
+++ b/juneau-server-test/src/main/java/org/apache/juneau/server/MessagesResource.java
@@ -26,7 +26,7 @@ import org.apache.juneau.transform.*;
 @RestResource(
 	path="/testMessages",
 	messages="MessagesResource",
-	transforms={
+	pojoSwaps={
 		MessagesResource.ResourceBundleSwap.class
 	}
 )

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-server-test/src/main/java/org/apache/juneau/server/ParamsResource.java
----------------------------------------------------------------------
diff --git a/juneau-server-test/src/main/java/org/apache/juneau/server/ParamsResource.java b/juneau-server-test/src/main/java/org/apache/juneau/server/ParamsResource.java
index d195704..b78640a 100755
--- a/juneau-server-test/src/main/java/org/apache/juneau/server/ParamsResource.java
+++ b/juneau-server-test/src/main/java/org/apache/juneau/server/ParamsResource.java
@@ -107,7 +107,7 @@ public class ParamsResource extends RestServletDefault {
 	}
 
 	@Override /* RestServlet */
-	public Class<?>[] createTransforms() {
+	public Class<?>[] createPojoSwaps() {
 		return new Class[]{CalendarSwap.Medium.class};
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-server-test/src/main/java/org/apache/juneau/server/TransformsParentResource.java
----------------------------------------------------------------------
diff --git a/juneau-server-test/src/main/java/org/apache/juneau/server/TransformsParentResource.java b/juneau-server-test/src/main/java/org/apache/juneau/server/TransformsParentResource.java
index f7db4d3..64fbcc6 100755
--- a/juneau-server-test/src/main/java/org/apache/juneau/server/TransformsParentResource.java
+++ b/juneau-server-test/src/main/java/org/apache/juneau/server/TransformsParentResource.java
@@ -18,7 +18,7 @@ import org.apache.juneau.server.annotation.*;
  * JUnit automated testcase resource.
  */
 @RestResource(
-	transforms={TransformsResource.SwapA1.class}
+	pojoSwaps={TransformsResource.SwapA1.class}
 )
 public class TransformsParentResource extends RestServletDefault {
 	private static final long serialVersionUID = 1L;

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-server-test/src/main/java/org/apache/juneau/server/TransformsResource.java
----------------------------------------------------------------------
diff --git a/juneau-server-test/src/main/java/org/apache/juneau/server/TransformsResource.java b/juneau-server-test/src/main/java/org/apache/juneau/server/TransformsResource.java
index 4301411..d44d544 100755
--- a/juneau-server-test/src/main/java/org/apache/juneau/server/TransformsResource.java
+++ b/juneau-server-test/src/main/java/org/apache/juneau/server/TransformsResource.java
@@ -23,7 +23,7 @@ import org.apache.juneau.transform.*;
  */
 @RestResource(
 	path="/testTransforms",
-	transforms={TransformsResource.SwapA2.class}
+	pojoSwaps={TransformsResource.SwapA2.class}
 )
 public class TransformsResource extends TransformsParentResource {
 	private static final long serialVersionUID = 1L;
@@ -49,15 +49,15 @@ public class TransformsResource extends TransformsParentResource {
 	// Test method transform overrides class transform
 	// Should return "A3-1".
 	//====================================================================================================
-	@RestMethod(name="GET", path="/testMethodTransformOverridesClassTransform", transforms={SwapA3.class})
+	@RestMethod(name="GET", path="/testMethodTransformOverridesClassTransform", pojoSwaps={SwapA3.class})
 	public A test2a() {
 		return new A();
 	}
-	@RestMethod(name="PUT", path="/testMethodTransformOverridesClassTransform", transforms={SwapA3.class})
+	@RestMethod(name="PUT", path="/testMethodTransformOverridesClassTransform", pojoSwaps={SwapA3.class})
 	public A test2b(@Content A a) {
 		return a;
 	}
-	@RestMethod(name="PUT", path="/testMethodTransformOverridesClassTransform/{a}", transforms={SwapA3.class})
+	@RestMethod(name="PUT", path="/testMethodTransformOverridesClassTransform/{a}", pojoSwaps={SwapA3.class})
 	public A test2c(@Attr A a) {
 		return a;
 	}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-server-test/src/test/java/org/apache/juneau/server/TestUtils.java
----------------------------------------------------------------------
diff --git a/juneau-server-test/src/test/java/org/apache/juneau/server/TestUtils.java b/juneau-server-test/src/test/java/org/apache/juneau/server/TestUtils.java
index 909000e..2bf3e7a 100755
--- a/juneau-server-test/src/test/java/org/apache/juneau/server/TestUtils.java
+++ b/juneau-server-test/src/test/java/org/apache/juneau/server/TestUtils.java
@@ -25,7 +25,7 @@ import junit.framework.*;
 public class TestUtils {
 
 	private static JsonSerializer js2 = new JsonSerializer.Simple()
-		.addTransforms(IteratorSwap.class, EnumerationSwap.class);
+		.addPojoSwaps(IteratorSwap.class, EnumerationSwap.class);
 
 	/**
 	 * Assert that the object equals the specified string after running it through JsonSerializer.DEFAULT_LAX.toString().

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-server/src/main/java/org/apache/juneau/server/RestServlet.java
----------------------------------------------------------------------
diff --git a/juneau-server/src/main/java/org/apache/juneau/server/RestServlet.java b/juneau-server/src/main/java/org/apache/juneau/server/RestServlet.java
index 358a0d5..1eb84df 100755
--- a/juneau-server/src/main/java/org/apache/juneau/server/RestServlet.java
+++ b/juneau-server/src/main/java/org/apache/juneau/server/RestServlet.java
@@ -99,7 +99,7 @@ public abstract class RestServlet extends HttpServlet {
 	private UrlEncodingParser urlEncodingParser;
 	private ObjectMap properties;
 	private RestGuard[] guards;
-	private Class<?>[] transforms;
+	private Class<?>[] beanFilters, pojoSwaps;
 	private RestConverter[] converters;
 	private TreeMap<String,String> defaultRequestHeaders;
 	private Map<String,Object> defaultResponseHeaders;
@@ -189,13 +189,14 @@ public abstract class RestServlet extends HttpServlet {
 			staticFilesPrefixes = staticFilesMap.keySet().toArray(new String[0]);
 
 			properties = createProperties();
-			transforms = createTransforms();
+			beanFilters = createBeanFilters();
+			pojoSwaps = createPojoSwaps();
 			context = ContextFactory.create().setProperties(properties).getContext(RestServletContext.class);
-			beanContext = createBeanContext(properties, transforms);
-			urlEncodingSerializer = createUrlEncodingSerializer(properties, transforms).lock();
-			urlEncodingParser = createUrlEncodingParser(properties, transforms).lock();
-			serializers = createSerializers(properties, transforms).lock();
-			parsers = createParsers(properties, transforms).lock();
+			beanContext = createBeanContext(properties, beanFilters, pojoSwaps);
+			urlEncodingSerializer = createUrlEncodingSerializer(properties, beanFilters, pojoSwaps).lock();
+			urlEncodingParser = createUrlEncodingParser(properties, beanFilters, pojoSwaps).lock();
+			serializers = createSerializers(properties, beanFilters, pojoSwaps).lock();
+			parsers = createParsers(properties, beanFilters, pojoSwaps).lock();
 			converters = createConverters(properties);
 			encoders = createEncoders(properties);
 			guards = createGuards(properties);
@@ -400,22 +401,44 @@ public abstract class RestServlet extends HttpServlet {
 	}
 
 	/**
+	 * Creates the class-level bean filters associated with this servlet.
+	 * <p>
+	 * Subclasses can override this method to provide their own class-level bean filters for this servlet.
+	 * <p>
+	 * By default, returns the bean filters specified through the {@link RestResource#beanFilters() @RestResource.beanFilters()} annotation in child-to-parent order.
+	 * 	(i.e. bean filters will be applied in child-to-parent order with child annotations overriding parent annotations when
+	 * 	the same filters are applied).
+	 *
+	 * @return The new set of transforms associated with this servet.
+	 */
+	protected Class<?>[] createBeanFilters() {
+		List<Class<?>> l = new LinkedList<Class<?>>();
+
+		// Bean filters are loaded in parent-to-child order to allow overrides.
+		for (RestResource r : restResourceAnnotationsChildFirst.values())
+			for (Class c : r.beanFilters())
+				l.add(c);
+
+		return l.toArray(new Class<?>[l.size()]);
+	}
+
+	/**
 	 * Creates the class-level POJO swaps associated with this servlet.
 	 * <p>
 	 * Subclasses can override this method to provide their own class-level POJO swaps for this servlet.
 	 * <p>
-	 * By default, returns the transforms specified through the {@link RestResource#transforms() @RestResource.transforms()} annotation in child-to-parent order.
-	 * 	(i.e. transforms will be applied in child-to-parent order with child annotations overriding parent annotations when
-	 * 	the same transforms are applied).
+	 * By default, returns the transforms specified through the {@link RestResource#pojoSwaps() @RestResource.pojoSwaps()} annotation in child-to-parent order.
+	 * 	(i.e. POJO swaps will be applied in child-to-parent order with child annotations overriding parent annotations when
+	 * 	the same swaps are applied).
 	 *
 	 * @return The new set of transforms associated with this servet.
 	 */
-	protected Class<?>[] createTransforms() {
+	protected Class<?>[] createPojoSwaps() {
 		List<Class<?>> l = new LinkedList<Class<?>>();
 
 		// Transforms are loaded in parent-to-child order to allow overrides.
 		for (RestResource r : restResourceAnnotationsChildFirst.values())
-			for (Class c : r.transforms())
+			for (Class c : r.pojoSwaps())
 				l.add(c);
 
 		return l.toArray(new Class<?>[l.size()]);
@@ -427,12 +450,13 @@ public abstract class RestServlet extends HttpServlet {
 	 * Subclasses can override this method to provide their own specialized bean context.
 	 *
 	 * @param properties Servlet-level properties returned by {@link #createProperties()}.
-	 * @param transforms Servlet-level transforms returned by {@link #createTransforms()}.
+	 * @param beanFilters Servlet-level bean filters returned by {@link #createBeanFilters()}.
+	 * @param pojoSwaps Servlet-level POJO swaps returned by {@link #createPojoSwaps()}.
 	 * @return The new bean context.
 	 * @throws Exception If bean context not be constructed for any reason.
 	 */
-	protected BeanContext createBeanContext(ObjectMap properties, Class<?>[] transforms) throws Exception {
-		return ContextFactory.create().addTransforms(transforms).setProperties(properties).getBeanContext();
+	protected BeanContext createBeanContext(ObjectMap properties, Class<?>[] beanFilters, Class<?>[] pojoSwaps) throws Exception {
+		return ContextFactory.create().addBeanFilters(beanFilters).addPojoSwaps(pojoSwaps).setProperties(properties).getBeanContext();
 	}
 
 	/**
@@ -441,12 +465,13 @@ public abstract class RestServlet extends HttpServlet {
 	 * Subclasses can override this method to provide their own specialized serializer.
 	 *
 	 * @param properties Servlet-level properties returned by {@link #createProperties()}.
-	 * @param transforms Servlet-level transforms returned by {@link #createTransforms()}.
+	 * @param beanFilters Servlet-level bean filters returned by {@link #createBeanFilters()}.
+	 * @param pojoSwaps Servlet-level POJO swaps returned by {@link #createPojoSwaps()}.
 	 * @return The new URL-Encoding serializer.
 	 * @throws Exception If the serializer could not be constructed for any reason.
 	 */
-	protected UrlEncodingSerializer createUrlEncodingSerializer(ObjectMap properties, Class<?>[] transforms) throws Exception {
-		return new UrlEncodingSerializer().setProperties(properties).addTransforms(transforms);
+	protected UrlEncodingSerializer createUrlEncodingSerializer(ObjectMap properties, Class<?>[] beanFilters, Class<?>[] pojoSwaps) throws Exception {
+		return new UrlEncodingSerializer().setProperties(properties).addBeanFilters(beanFilters).addPojoSwaps(pojoSwaps);
 	}
 
 	/**
@@ -455,12 +480,13 @@ public abstract class RestServlet extends HttpServlet {
 	 * Subclasses can override this method to provide their own specialized parser.
 	 *
 	 * @param properties Servlet-level properties returned by {@link #createProperties()}.
-	 * @param transforms Servlet-level transforms returned by {@link #createTransforms()}.
+	 * @param beanFilters Servlet-level bean filters returned by {@link #createBeanFilters()}.
+	 * @param pojoSwaps Servlet-level POJO swaps returned by {@link #createPojoSwaps()}.
 	 * @return The new URL-Encoding parser.
 	 * @throws Exception If the parser could not be constructed for any reason.
 	 */
-	protected UrlEncodingParser createUrlEncodingParser(ObjectMap properties, Class<?>[] transforms) throws Exception {
-		return new UrlEncodingParser().setProperties(properties).addTransforms(transforms);
+	protected UrlEncodingParser createUrlEncodingParser(ObjectMap properties, Class<?>[] beanFilters, Class<?>[] pojoSwaps) throws Exception {
+		return new UrlEncodingParser().setProperties(properties).addBeanFilters(beanFilters).addPojoSwaps(pojoSwaps);
 	}
 
 	/**
@@ -474,11 +500,12 @@ public abstract class RestServlet extends HttpServlet {
 	 * 	and all parent classes.
 	 *
 	 * @param properties Servlet-level properties returned by {@link #createProperties()}.
-	 * @param transforms Servlet-level transforms returned by {@link #createTransforms()}.
+	 * @param beanFilters Servlet-level bean filters returned by {@link #createBeanFilters()}.
+	 * @param pojoSwaps Servlet-level POJO swaps returned by {@link #createPojoSwaps()}.
 	 * @return The group of serializers.
 	 * @throws Exception If serializer group could not be constructed for any reason.
 	 */
-	protected SerializerGroup createSerializers(ObjectMap properties, Class<?>[] transforms) throws Exception {
+	protected SerializerGroup createSerializers(ObjectMap properties, Class<?>[] beanFilters, Class<?>[] pojoSwaps) throws Exception {
 		SerializerGroup g = new SerializerGroup();
 
 		// Serializers are loaded in parent-to-child order to allow overrides.
@@ -491,7 +518,7 @@ public abstract class RestServlet extends HttpServlet {
 				}
 
 		g.setProperties(properties);
-		g.addTransforms(transforms);
+		g.addBeanFilters(beanFilters).addPojoSwaps(pojoSwaps);
 		return g;
 	}
 
@@ -506,11 +533,12 @@ public abstract class RestServlet extends HttpServlet {
 	 * 	and all parent classes.
 	 *
 	 * @param properties Servlet-level properties returned by {@link #createProperties()}.
-	 * @param transforms Servlet-level transforms returned by {@link #createTransforms()}.
+	 * @param beanFilters Servlet-level bean filters returned by {@link #createBeanFilters()}.
+	 * @param pojoSwaps Servlet-level POJO swaps returned by {@link #createPojoSwaps()}.
 	 * @return The group of parsers.
 	 * @throws Exception If parser group could not be constructed for any reason.
 	 */
-	protected ParserGroup createParsers(ObjectMap properties, Class<?>[] transforms) throws Exception {
+	protected ParserGroup createParsers(ObjectMap properties, Class<?>[] beanFilters, Class<?>[] pojoSwaps) throws Exception {
 		ParserGroup g = new ParserGroup();
 
 		// Parsers are loaded in parent-to-child order to allow overrides.
@@ -523,7 +551,7 @@ public abstract class RestServlet extends HttpServlet {
 				}
 
 		g.setProperties(properties);
-		g.addTransforms(transforms);
+		g.addBeanFilters(beanFilters).addPojoSwaps(pojoSwaps);
 		return g;
 	}
 
@@ -1859,7 +1887,7 @@ public abstract class RestServlet extends HttpServlet {
 				ArrayList<Inherit> si = new ArrayList<Inherit>(Arrays.asList(m.serializersInherit()));
 				ArrayList<Inherit> pi = new ArrayList<Inherit>(Arrays.asList(m.parsersInherit()));
 
-				if (m.serializers().length > 0 || m.parsers().length > 0 || m.properties().length > 0 || m.transforms().length > 0) {
+				if (m.serializers().length > 0 || m.parsers().length > 0 || m.properties().length > 0 || m.beanFilters().length > 0 || m.pojoSwaps().length > 0) {
 					mSerializers = (si.contains(SERIALIZERS) || m.serializers().length == 0 ? mSerializers.clone() : new SerializerGroup());
 					mParsers = (pi.contains(PARSERS) || m.parsers().length == 0 ? mParsers.clone() : new ParserGroup());
 					mUrlEncodingParser = mUrlEncodingParser.clone();
@@ -1906,7 +1934,7 @@ public abstract class RestServlet extends HttpServlet {
 				if (m.serializers().length > 0) {
 					mSerializers.append(m.serializers());
 					if (si.contains(TRANSFORMS))
-						mSerializers.addTransforms(getTransforms());
+						mSerializers.addBeanFilters(getBeanFilters()).addPojoSwaps(getPojoSwaps());
 					if (si.contains(PROPERTIES))
 						mSerializers.setProperties(getProperties());
 				}
@@ -1914,7 +1942,7 @@ public abstract class RestServlet extends HttpServlet {
 				if (m.parsers().length > 0) {
 					mParsers.append(m.parsers());
 					if (pi.contains(TRANSFORMS))
-						mParsers.addTransforms(getTransforms());
+						mParsers.addBeanFilters(getBeanFilters()).addPojoSwaps(getPojoSwaps());
 					if (pi.contains(PROPERTIES))
 						mParsers.setProperties(getProperties());
 				}
@@ -1930,10 +1958,16 @@ public abstract class RestServlet extends HttpServlet {
 					}
 				}
 
-				if (m.transforms().length > 0) {
-					mSerializers.addTransforms(m.transforms());
-					mParsers.addTransforms(m.transforms());
-					mUrlEncodingParser.addTransforms(m.transforms());
+				if (m.beanFilters().length > 0) {
+					mSerializers.addBeanFilters(m.beanFilters());
+					mParsers.addBeanFilters(m.beanFilters());
+					mUrlEncodingParser.addBeanFilters(m.beanFilters());
+				}
+
+				if (m.pojoSwaps().length > 0) {
+					mSerializers.addPojoSwaps(m.pojoSwaps());
+					mParsers.addPojoSwaps(m.pojoSwaps());
+					mUrlEncodingParser.addPojoSwaps(m.pojoSwaps());
 				}
 
 				if (m.encoders().length > 0 || ! m.inheritEncoders()) {
@@ -2445,7 +2479,7 @@ public abstract class RestServlet extends HttpServlet {
 					if (o == null)
 						o = req.getHeader(k);
 				}
-				if (o instanceof String) 
+				if (o instanceof String)
 					o = req.getVarResolverSession().resolve(o.toString());
 				return o;
 			}
@@ -2501,14 +2535,25 @@ public abstract class RestServlet extends HttpServlet {
 	}
 
 	/**
+	 * Returns the class-level bean filters associated with this servlet.
+	 * <p>
+	 * Created by the {@link #createBeanFilters()} method.
+	 *
+	 * @return The class-level bean filters associated with this servlet.
+	 */
+	public Class<?>[] getBeanFilters() {
+		return beanFilters;
+	}
+
+	/**
 	 * Returns the class-level POJO swaps associated with this servlet.
 	 * <p>
-	 * Created by the {@link #createTransforms()} method.
+	 * Created by the {@link #createPojoSwaps()} method.
 	 *
-	 * @return The class-level guards associated with this servlet.
+	 * @return The class-level POJO swaps associated with this servlet.
 	 */
-	public Class<?>[] getTransforms() {
-		return transforms;
+	public Class<?>[] getPojoSwaps() {
+		return pojoSwaps;
 	}
 
 	/**
@@ -2570,7 +2615,7 @@ public abstract class RestServlet extends HttpServlet {
 	/**
 	 * Returns the serializer group containing serializers used for serializing output POJOs in HTTP responses.
 	 * <p>
-	 * Created by the {@link #createSerializers(ObjectMap, Class[])} method.
+	 * Created by the {@link #createSerializers(ObjectMap, Class[], Class[])} method.
 	 *
 	 * @return The group of serializers.
 	 */
@@ -2581,7 +2626,7 @@ public abstract class RestServlet extends HttpServlet {
 	/**
 	 * Returns the parser group containing parsers used for parsing input into POJOs from HTTP requests.
 	 * <p>
-	 * Created by the {@link #createParsers(ObjectMap, Class[])} method.
+	 * Created by the {@link #createParsers(ObjectMap, Class[], Class[])} method.
 	 *
 	 * @return The group of parsers.
 	 */
@@ -2592,7 +2637,7 @@ public abstract class RestServlet extends HttpServlet {
 	/**
 	 * Returns the URL-encoding parser used for parsing URL query parameters.
 	 * <p>
-	 * Created by the {@link #createUrlEncodingParser(ObjectMap, Class[])} method.
+	 * Created by the {@link #createUrlEncodingParser(ObjectMap, Class[], Class[])} method.
 	 *
 	 * @return The URL-Encoding parser to use for parsing URL query parameters.
 	 */
@@ -2603,7 +2648,7 @@ public abstract class RestServlet extends HttpServlet {
 	/**
 	 * Returns the URL-encoding serializer used for serializing arguments in {@link Redirect} objects.
 	 * <p>
-	 * Created by the {@link #createUrlEncodingSerializer(ObjectMap, Class[])} method.
+	 * Created by the {@link #createUrlEncodingSerializer(ObjectMap, Class[], Class[])} method.
 	 *
 	 * @return The URL-Encoding serializer.
 	 */
@@ -2625,7 +2670,7 @@ public abstract class RestServlet extends HttpServlet {
 	/**
 	 * Returns the {@link BeanContext} object used for parsing path variables and header values.
 	 * <p>
-	 * Created by the {@link #createBeanContext(ObjectMap, Class[])} method.
+	 * Created by the {@link #createBeanContext(ObjectMap, Class[], Class[])} method.
 	 *
 	 * @return The bean context used for parsing path variables and header values.
 	 */

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-server/src/main/java/org/apache/juneau/server/annotation/Inherit.java
----------------------------------------------------------------------
diff --git a/juneau-server/src/main/java/org/apache/juneau/server/annotation/Inherit.java b/juneau-server/src/main/java/org/apache/juneau/server/annotation/Inherit.java
index de0f6ac..7173b27 100755
--- a/juneau-server/src/main/java/org/apache/juneau/server/annotation/Inherit.java
+++ b/juneau-server/src/main/java/org/apache/juneau/server/annotation/Inherit.java
@@ -26,7 +26,7 @@ public enum Inherit {
 	/** Inherit parsers from parent. */
 	PARSERS,
 
-	/** Inherit transforms from parent. */
+	/** Inherit bean filters and POJO swaps from parent. */
 	TRANSFORMS,
 
 	/** Inherit properties from parent. */

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-server/src/main/java/org/apache/juneau/server/annotation/RestMethod.java
----------------------------------------------------------------------
diff --git a/juneau-server/src/main/java/org/apache/juneau/server/annotation/RestMethod.java b/juneau-server/src/main/java/org/apache/juneau/server/annotation/RestMethod.java
index 7672f9e..912b70f 100755
--- a/juneau-server/src/main/java/org/apache/juneau/server/annotation/RestMethod.java
+++ b/juneau-server/src/main/java/org/apache/juneau/server/annotation/RestMethod.java
@@ -236,9 +236,14 @@ public @interface RestMethod {
 	Property[] properties() default {};
 
 	/**
-	 * Appends the specified transforms to all serializers and parsers used by this method.
+	 * Appends the specified bean filters to all serializers and parsers used by this method.
 	 */
-	Class<?>[] transforms() default {};
+	Class<?>[] beanFilters() default {};
+
+	/**
+	 * Appends the specified POJO swaps to all serializers and parsers used by this method.
+	 */
+	Class<?>[] pojoSwaps() default {};
 
 	/**
 	 * Possible HTTP response codes from this method.

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-server/src/main/java/org/apache/juneau/server/annotation/RestResource.java
----------------------------------------------------------------------
diff --git a/juneau-server/src/main/java/org/apache/juneau/server/annotation/RestResource.java b/juneau-server/src/main/java/org/apache/juneau/server/annotation/RestResource.java
index 7936682..cece441 100755
--- a/juneau-server/src/main/java/org/apache/juneau/server/annotation/RestResource.java
+++ b/juneau-server/src/main/java/org/apache/juneau/server/annotation/RestResource.java
@@ -89,20 +89,35 @@ public @interface RestResource {
 	Class<? extends RestConverter>[] converters() default {};
 
 	/**
-	 * Class-level POJO filters.
+	 * Class-level bean filters.
 	 * <p>
-	 * Shortcut to add POJO filters to the bean contexts of the objects returned by the following methods:
+	 * Shortcut to add bean filters to the bean contexts of the objects returned by the following methods:
 	 * <ul>
 	 * 	<li>{@link RestServlet#getBeanContext()}
 	 * 	<li>{@link RestServlet#getSerializers()}
 	 * 	<li>{@link RestServlet#getParsers()}
 	 * </ul>
 	 * <p>
-	 * If the specified class is an instance of {@link Transform}, then that filter is added.
-	 * Any other classes are wrapped in a {@link BeanFilter} to indicate that subclasses should
+	 * If the specified class is an instance of {@link BeanFilter}, then that filter is added.
+	 * Any other classes are wrapped in a {@link InterfaceBeanFilter} to indicate that subclasses should
 	 * 	be treated as the specified class type.
 	 */
-	Class<?>[] transforms() default {};
+	Class<?>[] beanFilters() default {};
+
+	/**
+	 * Class-level POJO swaps.
+	 * <p>
+	 * Shortcut to add POJO swaps to the bean contexts of the objects returned by the following methods:
+	 * <ul>
+	 * 	<li>{@link RestServlet#getBeanContext()}
+	 * 	<li>{@link RestServlet#getSerializers()}
+	 * 	<li>{@link RestServlet#getParsers()}
+	 * </ul>
+	 * <p>
+	 * If the specified class is an instance of {@link PojoSwap}, then that swap is added.
+	 * Any other classes are wrapped in a {@link SurrogateSwap}.
+	 */
+	Class<?>[] pojoSwaps() default {};
 
 	/**
 	 * Class-level properties.

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-server/src/main/java/org/apache/juneau/server/jaxrs/BaseProvider.java
----------------------------------------------------------------------
diff --git a/juneau-server/src/main/java/org/apache/juneau/server/jaxrs/BaseProvider.java b/juneau-server/src/main/java/org/apache/juneau/server/jaxrs/BaseProvider.java
index 576ae67..45d170a 100755
--- a/juneau-server/src/main/java/org/apache/juneau/server/jaxrs/BaseProvider.java
+++ b/juneau-server/src/main/java/org/apache/juneau/server/jaxrs/BaseProvider.java
@@ -50,8 +50,10 @@ public class BaseProvider implements MessageBodyReader<Object>, MessageBodyWrite
 			parsers.append(jp.parsers());
 			for (Property p : jp.properties())
 				properties.put(p.name(), p.value());
-			serializers.addTransforms(jp.transforms());
-			parsers.addTransforms(jp.transforms());
+			serializers.addBeanFilters(jp.beanFilters());
+			parsers.addBeanFilters(jp.beanFilters());
+			serializers.addPojoSwaps(jp.pojoSwaps());
+			parsers.addPojoSwaps(jp.pojoSwaps());
 		} catch (Exception e) {
 			throw new RuntimeException(e);
 		}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-server/src/main/java/org/apache/juneau/server/jaxrs/JuneauProvider.java
----------------------------------------------------------------------
diff --git a/juneau-server/src/main/java/org/apache/juneau/server/jaxrs/JuneauProvider.java b/juneau-server/src/main/java/org/apache/juneau/server/jaxrs/JuneauProvider.java
index a1ea139..ba160ec 100755
--- a/juneau-server/src/main/java/org/apache/juneau/server/jaxrs/JuneauProvider.java
+++ b/juneau-server/src/main/java/org/apache/juneau/server/jaxrs/JuneauProvider.java
@@ -43,15 +43,25 @@ import org.apache.juneau.xml.*;
 public @interface JuneauProvider {
 
 	/**
-	 * Provider-level POJO filters.
+	 * Provider-level bean filters.
 	 * <p>
 	 * 	These filters are applied to all serializers and parsers being used by the provider.
 	 * <p>
-	 * 	If the specified class is an instance of {@link Transform}, then that filter is added.
-	 * 	Any other classes are wrapped in a {@link BeanFilter} to indicate that subclasses should
+	 * 	If the specified class is an instance of {@link BeanFilter}, then that filter is added.
+	 * 	Any other classes are wrapped in a {@link InterfaceBeanFilter} to indicate that subclasses should
 	 * 		be treated as the specified class type.
 	 */
-	Class<?>[] transforms() default {};
+	Class<?>[] beanFilters() default {};
+
+	/**
+	 * Provider-level POJO swaps.
+	 * <p>
+	 * 	These POJO swaps are applied to all serializers and parsers being used by the provider.
+	 * <p>
+	 * 	If the specified class is an instance of {@link PojoSwap}, then that swap is added.
+	 * 	Any other classes are wrapped in a {@link SurrogateSwap}.
+	 */
+	Class<?>[] pojoSwaps() default {};
 
 	/**
 	 * Provider-level properties.

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-server/src/main/java/org/apache/juneau/server/labels/ResourceOptions.java
----------------------------------------------------------------------
diff --git a/juneau-server/src/main/java/org/apache/juneau/server/labels/ResourceOptions.java b/juneau-server/src/main/java/org/apache/juneau/server/labels/ResourceOptions.java
index ef46926..badd96e 100755
--- a/juneau-server/src/main/java/org/apache/juneau/server/labels/ResourceOptions.java
+++ b/juneau-server/src/main/java/org/apache/juneau/server/labels/ResourceOptions.java
@@ -25,7 +25,7 @@ import org.apache.juneau.server.annotation.*;
  * <p>
  * @author James Bognar (james.bognar@salesforce.com)
  */
-@Bean(properties={"label","description","className","methods","children","consumes","produces","guards","transforms","converters"})
+@Bean(properties={"label","description","className","methods","children","consumes","produces","guards","converters"})
 public class ResourceOptions {
 	private String label, description;
 	private String className;
@@ -33,7 +33,6 @@ public class ResourceOptions {
 	private ChildResourceDescriptions children;
 	private Collection<String> consumes, produces;
 	private Collection<String> guards;
-	private Collection<String> transforms;
 	private Collection<String> converters;
 
 	/**
@@ -51,7 +50,6 @@ public class ResourceOptions {
 			setProduces(servlet.getSupportedContentTypes());
 			setChildren(new ChildResourceDescriptions(servlet, req));
 			setGuards(servlet.getGuards());
-			setTransforms(servlet.getTransforms());
 			setConverters(servlet.getConverters());
 		} catch (RestServletException e) {
 			throw new RestException(SC_INTERNAL_SERVER_ERROR, e);
@@ -223,36 +221,6 @@ public class ResourceOptions {
 	}
 
 	/**
-	 * Returns the list of class-wide transforms associated with this resource (typically through {@link RestResource#transforms()} annotation).
-	 * @return The simple class names of the transforms.
-	 */
-	public Collection<String> getTransforms() {
-		return transforms;
-	}
-
-	/**
-	 * Sets the simple class names of the transforms associated with this resource.
-	 * @param transforms The simple class names of the transforms.
-	 * @return This object (for method chaining).
-	 */
-	public ResourceOptions setTransforms(Collection<String> transforms) {
-		this.transforms = transforms;
-		return this;
-	}
-
-	/**
-	 * Shortcut for calling {@link #setTransforms(Collection)} from {@link Class} instances.
-	 * @param transforms Transform classes associated with this resource.
-	 * @return This object (for method chaining).
-	 */
-	public ResourceOptions setTransforms(Class<?>[] transforms) {
-		Collection<String> l = new ArrayList<String>(transforms.length);
-		for (Class<?> c : transforms)
-			l.add(c.getSimpleName());
-		return setTransforms(l);
-	}
-
-	/**
 	 * Returns the list of class-wide converters associated with this resource (typically through {@link RestResource#converters()} annotation).
 	 * @return The simple class names of the converters.
 	 */


[2/2] incubator-juneau git commit: Split BeanFilters from PojoSwaps in API.

Posted by ja...@apache.org.
Split BeanFilters from PojoSwaps in API.

Project: http://git-wip-us.apache.org/repos/asf/incubator-juneau/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-juneau/commit/d8724071
Tree: http://git-wip-us.apache.org/repos/asf/incubator-juneau/tree/d8724071
Diff: http://git-wip-us.apache.org/repos/asf/incubator-juneau/diff/d8724071

Branch: refs/heads/master
Commit: d872407125cbc16d52f283d2dd88597dcacf92fe
Parents: bea31ab
Author: jamesbognar <ja...@gmail.com>
Authored: Sat Aug 27 17:11:29 2016 -0400
Committer: jamesbognar <ja...@gmail.com>
Committed: Sat Aug 27 17:11:29 2016 -0400

----------------------------------------------------------------------
 .../org/apache/juneau/client/RestClient.java    |  22 ++-
 .../java/org/apache/juneau/BeanContext.java     |  82 ++++++-----
 .../main/java/org/apache/juneau/ClassMeta.java  |   1 -
 .../java/org/apache/juneau/ContextFactory.java  |  23 ++-
 .../main/java/org/apache/juneau/CoreApi.java    |  23 ++-
 .../java/org/apache/juneau/html/HtmlParser.java |  10 +-
 .../apache/juneau/html/HtmlParserContext.java   |   3 +-
 .../org/apache/juneau/html/HtmlSerializer.java  |  10 +-
 .../juneau/html/HtmlSerializerContext.java      |   3 +-
 .../apache/juneau/internal/JuneauLogger.java    |   2 +-
 .../java/org/apache/juneau/jena/RdfParser.java  |  10 +-
 .../apache/juneau/jena/RdfParserContext.java    |   3 +-
 .../org/apache/juneau/jena/RdfSerializer.java   |  10 +-
 .../juneau/jena/RdfSerializerContext.java       |   3 +-
 .../java/org/apache/juneau/json/JsonParser.java |  10 +-
 .../apache/juneau/json/JsonParserContext.java   |   3 +-
 .../org/apache/juneau/json/JsonSerializer.java  |  12 +-
 .../juneau/json/JsonSerializerContext.java      |   3 +-
 .../juneau/msgpack/MsgPackInputStream.java      |   1 +
 .../apache/juneau/msgpack/MsgPackParser.java    |  10 +-
 .../juneau/msgpack/MsgPackParserContext.java    |   3 +-
 .../juneau/msgpack/MsgPackSerializer.java       |  10 +-
 .../msgpack/MsgPackSerializerContext.java       |   3 +-
 .../java/org/apache/juneau/parser/Parser.java   |  10 +-
 .../org/apache/juneau/parser/ParserGroup.java   |  20 ++-
 .../apache/juneau/serializer/Serializer.java    |  10 +-
 .../juneau/serializer/SerializerGroup.java      |  20 ++-
 .../apache/juneau/svl/VarResolverSession.java   |   2 +-
 .../org/apache/juneau/transform/BeanFilter.java |  14 +-
 .../org/apache/juneau/transform/PojoSwap.java   |   2 +-
 .../apache/juneau/transform/SurrogateSwap.java  |   2 +-
 .../org/apache/juneau/transform/Transform.java  |   5 -
 .../apache/juneau/urlencoding/UonParser.java    |  10 +-
 .../juneau/urlencoding/UonParserContext.java    |   3 +-
 .../juneau/urlencoding/UonSerializer.java       |  10 +-
 .../urlencoding/UonSerializerContext.java       |   3 +-
 .../juneau/urlencoding/UrlEncodingParser.java   |  10 +-
 .../urlencoding/UrlEncodingParserContext.java   |   3 +-
 .../urlencoding/UrlEncodingSerializer.java      |  10 +-
 .../UrlEncodingSerializerContext.java           |   3 +-
 .../java/org/apache/juneau/xml/XmlParser.java   |  10 +-
 .../org/apache/juneau/xml/XmlParserContext.java |   3 +-
 .../org/apache/juneau/xml/XmlSerializer.java    |  10 +-
 .../apache/juneau/xml/XmlSerializerContext.java |   3 +-
 .../java/org/apache/juneau/BeanConfigTest.java  |  16 +--
 .../java/org/apache/juneau/BeanFilterTest.java  |   4 +-
 .../java/org/apache/juneau/BeanMapTest.java     |   2 +-
 .../java/org/apache/juneau/ClassMetaTest.java   |  12 +-
 .../org/apache/juneau/DataConversionTest.java   |   2 +-
 .../java/org/apache/juneau/PojoSwapTest.java    |   6 +-
 .../test/java/org/apache/juneau/TestUtils.java  |   4 +-
 .../juneau/a/rttests/RoundTripBeanMapsTest.java |  42 +++---
 .../juneau/a/rttests/RoundTripEnumTest.java     |   2 +-
 .../juneau/a/rttests/RoundTripMapsTest.java     |  12 +-
 .../apache/juneau/a/rttests/RoundTripTest.java  |  22 ++-
 .../a/rttests/RoundTripTransformBeansTest.java  |  26 ++--
 .../juneau/transforms/BeanFilterTest.java       |   8 +-
 .../apache/juneau/transforms/BeanMapTest.java   |  10 +-
 .../transforms/ByteArrayBase64SwapTest.java     |   4 +-
 .../juneau/transforms/CalendarSwapTest.java     | 144 +++++++++----------
 .../juneau/transforms/DateFilterTest.java       |  24 ++--
 .../juneau/transforms/EnumerationSwapTest.java  |   2 +-
 .../juneau/transforms/IteratorSwapTest.java     |   2 +-
 .../juneau/transforms/ReaderFilterTest.java     |   4 +-
 .../org/apache/juneau/utils/PojoQueryTest.java  |   4 +-
 .../apache/juneau/utils/StringUtilsTest.java    |   2 +-
 .../microservice/resources/LogsResource.java    |   2 +-
 .../server/samples/RequestEchoResource.java     |   4 +-
 .../server/samples/AddressBookResourceTest.java |   6 +-
 .../SampleRemoteableServicesResourceTest.java   |   2 +-
 .../apache/juneau/server/samples/TestUtils.java |   4 +-
 .../server/BeanContextPropertiesResource.java   |   2 +-
 .../apache/juneau/server/GroupsResource.java    |   8 +-
 .../juneau/server/InheritanceResource.java      |  28 ++--
 .../apache/juneau/server/MessagesResource.java  |   2 +-
 .../apache/juneau/server/ParamsResource.java    |   2 +-
 .../juneau/server/TransformsParentResource.java |   2 +-
 .../juneau/server/TransformsResource.java       |   8 +-
 .../org/apache/juneau/server/TestUtils.java     |   2 +-
 .../org/apache/juneau/server/RestServlet.java   | 133 +++++++++++------
 .../juneau/server/annotation/Inherit.java       |   2 +-
 .../juneau/server/annotation/RestMethod.java    |   9 +-
 .../juneau/server/annotation/RestResource.java  |  25 +++-
 .../juneau/server/jaxrs/BaseProvider.java       |   6 +-
 .../juneau/server/jaxrs/JuneauProvider.java     |  18 ++-
 .../juneau/server/labels/ResourceOptions.java   |  34 +----
 86 files changed, 659 insertions(+), 417 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-client/src/main/java/org/apache/juneau/client/RestClient.java
----------------------------------------------------------------------
diff --git a/juneau-client/src/main/java/org/apache/juneau/client/RestClient.java b/juneau-client/src/main/java/org/apache/juneau/client/RestClient.java
index ebd0b8a..e5df5bc 100755
--- a/juneau-client/src/main/java/org/apache/juneau/client/RestClient.java
+++ b/juneau-client/src/main/java/org/apache/juneau/client/RestClient.java
@@ -902,14 +902,26 @@ public class RestClient extends CoreApi {
 	}
 
 	@Override /* CoreAPI */
-	public RestClient addTransforms(Class<?>...classes) throws LockedException {
-		super.addTransforms(classes);
+	public RestClient addBeanFilters(Class<?>...classes) throws LockedException {
+		super.addBeanFilters(classes);
 		if (serializer != null)
-			serializer.addTransforms(classes);
+			serializer.addBeanFilters(classes);
 		if (parser != null)
-			parser.addTransforms(classes);
+			parser.addBeanFilters(classes);
 		if (urlEncodingSerializer != null)
-			urlEncodingSerializer.addTransforms(classes);
+			urlEncodingSerializer.addBeanFilters(classes);
+		return this;
+	}
+
+	@Override /* CoreAPI */
+	public RestClient addPojoSwaps(Class<?>...classes) throws LockedException {
+		super.addPojoSwaps(classes);
+		if (serializer != null)
+			serializer.addPojoSwaps(classes);
+		if (parser != null)
+			parser.addPojoSwaps(classes);
+		if (urlEncodingSerializer != null)
+			urlEncodingSerializer.addPojoSwaps(classes);
 		return this;
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/BeanContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/BeanContext.java b/juneau-core/src/main/java/org/apache/juneau/BeanContext.java
index a43c36b..b21270e 100644
--- a/juneau-core/src/main/java/org/apache/juneau/BeanContext.java
+++ b/juneau-core/src/main/java/org/apache/juneau/BeanContext.java
@@ -30,7 +30,6 @@ import org.apache.juneau.json.*;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.serializer.*;
 import org.apache.juneau.transform.*;
-import org.apache.juneau.transform.Transform;
 
 /**
  * Core class of the Juneau architecture.
@@ -392,34 +391,46 @@ public class BeanContext extends Context {
 	public static final String BEAN_notBeanClasses_remove = "BeanContext.notBeanClasses.set.remove";
 
 	/**
-	 * List of transform classes on the bean context (<code>List&lt;Class&gt;</code>).
+	 * List of bean filters registered on the bean context (<code>List&lt;Class&gt;</code>).
 	 * <p>
 	 * There are two category of classes that can be passed in through this method:
 	 * <ul class='spaced-list'>
-	 * 	<li>Subclasses of {@link PojoSwap} and {@link BeanFilter}.
-	 * 	<li>Any other class.
+	 * 	<li>Subclasses of {@link BeanFilter}.
+	 * 	<li>Bean interface classes.  A shortcut for defining a {@link InterfaceBeanFilter}.
 	 * </ul>
+	 */
+	public static final String BEAN_beanFilters = "BeanContext.beanFilters.list";
+
+	/**
+	 * Add to the list of bean filters.
+	 */
+	public static final String BEAN_beanFilters_add = "BeanContext.beanFilters.list.add";
+
+	/**
+	 * Remove from the list of bean filters.
+	 */
+	public static final String BEAN_beanFilters_remove = "BeanContext.beanFilters.list.remove";
+
+	/**
+	 * List of POJO swaps registered on the bean context (<code>List&lt;Class&gt;</code>).
 	 * <p>
-	 * When <code>Transform</code> classes are specified, they identify objects that need to be
-	 * 	transformed into some other type during serialization (and optionally the reverse during parsing).
-	 * <p>
-	 * When non-<code>Transform</code> classes are specified, they are wrapped inside {@link BeanFilter BeanFilters}.
-	 * For example, if you have an interface <code>IFoo</code> and a subclass <code>Foo</code>, and you
-	 * 	only want properties defined on <code>IFoo</code> to be visible as bean properties for <code>Foo</code> objects,
-	 * 	you can simply pass in <code>IFoo.<jk>class</jk></code> to this method.
-	 * </p>
+	 * There are two category of classes that can be passed in through this method:
+	 * <ul class='spaced-list'>
+	 * 	<li>Subclasses of {@link PojoSwap}.
+	 * 	<li>Surrogate classes.  A shortcut for defining a {@link SurrogateSwap}.
+	 * </ul>
 	 */
-	public static final String BEAN_transforms = "BeanContext.transforms.list";
+	public static final String BEAN_pojoSwaps = "BeanContext.pojoSwaps.list";
 
 	/**
 	 * Add to the list of transform classes.
 	 */
-	public static final String BEAN_transforms_add = "BeanContext.transforms.list.add";
+	public static final String BEAN_pojoSwaps_add = "BeanContext.pojoSwaps.list.add";
 
 	/**
 	 * Remove from the list of transform classes.
 	 */
-	public static final String BEAN_transforms_remove = "BeanContext.transforms.list.remove";
+	public static final String BEAN_pojoSwaps_remove = "BeanContext.pojoSwaps.list.remove";
 
 	/**
 	 * Specifies implementation classes for an interface or abstract class (<code>Map&lt;Class,Class&gt;</code>).
@@ -579,30 +590,29 @@ public class BeanContext extends Context {
 		notBeanPackagePrefixes = l2.toArray(new String[l2.size()]);
 
 		LinkedList<BeanFilter<?>> lbf = new LinkedList<BeanFilter<?>>();
-		LinkedList<PojoSwap<?,?>> lpf = new LinkedList<PojoSwap<?,?>>();
- 		for (Class<?> c : pm.get(BEAN_transforms, Class[].class, new Class[0])) {
-			if (isParentClass(Transform.class, c)) {
-				try {
-					if (isParentClass(BeanFilter.class, c)) 
-						lbf.add((BeanFilter<?>)c.newInstance());
-					else if (isParentClass(PojoSwap.class, c)) 
-						lpf.add((PojoSwap<?,?>)c.newInstance());
-				} catch (Exception e) {
-					throw new RuntimeException(e);
-				}
-			} else {
- 				if (! c.getClass().isInterface()) {
-					List<SurrogateSwap<?,?>> l = SurrogateSwap.findTransforms(c);
-					if (! l.isEmpty()) {
-						for (SurrogateSwap<?,?> f : l)
-							lpf.add(f);
-						continue;
-					}
-				}
- 				lbf.add(new InterfaceBeanFilter(c));
+ 		try {
+			for (Class<?> c : pm.get(BEAN_beanFilters, Class[].class, new Class[0])) {
+				if (isParentClass(BeanFilter.class, c))
+					lbf.add((BeanFilter<?>)c.newInstance());
+				else
+					lbf.add(new InterfaceBeanFilter(c));
 			}
+		} catch (Exception e) {
+			throw new RuntimeException(e);
 		}
  		beanFilters = lbf.toArray(new BeanFilter[0]);
+
+		LinkedList<PojoSwap<?,?>> lpf = new LinkedList<PojoSwap<?,?>>();
+ 		try {
+			for (Class<?> c : pm.get(BEAN_pojoSwaps, Class[].class, new Class[0])) {
+				if (isParentClass(PojoSwap.class, c))
+					lpf.add((PojoSwap<?,?>)c.newInstance());
+				else
+					lpf.addAll(SurrogateSwap.findTransforms(c));
+			}
+		} catch (Exception e) {
+			throw new RuntimeException(e);
+		}
  		pojoSwaps = lpf.toArray(new PojoSwap[0]);
 
  		implClasses = new TreeMap<Class<?>,Class<?>>(new ClassComparator());

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/ClassMeta.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/ClassMeta.java b/juneau-core/src/main/java/org/apache/juneau/ClassMeta.java
index c603855..b97ffad 100644
--- a/juneau-core/src/main/java/org/apache/juneau/ClassMeta.java
+++ b/juneau-core/src/main/java/org/apache/juneau/ClassMeta.java
@@ -25,7 +25,6 @@ import java.util.*;
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.internal.*;
 import org.apache.juneau.transform.*;
-import org.apache.juneau.transform.Transform;
 import org.apache.juneau.utils.*;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/ContextFactory.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/ContextFactory.java b/juneau-core/src/main/java/org/apache/juneau/ContextFactory.java
index 2c6ab81..c7c39f3 100644
--- a/juneau-core/src/main/java/org/apache/juneau/ContextFactory.java
+++ b/juneau-core/src/main/java/org/apache/juneau/ContextFactory.java
@@ -93,7 +93,7 @@ import org.apache.juneau.parser.*;
  * 			Objects can be of any type, even complex types.<br>
  * 			Use lists if the ordering of the values in the set is important (similar to how the order of entries in a classpath is important).<br>
  * 			<br>
- * 			For example, the {@link BeanContext#BEAN_transforms} property is used to store transform classes.<br>
+ * 			For example, the {@link BeanContext#BEAN_beanFilters} property is used to store bean filters.<br>
  * 			It's name is <js>"BeanContext.transforms.list"</js>.
  *
  * 		<li><l>MAP</l> - A sorted map of key-value pairs.<br>
@@ -696,17 +696,32 @@ public final class ContextFactory extends Lockable {
 	}
 
 	/**
+	 * Shortcut for calling <code>addTo(<jsf>BEAN_beanFilters</jsf>, <jf>classes</jf>)</code>.
+	 *
+	 * @param classes The new setting value for the bean context.
+	 * @throws LockedException If {@link ContextFactory#lock()} was called on this class or the bean context.
+	 * @return This object (for method chaining).
+	 * @see ContextFactory#addToProperty(String, Object)
+	 * @see BeanContext#BEAN_beanFilters
+	 */
+	public ContextFactory addBeanFilters(Class<?>...classes) throws LockedException {
+		checkLock();
+		addToProperty(BEAN_beanFilters, classes);
+		return this;
+	}
+
+	/**
 	 * Shortcut for calling <code>addTo(<jsf>BEAN_transforms</jsf>, <jf>classes</jf>)</code>.
 	 *
 	 * @param classes The new setting value for the bean context.
 	 * @throws LockedException If {@link ContextFactory#lock()} was called on this class or the bean context.
 	 * @return This object (for method chaining).
 	 * @see ContextFactory#addToProperty(String, Object)
-	 * @see BeanContext#BEAN_transforms
+	 * @see BeanContext#BEAN_pojoSwaps
 	 */
-	public ContextFactory addTransforms(Class<?>...classes) throws LockedException {
+	public ContextFactory addPojoSwaps(Class<?>...classes) throws LockedException {
 		checkLock();
-		addToProperty(BEAN_transforms, classes);
+		addToProperty(BEAN_pojoSwaps, classes);
 		return this;
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/CoreApi.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/CoreApi.java b/juneau-core/src/main/java/org/apache/juneau/CoreApi.java
index 34e6429..ec3f138 100644
--- a/juneau-core/src/main/java/org/apache/juneau/CoreApi.java
+++ b/juneau-core/src/main/java/org/apache/juneau/CoreApi.java
@@ -116,17 +116,32 @@ public abstract class CoreApi extends Lockable {
 	}
 
 	/**
-	 * Shortcut for calling <code>getContextFactory().addTransforms(<jf>classes</jf>)</code>.
+	 * Shortcut for calling <code>getContextFactory().addBeanFilters(<jf>classes</jf>)</code>.
 	 *
 	 * @param classes The new setting value for the bean context.
 	 * @throws LockedException If {@link ContextFactory#lock()} was called on this class or the bean context.
 	 * @return This object (for method chaining).
 	 * @see ContextFactory#addToProperty(String, Object)
-	 * @see BeanContext#BEAN_transforms
+	 * @see BeanContext#BEAN_beanFilters
 	 */
-	public CoreApi addTransforms(Class<?>...classes) throws LockedException {
+	public CoreApi addBeanFilters(Class<?>...classes) throws LockedException {
 		checkLock();
-		contextFactory.addTransforms(classes);
+		contextFactory.addBeanFilters(classes);
+		return this;
+	}
+
+	/**
+	 * Shortcut for calling <code>getContextFactory().addPojoSwaps(<jf>classes</jf>)</code>.
+	 *
+	 * @param classes The new setting value for the bean context.
+	 * @throws LockedException If {@link ContextFactory#lock()} was called on this class or the bean context.
+	 * @return This object (for method chaining).
+	 * @see ContextFactory#addToProperty(String, Object)
+	 * @see BeanContext#BEAN_pojoSwaps
+	 */
+	public CoreApi addPojoSwaps(Class<?>...classes) throws LockedException {
+		checkLock();
+		contextFactory.addPojoSwaps(classes);
 		return this;
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/html/HtmlParser.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/html/HtmlParser.java b/juneau-core/src/main/java/org/apache/juneau/html/HtmlParser.java
index 3f74cd4..a5c3be0 100644
--- a/juneau-core/src/main/java/org/apache/juneau/html/HtmlParser.java
+++ b/juneau-core/src/main/java/org/apache/juneau/html/HtmlParser.java
@@ -698,8 +698,14 @@ public final class HtmlParser extends ReaderParser {
 	}
 
 	@Override /* CoreApi */
-	public HtmlParser addTransforms(Class<?>...classes) throws LockedException {
-		super.addTransforms(classes);
+	public HtmlParser addBeanFilters(Class<?>...classes) throws LockedException {
+		super.addBeanFilters(classes);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public HtmlParser addPojoSwaps(Class<?>...classes) throws LockedException {
+		super.addPojoSwaps(classes);
 		return this;
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/html/HtmlParserContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/html/HtmlParserContext.java b/juneau-core/src/main/java/org/apache/juneau/html/HtmlParserContext.java
index 716cc0a..2f74467 100644
--- a/juneau-core/src/main/java/org/apache/juneau/html/HtmlParserContext.java
+++ b/juneau-core/src/main/java/org/apache/juneau/html/HtmlParserContext.java
@@ -28,7 +28,8 @@ import org.apache.juneau.parser.*;
  * 	<li>{@link HtmlParser#setProperty(String,Object)}
  * 	<li>{@link HtmlParser#setProperties(ObjectMap)}
  * 	<li>{@link HtmlParser#addNotBeanClasses(Class[])}
- * 	<li>{@link HtmlParser#addTransforms(Class[])}
+ * 	<li>{@link HtmlParser#addBeanFilters(Class[])}
+ * 	<li>{@link HtmlParser#addPojoSwaps(Class[])}
  * 	<li>{@link HtmlParser#addImplClass(Class,Class)}
  * </ul>
  * <p>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializer.java b/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializer.java
index 361509f..4be1d0b 100644
--- a/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializer.java
+++ b/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializer.java
@@ -606,8 +606,14 @@ public class HtmlSerializer extends XmlSerializer {
 	}
 
 	@Override /* CoreApi */
-	public HtmlSerializer addTransforms(Class<?>...classes) throws LockedException {
-		super.addTransforms(classes);
+	public HtmlSerializer addBeanFilters(Class<?>...classes) throws LockedException {
+		super.addBeanFilters(classes);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public HtmlSerializer addPojoSwaps(Class<?>...classes) throws LockedException {
+		super.addPojoSwaps(classes);
 		return this;
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializerContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializerContext.java b/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializerContext.java
index 740a16a..7cc7ad6 100644
--- a/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializerContext.java
+++ b/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializerContext.java
@@ -26,7 +26,8 @@ import org.apache.juneau.xml.*;
  * 	<li>{@link HtmlSerializer#setProperty(String,Object)}
  * 	<li>{@link HtmlSerializer#setProperties(ObjectMap)}
  * 	<li>{@link HtmlSerializer#addNotBeanClasses(Class[])}
- * 	<li>{@link HtmlSerializer#addTransforms(Class[])}
+ * 	<li>{@link HtmlSerializer#addBeanFilters(Class[])}
+ * 	<li>{@link HtmlSerializer#addPojoSwaps(Class[])}
  * 	<li>{@link HtmlSerializer#addImplClass(Class,Class)}
  * </ul>
  * <p>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/internal/JuneauLogger.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/internal/JuneauLogger.java b/juneau-core/src/main/java/org/apache/juneau/internal/JuneauLogger.java
index d1c5ccf..17b77e5 100644
--- a/juneau-core/src/main/java/org/apache/juneau/internal/JuneauLogger.java
+++ b/juneau-core/src/main/java/org/apache/juneau/internal/JuneauLogger.java
@@ -31,7 +31,7 @@ import org.apache.juneau.transforms.*;
 public class JuneauLogger extends java.util.logging.Logger {
 
 	private static final WriterSerializer serializer = JsonSerializer.DEFAULT_LAX.clone()
-		.addTransforms(
+		.addPojoSwaps(
 			CalendarSwap.ISO8601DTZ.class,
 			DateSwap.ISO8601DTZ.class,
 			EnumerationSwap.class,

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/jena/RdfParser.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/jena/RdfParser.java b/juneau-core/src/main/java/org/apache/juneau/jena/RdfParser.java
index d968f61..b4e9d3e 100644
--- a/juneau-core/src/main/java/org/apache/juneau/jena/RdfParser.java
+++ b/juneau-core/src/main/java/org/apache/juneau/jena/RdfParser.java
@@ -463,8 +463,14 @@ public class RdfParser extends ReaderParser {
 	}
 
 	@Override /* CoreApi */
-	public RdfParser addTransforms(Class<?>...classes) throws LockedException {
-		super.addTransforms(classes);
+	public RdfParser addBeanFilters(Class<?>...classes) throws LockedException {
+		super.addBeanFilters(classes);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public RdfParser addPojoSwaps(Class<?>...classes) throws LockedException {
+		super.addPojoSwaps(classes);
 		return this;
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/jena/RdfParserContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/jena/RdfParserContext.java b/juneau-core/src/main/java/org/apache/juneau/jena/RdfParserContext.java
index 417b2ff..af575aa 100644
--- a/juneau-core/src/main/java/org/apache/juneau/jena/RdfParserContext.java
+++ b/juneau-core/src/main/java/org/apache/juneau/jena/RdfParserContext.java
@@ -29,7 +29,8 @@ import org.apache.juneau.xml.*;
  * 	<li>{@link RdfParser#setProperty(String,Object)}
  * 	<li>{@link RdfParser#setProperties(ObjectMap)}
  * 	<li>{@link RdfParser#addNotBeanClasses(Class[])}
- * 	<li>{@link RdfParser#addTransforms(Class[])}
+ * 	<li>{@link RdfParser#addBeanFilters(Class[])}
+ * 	<li>{@link RdfParser#addPojoSwaps(Class[])}
  * 	<li>{@link RdfParser#addImplClass(Class,Class)}
  * </ul>
  * <p>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/jena/RdfSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/jena/RdfSerializer.java b/juneau-core/src/main/java/org/apache/juneau/jena/RdfSerializer.java
index 3612162..080ecac 100644
--- a/juneau-core/src/main/java/org/apache/juneau/jena/RdfSerializer.java
+++ b/juneau-core/src/main/java/org/apache/juneau/jena/RdfSerializer.java
@@ -419,8 +419,14 @@ public class RdfSerializer extends WriterSerializer {
 	}
 
 	@Override /* CoreApi */
-	public RdfSerializer addTransforms(Class<?>...classes) throws LockedException {
-		super.addTransforms(classes);
+	public RdfSerializer addBeanFilters(Class<?>...classes) throws LockedException {
+		super.addBeanFilters(classes);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public RdfSerializer addPojoSwaps(Class<?>...classes) throws LockedException {
+		super.addPojoSwaps(classes);
 		return this;
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/jena/RdfSerializerContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/jena/RdfSerializerContext.java b/juneau-core/src/main/java/org/apache/juneau/jena/RdfSerializerContext.java
index 8ed8ba4..b3f001b 100644
--- a/juneau-core/src/main/java/org/apache/juneau/jena/RdfSerializerContext.java
+++ b/juneau-core/src/main/java/org/apache/juneau/jena/RdfSerializerContext.java
@@ -29,7 +29,8 @@ import org.apache.juneau.xml.*;
  * 	<li>{@link RdfSerializer#setProperty(String,Object)}
  * 	<li>{@link RdfSerializer#setProperties(ObjectMap)}
  * 	<li>{@link RdfSerializer#addNotBeanClasses(Class[])}
- * 	<li>{@link RdfSerializer#addTransforms(Class[])}
+ * 	<li>{@link RdfSerializer#addBeanFilters(Class[])}
+ * 	<li>{@link RdfSerializer#addPojoSwaps(Class[])}
  * 	<li>{@link RdfSerializer#addImplClass(Class,Class)}
  * </ul>
  * <p>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/json/JsonParser.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/json/JsonParser.java b/juneau-core/src/main/java/org/apache/juneau/json/JsonParser.java
index adfe20a..104b6bf 100644
--- a/juneau-core/src/main/java/org/apache/juneau/json/JsonParser.java
+++ b/juneau-core/src/main/java/org/apache/juneau/json/JsonParser.java
@@ -789,8 +789,14 @@ public final class JsonParser extends ReaderParser {
 	}
 
 	@Override /* CoreApi */
-	public JsonParser addTransforms(Class<?>...classes) throws LockedException {
-		super.addTransforms(classes);
+	public JsonParser addBeanFilters(Class<?>...classes) throws LockedException {
+		super.addBeanFilters(classes);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonParser addPojoSwaps(Class<?>...classes) throws LockedException {
+		super.addPojoSwaps(classes);
 		return this;
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/json/JsonParserContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/json/JsonParserContext.java b/juneau-core/src/main/java/org/apache/juneau/json/JsonParserContext.java
index 4cd81b6..88e3181 100644
--- a/juneau-core/src/main/java/org/apache/juneau/json/JsonParserContext.java
+++ b/juneau-core/src/main/java/org/apache/juneau/json/JsonParserContext.java
@@ -26,7 +26,8 @@ import org.apache.juneau.parser.*;
  * 	<li>{@link JsonParser#setProperty(String,Object)}
  * 	<li>{@link JsonParser#setProperties(ObjectMap)}
  * 	<li>{@link JsonParser#addNotBeanClasses(Class[])}
- * 	<li>{@link JsonParser#addTransforms(Class[])}
+ * 	<li>{@link JsonParser#addBeanFilters(Class[])}
+ * 	<li>{@link JsonParser#addPojoSwaps(Class[])}
  * 	<li>{@link JsonParser#addImplClass(Class,Class)}
  * </ul>
  * <p>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializer.java b/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializer.java
index 6b78de4..3bffde6 100644
--- a/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializer.java
+++ b/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializer.java
@@ -48,7 +48,7 @@ import org.apache.juneau.transform.*;
  * 	</ul>
  * <p>
  * 	The types above are considered "JSON-primitive" object types.  Any non-JSON-primitive object types are transformed
- * 		into JSON-primitive object types through {@link org.apache.juneau.transform.Transform Transforms} associated through the {@link CoreApi#addTransforms(Class...)}
+ * 		into JSON-primitive object types through {@link org.apache.juneau.transform.PojoSwap PojoSwaps} associated through the {@link CoreApi#addPojoSwaps(Class...)}
  * 		method.  Several default transforms are provided for transforming Dates, Enums, Iterators, etc...
  * <p>
  * 	This serializer provides several serialization options.  Typically, one of the predefined DEFAULT serializers will be sufficient.
@@ -388,8 +388,14 @@ public class JsonSerializer extends WriterSerializer {
 	}
 
 	@Override /* CoreApi */
-	public JsonSerializer addTransforms(Class<?>...classes) throws LockedException {
-		super.addTransforms(classes);
+	public JsonSerializer addBeanFilters(Class<?>...classes) throws LockedException {
+		super.addBeanFilters(classes);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer addPojoSwaps(Class<?>...classes) throws LockedException {
+		super.addPojoSwaps(classes);
 		return this;
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializerContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializerContext.java b/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializerContext.java
index 50e08af..e26b078 100644
--- a/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializerContext.java
+++ b/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializerContext.java
@@ -26,7 +26,8 @@ import org.apache.juneau.serializer.*;
  * 	<li>{@link JsonSerializer#setProperty(String,Object)}
  * 	<li>{@link JsonSerializer#setProperties(ObjectMap)}
  * 	<li>{@link JsonSerializer#addNotBeanClasses(Class[])}
- * 	<li>{@link JsonSerializer#addTransforms(Class[])}
+ * 	<li>{@link JsonSerializer#addBeanFilters(Class[])}
+ * 	<li>{@link JsonSerializer#addPojoSwaps(Class[])}
  * 	<li>{@link JsonSerializer#addImplClass(Class,Class)}
  * </ul>
  * <p>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackInputStream.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackInputStream.java b/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackInputStream.java
index 918af13..dad0509 100644
--- a/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackInputStream.java
+++ b/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackInputStream.java
@@ -15,6 +15,7 @@ package org.apache.juneau.msgpack;
 import static org.apache.juneau.msgpack.DataType.*;
 
 import java.io.*;
+
 import org.apache.juneau.internal.*;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackParser.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackParser.java b/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackParser.java
index 893d0a4..54aea46 100644
--- a/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackParser.java
+++ b/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackParser.java
@@ -227,8 +227,14 @@ public final class MsgPackParser extends InputStreamParser {
 	}
 
 	@Override /* CoreApi */
-	public MsgPackParser addTransforms(Class<?>...classes) throws LockedException {
-		super.addTransforms(classes);
+	public MsgPackParser addBeanFilters(Class<?>...classes) throws LockedException {
+		super.addBeanFilters(classes);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackParser addPojoSwaps(Class<?>...classes) throws LockedException {
+		super.addPojoSwaps(classes);
 		return this;
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackParserContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackParserContext.java b/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackParserContext.java
index 2ed5522..d5d5feb 100644
--- a/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackParserContext.java
+++ b/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackParserContext.java
@@ -26,7 +26,8 @@ import org.apache.juneau.parser.*;
  * 	<li>{@link MsgPackParser#setProperty(String,Object)}
  * 	<li>{@link MsgPackParser#setProperties(ObjectMap)}
  * 	<li>{@link MsgPackParser#addNotBeanClasses(Class[])}
- * 	<li>{@link MsgPackParser#addTransforms(Class[])}
+ * 	<li>{@link MsgPackParser#addBeanFilters(Class[])}
+ * 	<li>{@link MsgPackParser#addPojoSwaps(Class[])}
  * 	<li>{@link MsgPackParser#addImplClass(Class,Class)}
  * </ul>
  * <p>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java b/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
index 66905ae..025617f 100644
--- a/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
+++ b/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
@@ -244,8 +244,14 @@ public class MsgPackSerializer extends OutputStreamSerializer {
 	}
 
 	@Override /* CoreApi */
-	public MsgPackSerializer addTransforms(Class<?>...classes) throws LockedException {
-		super.addTransforms(classes);
+	public MsgPackSerializer addBeanFilters(Class<?>...classes) throws LockedException {
+		super.addBeanFilters(classes);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer addPojoSwaps(Class<?>...classes) throws LockedException {
+		super.addPojoSwaps(classes);
 		return this;
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerContext.java b/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerContext.java
index 49638b2..2e11845 100644
--- a/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerContext.java
+++ b/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerContext.java
@@ -26,7 +26,8 @@ import org.apache.juneau.serializer.*;
  * 	<li>{@link MsgPackSerializer#setProperty(String,Object)}
  * 	<li>{@link MsgPackSerializer#setProperties(ObjectMap)}
  * 	<li>{@link MsgPackSerializer#addNotBeanClasses(Class[])}
- * 	<li>{@link MsgPackSerializer#addTransforms(Class[])}
+ * 	<li>{@link MsgPackSerializer#addBeanFilters(Class[])}
+ * 	<li>{@link MsgPackSerializer#addPojoSwaps(Class[])}
  * 	<li>{@link MsgPackSerializer#addImplClass(Class,Class)}
  * </ul>
  * <p>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/parser/Parser.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/parser/Parser.java b/juneau-core/src/main/java/org/apache/juneau/parser/Parser.java
index 5ce5aac..5d66b76 100644
--- a/juneau-core/src/main/java/org/apache/juneau/parser/Parser.java
+++ b/juneau-core/src/main/java/org/apache/juneau/parser/Parser.java
@@ -697,8 +697,14 @@ public abstract class Parser extends CoreApi {
 	}
 
 	@Override /* CoreApi */
-	public Parser addTransforms(Class<?>...classes) throws LockedException {
-		super.addTransforms(classes);
+	public Parser addBeanFilters(Class<?>...classes) throws LockedException {
+		super.addBeanFilters(classes);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser addPojoSwaps(Class<?>...classes) throws LockedException {
+		super.addPojoSwaps(classes);
 		return this;
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/parser/ParserGroup.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/parser/ParserGroup.java b/juneau-core/src/main/java/org/apache/juneau/parser/ParserGroup.java
index 4b86852..77cd77b 100644
--- a/juneau-core/src/main/java/org/apache/juneau/parser/ParserGroup.java
+++ b/juneau-core/src/main/java/org/apache/juneau/parser/ParserGroup.java
@@ -252,16 +252,30 @@ public final class ParserGroup extends Lockable {
 	}
 
 	/**
-	 * Shortcut for calling {@link Parser#addTransforms(Class[])} on all parsers in this group.
+	 * Shortcut for calling {@link Parser#addBeanFilters(Class[])} on all parsers in this group.
 	 *
 	 * @param classes The classes to add bean filters for to the underlying bean context of all parsers in this group.
 	 * @throws LockedException If {@link #lock()} was called on this object.
 	 * @return This object (for method chaining).
 	 */
-	public ParserGroup addTransforms(Class<?>...classes) throws LockedException {
+	public ParserGroup addBeanFilters(Class<?>...classes) throws LockedException {
 		checkLock();
 		for (Parser p : parsers)
-			p.addTransforms(classes);
+			p.addBeanFilters(classes);
+		return this;
+	}
+
+	/**
+	 * Shortcut for calling {@link Parser#addPojoSwaps(Class[])} on all parsers in this group.
+	 *
+	 * @param classes The classes to add POJO swaps for to the underlying bean context of all parsers in this group.
+	 * @throws LockedException If {@link #lock()} was called on this object.
+	 * @return This object (for method chaining).
+	 */
+	public ParserGroup addPojoSwaps(Class<?>...classes) throws LockedException {
+		checkLock();
+		for (Parser p : parsers)
+			p.addPojoSwaps(classes);
 		return this;
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/serializer/Serializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/serializer/Serializer.java b/juneau-core/src/main/java/org/apache/juneau/serializer/Serializer.java
index c730705..884fde4 100644
--- a/juneau-core/src/main/java/org/apache/juneau/serializer/Serializer.java
+++ b/juneau-core/src/main/java/org/apache/juneau/serializer/Serializer.java
@@ -304,8 +304,14 @@ public abstract class Serializer extends CoreApi {
 	}
 
 	@Override /* CoreApi */
-	public Serializer addTransforms(Class<?>...classes) throws LockedException {
-		super.addTransforms(classes);
+	public Serializer addBeanFilters(Class<?>...classes) throws LockedException {
+		super.addBeanFilters(classes);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Serializer addPojoSwaps(Class<?>...classes) throws LockedException {
+		super.addPojoSwaps(classes);
 		return this;
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerGroup.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerGroup.java b/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerGroup.java
index ef35199..b693125 100644
--- a/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerGroup.java
+++ b/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerGroup.java
@@ -275,16 +275,30 @@ public final class SerializerGroup extends Lockable {
 	}
 
 	/**
-	 * Shortcut for calling {@link Serializer#addTransforms(Class[])} on all serializers in this group.
+	 * Shortcut for calling {@link Serializer#addBeanFilters(Class[])} on all serializers in this group.
 	 *
 	 * @param classes The classes to add bean filters for to the underlying bean context of all serializers in this group.
 	 * @throws LockedException If {@link #lock()} was called on this object.
 	 * @return This object (for method chaining).
 	 */
-	public SerializerGroup addTransforms(Class<?>...classes) throws LockedException {
+	public SerializerGroup addBeanFilters(Class<?>...classes) throws LockedException {
 		checkLock();
 		for (Serializer s : serializers)
-			s.addTransforms(classes);
+			s.addBeanFilters(classes);
+		return this;
+	}
+
+	/**
+	 * Shortcut for calling {@link Serializer#addPojoSwaps(Class[])} on all serializers in this group.
+	 *
+	 * @param classes The classes to add POJO swaps for to the underlying bean context of all serializers in this group.
+	 * @throws LockedException If {@link #lock()} was called on this object.
+	 * @return This object (for method chaining).
+	 */
+	public SerializerGroup addPojoSwaps(Class<?>...classes) throws LockedException {
+		checkLock();
+		for (Serializer s : serializers)
+			s.addPojoSwaps(classes);
 		return this;
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/svl/VarResolverSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/svl/VarResolverSession.java b/juneau-core/src/main/java/org/apache/juneau/svl/VarResolverSession.java
index 5ec3797..3750b28 100644
--- a/juneau-core/src/main/java/org/apache/juneau/svl/VarResolverSession.java
+++ b/juneau-core/src/main/java/org/apache/juneau/svl/VarResolverSession.java
@@ -13,11 +13,11 @@
 
 package org.apache.juneau.svl;
 
-import java.util.*;
 import static java.text.MessageFormat.*;
 import static org.apache.juneau.internal.StringUtils.*;
 
 import java.io.*;
+import java.util.*;
 
 import org.apache.juneau.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/transform/BeanFilter.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/transform/BeanFilter.java b/juneau-core/src/main/java/org/apache/juneau/transform/BeanFilter.java
index 1538d0a..0464fef 100644
--- a/juneau-core/src/main/java/org/apache/juneau/transform/BeanFilter.java
+++ b/juneau-core/src/main/java/org/apache/juneau/transform/BeanFilter.java
@@ -328,8 +328,8 @@ public abstract class BeanFilter<T> extends Transform {
 	 * 	}
 	 *
 	 * 	<jc>// Transform for defining subtypes</jc>
-	 * 	<jk>public class</jk> ATransform <jk>extends</jk> BeanFilter&lt;A&gt; {
-	 * 		<jk>public</jk> ATransform() {
+	 * 	<jk>public class</jk> AFilter <jk>extends</jk> BeanFilter&lt;A&gt; {
+	 * 		<jk>public</jk> AFilter() {
 	 * 			setSubTypeProperty(<js>"subType"</js>);
 	 * 			addSubType(Al.<jk>class</jk>, <js>"A1"</js>);
 	 * 			addSubType(A2.<jk>class</jk>, <js>"A2"</js>);
@@ -339,7 +339,7 @@ public abstract class BeanFilter<T> extends Transform {
 	 * <p>
 	 * 	The following shows what happens when serializing a subclassed object to JSON:
 	 * <p class='bcode'>
-	 * 	JsonSerializer s = <jk>new</jk> JsonSerializer().addTransforms(ATransform.<jk>class</jk>);
+	 * 	JsonSerializer s = <jk>new</jk> JsonSerializer().addBeanFilters(AFilter.<jk>class</jk>);
 	 * 	A1 a1 = <jk>new</jk> A1();
 	 * 	a1.<jf>f1</jf> = <js>"f1"</js>;
 	 * 	String r = s.serialize(a1);
@@ -348,7 +348,7 @@ public abstract class BeanFilter<T> extends Transform {
 	 * <p>
 	 * 	The following shows what happens when parsing back into the original object.
 	 * <p class='bcode'>
-	 * 	JsonParser p = <jk>new</jk> JsonParser().addTransforms(ATransform.<jk>class</jk>);
+	 * 	JsonParser p = <jk>new</jk> JsonParser().addBeanFilters(AFilter.<jk>class</jk>);
 	 * 	A a = p.parse(r, A.<jk>class</jk>);
 	 * 	<jsm>assertTrue</jsm>(a <jk>instanceof</jk> A1);
 	 * </p>
@@ -429,13 +429,13 @@ public abstract class BeanFilter<T> extends Transform {
 	 * 	}
 	 *
 	 * 	<jc>// Transform class</jc>
-	 * 	<jk>public class</jk> ATransform <jk>extends</jk> BeanFilter&lt;A&gt; {
-	 * 		<jk>public</jk> ATransform() {
+	 * 	<jk>public class</jk> AFilter <jk>extends</jk> BeanFilter&lt;A&gt; {
+	 * 		<jk>public</jk> AFilter() {
 	 * 			setInterfaceClass(A.<jk>class</jk>);
 	 * 		}
 	 * 	}
 	 *
-	 * 	JsonSerializer s = new JsonSerializer().addTransforms(ATransform.<jk>class</jk>);
+	 * 	JsonSerializer s = new JsonSerializer().addBeanFilters(AFilter.<jk>class</jk>);
 	 * 	A1 a1 = <jk>new</jk> A1();
 	 * 	String r = s.serialize(a1);
 	 * 	<jsm>assertEquals</jsm>(<js>"{f0:'f0'}"</js>, r);  <jc>// Note f1 is not serialized</jc>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/transform/PojoSwap.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/transform/PojoSwap.java b/juneau-core/src/main/java/org/apache/juneau/transform/PojoSwap.java
index c208e96..deb9092 100644
--- a/juneau-core/src/main/java/org/apache/juneau/transform/PojoSwap.java
+++ b/juneau-core/src/main/java/org/apache/juneau/transform/PojoSwap.java
@@ -35,7 +35,7 @@ import org.apache.juneau.serializer.*;
  * 	Swaps MUST declare a public no-arg constructor so that the bean context can instantiate them.
  * <p>
  * 	<code>PojoSwaps</code> are associated with instances of {@link BeanContext BeanContexts} by passing the swap class to
- * 	the {@link CoreApi#addTransforms(Class...)} method.<br>
+ * 	the {@link CoreApi#addPojoSwaps(Class...)} method.<br>
  * 	When associated with a bean context, fields of the specified type will automatically be converted when the
  * 	{@link BeanMap#get(Object)} or {@link BeanMap#put(String, Object)} methods are called.<br>
  * <p>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/transform/SurrogateSwap.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/transform/SurrogateSwap.java b/juneau-core/src/main/java/org/apache/juneau/transform/SurrogateSwap.java
index 5071121..2705dec 100644
--- a/juneau-core/src/main/java/org/apache/juneau/transform/SurrogateSwap.java
+++ b/juneau-core/src/main/java/org/apache/juneau/transform/SurrogateSwap.java
@@ -60,7 +60,7 @@ import org.apache.juneau.serializer.*;
  * 		can be instantiated by the parser before being converted into the normal class by the untransform method).
  * </ul>
  * <p>
- * Surrogate classes are associated with serializers and parsers using the {@link CoreApi#addTransforms(Class...)} method.
+ * Surrogate classes are associated with serializers and parsers using the {@link CoreApi#addPojoSwaps(Class...)} method.
  * <p class='bcode'>
  * 	<ja>@Test</ja>
  * 	<jk>public void</jk> test() <jk>throws</jk> Exception {

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/transform/Transform.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/transform/Transform.java b/juneau-core/src/main/java/org/apache/juneau/transform/Transform.java
index 852db25..0fa213e 100644
--- a/juneau-core/src/main/java/org/apache/juneau/transform/Transform.java
+++ b/juneau-core/src/main/java/org/apache/juneau/transform/Transform.java
@@ -12,8 +12,6 @@
  ***************************************************************************************************************************/
 package org.apache.juneau.transform;
 
-import org.apache.juneau.*;
-
 /**
  * Parent class for all bean and POJO swaps.
  *
@@ -33,9 +31,6 @@ import org.apache.juneau.*;
  * 	<li>{@link PojoSwap} - Non-bean filters for converting POJOs into serializable equivalents.
  * 	<li>{@link BeanFilter} - Bean filters for configuring how beans are handled.
  * </ul>
- * <p>
- * 	Transforms are associated with bean contexts (and serializers/parsers) through the {@link ContextFactory#addToProperty(String,Object)}
- * 		and {@link CoreApi#addTransforms(Class[])} methods.
  *
  *
  * <h6 class='topic'>Additional information</h6>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonParser.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonParser.java b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonParser.java
index 30d976f..29dc2bb 100644
--- a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonParser.java
+++ b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonParser.java
@@ -794,8 +794,14 @@ public class UonParser extends ReaderParser {
 	}
 
 	@Override /* CoreApi */
-	public UonParser addTransforms(Class<?>...classes) throws LockedException {
-		super.addTransforms(classes);
+	public UonParser addBeanFilters(Class<?>...classes) throws LockedException {
+		super.addBeanFilters(classes);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public UonParser addPojoSwaps(Class<?>...classes) throws LockedException {
+		super.addPojoSwaps(classes);
 		return this;
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonParserContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonParserContext.java b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonParserContext.java
index 614cffc..cc49787 100644
--- a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonParserContext.java
+++ b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonParserContext.java
@@ -26,7 +26,8 @@ import org.apache.juneau.parser.*;
  * 	<li>{@link UonParser#setProperty(String,Object)}
  * 	<li>{@link UonParser#setProperties(ObjectMap)}
  * 	<li>{@link UonParser#addNotBeanClasses(Class[])}
- * 	<li>{@link UonParser#addTransforms(Class[])}
+ * 	<li>{@link UonParser#addBeanFilters(Class[])}
+ * 	<li>{@link UonParser#addPojoSwaps(Class[])}
  * 	<li>{@link UonParser#addImplClass(Class,Class)}
  * </ul>
  * <p>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonSerializer.java b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonSerializer.java
index f886369..a1d1598 100644
--- a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonSerializer.java
+++ b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonSerializer.java
@@ -462,8 +462,14 @@ public class UonSerializer extends WriterSerializer {
 	}
 
 	@Override /* CoreApi */
-	public UonSerializer addTransforms(Class<?>...classes) throws LockedException {
-		super.addTransforms(classes);
+	public UonSerializer addBeanFilters(Class<?>...classes) throws LockedException {
+		super.addBeanFilters(classes);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public UonSerializer addPojoSwaps(Class<?>...classes) throws LockedException {
+		super.addPojoSwaps(classes);
 		return this;
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonSerializerContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonSerializerContext.java b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonSerializerContext.java
index f0d68fd..8cc571b 100644
--- a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonSerializerContext.java
+++ b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonSerializerContext.java
@@ -26,7 +26,8 @@ import org.apache.juneau.serializer.*;
  * 	<li>{@link UonSerializer#setProperty(String,Object)}
  * 	<li>{@link UonSerializer#setProperties(ObjectMap)}
  * 	<li>{@link UonSerializer#addNotBeanClasses(Class[])}
- * 	<li>{@link UonSerializer#addTransforms(Class[])}
+ * 	<li>{@link UonSerializer#addBeanFilters(Class[])}
+ * 	<li>{@link UonSerializer#addPojoSwaps(Class[])}
  * 	<li>{@link UonSerializer#addImplClass(Class,Class)}
  * </ul>
  * <p>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
index 0a177f5..a278ea9 100644
--- a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
+++ b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
@@ -523,8 +523,14 @@ public class UrlEncodingParser extends UonParser {
 	}
 
 	@Override /* CoreApi */
-	public UrlEncodingParser addTransforms(Class<?>...classes) throws LockedException {
-		super.addTransforms(classes);
+	public UrlEncodingParser addBeanFilters(Class<?>...classes) throws LockedException {
+		super.addBeanFilters(classes);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public UrlEncodingParser addPojoSwaps(Class<?>...classes) throws LockedException {
+		super.addPojoSwaps(classes);
 		return this;
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserContext.java b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserContext.java
index 20a0e2a..4e9424b 100644
--- a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserContext.java
+++ b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserContext.java
@@ -25,7 +25,8 @@ import org.apache.juneau.*;
  * 	<li>{@link UrlEncodingParser#setProperty(String,Object)}
  * 	<li>{@link UrlEncodingParser#setProperties(ObjectMap)}
  * 	<li>{@link UrlEncodingParser#addNotBeanClasses(Class[])}
- * 	<li>{@link UrlEncodingParser#addTransforms(Class[])}
+ * 	<li>{@link UrlEncodingParser#addBeanFilters(Class[])}
+ * 	<li>{@link UrlEncodingParser#addPojoSwaps(Class[])}
  * 	<li>{@link UrlEncodingParser#addImplClass(Class,Class)}
  * </ul>
  * <p>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java
index 2f059ef..c0114dc 100644
--- a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java
+++ b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java
@@ -432,8 +432,14 @@ public class UrlEncodingSerializer extends UonSerializer {
 	}
 
 	@Override /* CoreApi */
-	public UrlEncodingSerializer addTransforms(Class<?>...classes) throws LockedException {
-		super.addTransforms(classes);
+	public UrlEncodingSerializer addBeanFilters(Class<?>...classes) throws LockedException {
+		super.addBeanFilters(classes);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public UrlEncodingSerializer addPojoSwaps(Class<?>...classes) throws LockedException {
+		super.addPojoSwaps(classes);
 		return this;
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerContext.java b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerContext.java
index 0ba2c09..33aee1b 100644
--- a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerContext.java
+++ b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerContext.java
@@ -25,7 +25,8 @@ import org.apache.juneau.*;
  * 	<li>{@link UrlEncodingSerializer#setProperty(String,Object)}
  * 	<li>{@link UrlEncodingSerializer#setProperties(ObjectMap)}
  * 	<li>{@link UrlEncodingSerializer#addNotBeanClasses(Class[])}
- * 	<li>{@link UrlEncodingSerializer#addTransforms(Class[])}
+ * 	<li>{@link UrlEncodingSerializer#addBeanFilters(Class[])}
+ * 	<li>{@link UrlEncodingSerializer#addPojoSwaps(Class[])}
  * 	<li>{@link UrlEncodingSerializer#addImplClass(Class,Class)}
  * </ul>
  * <p>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/xml/XmlParser.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/xml/XmlParser.java b/juneau-core/src/main/java/org/apache/juneau/xml/XmlParser.java
index 250f7e7..53c8ac4 100644
--- a/juneau-core/src/main/java/org/apache/juneau/xml/XmlParser.java
+++ b/juneau-core/src/main/java/org/apache/juneau/xml/XmlParser.java
@@ -488,8 +488,14 @@ public class XmlParser extends ReaderParser {
 	}
 
 	@Override /* CoreApi */
-	public XmlParser addTransforms(Class<?>...classes) throws LockedException {
-		super.addTransforms(classes);
+	public XmlParser addBeanFilters(Class<?>...classes) throws LockedException {
+		super.addBeanFilters(classes);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public XmlParser addPojoSwaps(Class<?>...classes) throws LockedException {
+		super.addPojoSwaps(classes);
 		return this;
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/xml/XmlParserContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/xml/XmlParserContext.java b/juneau-core/src/main/java/org/apache/juneau/xml/XmlParserContext.java
index 1957943..dab4ed7 100644
--- a/juneau-core/src/main/java/org/apache/juneau/xml/XmlParserContext.java
+++ b/juneau-core/src/main/java/org/apache/juneau/xml/XmlParserContext.java
@@ -29,7 +29,8 @@ import org.apache.juneau.parser.*;
  * 	<li>{@link XmlParser#setProperty(String,Object)}
  * 	<li>{@link XmlParser#setProperties(ObjectMap)}
  * 	<li>{@link XmlParser#addNotBeanClasses(Class[])}
- * 	<li>{@link XmlParser#addTransforms(Class[])}
+ * 	<li>{@link XmlParser#addBeanFilters(Class[])}
+ * 	<li>{@link XmlParser#addPojoSwaps(Class[])}
  * 	<li>{@link XmlParser#addImplClass(Class,Class)}
  * </ul>
  * <p>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializer.java b/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializer.java
index 7fb2135..ff06da1 100644
--- a/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializer.java
+++ b/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializer.java
@@ -674,8 +674,14 @@ public class XmlSerializer extends WriterSerializer {
 	}
 
 	@Override /* CoreApi */
-	public XmlSerializer addTransforms(Class<?>...classes) throws LockedException {
-		super.addTransforms(classes);
+	public XmlSerializer addBeanFilters(Class<?>...classes) throws LockedException {
+		super.addBeanFilters(classes);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public XmlSerializer addPojoSwaps(Class<?>...classes) throws LockedException {
+		super.addPojoSwaps(classes);
 		return this;
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializerContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializerContext.java b/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializerContext.java
index c7a90aa..4032b34 100644
--- a/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializerContext.java
+++ b/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializerContext.java
@@ -26,7 +26,8 @@ import org.apache.juneau.serializer.*;
  * 	<li>{@link XmlSerializer#setProperty(String,Object)}
  * 	<li>{@link XmlSerializer#setProperties(ObjectMap)}
  * 	<li>{@link XmlSerializer#addNotBeanClasses(Class[])}
- * 	<li>{@link XmlSerializer#addTransforms(Class[])}
+ * 	<li>{@link XmlSerializer#addBeanFilters(Class[])}
+ * 	<li>{@link XmlSerializer#addPojoSwaps(Class[])}
  * 	<li>{@link XmlSerializer#addImplClass(Class,Class)}
  * </ul>
  * <p>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/test/java/org/apache/juneau/BeanConfigTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/test/java/org/apache/juneau/BeanConfigTest.java b/juneau-core/src/test/java/org/apache/juneau/BeanConfigTest.java
index dab2579..f4c3896 100755
--- a/juneau-core/src/test/java/org/apache/juneau/BeanConfigTest.java
+++ b/juneau-core/src/test/java/org/apache/juneau/BeanConfigTest.java
@@ -732,22 +732,22 @@ public class BeanConfigTest {
 		p2.setProperty(BEAN_notBeanPackages_remove, "bar");
 		assertSameCache(p1, p2);
 
-		p1.addTransforms(DummyPojoSwapA.class);
+		p1.addPojoSwaps(DummyPojoSwapA.class);
 		assertDifferentCache(p1, p2);
-		p2.addTransforms(DummyPojoSwapA.class);
+		p2.addPojoSwaps(DummyPojoSwapA.class);
 		assertSameCache(p1, p2);
-		p1.addTransforms(DummyPojoSwapB.class,DummyPojoSwapC.class);  // Order of filters is important!
-		p2.addTransforms(DummyPojoSwapC.class,DummyPojoSwapB.class);
+		p1.addPojoSwaps(DummyPojoSwapB.class,DummyPojoSwapC.class);  // Order of filters is important!
+		p2.addPojoSwaps(DummyPojoSwapC.class,DummyPojoSwapB.class);
 		assertDifferentCache(p1, p2);
 
 		p1 = new JsonParser();
 		p2 = new JsonParser();
-		p1.addTransforms(DummyBeanFilterA.class);
+		p1.addBeanFilters(DummyBeanFilterA.class);
 		assertDifferentCache(p1, p2);
-		p2.addTransforms(DummyBeanFilterA.class);
+		p2.addBeanFilters(DummyBeanFilterA.class);
 		assertSameCache(p1, p2);
-		p1.addTransforms(DummyBeanFilterB.class,DummyBeanFilterC.class);  // Order of filters is important!
-		p2.addTransforms(DummyBeanFilterC.class,DummyBeanFilterB.class);
+		p1.addBeanFilters(DummyBeanFilterB.class,DummyBeanFilterC.class);  // Order of filters is important!
+		p2.addBeanFilters(DummyBeanFilterC.class,DummyBeanFilterB.class);
 		assertDifferentCache(p1, p2);
 	}
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/test/java/org/apache/juneau/BeanFilterTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/test/java/org/apache/juneau/BeanFilterTest.java b/juneau-core/src/test/java/org/apache/juneau/BeanFilterTest.java
index b1b1740..5c92efc 100755
--- a/juneau-core/src/test/java/org/apache/juneau/BeanFilterTest.java
+++ b/juneau-core/src/test/java/org/apache/juneau/BeanFilterTest.java
@@ -97,7 +97,7 @@ public class BeanFilterTest {
 	//====================================================================================================
 	@Test
 	public void testParentClassTransform() throws Exception {
-		JsonSerializer s = new JsonSerializer.Simple().addTransforms(C1.class);
+		JsonSerializer s = new JsonSerializer.Simple().addBeanFilters(C1.class);
 
 		C1 c1 = new C2();
 		String r = s.serialize(c1);
@@ -122,7 +122,7 @@ public class BeanFilterTest {
 	//====================================================================================================
 	@Test
 	public void testParentClassTransform2() throws Exception {
-		JsonSerializer s = new JsonSerializer.Simple().addTransforms(D1.class);
+		JsonSerializer s = new JsonSerializer.Simple().addBeanFilters(D1.class);
 
 		D1 d1 = new D2();
 		String r = s.serialize(d1);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/test/java/org/apache/juneau/BeanMapTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/test/java/org/apache/juneau/BeanMapTest.java b/juneau-core/src/test/java/org/apache/juneau/BeanMapTest.java
index b1c4b97..5f7be6f 100755
--- a/juneau-core/src/test/java/org/apache/juneau/BeanMapTest.java
+++ b/juneau-core/src/test/java/org/apache/juneau/BeanMapTest.java
@@ -1485,7 +1485,7 @@ public class BeanMapTest {
 	//====================================================================================================
 	@Test
 	public void testCastToLinkedListUsingTransform() throws Exception {
-		BeanContext bc = ContextFactory.create().addTransforms(CalendarSwap.ISO8601DTZ.class).getBeanContext();
+		BeanContext bc = ContextFactory.create().addPojoSwaps(CalendarSwap.ISO8601DTZ.class).getBeanContext();
 
 		// With _class
 		ObjectMap m = new ObjectMap(bc);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/test/java/org/apache/juneau/ClassMetaTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/test/java/org/apache/juneau/ClassMetaTest.java b/juneau-core/src/test/java/org/apache/juneau/ClassMetaTest.java
index d6a8dcd..97fab32 100755
--- a/juneau-core/src/test/java/org/apache/juneau/ClassMetaTest.java
+++ b/juneau-core/src/test/java/org/apache/juneau/ClassMetaTest.java
@@ -137,7 +137,7 @@ public class ClassMetaTest {
 		assertEquals(hi2.getTransformedClassMeta().getInnerClass(), HI2.class);
 		assertEquals(hc2.getTransformedClassMeta().getInnerClass(), HC2.class);
 
-		bc = ContextFactory.create().addTransforms(HI1Swap.class).getBeanContext();
+		bc = ContextFactory.create().addPojoSwaps(HI1Swap.class).getBeanContext();
 		ooo = bc.getClassMeta(Object.class);
 		hi1 = bc.getClassMeta(HI1.class);
 		hc1 = bc.getClassMeta(HC1.class);
@@ -159,7 +159,7 @@ public class ClassMetaTest {
 		assertEquals(hi2.getTransformedClassMeta().getInnerClass(), Map.class);
 		assertEquals(hc2.getTransformedClassMeta().getInnerClass(), Map.class);
 
-		bc = ContextFactory.create().addTransforms(HC1Swap.class).getBeanContext();
+		bc = ContextFactory.create().addPojoSwaps(HC1Swap.class).getBeanContext();
 		ooo = bc.getClassMeta(Object.class);
 		hi1 = bc.getClassMeta(HI1.class);
 		hc1 = bc.getClassMeta(HC1.class);
@@ -181,7 +181,7 @@ public class ClassMetaTest {
 		assertEquals(hi2.getTransformedClassMeta().getInnerClass(), HI2.class);
 		assertEquals(hc2.getTransformedClassMeta().getInnerClass(), Map.class);
 
-		bc = ContextFactory.create().addTransforms(HI2Swap.class).getBeanContext();
+		bc = ContextFactory.create().addPojoSwaps(HI2Swap.class).getBeanContext();
 		ooo = bc.getClassMeta(Object.class);
 		hi1 = bc.getClassMeta(HI1.class);
 		hc1 = bc.getClassMeta(HC1.class);
@@ -203,7 +203,7 @@ public class ClassMetaTest {
 		assertEquals(hi2.getTransformedClassMeta().getInnerClass(), Map.class);
 		assertEquals(hc2.getTransformedClassMeta().getInnerClass(), Map.class);
 
-		bc = ContextFactory.create().addTransforms(HC2Swap.class).getBeanContext();
+		bc = ContextFactory.create().addPojoSwaps(HC2Swap.class).getBeanContext();
 		ooo = bc.getClassMeta(Object.class);
 		hi1 = bc.getClassMeta(HI1.class);
 		hc1 = bc.getClassMeta(HC1.class);
@@ -225,7 +225,7 @@ public class ClassMetaTest {
 		assertEquals(hi2.getTransformedClassMeta().getInnerClass(), HI2.class);
 		assertEquals(hc2.getTransformedClassMeta().getInnerClass(), Map.class);
 
-		bc = ContextFactory.create().addTransforms(HI1Swap.class,HC1Swap.class,HI2Swap.class,HC2Swap.class).getBeanContext();
+		bc = ContextFactory.create().addPojoSwaps(HI1Swap.class,HC1Swap.class,HI2Swap.class,HC2Swap.class).getBeanContext();
 		ooo = bc.getClassMeta(Object.class);
 		hi1 = bc.getClassMeta(HI1.class);
 		hc1 = bc.getClassMeta(HC1.class);
@@ -247,7 +247,7 @@ public class ClassMetaTest {
 		assertEquals(hi2.getTransformedClassMeta().getInnerClass(), Map.class);
 		assertEquals(hc2.getTransformedClassMeta().getInnerClass(), Map.class);
 
-		bc = ContextFactory.create().addTransforms(HC2Swap.class,HI2Swap.class,HC1Swap.class,HI1Swap.class).getBeanContext();
+		bc = ContextFactory.create().addPojoSwaps(HC2Swap.class,HI2Swap.class,HC1Swap.class,HI1Swap.class).getBeanContext();
 		ooo = bc.getClassMeta(Object.class);
 		hi1 = bc.getClassMeta(HI1.class);
 		hc1 = bc.getClassMeta(HC1.class);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/test/java/org/apache/juneau/DataConversionTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/test/java/org/apache/juneau/DataConversionTest.java b/juneau-core/src/test/java/org/apache/juneau/DataConversionTest.java
index 0c30966..e217850 100755
--- a/juneau-core/src/test/java/org/apache/juneau/DataConversionTest.java
+++ b/juneau-core/src/test/java/org/apache/juneau/DataConversionTest.java
@@ -134,7 +134,7 @@ public class DataConversionTest {
 	@Test
 	public void testObjectTransforms() throws Exception {
 		String s = "Jan 12, 2001";
-		BeanContext bc = ContextFactory.create().addTransforms(CalendarSwap.Medium.class).getBeanContext();
+		BeanContext bc = ContextFactory.create().addPojoSwaps(CalendarSwap.Medium.class).getBeanContext();
 		Calendar c = bc.convertToType(s, GregorianCalendar.class);
 		assertEquals(2001, c.get(Calendar.YEAR));
 		c = bc.convertToType(s, Calendar.class);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/test/java/org/apache/juneau/PojoSwapTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/test/java/org/apache/juneau/PojoSwapTest.java b/juneau-core/src/test/java/org/apache/juneau/PojoSwapTest.java
index acc702f..7d0cbd6 100755
--- a/juneau-core/src/test/java/org/apache/juneau/PojoSwapTest.java
+++ b/juneau-core/src/test/java/org/apache/juneau/PojoSwapTest.java
@@ -29,8 +29,8 @@ public class PojoSwapTest {
 	//====================================================================================================
 	@Test
 	public void testSameType() throws Exception {
-		JsonSerializer s = JsonSerializer.DEFAULT_LAX.clone().addTransforms(ATransform.class);
-		JsonParser p = JsonParser.DEFAULT.clone().addTransforms(ATransform.class);
+		JsonSerializer s = JsonSerializer.DEFAULT_LAX.clone().addPojoSwaps(ASwap.class);
+		JsonParser p = JsonParser.DEFAULT.clone().addPojoSwaps(ASwap.class);
 		String r;
 
 		r = s.serialize("foobar");
@@ -43,7 +43,7 @@ public class PojoSwapTest {
 		assertEquals("{xfoox:'xbarx'}", r);
 	}
 
-	public static class ATransform extends PojoSwap<String,String> {
+	public static class ASwap extends PojoSwap<String,String> {
 		@Override
 		public String swap(String o) throws SerializeException {
 			return "x" + o + "x";

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/test/java/org/apache/juneau/TestUtils.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/test/java/org/apache/juneau/TestUtils.java b/juneau-core/src/test/java/org/apache/juneau/TestUtils.java
index 18379cc..516510c 100755
--- a/juneau-core/src/test/java/org/apache/juneau/TestUtils.java
+++ b/juneau-core/src/test/java/org/apache/juneau/TestUtils.java
@@ -52,10 +52,10 @@ public class TestUtils {
 
 
 	private static JsonSerializer js2 = new JsonSerializer.Simple()
-		.addTransforms(IteratorSwap.class, EnumerationSwap.class);
+		.addPojoSwaps(IteratorSwap.class, EnumerationSwap.class);
 
 	private static JsonSerializer js3 = new JsonSerializer.Simple()
-		.addTransforms(IteratorSwap.class, EnumerationSwap.class)
+		.addPojoSwaps(IteratorSwap.class, EnumerationSwap.class)
 		.setProperty(BEAN_sortProperties, true);
 
 	/**

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanMapsTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanMapsTest.java b/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanMapsTest.java
index 743c543..18e5386 100755
--- a/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanMapsTest.java
+++ b/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanMapsTest.java
@@ -219,14 +219,14 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
 	//====================================================================================================
 	@Test
 	public void testSubTypesUsingAnnotation() throws Exception {
-		JsonSerializer js = JsonSerializer.DEFAULT_LAX.clone().addTransforms(XMLGregorianCalendarSwap.class);
+		JsonSerializer js = JsonSerializer.DEFAULT_LAX.clone().addPojoSwaps(XMLGregorianCalendarSwap.class);
 
 		// Skip validation-only tests
 		if (isValidationOnly())
 			return;
 
-		Serializer s = getSerializer().clone().addTransforms(XMLGregorianCalendarSwap.class);
-		Parser p = getParser().clone().addTransforms(XMLGregorianCalendarSwap.class);
+		Serializer s = getSerializer().clone().addPojoSwaps(XMLGregorianCalendarSwap.class);
+		Parser p = getParser().clone().addPojoSwaps(XMLGregorianCalendarSwap.class);
 
 		B1 b1 = B1.create();
 		Object r = s.serialize(b1);
@@ -294,14 +294,14 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
 	//====================================================================================================
 	@Test
 	public void testSubTypesUsingBeanFilter() throws Exception {
-		JsonSerializer js = JsonSerializer.DEFAULT_LAX.clone().addTransforms(XMLGregorianCalendarSwap.class);
+		JsonSerializer js = JsonSerializer.DEFAULT_LAX.clone().addPojoSwaps(XMLGregorianCalendarSwap.class);
 
 		// Skip validation-only tests
 		if (isValidationOnly())
 			return;
 
-		Serializer s = getSerializer().clone().addTransforms(CTransform.class, XMLGregorianCalendarSwap.class);
-		Parser p = getParser().clone().addTransforms(CTransform.class, XMLGregorianCalendarSwap.class);
+		Serializer s = getSerializer().clone().addBeanFilters(CFilter.class).addPojoSwaps(XMLGregorianCalendarSwap.class);
+		Parser p = getParser().clone().addBeanFilters(CFilter.class).addPojoSwaps(XMLGregorianCalendarSwap.class);
 
 		C1 c1 = C1.create();
 		Object r = s.serialize(c1);
@@ -356,8 +356,8 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
 		}
 	}
 
-	public static class CTransform extends BeanFilter<C> {
-		public CTransform() {
+	public static class CFilter extends BeanFilter<C> {
+		public CFilter() {
 			setSubTypeProperty("subType");
 			addSubType(C1.class, "C1");
 			addSubType(C2.class, "C2");
@@ -422,8 +422,8 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
 		if (isValidationOnly())
 			return;
 
-		Serializer s = getSerializer().clone().addTransforms(CAFilter.class);
-		Parser p = getParser().clone().addTransforms(CAFilter.class);
+		Serializer s = getSerializer().clone().addBeanFilters(CAFilter.class);
+		Parser p = getParser().clone().addBeanFilters(CAFilter.class);
 
 		CA1 c1 = CA1.create();
 		Object r = s.serialize(c1);
@@ -496,14 +496,14 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
 	//====================================================================================================
 	@Test
 	public void testPropertiesUsingTransform() throws Exception {
-		JsonSerializer js = JsonSerializer.DEFAULT_LAX.clone().addTransforms(D2Filter.class);
+		JsonSerializer js = JsonSerializer.DEFAULT_LAX.clone().addBeanFilters(D2Filter.class);
 
 		// Skip validation-only tests
 		if (isValidationOnly())
 			return;
 
-		Serializer s = getSerializer().clone().addTransforms(D2Filter.class);
-		Parser p = getParser().clone().addTransforms(D2Filter.class);
+		Serializer s = getSerializer().clone().addBeanFilters(D2Filter.class);
+		Parser p = getParser().clone().addBeanFilters(D2Filter.class);
 
 		D2 d = new D2().init();
 		Object r = s.serialize(d);
@@ -565,8 +565,8 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
 		if (isValidationOnly())
 			return;
 
-		Serializer s = getSerializer().clone().addTransforms(E2Filter.class);
-		Parser p = getParser().clone().addTransforms(E2Filter.class);
+		Serializer s = getSerializer().clone().addBeanFilters(E2Filter.class);
+		Parser p = getParser().clone().addBeanFilters(E2Filter.class);
 
 		E2 e = new E2().init();
 		Object r = s.serialize(e);
@@ -636,8 +636,8 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
 			return;
 
 		// --- Transform defined on parent class ---
-		s = getSerializer().clone().addTransforms(FB1Filter.class);
-		p = getParser().clone().addTransforms(FB1Filter.class);
+		s = getSerializer().clone().addBeanFilters(FB1Filter.class);
+		p = getParser().clone().addBeanFilters(FB1Filter.class);
 
 		t = new FB2().init();
 		r = s.serialize(t);
@@ -645,8 +645,8 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
 		assertObjectEquals("{f1:'f1'}", t);
 
 		// --- Transform defined on child class class ---
-		s = getSerializer().clone().addTransforms(FB2Filter.class);
-		p = getParser().clone().addTransforms(FB2Filter.class);
+		s = getSerializer().clone().addBeanFilters(FB2Filter.class);
+		p = getParser().clone().addBeanFilters(FB2Filter.class);
 
 		t = new FB2().init();
 		r = s.serialize(t);
@@ -654,8 +654,8 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
 		assertObjectEquals("{f1:'f1'}", t);
 
 		// --- Transform defined as plain class ---
-		s = getSerializer().clone().addTransforms(FB1.class);
-		p = getParser().clone().addTransforms(FB1.class);
+		s = getSerializer().clone().addBeanFilters(FB1.class);
+		p = getParser().clone().addBeanFilters(FB1.class);
 
 		t = new FB2().init();
 		r = s.serialize(t);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripEnumTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripEnumTest.java b/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripEnumTest.java
index 99c836d..baccca5 100755
--- a/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripEnumTest.java
+++ b/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripEnumTest.java
@@ -46,7 +46,7 @@ public class RoundTripEnumTest extends RoundTripTest {
 
 	@Test
 	public void testEnumB() throws Exception {
-		WriterSerializer s = new JsonSerializer.Simple().addTransforms(getTransforms());
+		WriterSerializer s = new JsonSerializer.Simple().addBeanFilters(getBeanFilters()).addPojoSwaps(getPojoSwaps());
 		BEnum t = BEnum.FOO;
 		assertEquals("'xfoo'", s.serialize(t));
 		t = roundTrip(t, BEnum.class);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripMapsTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripMapsTest.java b/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripMapsTest.java
index 66c2118..681f0da 100755
--- a/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripMapsTest.java
+++ b/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripMapsTest.java
@@ -40,7 +40,7 @@ public class RoundTripMapsTest extends RoundTripTest {
 	}
 
 	@Override /* RoundTripTest */
-	public Class<?>[] getTransforms() {
+	public Class<?>[] getPojoSwaps() {
 		return new Class<?>[]{
 			ByteArrayBase64Swap.class,
 			DateSwap.ISO8601DTZ.class,
@@ -108,27 +108,27 @@ public class RoundTripMapsTest extends RoundTripTest {
 		t.put(new byte[]{4,5,6}, null);
 		t.put(null, "b");
 
-		s = new JsonSerializer.Simple().addTransforms(getTransforms()).setProperty(SERIALIZER_trimNullProperties, false);
+		s = new JsonSerializer.Simple().addPojoSwaps(getPojoSwaps()).setProperty(SERIALIZER_trimNullProperties, false);
 		e = "{AQID:'a',BAUG:null,null:'b'}";
 		r = s.serialize(t);
 		assertEquals(e, r);
 
-		s = new XmlSerializer.SimpleXmlJsonSq().addTransforms(getTransforms()).setProperty(SERIALIZER_trimNullProperties, false);
+		s = new XmlSerializer.SimpleXmlJsonSq().addPojoSwaps(getPojoSwaps()).setProperty(SERIALIZER_trimNullProperties, false);
 		e = "<object><AQID>a</AQID><BAUG nil='true'/><_x0000_>b</_x0000_></object>";
 		r = s.serialize(t);
 		assertEquals(e, r);
 
-		s = new HtmlSerializer.Sq().addTransforms(getTransforms()).setProperty(SERIALIZER_trimNullProperties, false);
+		s = new HtmlSerializer.Sq().addPojoSwaps(getPojoSwaps()).setProperty(SERIALIZER_trimNullProperties, false);
 		e = "<table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>AQID</string></td><td><string>a</string></td></tr><tr><td><string>BAUG</string></td><td><null/></td></tr><tr><td><null/></td><td><string>b</string></td></tr></table>";
 		r = s.serialize(t);
 		assertEquals(e, r);
 
-		s = new UonSerializer.Encoding().addTransforms(getTransforms()).setProperty(SERIALIZER_trimNullProperties, false);
+		s = new UonSerializer.Encoding().addPojoSwaps(getPojoSwaps()).setProperty(SERIALIZER_trimNullProperties, false);
 		e = "$o(AQID=a,BAUG=%00,%00=b)";
 		r = s.serialize(t);
 		assertEquals(e, r);
 
-		s = new UrlEncodingSerializer().addTransforms(getTransforms()).setProperty(SERIALIZER_trimNullProperties, false);
+		s = new UrlEncodingSerializer().addPojoSwaps(getPojoSwaps()).setProperty(SERIALIZER_trimNullProperties, false);
 		e = "AQID=a&BAUG=%00&%00=b";
 		r = s.serialize(t);
 		assertEquals(e, r);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/d8724071/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripTest.java b/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripTest.java
index bb82df3..e70aa4a 100755
--- a/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripTest.java
+++ b/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripTest.java
@@ -189,8 +189,8 @@ public abstract class RoundTripTest {
 	public boolean debug = false;
 
 	public RoundTripTest(String label, Serializer s, Parser p, int flags) throws Exception {
-		this.s = s.clone().addTransforms(getTransforms());
-		this.p = p == null ? null : p.clone().addTransforms(getTransforms());
+		this.s = s.clone().addBeanFilters(getBeanFilters()).addPojoSwaps(getPojoSwaps());
+		this.p = p == null ? null : p.clone().addBeanFilters(getBeanFilters()).addPojoSwaps(getPojoSwaps());
 		this.label = label;
 
 		Map<Class<Object>, Class<? extends Object>> m = getImplClasses();
@@ -207,7 +207,11 @@ public abstract class RoundTripTest {
 	}
 
 
-	public Class<?>[] getTransforms() {
+	public Class<?>[] getBeanFilters() {
+		return new Class<?>[0];
+	}
+
+	public Class<?>[] getPojoSwaps() {
 		return new Class<?>[0];
 	}
 
@@ -266,10 +270,16 @@ public abstract class RoundTripTest {
 		return p;
 	}
 
-	protected void addTransforms(Class<?>...c) {
-		s.addTransforms(c);
+	protected void addBeanFilters(Class<?>...c) {
+		s.addBeanFilters(c);
+		if (p != null)
+			p.addBeanFilters(c);
+	}
+
+	protected void addPojoSwaps(Class<?>...c) {
+		s.addPojoSwaps(c);
 		if (p != null)
-			p.addTransforms(c);
+			p.addPojoSwaps(c);
 	}
 
 	public boolean isValidationOnly() {