http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/Common_UrlEncodingTest.java ---------------------------------------------------------------------- diff --git a/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/Common_UrlEncodingTest.java b/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/Common_UrlEncodingTest.java index c8f40d3..e0b6012 100755 --- a/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/Common_UrlEncodingTest.java +++ b/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/Common_UrlEncodingTest.java @@ -21,7 +21,6 @@ import java.util.*; import org.apache.juneau.*; import org.apache.juneau.annotation.*; -import org.apache.juneau.serializer.*; import org.apache.juneau.testbeans.*; import org.junit.*; @@ -34,17 +33,17 @@ public class Common_UrlEncodingTest { //==================================================================================================== @Test public void testTrimNullsFromBeans() throws Exception { - UrlEncodingSerializer s = new UrlEncodingSerializer(); + UrlEncodingSerializerBuilder s = new UrlEncodingSerializerBuilder(); A t1 = A.create(), t2; - s.setTrimNullProperties(false); - String r = s.serialize(t1); + s.trimNullProperties(false); + String r = s.build().serialize(t1); assertEquals("s1=null&s2=s2", r); t2 = p.parse(r, A.class); assertEqualObjects(t1, t2); - s.setTrimNullProperties(true); - r = s.serialize(t1); + s.trimNullProperties(true); + r = s.build().serialize(t1); assertEquals("s2=s2", r); t2 = p.parse(r, A.class); assertEqualObjects(t1, t2); @@ -65,18 +64,18 @@ public class Common_UrlEncodingTest { //==================================================================================================== @Test public void testTrimEmptyMaps() throws Exception { - UrlEncodingSerializer s = UrlEncodingSerializer.DEFAULT.clone(); + UrlEncodingSerializerBuilder s = new UrlEncodingSerializerBuilder(); B t1 = B.create(), t2; String r; - s.setTrimEmptyMaps(false); - r = s.serialize(t1); + s.trimEmptyMaps(false); + r = s.build().serialize(t1); assertEquals("f1=()&f2=(f2a=null,f2b=(s2=s2))", r); t2 = p.parse(r, B.class); assertEqualObjects(t1, t2); - s.setTrimEmptyMaps(true); - r = s.serialize(t1); + s.trimEmptyMaps(true); + r = s.build().serialize(t1); assertEquals("f2=(f2a=null,f2b=(s2=s2))", r); t2 = p.parse(r, B.class); assertNull(t2.f1); @@ -98,18 +97,18 @@ public class Common_UrlEncodingTest { //==================================================================================================== @Test public void testTrimEmptyLists() throws Exception { - UrlEncodingSerializer s = new UrlEncodingSerializer(); + UrlEncodingSerializerBuilder s = new UrlEncodingSerializerBuilder(); C t1 = C.create(), t2; String r; - s.setTrimEmptyCollections(false); - r = s.serialize(t1); + s.trimEmptyCollections(false); + r = s.build().serialize(t1); assertEquals("f1=@()&f2=@(null,(s2=s2))", r); t2 = p.parse(r, C.class); assertEqualObjects(t1, t2); - s.setTrimEmptyCollections(true); - r = s.serialize(t1); + s.trimEmptyCollections(true); + r = s.build().serialize(t1); assertEquals("f2=@(null,(s2=s2))", r); t2 = p.parse(r, C.class); assertNull(t2.f1); @@ -131,18 +130,18 @@ public class Common_UrlEncodingTest { //==================================================================================================== @Test public void testTrimEmptyArrays() throws Exception { - UrlEncodingSerializer s = new UrlEncodingSerializer(); + UrlEncodingSerializerBuilder s = new UrlEncodingSerializerBuilder(); D t1 = D.create(), t2; String r; - s.setTrimEmptyCollections(false); - r = s.serialize(t1); + s.trimEmptyCollections(false); + r = s.build().serialize(t1); assertEquals("f1=@()&f2=@(null,(s2=s2))", r); t2 = p.parse(r, D.class); assertEqualObjects(t1, t2); - s.setTrimEmptyCollections(true); - r = s.serialize(t1); + s.trimEmptyCollections(true); + r = s.build().serialize(t1); assertEquals("f2=@(null,(s2=s2))", r); t2 = p.parse(r, D.class); assertNull(t2.f1); @@ -242,13 +241,13 @@ public class Common_UrlEncodingTest { //==================================================================================================== @Test public void testUris() throws Exception { - WriterSerializer s = new UrlEncodingSerializer(); + UrlEncodingSerializerBuilder s = new UrlEncodingSerializerBuilder(); TestURI t = new TestURI(); String r; String expected = ""; - s.setRelativeUriBase(null); - r = s.serialize(t); + s.relativeUriBase(null); + r = s.build().serialize(t); expected = "" +"f0=f0/x0" +"&f1=f1/x1" @@ -267,12 +266,12 @@ public class Common_UrlEncodingTest { +"&fe='http://www.apache.org/fe/xe?foo=bar%26label2=MY_LABEL'"; assertEquals(expected, r); - s.setRelativeUriBase(""); // Same as null. - r = s.serialize(t); + s.relativeUriBase(""); // Same as null. + r = s.build().serialize(t); assertEquals(expected, r); - s.setRelativeUriBase("/cr"); - r = s.serialize(t); + s.relativeUriBase("/cr"); + r = s.build().serialize(t); expected = "" +"f0=/cr/f0/x0" +"&f1=/cr/f1/x1" @@ -291,12 +290,12 @@ public class Common_UrlEncodingTest { +"&fe='http://www.apache.org/fe/xe?foo=bar%26label2=MY_LABEL'"; assertEquals(expected, r); - s.setRelativeUriBase("/cr/"); // Same as above - r = s.serialize(t); + s.relativeUriBase("/cr/"); // Same as above + r = s.build().serialize(t); assertEquals(expected, r); - s.setRelativeUriBase("/"); - r = s.serialize(t); + s.relativeUriBase("/"); + r = s.build().serialize(t); expected = "" +"f0=/f0/x0" +"&f1=/f1/x1" @@ -315,10 +314,10 @@ public class Common_UrlEncodingTest { +"&fe='http://www.apache.org/fe/xe?foo=bar%26label2=MY_LABEL'"; assertEquals(expected, r); - s.setRelativeUriBase(null); + s.relativeUriBase(null); - s.setAbsolutePathUriBase("http://foo"); - r = s.serialize(t); + s.absolutePathUriBase("http://foo"); + r = s.build().serialize(t); expected = "" +"f0=f0/x0" +"&f1=f1/x1" @@ -337,12 +336,12 @@ public class Common_UrlEncodingTest { +"&fe='http://www.apache.org/fe/xe?foo=bar%26label2=MY_LABEL'"; assertEquals(expected, r); - s.setAbsolutePathUriBase("http://foo/"); - r = s.serialize(t); + s.absolutePathUriBase("http://foo/"); + r = s.build().serialize(t); assertEquals(expected, r); - s.setAbsolutePathUriBase(""); // Same as null. - r = s.serialize(t); + s.absolutePathUriBase(""); // Same as null. + r = s.build().serialize(t); expected = "" +"f0=f0/x0" +"&f1=f1/x1" @@ -363,31 +362,11 @@ public class Common_UrlEncodingTest { } //==================================================================================================== - // Validate that you cannot update properties on locked serializer. - //==================================================================================================== - @Test - public void testLockedSerializer() throws Exception { - UrlEncodingSerializer s = new UrlEncodingSerializer().lock(); - try { - s.setUseWhitespace(true); - fail("Locked exception not thrown"); - } catch (LockedException e) {} - try { - s.setAddBeanTypeProperties(true); - fail("Locked exception not thrown"); - } catch (LockedException e) {} - try { - s.setBeanMapPutReturnsOldValue(true); - fail("Locked exception not thrown"); - } catch (LockedException e) {} - } - - //==================================================================================================== // Recursion //==================================================================================================== @Test public void testRecursion() throws Exception { - WriterSerializer s = new UrlEncodingSerializer(); + UrlEncodingSerializerBuilder s = new UrlEncodingSerializerBuilder(); R1 r1 = new R1(); R2 r2 = new R2(); @@ -398,7 +377,7 @@ public class Common_UrlEncodingTest { // No recursion detection try { - s.serialize(r1); + s.build().serialize(r1); fail("Exception expected!"); } catch (Exception e) { String msg = e.getLocalizedMessage(); @@ -406,9 +385,9 @@ public class Common_UrlEncodingTest { } // Recursion detection, no ignore - s.setDetectRecursions(true); + s.detectRecursions(true); try { - s.serialize(r1); + s.build().serialize(r1); fail("Exception expected!"); } catch (Exception e) { String msg = e.getLocalizedMessage(); @@ -418,8 +397,8 @@ public class Common_UrlEncodingTest { assertTrue(msg.contains("->[3]r1:org.apache.juneau.urlencoding.Common_UrlEncodingTest$R1")); } - s.setIgnoreRecursions(true); - assertEquals("name=foo&r2=(name=bar,r3=(name=baz))", s.serialize(r1)); + s.ignoreRecursions(true); + assertEquals("name=foo&r2=(name=bar,r3=(name=baz))", s.build().serialize(r1)); } public static class R1 {
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UonParserReaderTest.java ---------------------------------------------------------------------- diff --git a/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UonParserReaderTest.java b/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UonParserReaderTest.java index ee37cb0..32833b9 100755 --- a/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UonParserReaderTest.java +++ b/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UonParserReaderTest.java @@ -17,6 +17,7 @@ import static org.junit.Assert.*; import java.io.*; import org.apache.juneau.*; +import org.apache.juneau.uon.*; import org.junit.*; @SuppressWarnings({"javadoc","resource"}) http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UonParserTest.java ---------------------------------------------------------------------- diff --git a/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UonParserTest.java b/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UonParserTest.java index de54711..87b46e1 100755 --- a/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UonParserTest.java +++ b/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UonParserTest.java @@ -17,6 +17,7 @@ import static org.junit.Assert.*; import java.util.*; import org.apache.juneau.parser.*; +import org.apache.juneau.uon.*; import org.junit.*; @SuppressWarnings({"rawtypes","javadoc"}) http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UonSerializerTest.java ---------------------------------------------------------------------- diff --git a/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UonSerializerTest.java b/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UonSerializerTest.java index 4c6d001..bf3bc75 100755 --- a/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UonSerializerTest.java +++ b/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UonSerializerTest.java @@ -15,6 +15,7 @@ package org.apache.juneau.urlencoding; import static org.junit.Assert.*; import org.apache.juneau.*; +import org.apache.juneau.uon.*; import org.junit.*; @SuppressWarnings("javadoc") http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UrlEncodingParserTest.java ---------------------------------------------------------------------- diff --git a/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UrlEncodingParserTest.java b/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UrlEncodingParserTest.java index 753d585..474c467 100755 --- a/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UrlEncodingParserTest.java +++ b/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UrlEncodingParserTest.java @@ -850,7 +850,7 @@ public class UrlEncodingParserTest { UrlEncodingParser p; String in; - p = UrlEncodingParser.DEFAULT.clone().setExpandedParams(true); + p = new UrlEncodingParserBuilder().expandedParams(true).build(); in = "" + "f01=a&f01=b" + "&f02=c&f02=d" http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UrlEncodingSerializerTest.java ---------------------------------------------------------------------- diff --git a/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UrlEncodingSerializerTest.java b/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UrlEncodingSerializerTest.java index 84f240b..91dc1a6 100755 --- a/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UrlEncodingSerializerTest.java +++ b/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UrlEncodingSerializerTest.java @@ -17,7 +17,7 @@ import static org.junit.Assert.*; import java.util.*; import org.apache.juneau.*; -import org.apache.juneau.json.JsonSerializer; +import org.apache.juneau.json.*; import org.junit.*; @SuppressWarnings("javadoc") @@ -343,7 +343,7 @@ public class UrlEncodingSerializerTest { + "&f20=@(@((a=a,b=1,c=true)),@((a=a,b=1,c=true)))"; assertEquals(e, r); - s = UrlEncodingSerializer.DEFAULT.clone().setExpandedParams(true); + s = new UrlEncodingSerializerBuilder().expandedParams(true).build(); r = s.serialize(t); e = "" + "f01=a&f01=b" @@ -404,7 +404,7 @@ public class UrlEncodingSerializerTest { + "&f20=@((a=a,b=1,c=true))&f20=@((a=a,b=1,c=true))"; assertEquals(e, r); - s = UrlEncodingSerializer.DEFAULT.clone().setExpandedParams(true); + s = new UrlEncodingSerializerBuilder().expandedParams(true).build(); r = s.serialize(t); e = "" + "f01=a&f01=b" http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core-test/src/test/java/org/apache/juneau/utils/PojoQueryTest.java ---------------------------------------------------------------------- diff --git a/juneau-core-test/src/test/java/org/apache/juneau/utils/PojoQueryTest.java b/juneau-core-test/src/test/java/org/apache/juneau/utils/PojoQueryTest.java index 5f451fd..c73d51a 100755 --- a/juneau-core-test/src/test/java/org/apache/juneau/utils/PojoQueryTest.java +++ b/juneau-core-test/src/test/java/org/apache/juneau/utils/PojoQueryTest.java @@ -87,7 +87,7 @@ public class PojoQueryTest { int limit = 0; boolean ignoreCase = false; BeanSession session = BeanContext.DEFAULT.createSession(); - WriterSerializer s = new JsonSerializer.Simple().addPojoSwaps(CalendarSwap.DateTimeSimple.class); + WriterSerializer s = new JsonSerializerBuilder().simple().pojoSwaps(CalendarSwap.DateTimeSimple.class).build(); B[] in; PojoQuery filter; @@ -603,7 +603,7 @@ public class PojoQueryTest { int limit = 0; boolean ignoreCase = false; BeanSession session = BeanContext.DEFAULT.createSession(); - WriterSerializer s = new JsonSerializer.Simple().addPojoSwaps(CalendarSwap.DateTimeSimple.class); + WriterSerializer s = new JsonSerializerBuilder().simple().pojoSwaps(CalendarSwap.DateTimeSimple.class).build(); List results; I[] in = new I[] { http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core-test/src/test/java/org/apache/juneau/utils/PojoRestTest.java ---------------------------------------------------------------------- diff --git a/juneau-core-test/src/test/java/org/apache/juneau/utils/PojoRestTest.java b/juneau-core-test/src/test/java/org/apache/juneau/utils/PojoRestTest.java index be25076..f274435 100755 --- a/juneau-core-test/src/test/java/org/apache/juneau/utils/PojoRestTest.java +++ b/juneau-core-test/src/test/java/org/apache/juneau/utils/PojoRestTest.java @@ -71,7 +71,7 @@ public class PojoRestTest { model.put("/person1", p); // Make sure it got stored correctly. - JsonSerializer serializer = JsonSerializer.DEFAULT_LAX.clone().setAddBeanTypeProperties(false); + JsonSerializer serializer = new JsonSerializerBuilder().simple().addBeanTypeProperties(false).build(); assertEquals("{person1:{name:'some name',age:123,addresses:[{street:'street A',city:'city A',state:'state A',zip:12345,isCurrent:true},{street:'street B',city:'city B',state:'state B',zip:12345,isCurrent:false}]}}", serializer.serialize(model.getRootObject())); // Get the original Person object back. @@ -82,7 +82,7 @@ public class PojoRestTest { Address a3 = (Address)model.get("/person1/addresses/1"); assertEquals("city B", a3.city); - serializer = new JsonSerializer.Simple(); + serializer = JsonSerializer.DEFAULT_LAX; p = new Person("some name", 123, new Address("street A", "city A", "state A", 12345, true), new Address("street B", "city B", "state B", 12345, false) @@ -94,7 +94,7 @@ public class PojoRestTest { assertEquals(expectedValue, s); // Parse it back to Java objects. - p = (Person)JsonParser.DEFAULT.clone().addToBeanDictionary(Person.class).parse(s, Object.class); + p = (Person)new JsonParserBuilder().beanDictionary(Person.class).build().parse(s, Object.class); expectedValue = "city B"; s = p.addresses[1].city; assertEquals(expectedValue, s); @@ -115,7 +115,7 @@ public class PojoRestTest { model.put("addresses/0", new Address("street D", "city D", "state D", 12345, false)); model.put("addresses/1", new Address("street E", "city E", "state E", 12345, false)); model.put("addresses/2", new Address("street F", "city F", "state F", 12345, false)); - serializer = JsonSerializer.DEFAULT_LAX.clone().setAddBeanTypeProperties(false); + serializer = new JsonSerializerBuilder().simple().addBeanTypeProperties(false).build(); s = serializer.serialize(p); expectedValue = "{name:'some name',age:123,addresses:[{street:'street D',city:'city D',state:'state D',zip:12345,isCurrent:false},{street:'street E',city:'city E',state:'state E',zip:12345,isCurrent:false},{street:'street F',city:'city F',state:'state F',zip:12345,isCurrent:false}]}"; assertEquals(expectedValue, s); http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core-test/src/test/java/org/apache/juneau/utils/StringUtilsTest.java ---------------------------------------------------------------------- diff --git a/juneau-core-test/src/test/java/org/apache/juneau/utils/StringUtilsTest.java b/juneau-core-test/src/test/java/org/apache/juneau/utils/StringUtilsTest.java index 5adc446..95c340b 100755 --- a/juneau-core-test/src/test/java/org/apache/juneau/utils/StringUtilsTest.java +++ b/juneau-core-test/src/test/java/org/apache/juneau/utils/StringUtilsTest.java @@ -638,7 +638,7 @@ public class StringUtilsTest { //==================================================================================================== @Test public void testParseISO8601Date() throws Exception { - WriterSerializer s = new JsonSerializer.Simple().addPojoSwaps(DateSwap.ISO8601DTPZ.class).setTimeZone(TimeZone.getTimeZone("GMT")); + WriterSerializer s = new JsonSerializerBuilder().simple().pojoSwaps(DateSwap.ISO8601DTPZ.class).timeZone(TimeZone.getTimeZone("GMT")).build(); assertNull(parseISO8601Date(null)); assertNull(parseISO8601Date("")); http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core-test/src/test/java/org/apache/juneau/utils/StringVarResolverTest.java ---------------------------------------------------------------------- diff --git a/juneau-core-test/src/test/java/org/apache/juneau/utils/StringVarResolverTest.java b/juneau-core-test/src/test/java/org/apache/juneau/utils/StringVarResolverTest.java index 9cc91ff..122dbd6 100755 --- a/juneau-core-test/src/test/java/org/apache/juneau/utils/StringVarResolverTest.java +++ b/juneau-core-test/src/test/java/org/apache/juneau/utils/StringVarResolverTest.java @@ -26,7 +26,7 @@ public class StringVarResolverTest { //==================================================================================================== @Test public void test() throws Exception { - VarResolver vr = new VarResolver().addVars(XVar.class); + VarResolver vr = new VarResolverBuilder().vars(XVar.class).build(); String t; t = null; @@ -99,7 +99,7 @@ public class StringVarResolverTest { //==================================================================================================== @Test public void test2() throws Exception { - VarResolver vr = new VarResolver().addVars(BlankVar.class); + VarResolver vr = new VarResolverBuilder().vars(BlankVar.class).build(); String t; t = "${y}"; @@ -130,7 +130,7 @@ public class StringVarResolverTest { //==================================================================================================== @Test public void testEscaped$() throws Exception { - VarResolver vr = new VarResolver().addVars(BlankVar.class); + VarResolver vr = new VarResolverBuilder().vars(BlankVar.class).build(); String t; t = "${y}"; @@ -151,7 +151,7 @@ public class StringVarResolverTest { //==================================================================================================== @Test public void testEscapedSequences() throws Exception { - VarResolver vr = new VarResolver().addVars(XVar.class); + VarResolver vr = new VarResolverBuilder().vars(XVar.class).build(); String t; char b = '\\'; @@ -191,15 +191,15 @@ public class StringVarResolverTest { //==================================================================================================== @Test public void testParent() throws Exception { - VarResolver svr = VarResolver.DEFAULT.clone().addVars(XMultipartVar.class); + VarResolver vr = new VarResolverBuilder().defaultVars().vars(XMultipartVar.class).build(); String t; System.setProperty("a", "a1"); System.setProperty("b", "b1"); t = "$X{$S{a},$S{b}}"; - assertEquals("a1+b1", svr.resolve(t)); + assertEquals("a1+b1", vr.resolve(t)); t = "$X{$S{a}}"; - assertEquals("a1", svr.resolve(t)); + assertEquals("a1", vr.resolve(t)); } public static class XMultipartVar extends MultipartVar { @@ -217,72 +217,76 @@ public class StringVarResolverTest { //==================================================================================================== @Test public void testFalseTriggers() throws Exception { - VarResolver svr = VarResolver.DEFAULT.clone(); + VarResolverBuilder vrb = new VarResolverBuilder().defaultVars(); String in = null; // Should reject names with characters outside A-Za-z for (Class<?> c : new Class[]{InvalidVar1.class, InvalidVar2.class, InvalidVar3.class, InvalidVar4.class, InvalidVar5.class}) { try { - svr.addVars(c); + vrb.vars(c); fail(); } catch (IllegalArgumentException e) { assertEquals("Invalid var name. Must consist of only uppercase and lowercase ASCII letters.", e.getLocalizedMessage()); } } + VarResolver vr = vrb.build(); + // These should all be unchanged. in = "$@{foobar}"; - assertEquals(in, svr.resolve(in)); + assertEquals(in, vr.resolve(in)); in = "$[{foobar}"; - assertEquals(in, svr.resolve(in)); + assertEquals(in, vr.resolve(in)); in = "$`{foobar}"; - assertEquals(in, svr.resolve(in)); + assertEquals(in, vr.resolve(in)); in = "$|{foobar}"; - assertEquals(in, svr.resolve(in)); + assertEquals(in, vr.resolve(in)); in = "${{foobar}"; - assertEquals(in, svr.resolve(in)); + assertEquals(in, vr.resolve(in)); in = "${$foobar}"; - assertEquals(in, svr.resolve(in)); + assertEquals(in, vr.resolve(in)); System.setProperty("foobar", "baz"); in = "$"; - assertEquals(in, svr.resolve(in)); + assertEquals(in, vr.resolve(in)); in = "$S"; - assertEquals(in, svr.resolve(in)); + assertEquals(in, vr.resolve(in)); in = "$S{"; - assertEquals(in, svr.resolve(in)); + assertEquals(in, vr.resolve(in)); in = "$S{foobar"; - assertEquals(in, svr.resolve(in)); + assertEquals(in, vr.resolve(in)); in = "$S{foobar}$"; - assertEquals("baz$", svr.resolve(in)); + assertEquals("baz$", vr.resolve(in)); in = "$S{foobar}$S"; - assertEquals("baz$S", svr.resolve(in)); + assertEquals("baz$S", vr.resolve(in)); in = "$S{foobar}$S{"; - assertEquals("baz$S{", svr.resolve(in)); + assertEquals("baz$S{", vr.resolve(in)); in = "$S{foobar}$S{foobar"; - assertEquals("baz$S{foobar", svr.resolve(in)); + assertEquals("baz$S{foobar", vr.resolve(in)); System.clearProperty("foobar"); in = "$S{foobar}"; // Test nulls returned by StringVar. // Should be converted to blanks. - svr.addVars(AlwaysNullVar.class); + vrb.vars(AlwaysNullVar.class); + vr = vrb.build(); + in = "$A{xxx}"; - assertEquals("", svr.resolve(in)); + assertEquals("", vr.resolve(in)); in = "x$A{xxx}"; - assertEquals("x", svr.resolve(in)); + assertEquals("x", vr.resolve(in)); in = "$A{xxx}x"; - assertEquals("x", svr.resolve(in)); + assertEquals("x", vr.resolve(in)); } public static class AlwaysNullVar extends SimpleVar { http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core-test/src/test/java/org/apache/juneau/xml/CommonParserTest.java ---------------------------------------------------------------------- diff --git a/juneau-core-test/src/test/java/org/apache/juneau/xml/CommonParserTest.java b/juneau-core-test/src/test/java/org/apache/juneau/xml/CommonParserTest.java index 68265db..6c06dc3 100755 --- a/juneau-core-test/src/test/java/org/apache/juneau/xml/CommonParserTest.java +++ b/juneau-core-test/src/test/java/org/apache/juneau/xml/CommonParserTest.java @@ -103,7 +103,7 @@ public class CommonParserTest { //==================================================================================================== @Test public void testCorrectHandlingOfUnknownProperties() throws Exception { - ReaderParser p = new XmlParser().setIgnoreUnknownBeanProperties(true); + ReaderParser p = new XmlParserBuilder().ignoreUnknownBeanProperties(true).build(); B t; String in = "<object><a>1</a><unknown>foo</unknown><b>2</b></object>"; @@ -118,7 +118,7 @@ public class CommonParserTest { try { - p = new XmlParser(); + p = XmlParser.DEFAULT; p.parse(in, B.class); fail("Exception expected"); } catch (ParseException e) {} @@ -159,7 +159,7 @@ public class CommonParserTest { @Test public void testParserListeners() throws Exception { final List<String> events = new LinkedList<String>(); - XmlParser p = new XmlParser().setIgnoreUnknownBeanProperties(true); + XmlParser p = new XmlParserBuilder().ignoreUnknownBeanProperties(true).build(); p.addListener( new ParserListener() { @Override /* ParserListener */ http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core-test/src/test/java/org/apache/juneau/xml/CommonTest.java ---------------------------------------------------------------------- diff --git a/juneau-core-test/src/test/java/org/apache/juneau/xml/CommonTest.java b/juneau-core-test/src/test/java/org/apache/juneau/xml/CommonTest.java index 764847a..240b2e4 100755 --- a/juneau-core-test/src/test/java/org/apache/juneau/xml/CommonTest.java +++ b/juneau-core-test/src/test/java/org/apache/juneau/xml/CommonTest.java @@ -23,7 +23,6 @@ import java.util.*; import org.apache.juneau.*; import org.apache.juneau.annotation.*; import org.apache.juneau.jena.annotation.*; -import org.apache.juneau.serializer.*; import org.apache.juneau.testbeans.*; import org.apache.juneau.xml.annotation.*; import org.junit.*; @@ -36,18 +35,18 @@ public class CommonTest { //==================================================================================================== @Test public void testTrimNullsFromBeans() throws Exception { - XmlSerializer s = new XmlSerializer.Sq(); - XmlParser p = new XmlParser(); + XmlSerializerBuilder s = new XmlSerializerBuilder().sq(); + XmlParser p = XmlParser.DEFAULT; A t1 = A.create(), t2; - s.setTrimNullProperties(false); - String r = s.serialize(t1); + s.trimNullProperties(false); + String r = s.build().serialize(t1); assertEquals("<object><s1 _type='null'/><s2>s2</s2></object>", r); t2 = p.parse(r, A.class); assertEqualObjects(t1, t2); - s.setTrimNullProperties(true); - r = s.serialize(t1); + s.trimNullProperties(true); + r = s.build().serialize(t1); assertEquals("<object><s2>s2</s2></object>", r); t2 = p.parse(r, A.class); assertEqualObjects(t1, t2); @@ -68,19 +67,19 @@ public class CommonTest { //==================================================================================================== @Test public void testTrimEmptyMaps() throws Exception { - XmlSerializer s = new XmlSerializer.Sq(); + XmlSerializerBuilder s = new XmlSerializerBuilder().sq(); XmlParser p = XmlParser.DEFAULT; B t1 = B.create(), t2; String r; - s.setTrimEmptyMaps(false); - r = s.serialize(t1); + s.trimEmptyMaps(false); + r = s.build().serialize(t1); assertEquals("<object><f1/><f2><f2a _type='null'/><f2b><s2>s2</s2></f2b></f2></object>", r); t2 = p.parse(r, B.class); assertEqualObjects(t1, t2); - s.setTrimEmptyMaps(true); - r = s.serialize(t1); + s.trimEmptyMaps(true); + r = s.build().serialize(t1); assertEquals("<object><f2><f2a _type='null'/><f2b><s2>s2</s2></f2b></f2></object>", r); t2 = p.parse(r, B.class); assertNull(t2.f1); @@ -102,19 +101,19 @@ public class CommonTest { //==================================================================================================== @Test public void testTrimEmptyLists() throws Exception { - XmlSerializer s = new XmlSerializer.Sq(); + XmlSerializerBuilder s = new XmlSerializerBuilder().sq(); XmlParser p = XmlParser.DEFAULT; C t1 = C.create(), t2; String r; - s.setTrimEmptyCollections(false); - r = s.serialize(t1); + s.trimEmptyCollections(false); + r = s.build().serialize(t1); assertEquals("<object><f1></f1><f2><null/><object><s2>s2</s2></object></f2></object>", r); t2 = p.parse(r, C.class); assertEqualObjects(t1, t2); - s.setTrimEmptyCollections(true); - r = s.serialize(t1); + s.trimEmptyCollections(true); + r = s.build().serialize(t1); assertEquals("<object><f2><null/><object><s2>s2</s2></object></f2></object>", r); t2 = p.parse(r, C.class); assertNull(t2.f1); @@ -136,19 +135,19 @@ public class CommonTest { //==================================================================================================== @Test public void testTrimEmptyArrays() throws Exception { - XmlSerializer s = new XmlSerializer.Sq(); + XmlSerializerBuilder s = new XmlSerializerBuilder().sq(); XmlParser p = XmlParser.DEFAULT; D t1 = D.create(), t2; String r; - s.setTrimEmptyCollections(false); - r = s.serialize(t1); + s.trimEmptyCollections(false); + r = s.build().serialize(t1); assertEquals("<object><f1></f1><f2><null/><object><s2>s2</s2></object></f2></object>", r); t2 = p.parse(r, D.class); assertEqualObjects(t1, t2); - s.setTrimEmptyCollections(true); - r = s.serialize(t1); + s.trimEmptyCollections(true); + r = s.build().serialize(t1); assertEquals("<object><f2><null/><object><s2>s2</s2></object></f2></object>", r); t2 = p.parse(r, D.class); assertNull(t2.f1); @@ -258,13 +257,13 @@ public class CommonTest { //==================================================================================================== @Test public void testUris() throws Exception { - WriterSerializer s = new XmlSerializer.Sq(); + XmlSerializerBuilder s = new XmlSerializerBuilder().sq(); TestURI t = new TestURI(); String r; String expected; - s.setRelativeUriBase(null); - r = s.serialize(t); + s.relativeUriBase(null); + r = s.build().serialize(t); expected = "" +"<object f0='f0/x0'>" +"<f1>f1/x1</f1>" @@ -284,12 +283,12 @@ public class CommonTest { +"</object>"; assertEquals(expected, r); - s.setRelativeUriBase(""); // Same as null. - r = s.serialize(t); + s.relativeUriBase(""); // Same as null. + r = s.build().serialize(t); assertEquals(expected, r); - s.setRelativeUriBase("/cr"); - r = s.serialize(t); + s.relativeUriBase("/cr"); + r = s.build().serialize(t); expected = "" +"<object f0='/cr/f0/x0'>" +"<f1>/cr/f1/x1</f1>" @@ -309,12 +308,12 @@ public class CommonTest { +"</object>"; assertEquals(expected, r); - s.setRelativeUriBase("/cr/"); // Same as above - r = s.serialize(t); + s.relativeUriBase("/cr/"); // Same as above + r = s.build().serialize(t); assertEquals(expected, r); - s.setRelativeUriBase("/"); - r = s.serialize(t); + s.relativeUriBase("/"); + r = s.build().serialize(t); expected = "" +"<object f0='/f0/x0'>" +"<f1>/f1/x1</f1>" @@ -334,10 +333,10 @@ public class CommonTest { +"</object>"; assertEquals(expected, r); - s.setRelativeUriBase(null); + s.relativeUriBase(null); - s.setAbsolutePathUriBase("http://foo"); - r = s.serialize(t); + s.absolutePathUriBase("http://foo"); + r = s.build().serialize(t); expected = "" +"<object f0='f0/x0'>" +"<f1>f1/x1</f1>" @@ -357,12 +356,12 @@ public class CommonTest { +"</object>"; assertEquals(expected, r); - s.setAbsolutePathUriBase("http://foo/"); - r = s.serialize(t); + s.absolutePathUriBase("http://foo/"); + r = s.build().serialize(t); assertEquals(expected, r); - s.setAbsolutePathUriBase(""); // Same as null. - r = s.serialize(t); + s.absolutePathUriBase(""); // Same as null. + r = s.build().serialize(t); expected = "" +"<object f0='f0/x0'>" +"<f1>f1/x1</f1>" @@ -384,31 +383,11 @@ public class CommonTest { } //==================================================================================================== - // Validate that you cannot update properties on locked serializer. - //==================================================================================================== - @Test - public void testLockedSerializer() throws Exception { - XmlSerializer s = new XmlSerializer().lock(); - try { - s.setEnableNamespaces(true); - fail("Locked exception not thrown"); - } catch (LockedException e) {} - try { - s.setAddBeanTypeProperties(true); - fail("Locked exception not thrown"); - } catch (LockedException e) {} - try { - s.setBeanMapPutReturnsOldValue(true); - fail("Locked exception not thrown"); - } catch (LockedException e) {} - } - - //==================================================================================================== // Recursion //==================================================================================================== @Test public void testRecursion() throws Exception { - XmlSerializer s = new XmlSerializer().setEnableNamespaces(false); + XmlSerializerBuilder s = new XmlSerializerBuilder().enableNamespaces(false); R1 r1 = new R1(); R2 r2 = new R2(); @@ -419,7 +398,7 @@ public class CommonTest { // No recursion detection try { - s.serialize(r1); + s.build().serialize(r1); fail("Exception expected!"); } catch (Exception e) { String msg = e.getLocalizedMessage(); @@ -427,9 +406,9 @@ public class CommonTest { } // Recursion detection, no ignore - s.setDetectRecursions(true); + s.detectRecursions(true); try { - s.serialize(r1); + s.build().serialize(r1); fail("Exception expected!"); } catch (Exception e) { String msg = e.getLocalizedMessage(); @@ -439,11 +418,11 @@ public class CommonTest { assertTrue(msg.contains("->[3]r1:org.apache.juneau.xml.CommonTest$R1")); } - s.setIgnoreRecursions(true); - assertEquals("<object><name>foo</name><r2><name>bar</name><r3><name>baz</name></r3></r2></object>", s.serialize(r1)); + s.ignoreRecursions(true); + assertEquals("<object><name>foo</name><r2><name>bar</name><r3><name>baz</name></r3></r2></object>", s.build().serialize(r1)); // Make sure this doesn't blow up. - s.getSchemaSerializer().serialize(r1); + s.build().getSchemaSerializer().serialize(r1); } public static class R1 { http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core-test/src/test/java/org/apache/juneau/xml/CommonXmlTest.java ---------------------------------------------------------------------- diff --git a/juneau-core-test/src/test/java/org/apache/juneau/xml/CommonXmlTest.java b/juneau-core-test/src/test/java/org/apache/juneau/xml/CommonXmlTest.java index 996a6cf..031a879 100755 --- a/juneau-core-test/src/test/java/org/apache/juneau/xml/CommonXmlTest.java +++ b/juneau-core-test/src/test/java/org/apache/juneau/xml/CommonXmlTest.java @@ -61,7 +61,7 @@ public class CommonXmlTest { //==================================================================================================== @Test public void testBeanUriAnnotationOnlyUriProperty() throws Exception { - XmlSerializer s = new XmlSerializer.Sq().setAddNamespaceUrisToRoot(false); + XmlSerializer s = new XmlSerializerBuilder().sq().addNamespaceUrisToRoot(false).build(); B t = new B("http://foo"); String xml = s.serialize(t); http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlContentTest.java ---------------------------------------------------------------------- diff --git a/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlContentTest.java b/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlContentTest.java index e11fe18..6f0738e 100755 --- a/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlContentTest.java +++ b/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlContentTest.java @@ -34,7 +34,7 @@ public class XmlContentTest { public void testContentFormat() throws Exception { A t = A.newInstance(), t2; XmlSerializer s1 = XmlSerializer.DEFAULT_SQ, - s2 = new XmlSerializer().setQuoteChar('\'').setUseWhitespace(true).setEnableNamespaces(false); + s2 = new XmlSerializerBuilder().sq().ws().enableNamespaces(false).build(); XmlParser p = XmlParser.DEFAULT; XmlSerializerSession session; String r; @@ -142,7 +142,7 @@ public class XmlContentTest { public void testXmlMixed() throws Exception { B t = B.newInstance(), t2; XmlSerializer s1 = XmlSerializer.DEFAULT_SQ, - s2 = new XmlSerializer().setQuoteChar('\'').setUseWhitespace(true).setEnableNamespaces(false); + s2 = new XmlSerializerBuilder().sq().ws().enableNamespaces(false).build(); XmlParser p = XmlParser.DEFAULT; XmlSerializerSession session; String r; http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlParserTest.java ---------------------------------------------------------------------- diff --git a/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlParserTest.java b/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlParserTest.java index 64ca1c3..9e1f571 100755 --- a/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlParserTest.java +++ b/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlParserTest.java @@ -82,7 +82,7 @@ public class XmlParserTest { public void testPreserveRootElement() throws Exception { String xml; ObjectMap m; - ReaderParser p = new XmlParser().setPreserveRootElement(true); + ReaderParser p = new XmlParserBuilder().preserveRootElement(true).build(); xml = "<A><B><C>c</C></B></A>"; m = p.parse(xml, ObjectMap.class); http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlTest.java ---------------------------------------------------------------------- diff --git a/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlTest.java b/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlTest.java index d7ece92..555ca49 100755 --- a/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlTest.java +++ b/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlTest.java @@ -77,12 +77,13 @@ public class XmlTest { +"</object>\n"; ObjectMap m = (ObjectMap) XmlParser.DEFAULT.parse(xml1, Object.class); - String json2 = new JsonSerializer.SimpleReadable().setQuoteChar('"').setTrimNullProperties(false).serialize(m); + String json2 = new JsonSerializerBuilder().simple().ws().quoteChar('"').trimNullProperties(false).build().serialize(m); assertEquals(json1, json2); m = (ObjectMap) JsonParser.DEFAULT.parse(json1, Object.class); - String xml2 = new XmlSerializer.SqReadable() - .setTrimNullProperties(false) + String xml2 = new XmlSerializerBuilder().sq().ws() + .trimNullProperties(false) + .build() .serialize(m); assertEquals(xml1, xml2); } @@ -132,10 +133,11 @@ public class XmlTest { +"</object>\n"; ObjectMap m = (ObjectMap) JsonParser.DEFAULT.parse(json1, Object.class); - String r = new XmlSerializer.NsSqReadable() - .setAddNamespaceUrisToRoot(true) - .setDefaultNamespace("http://www.apache.org") - .setTrimNullProperties(false) + String r = new XmlSerializerBuilder().ns().sq().ws() + .addNamespaceUrisToRoot(true) + .defaultNamespace("http://www.apache.org") + .trimNullProperties(false) + .build() .serialize(m); assertEquals(xml1, r); } @@ -351,21 +353,21 @@ public class XmlTest { //==================================================================================================== @Test public void testXmlFormatAttrWithNs() throws Exception { - XmlSerializer s = XmlSerializer.DEFAULT_SQ.clone(); + XmlSerializerBuilder s = new XmlSerializerBuilder().sq(); XmlParser p = XmlParser.DEFAULT; M t = new M(); String r = null; - r = s.serialize(t); + r = s.build().serialize(t); assertEquals("<object f1='1' f2='2' f3='3'/>", r); - s.setEnableNamespaces(true).setAddNamespaceUrisToRoot(true).setAutoDetectNamespaces(true).setTrimNullProperties(false); + s.enableNamespaces(true).addNamespaceUrisToRoot(true).autoDetectNamespaces(true).trimNullProperties(false); t.f1 = 4; t.f2 = 5; t.f3 = 6; - r = s.serialize(t); + r = s.build().serialize(t); assertEquals("<object xmlns='http://www.apache.org/2013/Juneau' xmlns:bar='http://bar' xmlns:foo='http://foo' xmlns:baz='http://baz' bar:f1='4' foo:f2='5' baz:f3='6'/>", r); t = p.parse(r, M.class); assertEquals(4, t.f1); assertEquals(5, t.f2); assertEquals(6, t.f3); - validateXml(t, s); + validateXml(t, s.build()); } @Xml(prefix="bar", namespace="http://bar") @@ -519,51 +521,51 @@ public class XmlTest { //==================================================================================================== @Test public void testNsOnClass() throws Exception { - XmlSerializer s = new XmlSerializer.Sq().setAutoDetectNamespaces(false); + XmlSerializerBuilder s = new XmlSerializerBuilder().sq().autoDetectNamespaces(false); XmlParser p = XmlParser.DEFAULT; T1 t = new T1(); - String r = s.serialize(t); + String r = s.build().serialize(t); assertEquals("<object><f1>1</f1><f2>2</f2><f3>3</f3><f4>4</f4></object>", r); assertTrue(t.equals(p.parse(r, T1.class))); - s.setEnableNamespaces(true).setAddNamespaceUrisToRoot(false); - r = s.serialize(t); + s.enableNamespaces(true).addNamespaceUrisToRoot(false); + r = s.build().serialize(t); assertEquals("<object><foo:f1>1</foo:f1><bar:f2>2</bar:f2><foo:f3>3</foo:f3><baz:f4>4</baz:f4></object>", r); // Add namespace URIs to root, but don't auto-detect. // Only xsi should be added to root. - s.setAddNamespaceUrisToRoot(true); - r = s.serialize(t); + s.addNamespaceUrisToRoot(true); + r = s.build().serialize(t); assertEquals("<object xmlns='http://www.apache.org/2013/Juneau'><foo:f1>1</foo:f1><bar:f2>2</bar:f2><foo:f3>3</foo:f3><baz:f4>4</baz:f4></object>", r); // Manually set namespaces - s.setNamespaces( + s.namespaces( NamespaceFactory.get("foo","http://foo"), NamespaceFactory.get("bar","http://bar"), NamespaceFactory.get("baz","http://baz") ); - r = s.serialize(t); + r = s.build().serialize(t); assertEquals("<object xmlns='http://www.apache.org/2013/Juneau' xmlns:foo='http://foo' xmlns:bar='http://bar' xmlns:baz='http://baz'><foo:f1>1</foo:f1><bar:f2>2</bar:f2><foo:f3>3</foo:f3><baz:f4>4</baz:f4></object>", r); assertTrue(t.equals(p.parse(r, T1.class))); - validateXml(t, s); + validateXml(t, s.build()); // Auto-detect namespaces. - s = new XmlSerializer.Sq().setAutoDetectNamespaces(true); - r = s.serialize(t); + s = new XmlSerializerBuilder().sq().autoDetectNamespaces(true); + r = s.build().serialize(t); assertEquals("<object><f1>1</f1><f2>2</f2><f3>3</f3><f4>4</f4></object>", r); assertTrue(t.equals(p.parse(r, T1.class))); - s.setAddNamespaceUrisToRoot(true); - r = s.serialize(t); + s.addNamespaceUrisToRoot(true); + r = s.build().serialize(t); assertEquals("<object><f1>1</f1><f2>2</f2><f3>3</f3><f4>4</f4></object>", r); assertTrue(t.equals(p.parse(r, T1.class))); - s.setEnableNamespaces(true); - r = s.serialize(t); + s.enableNamespaces(true); + r = s.build().serialize(t); assertEquals("<object xmlns='http://www.apache.org/2013/Juneau' xmlns:foo='http://foo' xmlns:bar='http://bar' xmlns:baz='http://baz'><foo:f1>1</foo:f1><bar:f2>2</bar:f2><foo:f3>3</foo:f3><baz:f4>4</baz:f4></object>", r); assertTrue(t.equals(p.parse(r, T1.class))); - validateXml(t, s); + validateXml(t, s.build()); } //==================================================================================================== @@ -571,49 +573,49 @@ public class XmlTest { //==================================================================================================== @Test public void testNsOnClassWithElementName() throws Exception { - XmlSerializer s = new XmlSerializer.Sq().setAutoDetectNamespaces(false); + XmlSerializerBuilder s = new XmlSerializerBuilder().sq().autoDetectNamespaces(false); XmlParser p = XmlParser.DEFAULT; T2 t = new T2(); - String r = s.serialize(t); + String r = s.build().serialize(t); assertEquals("<T2><f1>1</f1><f2>2</f2><f3>3</f3><f4>4</f4></T2>", r); assertTrue(t.equals(p.parse(r, T2.class))); - s.setEnableNamespaces(true).setAddNamespaceUrisToRoot(false); - r = s.serialize(t); + s.enableNamespaces(true).addNamespaceUrisToRoot(false); + r = s.build().serialize(t); assertEquals("<foo:T2><foo:f1>1</foo:f1><bar:f2>2</bar:f2><foo:f3>3</foo:f3><baz:f4>4</baz:f4></foo:T2>", r); // Add namespace URIs to root, but don't auto-detect. // Only xsi should be added to root. - s.setAddNamespaceUrisToRoot(true); - r = s.serialize(t); + s.addNamespaceUrisToRoot(true); + r = s.build().serialize(t); assertEquals("<foo:T2 xmlns='http://www.apache.org/2013/Juneau'><foo:f1>1</foo:f1><bar:f2>2</bar:f2><foo:f3>3</foo:f3><baz:f4>4</baz:f4></foo:T2>", r); // Manually set namespaces - s.setNamespaces( + s.namespaces( NamespaceFactory.get("foo","http://foo"), NamespaceFactory.get("bar","http://bar"), NamespaceFactory.get("baz","http://baz") ); - r = s.serialize(t); + r = s.build().serialize(t); assertEquals("<foo:T2 xmlns='http://www.apache.org/2013/Juneau' xmlns:foo='http://foo' xmlns:bar='http://bar' xmlns:baz='http://baz'><foo:f1>1</foo:f1><bar:f2>2</bar:f2><foo:f3>3</foo:f3><baz:f4>4</baz:f4></foo:T2>", r); assertTrue(t.equals(p.parse(r, T2.class))); - validateXml(t, s); + validateXml(t, s.build()); // Auto-detect namespaces. - s = new XmlSerializer.Sq().setAutoDetectNamespaces(true); - r = s.serialize(t); + s = new XmlSerializerBuilder().sq().autoDetectNamespaces(true); + r = s.build().serialize(t); assertEquals("<T2><f1>1</f1><f2>2</f2><f3>3</f3><f4>4</f4></T2>", r); - s.setAddNamespaceUrisToRoot(true); - r = s.serialize(t); + s.addNamespaceUrisToRoot(true); + r = s.build().serialize(t); assertEquals("<T2><f1>1</f1><f2>2</f2><f3>3</f3><f4>4</f4></T2>", r); - s.setEnableNamespaces(true); - r = s.serialize(t); + s.enableNamespaces(true); + r = s.build().serialize(t); assertEquals("<foo:T2 xmlns='http://www.apache.org/2013/Juneau' xmlns:foo='http://foo' xmlns:bar='http://bar' xmlns:baz='http://baz'><foo:f1>1</foo:f1><bar:f2>2</bar:f2><foo:f3>3</foo:f3><baz:f4>4</baz:f4></foo:T2>", r); assertTrue(t.equals(p.parse(r, T2.class))); - validateXml(t, s); + validateXml(t, s.build()); } @@ -622,51 +624,51 @@ public class XmlTest { //==================================================================================================== @Test public void testNsOnPackageNoNsOnClass() throws Exception { - XmlSerializer s = new XmlSerializer.Sq(); + XmlSerializerBuilder s = new XmlSerializerBuilder().sq(); XmlParser p = XmlParser.DEFAULT; T3 t = new T3(); - String r = s.serialize(t); + String r = s.build().serialize(t); assertEquals("<object><f1>1</f1><f2>2</f2><f3>3</f3><f4>4</f4></object>", r); assertTrue(t.equals(p.parse(r, T3.class))); - validateXml(t, s); + validateXml(t, s.build()); - s.setEnableNamespaces(true).setAddNamespaceUrisToRoot(false); - r = s.serialize(t); + s.enableNamespaces(true).addNamespaceUrisToRoot(false); + r = s.build().serialize(t); assertEquals("<object><p1:f1>1</p1:f1><bar:f2>2</bar:f2><p1:f3>3</p1:f3><baz:f4>4</baz:f4></object>", r); // Add namespace URIs to root, but don't auto-detect. // Only xsi should be added to root. - s.setAddNamespaceUrisToRoot(true).setAutoDetectNamespaces(false); - r = s.serialize(t); + s.addNamespaceUrisToRoot(true).autoDetectNamespaces(false); + r = s.build().serialize(t); assertEquals("<object xmlns='http://www.apache.org/2013/Juneau'><p1:f1>1</p1:f1><bar:f2>2</bar:f2><p1:f3>3</p1:f3><baz:f4>4</baz:f4></object>", r); // Manually set namespaces - s.setAutoDetectNamespaces(false); - s.setNamespaces( + s.autoDetectNamespaces(false); + s.namespaces( NamespaceFactory.get("p1","http://p1"), NamespaceFactory.get("bar","http://bar"), NamespaceFactory.get("baz","http://baz") ); - r = s.serialize(t); + r = s.build().serialize(t); assertEquals("<object xmlns='http://www.apache.org/2013/Juneau' xmlns:p1='http://p1' xmlns:bar='http://bar' xmlns:baz='http://baz'><p1:f1>1</p1:f1><bar:f2>2</bar:f2><p1:f3>3</p1:f3><baz:f4>4</baz:f4></object>", r); assertTrue(t.equals(p.parse(r, T3.class))); - validateXml(t, s); + validateXml(t, s.build()); // Auto-detect namespaces. - s = new XmlSerializer.Sq().setAutoDetectNamespaces(true); - r = s.serialize(t); + s = new XmlSerializerBuilder().sq().autoDetectNamespaces(true); + r = s.build().serialize(t); assertEquals("<object><f1>1</f1><f2>2</f2><f3>3</f3><f4>4</f4></object>", r); - s.setAddNamespaceUrisToRoot(true); - r = s.serialize(t); + s.addNamespaceUrisToRoot(true); + r = s.build().serialize(t); assertEquals("<object><f1>1</f1><f2>2</f2><f3>3</f3><f4>4</f4></object>", r); - s.setEnableNamespaces(true); - r = s.serialize(t); + s.enableNamespaces(true); + r = s.build().serialize(t); assertEquals("<object xmlns='http://www.apache.org/2013/Juneau' xmlns:p1='http://p1' xmlns:bar='http://bar' xmlns:baz='http://baz'><p1:f1>1</p1:f1><bar:f2>2</bar:f2><p1:f3>3</p1:f3><baz:f4>4</baz:f4></object>", r); assertTrue(t.equals(p.parse(r, T3.class))); - validateXml(t, s); + validateXml(t, s.build()); } //==================================================================================================== @@ -674,50 +676,50 @@ public class XmlTest { //==================================================================================================== @Test public void testNsOnPackageNoNsOnClassElementNameOnClass() throws Exception { - XmlSerializer s = new XmlSerializer.Sq().setAutoDetectNamespaces(false); + XmlSerializerBuilder s = new XmlSerializerBuilder().sq().autoDetectNamespaces(false); XmlParser p = XmlParser.DEFAULT; T4 t = new T4(); - String r = s.serialize(t); + String r = s.build().serialize(t); assertEquals("<T4><f1>1</f1><f2>2</f2><f3>3</f3><f4>4</f4></T4>", r); assertTrue(t.equals(p.parse(r, T4.class))); - s.setEnableNamespaces(true).setAddNamespaceUrisToRoot(false); - r = s.serialize(t); + s.enableNamespaces(true).addNamespaceUrisToRoot(false); + r = s.build().serialize(t); assertEquals("<p1:T4><p1:f1>1</p1:f1><bar:f2>2</bar:f2><p1:f3>3</p1:f3><baz:f4>4</baz:f4></p1:T4>", r); // Add namespace URIs to root, but don't auto-detect. // Only xsi should be added to root. - s.setAddNamespaceUrisToRoot(true); - r = s.serialize(t); + s.addNamespaceUrisToRoot(true); + r = s.build().serialize(t); assertEquals("<p1:T4 xmlns='http://www.apache.org/2013/Juneau'><p1:f1>1</p1:f1><bar:f2>2</bar:f2><p1:f3>3</p1:f3><baz:f4>4</baz:f4></p1:T4>", r); // Manually set namespaces - s.setNamespaces( + s.namespaces( NamespaceFactory.get("foo","http://foo"), NamespaceFactory.get("bar","http://bar"), NamespaceFactory.get("baz","http://baz"), NamespaceFactory.get("p1","http://p1") ); - r = s.serialize(t); + r = s.build().serialize(t); assertEquals("<p1:T4 xmlns='http://www.apache.org/2013/Juneau' xmlns:foo='http://foo' xmlns:bar='http://bar' xmlns:baz='http://baz' xmlns:p1='http://p1'><p1:f1>1</p1:f1><bar:f2>2</bar:f2><p1:f3>3</p1:f3><baz:f4>4</baz:f4></p1:T4>", r); assertTrue(t.equals(p.parse(r, T4.class))); - validateXml(t, s); + validateXml(t, s.build()); // Auto-detect namespaces. - s = new XmlSerializer.Sq().setAutoDetectNamespaces(true); - r = s.serialize(t); + s = new XmlSerializerBuilder().sq().autoDetectNamespaces(true); + r = s.build().serialize(t); assertEquals("<T4><f1>1</f1><f2>2</f2><f3>3</f3><f4>4</f4></T4>", r); - s.setAddNamespaceUrisToRoot(true); - r = s.serialize(t); + s.addNamespaceUrisToRoot(true); + r = s.build().serialize(t); assertEquals("<T4><f1>1</f1><f2>2</f2><f3>3</f3><f4>4</f4></T4>", r); - s.setEnableNamespaces(true); - r = s.serialize(t); + s.enableNamespaces(true); + r = s.build().serialize(t); assertEquals("<p1:T4 xmlns='http://www.apache.org/2013/Juneau' xmlns:p1='http://p1' xmlns:bar='http://bar' xmlns:baz='http://baz'><p1:f1>1</p1:f1><bar:f2>2</bar:f2><p1:f3>3</p1:f3><baz:f4>4</baz:f4></p1:T4>", r); assertTrue(t.equals(p.parse(r, T4.class))); - validateXml(t, s); + validateXml(t, s.build()); } //==================================================================================================== @@ -725,52 +727,52 @@ public class XmlTest { //==================================================================================================== @Test public void testNsOnPackageNsOnClassElementNameOnClass() throws Exception { - XmlSerializer s = new XmlSerializer.Sq(); + XmlSerializerBuilder s = new XmlSerializerBuilder().sq(); XmlParser p = XmlParser.DEFAULT; T5 t = new T5(); - String r = s.serialize(t); + String r = s.build().serialize(t); assertEquals("<T5><f1>1</f1><f2>2</f2><f3>3</f3><f4>4</f4></T5>", r); assertTrue(t.equals(p.parse(r, T5.class))); - validateXml(t, s); + validateXml(t, s.build()); - s.setEnableNamespaces(true).setAddNamespaceUrisToRoot(false).setAutoDetectNamespaces(false); - r = s.serialize(t); + s.ns().addNamespaceUrisToRoot(false).autoDetectNamespaces(false); + r = s.build().serialize(t); assertEquals("<foo:T5><foo:f1>1</foo:f1><bar:f2>2</bar:f2><foo:f3>3</foo:f3><baz:f4>4</baz:f4></foo:T5>", r); // Add namespace URIs to root, but don't auto-detect. // Only xsi should be added to root. - s.setAddNamespaceUrisToRoot(true); - r = s.serialize(t); + s.addNamespaceUrisToRoot(true); + r = s.build().serialize(t); assertEquals("<foo:T5 xmlns='http://www.apache.org/2013/Juneau'><foo:f1>1</foo:f1><bar:f2>2</bar:f2><foo:f3>3</foo:f3><baz:f4>4</baz:f4></foo:T5>", r); // Manually set namespaces - s.setNamespaces( + s.namespaces( NamespaceFactory.get("foo","http://foo"), NamespaceFactory.get("bar","http://bar"), NamespaceFactory.get("baz","http://baz") ); - r = s.serialize(t); + r = s.build().serialize(t); assertEquals("<foo:T5 xmlns='http://www.apache.org/2013/Juneau' xmlns:foo='http://foo' xmlns:bar='http://bar' xmlns:baz='http://baz'><foo:f1>1</foo:f1><bar:f2>2</bar:f2><foo:f3>3</foo:f3><baz:f4>4</baz:f4></foo:T5>", r); assertTrue(t.equals(p.parse(r, T5.class))); - validateXml(t, s); + validateXml(t, s.build()); // Auto-detect namespaces. - s = new XmlSerializer.Sq().setAutoDetectNamespaces(true); - r = s.serialize(t); + s = new XmlSerializerBuilder().sq().autoDetectNamespaces(true); + r = s.build().serialize(t); assertEquals("<T5><f1>1</f1><f2>2</f2><f3>3</f3><f4>4</f4></T5>", r); - validateXml(t, s); + validateXml(t, s.build()); - s.setAddNamespaceUrisToRoot(true); - r = s.serialize(t); + s.addNamespaceUrisToRoot(true); + r = s.build().serialize(t); assertEquals("<T5><f1>1</f1><f2>2</f2><f3>3</f3><f4>4</f4></T5>", r); - validateXml(t, s); + validateXml(t, s.build()); - s.setEnableNamespaces(true); - r = s.serialize(t); + s.ns(); + r = s.build().serialize(t); assertEquals("<foo:T5 xmlns='http://www.apache.org/2013/Juneau' xmlns:foo='http://foo' xmlns:bar='http://bar' xmlns:baz='http://baz'><foo:f1>1</foo:f1><bar:f2>2</bar:f2><foo:f3>3</foo:f3><baz:f4>4</baz:f4></foo:T5>", r); assertTrue(t.equals(p.parse(r, T5.class))); - validateXml(t, s); + validateXml(t, s.build()); } //==================================================================================================== @@ -778,51 +780,51 @@ public class XmlTest { //==================================================================================================== @Test public void testNsOnPackageNsOnClassNoElementNameOnClass() throws Exception { - XmlSerializer s = new XmlSerializer.Sq().setAutoDetectNamespaces(false); + XmlSerializerBuilder s = new XmlSerializerBuilder().sq().autoDetectNamespaces(false); XmlParser p = XmlParser.DEFAULT; T6 t = new T6(); - String r = s.serialize(t); + String r = s.build().serialize(t); assertEquals("<object><f1>1</f1><f2>2</f2><f3>3</f3><f4>4</f4></object>", r); assertTrue(t.equals(p.parse(r, T6.class))); - s.setEnableNamespaces(true).setAddNamespaceUrisToRoot(false); - r = s.serialize(t); + s.ns().addNamespaceUrisToRoot(false); + r = s.build().serialize(t); assertEquals("<object><foo:f1>1</foo:f1><bar:f2>2</bar:f2><foo:f3>3</foo:f3><baz:f4>4</baz:f4></object>", r); // Add namespace URIs to root, but don't auto-detect. // Only xsi should be added to root. - s.setAddNamespaceUrisToRoot(true).setAutoDetectNamespaces(false); - r = s.serialize(t); + s.addNamespaceUrisToRoot(true).autoDetectNamespaces(false); + r = s.build().serialize(t); assertEquals("<object xmlns='http://www.apache.org/2013/Juneau'><foo:f1>1</foo:f1><bar:f2>2</bar:f2><foo:f3>3</foo:f3><baz:f4>4</baz:f4></object>", r); // Manually set namespaces - s.setNamespaces( + s.namespaces( NamespaceFactory.get("foo","http://foo"), NamespaceFactory.get("bar","http://bar"), NamespaceFactory.get("baz","http://baz") ); - r = s.serialize(t); + r = s.build().serialize(t); assertEquals("<object xmlns='http://www.apache.org/2013/Juneau' xmlns:foo='http://foo' xmlns:bar='http://bar' xmlns:baz='http://baz'><foo:f1>1</foo:f1><bar:f2>2</bar:f2><foo:f3>3</foo:f3><baz:f4>4</baz:f4></object>", r); assertTrue(t.equals(p.parse(r, T6.class))); - validateXml(t, s); + validateXml(t, s.build()); // Auto-detect namespaces. - s = new XmlSerializer.Sq().setAutoDetectNamespaces(true); - r = s.serialize(t); + s = new XmlSerializerBuilder().sq().autoDetectNamespaces(true); + r = s.build().serialize(t); assertEquals("<object><f1>1</f1><f2>2</f2><f3>3</f3><f4>4</f4></object>", r); - validateXml(t, s); + validateXml(t, s.build()); - s.setAddNamespaceUrisToRoot(true); - r = s.serialize(t); + s.addNamespaceUrisToRoot(true); + r = s.build().serialize(t); assertEquals("<object><f1>1</f1><f2>2</f2><f3>3</f3><f4>4</f4></object>", r); - validateXml(t, s); + validateXml(t, s.build()); - s.setEnableNamespaces(true); - r = s.serialize(t); + s.ns(); + r = s.build().serialize(t); assertEquals("<object xmlns='http://www.apache.org/2013/Juneau' xmlns:foo='http://foo' xmlns:bar='http://bar' xmlns:baz='http://baz'><foo:f1>1</foo:f1><bar:f2>2</bar:f2><foo:f3>3</foo:f3><baz:f4>4</baz:f4></object>", r); assertTrue(t.equals(p.parse(r, T6.class))); - validateXml(t, s); + validateXml(t, s.build()); } //==================================================================================================== @@ -830,49 +832,49 @@ public class XmlTest { //==================================================================================================== @Test public void testComboOfNsAndOverriddenBeanPropertyNames() throws Exception { - XmlSerializer s = new XmlSerializer.Sq().setAutoDetectNamespaces(false); + XmlSerializerBuilder s = new XmlSerializerBuilder().sq().autoDetectNamespaces(false); XmlParser p = XmlParser.DEFAULT; T7 t = new T7(); - String r = s.serialize(t); + String r = s.build().serialize(t); assertEquals("<object><g1>1</g1><g2>2</g2><g3>3</g3><g4>4</g4></object>", r); assertTrue(t.equals(p.parse(r, T7.class))); - s.setEnableNamespaces(true).setAddNamespaceUrisToRoot(false); - r = s.serialize(t); + s.enableNamespaces(true).addNamespaceUrisToRoot(false); + r = s.build().serialize(t); assertEquals("<object><p1:g1>1</p1:g1><bar:g2>2</bar:g2><p1:g3>3</p1:g3><baz:g4>4</baz:g4></object>", r); // Add namespace URIs to root, but don't auto-detect. // Only xsi should be added to root. - s.setAddNamespaceUrisToRoot(true).setAutoDetectNamespaces(false); - r = s.serialize(t); + s.addNamespaceUrisToRoot(true).autoDetectNamespaces(false); + r = s.build().serialize(t); assertEquals("<object xmlns='http://www.apache.org/2013/Juneau'><p1:g1>1</p1:g1><bar:g2>2</bar:g2><p1:g3>3</p1:g3><baz:g4>4</baz:g4></object>", r); // Manually set namespaces - s.setNamespaces( + s.namespaces( NamespaceFactory.get("foo","http://foo"), NamespaceFactory.get("bar","http://bar"), NamespaceFactory.get("baz","http://baz"), NamespaceFactory.get("p1","http://p1") ); - r = s.serialize(t); + r = s.build().serialize(t); assertEquals("<object xmlns='http://www.apache.org/2013/Juneau' xmlns:foo='http://foo' xmlns:bar='http://bar' xmlns:baz='http://baz' xmlns:p1='http://p1'><p1:g1>1</p1:g1><bar:g2>2</bar:g2><p1:g3>3</p1:g3><baz:g4>4</baz:g4></object>", r); assertTrue(t.equals(p.parse(r, T7.class))); // Auto-detect namespaces. - s = new XmlSerializer.Sq().setAutoDetectNamespaces(true); - r = s.serialize(t); + s = new XmlSerializerBuilder().sq().autoDetectNamespaces(true); + r = s.build().serialize(t); assertEquals("<object><g1>1</g1><g2>2</g2><g3>3</g3><g4>4</g4></object>", r); - s.setEnableNamespaces(false); - r = s.serialize(t); + s.enableNamespaces(false); + r = s.build().serialize(t); assertEquals("<object><g1>1</g1><g2>2</g2><g3>3</g3><g4>4</g4></object>", r); - s.setEnableNamespaces(true).setAddNamespaceUrisToRoot(true); - r = s.serialize(t); + s.ns().addNamespaceUrisToRoot(true); + r = s.build().serialize(t); assertEquals("<object xmlns='http://www.apache.org/2013/Juneau' xmlns:p1='http://p1' xmlns:bar='http://bar' xmlns:baz='http://baz'><p1:g1>1</p1:g1><bar:g2>2</bar:g2><p1:g3>3</p1:g3><baz:g4>4</baz:g4></object>", r); assertTrue(t.equals(p.parse(r, T7.class))); - validateXml(t, s); + validateXml(t, s.build()); } //==================================================================================================== @@ -880,50 +882,50 @@ public class XmlTest { //==================================================================================================== @Test public void testXmlNsAnnotation() throws Exception { - XmlSerializer s = new XmlSerializer.Sq().setAutoDetectNamespaces(false); + XmlSerializerBuilder s = new XmlSerializerBuilder().sq().autoDetectNamespaces(false); XmlParser p = XmlParser.DEFAULT; T8 t = new T8(); - String r = s.serialize(t); + String r = s.build().serialize(t); assertEquals("<object><f1>1</f1><f2>2</f2><f3>3</f3><f4>4</f4></object>", r); assertTrue(t.equals(p.parse(r, T8.class))); - s.setEnableNamespaces(true).setAddNamespaceUrisToRoot(false).setAutoDetectNamespaces(false); - r = s.serialize(t); + s.ns().addNamespaceUrisToRoot(false).autoDetectNamespaces(false); + r = s.build().serialize(t); assertEquals("<object><p2:f1>1</p2:f1><p1:f2>2</p1:f2><c1:f3>3</c1:f3><f1:f4>4</f1:f4></object>", r); // Add namespace URIs to root, but don't auto-detect. // Only xsi should be added to root. - s.setAddNamespaceUrisToRoot(true); - r = s.serialize(t); + s.addNamespaceUrisToRoot(true); + r = s.build().serialize(t); assertEquals("<object xmlns='http://www.apache.org/2013/Juneau'><p2:f1>1</p2:f1><p1:f2>2</p1:f2><c1:f3>3</c1:f3><f1:f4>4</f1:f4></object>", r); // Manually set namespaces - s.setNamespaces( + s.namespaces( NamespaceFactory.get("foo","http://foo"), NamespaceFactory.get("bar","http://bar"), NamespaceFactory.get("baz","http://baz") ); - r = s.serialize(t); + r = s.build().serialize(t); assertEquals("<object xmlns='http://www.apache.org/2013/Juneau' xmlns:foo='http://foo' xmlns:bar='http://bar' xmlns:baz='http://baz'><p2:f1>1</p2:f1><p1:f2>2</p1:f2><c1:f3>3</c1:f3><f1:f4>4</f1:f4></object>", r); // Auto-detect namespaces. - s = new XmlSerializer.Sq().setAutoDetectNamespaces(true); - r = s.serialize(t); + s = new XmlSerializerBuilder().sq().autoDetectNamespaces(true); + r = s.build().serialize(t); assertEquals("<object><f1>1</f1><f2>2</f2><f3>3</f3><f4>4</f4></object>", r); assertTrue(t.equals(p.parse(r, T8.class))); - validateXml(t, s); + validateXml(t, s.build()); - s.setAddNamespaceUrisToRoot(true); - r = s.serialize(t); + s.addNamespaceUrisToRoot(true); + r = s.build().serialize(t); assertEquals("<object><f1>1</f1><f2>2</f2><f3>3</f3><f4>4</f4></object>", r); - validateXml(t, s); + validateXml(t, s.build()); - s.setEnableNamespaces(true); - r = s.serialize(t); + s.ns(); + r = s.build().serialize(t); assertEquals("<object xmlns='http://www.apache.org/2013/Juneau' xmlns:p2='http://p2' xmlns:p1='http://p1' xmlns:c1='http://c1' xmlns:f1='http://f1'><p2:f1>1</p2:f1><p1:f2>2</p1:f2><c1:f3>3</c1:f3><f1:f4>4</f1:f4></object>", r); assertTrue(t.equals(p.parse(r, T8.class))); - validateXml(t, s); + validateXml(t, s.build()); } //==================================================================================================== @@ -931,50 +933,50 @@ public class XmlTest { //==================================================================================================== @Test public void testXmlNsOnPackageNsUriInXmlNs() throws Exception { - XmlSerializer s = new XmlSerializer.Sq().setAutoDetectNamespaces(false); + XmlSerializerBuilder s = new XmlSerializerBuilder().sq().autoDetectNamespaces(false); XmlParser p = XmlParser.DEFAULT; T9 t = new T9(); - String r = s.serialize(t); + String r = s.build().serialize(t); assertEquals("<object><f1>1</f1></object>", r); assertTrue(t.equals(p.parse(r, T9.class))); - s.setEnableNamespaces(true).setAutoDetectNamespaces(false).setAddNamespaceUrisToRoot(false); - r = s.serialize(t); + s.ns().autoDetectNamespaces(false).addNamespaceUrisToRoot(false); + r = s.build().serialize(t); assertEquals("<object><p1:f1>1</p1:f1></object>", r); // Add namespace URIs to root, but don't auto-detect. // Only xsi should be added to root. - s.setAddNamespaceUrisToRoot(true); - r = s.serialize(t); + s.addNamespaceUrisToRoot(true); + r = s.build().serialize(t); assertEquals("<object xmlns='http://www.apache.org/2013/Juneau'><p1:f1>1</p1:f1></object>", r); // Manually set namespaces - s.setNamespaces( + s.namespaces( NamespaceFactory.get("foo","http://foo"), NamespaceFactory.get("bar","http://bar"), NamespaceFactory.get("baz","http://baz") ); - r = s.serialize(t); + r = s.build().serialize(t); assertEquals("<object xmlns='http://www.apache.org/2013/Juneau' xmlns:foo='http://foo' xmlns:bar='http://bar' xmlns:baz='http://baz'><p1:f1>1</p1:f1></object>", r); // Auto-detect namespaces. - s = new XmlSerializer.Sq().setAutoDetectNamespaces(true); - r = s.serialize(t); + s = new XmlSerializerBuilder().sq().autoDetectNamespaces(true); + r = s.build().serialize(t); assertEquals("<object><f1>1</f1></object>", r); assertTrue(t.equals(p.parse(r, T9.class))); - validateXml(t, s); + validateXml(t, s.build()); - s.setAddNamespaceUrisToRoot(true); - r = s.serialize(t); + s.addNamespaceUrisToRoot(true); + r = s.build().serialize(t); assertEquals("<object><f1>1</f1></object>", r); - validateXml(t, s); + validateXml(t, s.build()); - s.setEnableNamespaces(true); - r = s.serialize(t); + s.ns(); + r = s.build().serialize(t); assertEquals("<object xmlns='http://www.apache.org/2013/Juneau' xmlns:p1='http://p1'><p1:f1>1</p1:f1></object>", r); assertTrue(t.equals(p.parse(r, T9.class))); - validateXml(t, s); + validateXml(t, s.build()); } //==================================================================================================== @@ -982,7 +984,7 @@ public class XmlTest { //==================================================================================================== @Test public void testXmlAttrs() throws Exception { - XmlSerializer s = new XmlSerializer.Sq(); + XmlSerializerBuilder s = new XmlSerializerBuilder().sq(); XmlParser p = XmlParser.DEFAULT; String r; @@ -990,17 +992,17 @@ public class XmlTest { t.f1 = new URL("http://xf1"); t.f2 = "xf2"; t.f3 = "xf3"; - r = s.serialize(t); + r = s.build().serialize(t); assertEquals("<object f1='http://xf1' f2='xf2' x3='xf3'/>", r); t = p.parse(r, Q.class); assertEquals("http://xf1", t.f1.toString()); assertEquals("xf2", t.f2); assertEquals("xf3", t.f3); - s.setEnableNamespaces(true).setAddNamespaceUrisToRoot(true).setAutoDetectNamespaces(true); - r = s.serialize(t); + s.ns().addNamespaceUrisToRoot(true).autoDetectNamespaces(true); + r = s.build().serialize(t); assertEquals("<object xmlns='http://www.apache.org/2013/Juneau' xmlns:ns='http://ns' xmlns:nsf1='http://nsf1' xmlns:nsf3='http://nsf3' nsf1:f1='http://xf1' ns:f2='xf2' nsf3:x3='xf3'/>", r); - validateXml(t, s); + validateXml(t, s.build()); t = p.parse(r, Q.class); assertEquals("http://xf1", t.f1.toString()); http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core/.gitignore ---------------------------------------------------------------------- diff --git a/juneau-core/.gitignore b/juneau-core/.gitignore index ac0418c..1401e35 100644 --- a/juneau-core/.gitignore +++ b/juneau-core/.gitignore @@ -2,3 +2,4 @@ /.DS_Store /.settings/ /.classpath +/TODO.txt http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core/src/main/java/org/apache/juneau/.DS_Store ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/.DS_Store b/juneau-core/src/main/java/org/apache/juneau/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/juneau-core/src/main/java/org/apache/juneau/.DS_Store differ http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/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 5c5d836..2a2f75a 100644 --- a/juneau-core/src/main/java/org/apache/juneau/BeanContext.java +++ b/juneau-core/src/main/java/org/apache/juneau/BeanContext.java @@ -43,9 +43,9 @@ import org.apache.juneau.transform.*; * All serializer and parser contexts extend from this context. * * <h5 class='topic'>Bean Contexts</h5> - * Bean contexts are created through the {@link ContextFactory#getContext(Class)} method. + * Bean contexts are created through the {@link PropertyStore#getContext(Class)} method. * These context objects are read-only, reusable, and thread-safe. - * The {@link ContextFactory} class will typically cache copies of <code>Context</code> objects based on + * The {@link PropertyStore} class will typically cache copies of <code>Context</code> objects based on * the current settings on the factory. * <p> * Each bean context maintains a cache of {@link ClassMeta} objects that describe information about classes encountered. @@ -74,20 +74,20 @@ import org.apache.juneau.transform.*; * <p> * Some settings (e.g. {@link BeanContext#BEAN_beanMapPutReturnsOldValue}) change the runtime behavior of bean maps. * <p> - * Settings are specified using the {@link ContextFactory#setProperty(String, Object)} method and related convenience methods. + * Settings are specified using the {@link PropertyStore#setProperty(String, Object)} method and related convenience methods. * * <h5 class='section'>Example:</h5> * <p class='bcode'> * <jc>// Construct a context from scratch.</jc> - * BeanContext beanContext = ContextFactory.<jsm>create</jsm>() - * .setProperty(BeanContext.<jsf>BEAN_beansRequireDefaultConstructor</jsf>, <jk>true</jk>) - * .addNotBeanClasses(Foo.<jk>class</jk>) + * BeanContext beanContext = PropertyStore.<jsm>create</jsm>() + * .property(BeanContext.<jsf>BEAN_beansRequireDefaultConstructor</jsf>, <jk>true</jk>) + * .notBeanClasses(Foo.<jk>class</jk>) * .getBeanContext(); * - * <jc>// Clone an existing context factory.</jc> - * BeanContext beanContext = ContextFactory.<jsm>create</jsm>(otherConfig) - * .setProperty(BeanContext.<jsf>BEAN_beansRequireDefaultConstructor</jsf>, <jk>true</jk>) - * .addNotBeanClasses(Foo.<jk>class</jk>) + * <jc>// Clone an existing property store.</jc> + * BeanContext beanContext = PropertyStore.<jsm>create</jsm>(otherConfig) + * .property(BeanContext.<jsf>BEAN_beansRequireDefaultConstructor</jsf>, <jk>true</jk>) + * .notBeanClasses(Foo.<jk>class</jk>) * .getBeanContext(); * </p> * @@ -761,7 +761,7 @@ public class BeanContext extends Context { }; - static final void loadDefaults(ContextFactory config) { + static final void loadDefaults(PropertyStore config) { config.setProperty(BEAN_notBeanPackages, DEFAULT_NOTBEAN_PACKAGES); config.setProperty(BEAN_notBeanClasses, DEFAULT_NOTBEAN_CLASSES); } @@ -775,10 +775,10 @@ public class BeanContext extends Context { private static final ConcurrentHashMap<Integer,Map<Class,ClassMeta>> cmCacheCache = new ConcurrentHashMap<Integer,Map<Class,ClassMeta>>(); /** Default config. All default settings. */ - public static final BeanContext DEFAULT = ContextFactory.create().getContext(BeanContext.class); + public static final BeanContext DEFAULT = PropertyStore.create().getContext(BeanContext.class); /** Default config. All default settings except sort bean properties. */ - public static final BeanContext DEFAULT_SORTED = ContextFactory.create().setProperty(BEAN_sortProperties, true).getContext(BeanContext.class); + public static final BeanContext DEFAULT_SORTED = PropertyStore.create().setProperty(BEAN_sortProperties, true).getContext(BeanContext.class); final boolean beansRequireDefaultConstructor, @@ -829,17 +829,17 @@ public class BeanContext extends Context { /** * Constructor. * <p> - * Typically only called from {@link ContextFactory#getContext(Class)} or {@link ContextFactory#getBeanContext()}. + * Typically only called from {@link PropertyStore#getContext(Class)} or {@link PropertyStore#getBeanContext()}. * - * @param cf The factory that created this context. + * @param ps The property store that created this context. */ - public BeanContext(ContextFactory cf) { - super(cf); + public BeanContext(PropertyStore ps) { + super(ps); - ContextFactory.PropertyMap pm = cf.getPropertyMap("BeanContext"); + PropertyStore.PropertyMap pm = ps.getPropertyMap("BeanContext"); hashCode = pm.hashCode(); - classLoader = cf.classLoader; - defaultParser = cf.defaultParser; + classLoader = ps.classLoader; + defaultParser = ps.defaultParser; beansRequireDefaultConstructor = pm.get(BEAN_beansRequireDefaultConstructor, boolean.class, false); beansRequireSerializable = pm.get(BEAN_beansRequireSerializable, boolean.class, false); @@ -855,7 +855,7 @@ public class BeanContext extends Context { useJavaBeanIntrospector = pm.get(BEAN_useJavaBeanIntrospector, boolean.class, false); sortProperties = pm.get(BEAN_sortProperties, boolean.class, false); beanTypePropertyName = pm.get(BEAN_beanTypePropertyName, String.class, "_type"); - debug = cf.getProperty(BEAN_debug, boolean.class, false); + debug = ps.getProperty(BEAN_debug, boolean.class, false); beanConstructorVisibility = pm.get(BEAN_beanConstructorVisibility, Visibility.class, PUBLIC); beanClassVisibility = pm.get(BEAN_beanClassVisibility, Visibility.class, PUBLIC); http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core/src/main/java/org/apache/juneau/BeanMap.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/BeanMap.java b/juneau-core/src/main/java/org/apache/juneau/BeanMap.java index 009ce2f..ed57429 100644 --- a/juneau-core/src/main/java/org/apache/juneau/BeanMap.java +++ b/juneau-core/src/main/java/org/apache/juneau/BeanMap.java @@ -176,7 +176,7 @@ public class BeanMap<T> extends AbstractMap<String,Object> implements Delegate<T * Person p = <jk>new</jk> Person(); * * <jc>// Create a bean context and add the ISO8601 date-time swap</jc> - * BeanContext beanContext = <jk>new</jk> BeanContext().addPojoSwaps(DateSwap.ISO8601DT.<jk>class</jk>); + * BeanContext beanContext = <jk>new</jk> BeanContext().pojoSwaps(DateSwap.ISO8601DT.<jk>class</jk>); * * <jc>// Wrap our bean in a bean map</jc> * BeanMap<Person> b = beanContext.forBean(p); @@ -251,7 +251,7 @@ public class BeanMap<T> extends AbstractMap<String,Object> implements Delegate<T * p.setBirthDate(<jk>new</jk> Date(1, 2, 3, 4, 5, 6)); * * <jc>// Create a bean context and add the ISO8601 date-time swap</jc> - * BeanContext beanContext = <jk>new</jk> BeanContext().addPojoSwaps(DateSwap.ISO8601DT.<jk>class</jk>); + * BeanContext beanContext = <jk>new</jk> BeanContext().pojoSwaps(DateSwap.ISO8601DT.<jk>class</jk>); * * <jc>// Wrap our bean in a bean map</jc> * BeanMap<Person> b = beanContext.forBean(p); http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core/src/main/java/org/apache/juneau/Context.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/Context.java b/juneau-core/src/main/java/org/apache/juneau/Context.java index 6005ee9..d6912e7 100644 --- a/juneau-core/src/main/java/org/apache/juneau/Context.java +++ b/juneau-core/src/main/java/org/apache/juneau/Context.java @@ -19,14 +19,14 @@ import org.apache.juneau.serializer.*; /** * A reusable stateless thread-safe read-only configuration, typically used for creating one-time use {@link Session} objects. * <p> - * Contexts are created through the {@link ContextFactory#getContext(Class)} method. + * Contexts are created through the {@link PropertyStore#getContext(Class)} method. * <p> - * Subclasses MUST implement a constructor method that takes in a {@link ContextFactory} parameter. + * Subclasses MUST implement a constructor method that takes in a {@link PropertyStore} parameter. * Besides that restriction, a context object can do anything you desire. However, it MUST * be thread-safe and all fields should be declared final to prevent modification. * It should NOT be used for storing temporary or state information. * - * @see ContextFactory + * @see PropertyStore */ public abstract class Context { @@ -35,9 +35,9 @@ public abstract class Context { * <p> * Subclasses MUST implement the same constructor. * - * @param configFactory The factory that created this config. + * @param propertyStore The factory that created this config. */ - public Context(ContextFactory configFactory) {} + public Context(PropertyStore propertyStore) {} /** * Returns the properties defined on this bean context as a simple map for debugging purposes.
