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 2017/11/09 00:41:07 UTC

[1/3] juneau git commit: Add convenience create() methods to serializers and parsers.

Repository: juneau
Updated Branches:
  refs/heads/master 80da4f69d -> c0a503889


http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BeanFilterBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BeanFilterBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BeanFilterBuilder.java
index 9ba63df..2b472ba 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BeanFilterBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BeanFilterBuilder.java
@@ -129,7 +129,7 @@ public abstract class BeanFilterBuilder {
 	 * 		}
 	 * 	}
 	 *
-	 * 	JsonSerializer s = new JsonSerializerBuilder().beanFilters(AFilter.<jk>class</jk>).build();
+	 * 	JsonSerializer s = JsonSerializer.create().beanFilters(AFilter.<jk>class</jk>).build();
 	 * 	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/juneau/blob/c0a50388/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/package.html
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/package.html b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/package.html
index 4f7ea14..1609397 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/package.html
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/package.html
@@ -151,7 +151,7 @@
 		}
 	}
 	
-	WriterSerializer s = <jk>new</jk> JsonSerializerBuilder().beanFilters(MyBeanFilter.<jk>class</jk>).build();
+	WriterSerializer s = JsonSerializer.<jsm>create</jsm>().beanFilters(MyBeanFilter.<jk>class</jk>).build();
 	Person p = getPerson();
 	String json = s.serialize(p);  <jc>// Prints "{age:45,name:'John Smith'}"</jc>
 		</p>
@@ -174,7 +174,7 @@
 		}
 	}
 	
-	WriterSerializer s = <jk>new</jk> JsonSerializerBuilder().beanFilters(MyBeanFilter.<jk>class</jk>).build();
+	WriterSerializer s = JsonSerializer.<jsm>create</jsm>().beanFilters(MyBeanFilter.<jk>class</jk>).build();
 	Person p = getPerson();
 	String json = s.serialize(p);  <jc>// Prints "{age:45}"</jc>
 		</p>
@@ -207,12 +207,12 @@
 	}
 	
 	<jc>// Serialize to JSON</jc>
-	WriterSerializer s = <jk>new</jk> JsonSerializerBuilder().beanFilters(MyBeanFilter.<jk>class</jk>).build();
+	WriterSerializer s = JsonSerializer.<jsm>create</jsm>().beanFilters(MyBeanFilter.<jk>class</jk>).build();
 	Person person = getPerson();
 	String json = s.serialize(p);  <jc>// Prints "{AGE:45,NAME:'John Smith'}"</jc>
 	
 	<jc>// Parse back into bean</jc>
-	ReaderParser p = <jk>new</jk> JsonParserBuilder().beanFilters(MyBeanFilter.<jk>class</jk>).build();
+	ReaderParser p = JsonParser.<jsm>create</jsm>().beanFilters(MyBeanFilter.<jk>class</jk>).build();
 	person = p.parse(json, Person.class); <jc>// Read back into original object</jc>
 		</p>
 		<p>
@@ -266,7 +266,7 @@
 		</p>
 		<p class='bcode'>
 	<jc>// Serialize to JSON</jc>
-	WriterSerializer s = <jk>new</jk> JsonSerializerBuilder().beanFilters(MyBeanFilter.<jk>class</jk>).build();
+	WriterSerializer s = JsonSerializer.<jsm>create</jsm>().beanFilters(MyBeanFilter.<jk>class</jk>).build();
 	MyClass c = <jk>new</jk> MyClassBar();
 	String json = s.serialize(p);  <jc>// Prints "{foo:'foo'}"</jc>
 		</p>	
@@ -296,7 +296,7 @@
 		</p>
 		<p class='bcode'>
 	<jc>// Serialize to JSON</jc>
-	WriterSerializer s = <jk>new</jk> JsonSerializerBuilder().beanFilters(MyClass.<jk>class</jk>).build();
+	WriterSerializer s = JsonSerializer.<jsm>create</jsm>().beanFilters(MyClass.<jk>class</jk>).build();
 		</p>
 		<p>
 			In fact, this is the shortcut used in the <code>RequestEchoResource</code> sample class:
@@ -409,11 +409,11 @@
 	}
 
 	<jc>// Create a new JSON serializer, associate our date swap with it, and serialize a sample bean.</jc>
-	Serializer serializer = <jk>new</jk> JsonSerializerBuilder().pojoSwaps(MyDateSwap.<jk>class</jk>).build();
+	Serializer serializer = JsonSerializer.<jsm>create</jsm>().pojoSwaps(MyDateSwap.<jk>class</jk>).build();
 	String json = serializer.serialize(<jk>new</jk> MyBean());	<jc>// == "{date:'2012-03-03T04:05:06-0500'}"</jc>
 	
 	<jc>// Create a JSON parser, associate our date swap with it, and reconstruct our bean (including the date).</jc>
-	ReaderParser parser = <jk>new</jk> JsonParserBuilder().pojoSwaps(MyDateSwap.<jk>class</jk>).build();
+	ReaderParser parser = JsonParser.<jsm>create</jsm>().pojoSwaps(MyDateSwap.<jk>class</jk>).build();
 	MyBean bean = parser.parse(json, MyBean.<jk>class</jk>);
 	<jk>int</jk> day = bean.<jf>date</jf>.getDay(); 						<jc>// == 3</jc>
 		</p>
@@ -482,8 +482,8 @@
 		</p>
 		<p class='bcode'>
 	<jc>// Create a JSON serializer and register the BASE64 encoding swap with it.</jc>
-	Serializer serializer = <jk>new</jk> JsonSerializerBuilder().pojoSwaps(ByteArrayBase64Swap.<jk>class</jk>).build();
-	ReaderParser parser = <jk>new</jk> JsonParserBuilder().pojoSwaps(ByteArrayBase64Swap.<jk>class</jk>).build();
+	Serializer serializer = JsonSerializer.<jsm>create</jsm>().pojoSwaps(ByteArrayBase64Swap.<jk>class</jk>).build();
+	ReaderParser parser = JsonParser.<jsm>create</jsm>().pojoSwaps(ByteArrayBase64Swap.<jk>class</jk>).build();
 	
 	<jk>byte</jk>[] a1 = {1,2,3};
 	String s1 = serializer.serialize(a1);		<jc>// Produces "'AQID'"</jc>
@@ -562,7 +562,7 @@
 		</p>
 		<p class='bcode'>
 	<jc>// Create a JSON serializer that can serialize Iterators.</jc>
-	Serializer serializer = <jk>new</jk> JsonSerializerBuilder().pojoSwaps(IteratorSwap.<jk>class</jk>).build();
+	Serializer serializer = JsonSerializer.<jsm>create</jsm>().pojoSwaps(IteratorSwap.<jk>class</jk>).build();
 	
 	<jc>// Construct an iterator we want to serialize.</jc>
 	Iterator iterator = <jk>new</jk> ObjectList(1,2,3).iterator();
@@ -571,7 +571,7 @@
 	String s = serializer.serialize(iterator);		<jc>// Produces "[1,2,3]"</jc>
 	
 	<jc>// Try to parse it.</jc>
-	ReaderParser parser = <jk>new</jk> JsonParserBuilder().pojoSwaps(IteratorSwap.<jk>class</jk>).build();
+	ReaderParser parser = JsonParser.<jsm>create</jsm>().pojoSwaps(IteratorSwap.<jk>class</jk>).build();
 	iterator = parser.parse(s, Iterator.<jk>class</jk>);		<jc>// Throws ParseException!!!</jc>
 		</p>
 	</div>
@@ -616,7 +616,7 @@
 		</p>
 		<p class='bcode'>
 	<jc>// Serialize to JSON</jc>
-	WriterSerializer s = <jk>new</jk> JsonSerializerBuilder().beanFilters(MyBeanFilter.<jk>class</jk>).build();
+	WriterSerializer s = JsonSerializer.<jsm>create</jsm>().beanFilters(MyBeanFilter.<jk>class</jk>).build();
 	MyClass c = <jk>new</jk> MyClassBar();
 	String json = s.serialize(p);  <jc>// Prints "{foo:'foo'}"</jc>
 		</p>	
@@ -646,7 +646,7 @@
 		</p>
 		<p class='bcode'>
 	<jc>// Serialize to JSON</jc>
-	WriterSerializer s = <jk>new</jk> JsonSerializerBuilder().beanFilters(MyClass.<jk>class</jk>).build();
+	WriterSerializer s = JsonSerializer.<jsm>create</jsm>().beanFilters(MyClass.<jk>class</jk>).build();
 		</p>
 	</div>
 
@@ -702,7 +702,7 @@
 		</p>
 		<p class='bcode'>
 	<jc>// Create a JSON serializer that can serialize Iterators.</jc>
-	Serializer serializer = <jk>new</jk> JsonSerializerBuilder().pojoSwaps(MySerializableSurrogate.<jk>class</jk>).build();
+	Serializer serializer = JsonSerializer.<jsm>create</jsm>().pojoSwaps(MySerializableSurrogate.<jk>class</jk>).build();
 		</p>
 		<p>
 			When the serializer encounters the non-serializable class, it will serialize an instance of the surrogate 

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParser.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParser.java
index 228d9f4..0564d84 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParser.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParser.java
@@ -116,6 +116,22 @@ public class UonParser extends ReaderParser {
 	}
 
 	/**
+	 * Instantiates a new clean-slate {@link UonParserBuilder} object.
+	 * 
+	 * <p>
+	 * This is equivalent to simply calling <code><jk>new</jk> UonParserBuilder()</code>.
+	 * 
+	 * <p>
+	 * Note that this method creates a builder initialized to all default settings, whereas {@link #builder()} copies 
+	 * the settings of the object called on.
+	 * 
+	 * @return A new {@link UonParserBuilder} object.
+	 */
+	public static UonParserBuilder create() {
+		return new UonParserBuilder();
+	}
+
+	/**
 	 * Create a UON parser session for parsing parameter values.
 	 *
 	 * @return A new parser session.

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializer.java
index a5d4d3f..3cfba8f 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializer.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializer.java
@@ -277,6 +277,21 @@ public class UonSerializer extends WriterSerializer {
 		return new UonSerializerBuilder(propertyStore);
 	}
 
+	/**
+	 * Instantiates a new clean-slate {@link UonSerializerBuilder} object.
+	 * 
+	 * <p>
+	 * This is equivalent to simply calling <code><jk>new</jk> UonSerializerBuilder()</code>.
+	 * 
+	 * <p>
+	 * Note that this method creates a builder initialized to all default settings, whereas {@link #builder()} copies 
+	 * the settings of the object called on.
+	 * 
+	 * @return A new {@link UonSerializerBuilder} object.
+	 */
+	public static UonSerializerBuilder create() {
+		return new UonSerializerBuilder();
+	}
 
 
 	//--------------------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
index 6eff79e..7c0bb8a 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
@@ -96,6 +96,22 @@ public class UrlEncodingParser extends UonParser implements PartParser {
 	}
 
 	/**
+	 * Instantiates a new clean-slate {@link UrlEncodingParserBuilder} object.
+	 * 
+	 * <p>
+	 * This is equivalent to simply calling <code><jk>new</jk> UrlEncodingParserBuilder()</code>.
+	 * 
+	 * <p>
+	 * Note that this method creates a builder initialized to all default settings, whereas {@link #builder()} copies 
+	 * the settings of the object called on.
+	 * 
+	 * @return A new {@link UrlEncodingParserBuilder} object.
+	 */
+	public static UrlEncodingParserBuilder create() {
+		return new UrlEncodingParserBuilder();
+	}
+
+	/**
 	 * Parse a URL query string into a simple map of key/value pairs.
 	 *
 	 * @param qs The query string to parse.

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java
index 40ef9ae..a26c059 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java
@@ -266,12 +266,27 @@ public class UrlEncodingSerializer extends UonSerializer implements PartSerializ
 		this.ctx = createContext(UrlEncodingSerializerContext.class);
 	}
 
-
 	@Override /* CoreObject */
 	public UrlEncodingSerializerBuilder builder() {
 		return new UrlEncodingSerializerBuilder(propertyStore);
 	}
 
+	/**
+	 * Instantiates a new clean-slate {@link UrlEncodingSerializerBuilder} object.
+	 * 
+	 * <p>
+	 * This is equivalent to simply calling <code><jk>new</jk> UrlEncodingSerializerBuilder()</code>.
+	 * 
+	 * <p>
+	 * Note that this method creates a builder initialized to all default settings, whereas {@link #builder()} copies 
+	 * the settings of the object called on.
+	 * 
+	 * @return A new {@link UrlEncodingSerializerBuilder} object.
+	 */
+	public static UrlEncodingSerializerBuilder create() {
+		return new UrlEncodingSerializerBuilder();
+	}
+
 
 	//--------------------------------------------------------------------------------
 	// Methods for constructing individual parameter values.

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParser.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParser.java
index 6b559bf..0c720a3 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParser.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParser.java
@@ -177,6 +177,22 @@ public class XmlParser extends ReaderParser {
 		return new XmlParserBuilder(propertyStore);
 	}
 
+	/**
+	 * Instantiates a new clean-slate {@link XmlParserBuilder} object.
+	 * 
+	 * <p>
+	 * This is equivalent to simply calling <code><jk>new</jk> XmlParserBuilder()</code>.
+	 * 
+	 * <p>
+	 * Note that this method creates a builder initialized to all default settings, whereas {@link #builder()} copies 
+	 * the settings of the object called on.
+	 * 
+	 * @return A new {@link XmlParserBuilder} object.
+	 */
+	public static XmlParserBuilder create() {
+		return new XmlParserBuilder();
+	}
+
 	@Override /* Parser */
 	public ReaderParserSession createSession(ParserSessionArgs args) {
 		return new XmlParserSession(ctx, args);

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java
index 647e794..66bf1ef 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java
@@ -395,6 +395,21 @@ public class XmlSerializer extends WriterSerializer {
 		return new XmlSerializerBuilder(propertyStore);
 	}
 
+	/**
+	 * Instantiates a new clean-slate {@link XmlSerializerBuilder} object.
+	 * 
+	 * <p>
+	 * This is equivalent to simply calling <code><jk>new</jk> XmlSerializerBuilder()</code>.
+	 * 
+	 * <p>
+	 * Note that this method creates a builder initialized to all default settings, whereas {@link #builder()} copies 
+	 * the settings of the object called on.
+	 * 
+	 * @return A new {@link XmlSerializerBuilder} object.
+	 */
+	public static XmlSerializerBuilder create() {
+		return new XmlSerializerBuilder();
+	}
 
 	/**
 	 * Returns the schema serializer based on the settings of this serializer.

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/package.html
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/package.html b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/package.html
index 2584818..473050a 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/package.html
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/package.html
@@ -256,7 +256,7 @@
 	</p>
 	<p class='bcode'>
 	<jc>// Create a new serializer with readable output, no namespaces yet.</jc>
-	XmlSerializer s = <jk>new</jk> XmlSerializerBuilder()
+	XmlSerializer s = XmlSerializer.<jsm>create</jsm>()
 		.ws()  <jc>// or .useWhitespace(true)</jc>  
 		.sq()  <jc>// or .quoteChar('\'')</jc>
 		.ns()  <jc>// or .enableNamespaces(false)</jc>
@@ -2042,7 +2042,7 @@
 		<p class='bcode'>
 	<jc>// Create a new serializer with readable output, this time with namespaces enabled.</jc>
 	<jc>// Note that this is identical to XmlSerializer.DEFAULT_NS_SQ_READABLE.</jc>
-	XmlSerializer s = <jk>new</jk> XmlSerializerBuilder().ns().ws().sq().build();
+	XmlSerializer s = XmlSerializer.<jsm>create</jsm>().ns().ws().sq().build();
 
 	<jc>// Create our bean.</jc>
 	Person p = <jk>new</jk> Person(1, <js>"John Smith"</js>);
@@ -2135,7 +2135,7 @@
 			not need to be prefixed:
 		<p class='bcode'>
 	<jc>// Create a new serializer with readable output, this time with namespaces enabled.</jc>
-	XmlSerializer s = <jk>new</jk> XmlSerializerBuilder()
+	XmlSerializer s = XmlSerializer.<jsm>create</jsm>()
 		.ws()
 		.sq()
 		.ns()
@@ -2174,7 +2174,7 @@
 			</p>
 			<p class='bcode'>
 	<jc>// Create a new serializer with readable output, this time with namespaces enabled.</jc>
-	XmlSerializer s = <jk>new</jk> XmlSerializerBuilder()
+	XmlSerializer s = XmlSerializer.<jsm>create</jsm>()
 		.ws()
 		.sq()
 		.autoDetectNamespaces(<jk>false</jk>)
@@ -2322,7 +2322,7 @@
 		</p>
 		<p class='bcode'>
 	<jc>// Create a new serializer with readable output.</jc>
-	XmlSerializer s = <jk>new</jk> XmlSerializerBuilder().ws().sq().build();
+	XmlSerializer s = XmlSerializer.<jsm>create</jsm>().ws().sq().build();
 
 	<jc>// Create our bean.</jc>
 	Person p = <jk>new</jk> Person(1, <js>"John Smith"</js>, <js>"http://sample/addressBook/person/1"</js>, 
@@ -2435,7 +2435,7 @@
 		</p>
 		<p class='bcode'>
 	<jc>// Create a new serializer with readable output.</jc>
-	XmlSerializer s = <jk>new</jk> XmlSerializerBuilder()
+	XmlSerializer s = XmlSerializer.<jsm>create</jsm>()
 		.ws()
 		.ns()
 		.sq()
@@ -2745,7 +2745,7 @@
 		</p>
 		<p class='bcode'>
 	<jc>// Create a new serializer with readable output.</jc>
-	XmlSerializer s = <jk>new</jk> XmlSerializerBuilder()
+	XmlSerializer s = XmlSerializer.<jsm>create</jsm>()
 		.ws()
 		.sq()
 		.ns()
@@ -2830,7 +2830,7 @@
 	</p>
 	<p class='bcode'>
 	<jc>// Create a new serializer with readable output.</jc>
-	XmlSerializer s = <jk>new</jk> XmlSerializerBuilder().ws().sq().ns().build();
+	XmlSerializer s = XmlSerializer.<jsm>create</jsm>().ws().sq().ns().build();
 
 	<jc>// Create our bean.</jc>
 	Person p = <jk>new</jk> Person(1, <js>"John Smith"</js>, <js>"http://sample/addressBook/person/1"</js>, 

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/proto/YamlParser.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/proto/YamlParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/proto/YamlParser.java
index 483338e..a8122b9 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/proto/YamlParser.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/proto/YamlParser.java
@@ -160,6 +160,22 @@ public class YamlParser extends ReaderParser {
 		return new YamlParserBuilder(propertyStore);
 	}
 
+	/**
+	 * Instantiates a new clean-slate {@link YamlParserBuilder} object.
+	 * 
+	 * <p>
+	 * This is equivalent to simply calling <code><jk>new</jk> YamlParserBuilder()</code>.
+	 * 
+	 * <p>
+	 * Note that this method creates a builder initialized to all default settings, whereas {@link #builder()} copies 
+	 * the settings of the object called on.
+	 * 
+	 * @return A new {@link YamlParserBuilder} object.
+	 */
+	public static YamlParserBuilder create() {
+		return new YamlParserBuilder();
+	}
+
 	@Override /* Parser */
 	public ReaderParserSession createSession(ParserSessionArgs args) {
 		return new YamlParserSession(ctx, args);

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/proto/YamlSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/proto/YamlSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/proto/YamlSerializer.java
index 9be89e7..f6613e6 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/proto/YamlSerializer.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/proto/YamlSerializer.java
@@ -197,6 +197,22 @@ public class YamlSerializer extends WriterSerializer {
 		return new YamlSerializerBuilder(propertyStore);
 	}
 
+	/**
+	 * Instantiates a new clean-slate {@link YamlSerializerBuilder} object.
+	 * 
+	 * <p>
+	 * This is equivalent to simply calling <code><jk>new</jk> YamlSerializerBuilder()</code>.
+	 * 
+	 * <p>
+	 * Note that this method creates a builder initialized to all default settings, whereas {@link #builder()} copies 
+	 * the settings of the object called on.
+	 * 
+	 * @return A new {@link YamlSerializerBuilder} object.
+	 */
+	public static YamlSerializerBuilder create() {
+		return new YamlSerializerBuilder();
+	}
+
 
 	//--------------------------------------------------------------------------------
 	// Entry point methods

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/proto/package.html
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/proto/package.html b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/proto/package.html
index 9e1598a..0c25ece 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/proto/package.html
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/proto/package.html
@@ -295,7 +295,7 @@
 		We could have also created a new serializer with the same settings using the following code:
 	</p>
 	<p class='bcode'>
-	JsonSerializer s = <jk>new</jk> JsonSerializerBuilder().simple().ws().sq().build();
+	JsonSerializer s = JsonSerializer.<jsm>create</jsm>().simple().ws().sq().build();
 	</p>
 	
 	<p>

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-doc/src/main/javadoc/overview.html
----------------------------------------------------------------------
diff --git a/juneau-doc/src/main/javadoc/overview.html b/juneau-doc/src/main/javadoc/overview.html
index 08ec4f2..b2b84ec 100644
--- a/juneau-doc/src/main/javadoc/overview.html
+++ b/juneau-doc/src/main/javadoc/overview.html
@@ -548,7 +548,7 @@
 	String json = JsonSerializer.<jsf>DEFAULT</jsf>.serialize(someObject);
 
 	<jc>// Create a custom serializer for lax syntax using single quote characters</jc>
-	JsonSerializer serializer = <jk>new</jk> JsonSerializerBuilder().simple().sq().build();
+	JsonSerializer serializer = JsonSerializer.<jsm>create</jsm>().simple().sq().build();
 	
 	<jc>// Clone an existing serializer and modify it to use single-quotes</jc>
 	JsonSerializer serializer = JsonSerializer.<jsf>DEFAULT</jsf>.builder().sq().build();
@@ -669,7 +669,7 @@
 			</p>
 			<p class='bcode'>
 	<jc>// Construct a new serializer group with configuration parameters that get applied to all serializers.</jc>
-	SerializerGroup sg = <jk>new</jk> SerializerGroupBuilder()
+	SerializerGroup sg = SerializerGroup.<jsm>create</jsm>()
 		.append(JsonSerializer.<jk>class</jk>, UrlEncodingSerializer.<jk>class</jk>);
 		.ws   <jc>// or .useWhitespace(true)</jc>
 		.pojoSwaps(CalendarSwap.ISO8601DT.<jk>class</jk>)
@@ -680,7 +680,7 @@
 		.serialize(myPersonObject, myWriter);
 		
 	<jc>// Construct a new parser group with configuration parameters that get applied to all parsers.</jc>
-	ParserGroup pg = <jk>new</jk> ParserGroupBuilder()
+	ParserGroup pg = ParserGroup.<jsm>create</jsm>()
 		.append(JsonSerializer.<jk>class</jk>, UrlEncodingSerializer.<jk>class</jk>);
  		.pojoSwaps(CalendarSwap.ISO8601DT.<jk>class</jk>)
  		.build();
@@ -832,7 +832,7 @@
 				<br>For example, the following code shows how to configure a JSON serializer:
 			</p>
 			<p class='bcode'>
-	JsonSerializer s = <jk>new</jk> JsonSerializerBuilder().simple().ws().sq().build();
+	JsonSerializer s = JsonSerializer.<jsm>create</jsm>().simple().ws().sq().build();
 			</p>
 			<p>
 				However, each of the serializers and parsers already contain reusable instances with common configurations.
@@ -1072,11 +1072,11 @@
 	}
 
 	<jc>// Create a new JSON serializer, associate our date swap with it, and serialize a sample bean.</jc>
-	Serializer serializer = <jk>new</jk> JsonSerializerBuilder().pojoSwaps(MyDateSwap.<jk>class</jk>).build();
+	Serializer serializer = JsonSerializer.<jsm>create</jsm>().pojoSwaps(MyDateSwap.<jk>class</jk>).build();
 	String json = serializer.serialize(<jk>new</jk> MyBean());	<jc>// == "{date:'2012-03-03T04:05:06-0500'}"</jc>
 	
 	<jc>// Create a JSON parser, associate our date swap with it, and reconstruct our bean (including the date).</jc>
-	ReaderParser parser = <jk>new</jk> JsonParserBuilder().pojoSwaps(MyDateSwap.<jk>class</jk>).build();
+	ReaderParser parser = JsonParser.<jsm>create</jsm>().pojoSwaps(MyDateSwap.<jk>class</jk>).build();
 	MyBean bean = parser.parse(json, MyBean.<jk>class</jk>);
 	<jk>int</jk> day = bean.<jf>date</jf>.getDay(); 						<jc>// == 3</jc>
 				</p>
@@ -1163,7 +1163,7 @@
 		<ja>@Test</ja>
 		<jk>public void</jk> doTest() <jk>throws</jk> Exception {
 
-			SerializerGroup g = <jk>new</jk> SerializerGroupBuilder()
+			SerializerGroup g = SerializerGroup.<jsm>create</jsm>()
 				.append(JsonSerializer.<jk>class</jk>, XmlSerializer.<jk>class</jk>, HtmlSerializer.<jk>class</jk>)
 				.sq()
 				.pojoSwaps(MyJsonSwap.<jk>class</jk>, MyXmlSwap.<jk>class</jk>, MyOtherSwap.<jk>class</jk>)
@@ -1439,7 +1439,7 @@
 				</p>
 				<p class='bcode'>			
 	<jc>// Create a new JSON serializer and associate a bean filter with it.</jc>
-	Serializer serializer = <jk>new</jk> JsonSerializerBuilder().beanFilters(MyAddressBeanFilter.<jk>class</jk>).build();
+	Serializer serializer = JsonSerializer.<jsm>create</jsm>().beanFilters(MyAddressBeanFilter.<jk>class</jk>).build();
 				</p>
 				<p>
 					Note that if you use the annotation, you do NOT need to set anything on the serializers/parsers.
@@ -1466,7 +1466,7 @@
 	}
 	
 	<jc>// Create a new JSON serializer that only exposes street,city,state on Address bean.</jc>
-	Serializer serializer = <jk>new</jk> JsonSerializerBuilder().beanFilters(AddressInterface.<jk>class</jk>).build();
+	Serializer serializer = JsonSerializer.<jsm>create</jsm>().beanFilters(AddressInterface.<jk>class</jk>).build();
 				</p>
 				
 				<h6 class='topic'>Additional Information</h6>
@@ -2462,7 +2462,7 @@
 			<h6 class='figure'>Example with no namespaces</h6>
 			<p class='bcode'>
 	<jc>// Create a serializer with readable output, no namespaces yet.</jc>
-	XmlSerializer s = <jk>new</jk> XmlSerializerBuilder().sq().ws().build();
+	XmlSerializer s = XmlSerializer.<jsm>create</jsm>().sq().ws().build();
 
 	<jc>// Serialize to ATOM/XML</jc>
 	String atomXml = s.serialize(feed);
@@ -2797,7 +2797,7 @@
 	URL key4;
 	
 	<jc>// Load our config file</jc>
-	ConfigFile f = <jk>new</jk> ConfigFileBuilder().build(<js>"MyConfig.cfg"</js>);
+	ConfigFile f = ConfigFile.<jsm>create</jsm>().build(<js>"MyConfig.cfg"</js>);
 	
 	<jc>// Read values from default section</jc>
 	key1 = f.getInt(<js>"key1"</js>);
@@ -2816,7 +2816,7 @@
 		</p>
 		<p class='bcode'>
 	<jc>// Construct the sample INI file programmatically</jc>
-	ConfigFile cf = <jk>new</jk> ConfigFileBuilder().build(<js>"MyConfig.cfg"</js>)
+	ConfigFile cf = ConfigFile.<jsm>create</jsm>().build(<js>"MyConfig.cfg"</js>)
 		.addLines(<jk>null</jk>,
 			<js>"# Default section"</js>,
 			<js>"key1 = 1"</js>,
@@ -2839,7 +2839,7 @@
 		</p>
 		<p class='bcode'>
 	<jc>// Construct the sample INI file programmatically</jc>
-	ConfigFile cf = <jk>new</jk> ConfigFileBuilder().build(<js>"MyConfig.cfg"</js>)
+	ConfigFile cf = ConfigFile.<jsm>create</jsm>().build(<js>"MyConfig.cfg"</js>)
 		.addLines(<jk>null</jk>,
 			<js>"# Default section"</js>)
 		.addHeaderComments(<js>"section1"</js>,
@@ -2958,7 +2958,7 @@
 	}
 
 	<jc>// Example usage</jc>
-	ConfigFile cf = <jk>new</jk> ConfigFileBuilder().build(<js>"MyConfig.cfg"</js>);
+	ConfigFile cf = ConfigFile.<jsm>create</jsm>().build(<js>"MyConfig.cfg"</js>);
 	Address myAddress = cf.getSectionAsBean(<js>"MySection"</js>, Address.<jk>class</jk>);
 		</p>
 		<p>
@@ -2998,7 +2998,7 @@
 	}
 	
 	<jc>// Example usage</jc>
-	ConfigFile cf = <jk>new</jk> ConfigFileBuilder().build(<js>"MyConfig.cfg"</js>);
+	ConfigFile cf = ConfigFile.<jsm>create</jsm>().build(<js>"MyConfig.cfg"</js>);
 	MyConfigInterface ci = cf.getSectionAsInterface(<js>"MySection"</js>, MyConfigInterface.<jk>class</jk>);
 	<jk>int</jk> myInt = ci.getInt();
 	ci.setBean(<jk>new</jk> MyBean());
@@ -3385,7 +3385,7 @@
 			<p class='bcode'>
 	
 	<jc>// Create a client with basic JSON support.</jc>
-	RestClient client = <jk>new</jk> RestClientBuilder().rootUrl(<js>"http://localhost/remoteable"</js>).build();
+	RestClient client = RestClient.<jsm>create</jsm>().rootUrl(<js>"http://localhost/remoteable"</js>).build();
 	
  	<jc>// Get an interface proxy.</jc>
  	IAddressBook ab = client.getRemoteableProxy(IAddressBook.<jk>class</jk>);
@@ -3729,7 +3729,7 @@
 		</p>
 		<p class='bcode'>
 	<jc>// Create a reusable JSON client.</jc>
-	RestClient client = <jk>new</jk> RestClientBuilder().build();
+	RestClient client = RestClient.<jsm>create</jsm>().build();
 	
 	<jc>// The address of the root resource.</jc>
 	String url = <js>"http://localhost:9080/sample/addressBook"</js>;
@@ -3743,7 +3743,7 @@
 	
 	<jc>// Add a person to the address book.
 	// Use XML as the transport medium.</jc>
-	client = <jk>new</jk> RestClientBuilder(XmlSerializer.<jk>class</jk>, XmlSerializer.<jk>class</jk>).build();
+	client = RestClient.<jsm>create</jsm>().serializer(XmlSerializer.<jk>class</jk>).parser(XmlSerializer.<jk>class</jk>).build();
 	Person p = <jk>new</jk> Person(<js>"Joe Smith"</js>, 21);
 	<jk>int</jk> returnCode = client.doPost(url + <js>"/entries"</js>, p).run();
 		</p>
@@ -3782,7 +3782,7 @@
 		String callMyMethod(<ja>@Header</ja>(<js>"E-Tag"</js>) UUID etag, <ja>@Query</ja>(<js>"debug"</js>) <jk>boolean</jk> debug, <ja>@Body</ja> MyPojo pojo);
 	}
 	
-	RestClient client = <jk>new</jk> RestClientBuilder().build();
+	RestClient client = RestClient.<jsm>create</jsm>().build();
 	MyProxyInterface p = client.getRemoteableProxy(MyProxyInterface.<jk>class</jk>, <js>"http://hostname/some/rest/interface"</js>);
 	String response = p.callMyMethod(UUID.<jsm>generate</jsm>(), <jk>true</jk>, <jk>new</jk> MyPojo());
 			</p>
@@ -6010,9 +6010,9 @@
 				System.<jsf>out</jsf>.println(<js>"Running client test..."</js>); 
 				
 				<jc>// Create a client to handle XML requests and responses.</jc> 
-				RestClient client = <jk>new</jk> RestClientBuilder().build(); 
-				RestClient xmlClient = <jk>new</jk> RestClientBuilder(XmlSerializer.<jsf>DEFAULT</jsf>, 
-					XmlParser.<jsf>DEFAULT</jsf>).build(); 
+				RestClient client = RestClient.<jsm>create</jsm>().build(); 
+				RestClient xmlClient = RestClient.<jsm>create</jsm>().serializer(XmlSerializer.<jsf>DEFAULT</jsf>)
+					.parser(XmlParser.<jsf>DEFAULT</jsf>).build(); 
 				
 				String root = <js>"http://localhost:10000/addressBook"</js>; 
 				
@@ -6216,7 +6216,7 @@
 			</p>
 			<p class='bcode'>
 	<jc>// Create a RestClient using JSON for serialization, and point to the server-side remoteable servlet.</jc>
-	RestClient client = <jk>new</jk> RestClientBuilder()
+	RestClient client = RestClient.<jsm>create</jsm>()
 		.rootUrl(<js>"http://localhost:10000/remoteable"</js>)
 		.build();
 	
@@ -6550,7 +6550,7 @@
 		
 		<jc>// Get registry URL from examples.cfg file.</jc>
 		<jk>private</jk> String <jf>registryUrl</jf> = getConfig().getString(<js>"DockerRegistry/url"</js>); 
-		RestClient <jf>rc</jf> = <jk>new</jk> RestClientBuilder().build(); 
+		RestClient <jf>rc</jf> = RestClient.<jsm>create</jsm>().build(); 
 		
 		<jd>/** [GET /] - Show child resources. */</jd> 
 		<ja>@SuppressWarnings</ja>(<js>"nls"</js>) 
@@ -6649,7 +6649,7 @@
 		<ja>@RestMethod</ja>(name=<jsf>GET</jsf>, path=<js>"/{blogName}"</js>) 
 		<jk>public</jk> ObjectList parseBlog(<ja>@Path</ja> String blogName) <jk>throws</jk> Exception { 
 			ObjectList l = <jk>new</jk> ObjectList(); 
-			RestClient rc = <jk>new</jk> RestClientBuilder().build(); 
+			RestClient rc = RestClient.<jsm>create</jsm>().build(); 
 			String site = <js>"http:<jc>//"</js> + blogName + <js>".tumblr.com/api/read/json"</js>;</jc> 
 			ObjectMap m = rc.doGet(site).getResponse(ObjectMap.<jk>class</jk>); 
 			<jk>int</jk> postsTotal = m.getInt(<js>"posts-total"</js>); 
@@ -7256,7 +7256,7 @@
 			} 
 		) 
 		<jk>public</jk> ConfigFile setConfigContents(<ja>@Body</ja> Reader contents) <jk>throws</jk> Exception { 
-			ConfigFile cf2 = <jk>new</jk> ConfigFileBuilder().build().load(contents); 
+			ConfigFile cf2 = ConfigFile.<jsm>create</jsm>().build().load(contents); 
 			<jk>return</jk> getConfig().merge(cf2).save(); 
 		} 
 		
@@ -7450,13 +7450,38 @@
 	<h3 class='topic' onclick='toggle(this)'>7.0.1 (TBD)</h3>
 	<div class='topic'>
 	
+		<h6 class='topic'>juneau-marshall</h6>
+		<ul class='spaced-list'>
+			<li>New static <code>create()</code> methods for builders on serializers and parsers.
+				<br>This simplifies the syntax of creation of serializers and parsers by scratch.
+				<p class='bcode'>
+	<jc>// Old way</jc>
+	JsonSerializer s1 = <jk>new</jk> JsonSerializerBuilder().ws().build();
+	
+	<jc>// New way</jc>
+	JsonSerializer s2 = JsonSerializer.<jsm>create</jsm>().ws().build();
+				</p>
+				<br>The same static create methods have also been added to the following classes:
+				<ul>
+					<li>{@link org.apache.juneau.serializer.SerializerGroup#create()}
+					<li>{@link org.apache.juneau.parser.ParserGroup#create()}
+					<li>{@link org.apache.juneau.encoders.EncoderGroup#create()}
+					<li>{@link org.apache.juneau.rest.client.RestClient#create()}
+					<li>{@link org.apache.juneau.ini.ConfigFile#create()}
+				</ul>
+		</ul>
+
+		<h6 class='topic'>juneau-marshall-rdf</h6>
+		<ul class='spaced-list'>
+		</ul>
+
 		<h6 class='topic'>juneau-svl</h6>
 		<ul class='spaced-list'>
 			<li>New methods on {@link org.apache.juneau.svl.Var} class to restrict when nested and embedded variables
 			are resolved.
 				<ul>
-					<li>{@link org.apache.juneau.svl.Var.allowNested}
-					<li>{@link org.apache.juneau.svl.Var.allowRecurse}
+					<li>{@link org.apache.juneau.svl.Var#allowNested()}
+					<li>{@link org.apache.juneau.svl.Var#allowRecurse()}
 				</ul>
 		</ul>
 
@@ -8645,7 +8670,7 @@
 	WriterSerializer s = <jk>new</jk> JsonSerializer().setUseWhitespace(<jk>true</jk>).pojoSwaps(BSwap.<jk>class</jk>).lock();
 
 	<jc>// New way</jc>
-	WriterSerializer s = <jk>new</jk> JsonSerializerBuilder().ws().pojoSwaps(BSwap.<jk>class</jk>).build();
+	WriterSerializer s = JsonSerializer.<jsm>create</jsm>().ws().pojoSwaps(BSwap.<jk>class</jk>).build();
 
 	<jc>/* Cloning an existing serializer or parser */ </jc>
 	
@@ -8817,7 +8842,7 @@
 	}
 
 	<jc>// Client side</jc>
-	RestClient client = <jk>new</jk> RestClientBuilder().rootUrl(<jf>samplesUrl</jf>).build();			
+	RestClient client = RestClient.<jsm>create</jsm>().rootUrl(<jf>samplesUrl</jf>).build();			
 	IAddressBook ab = client.getRemoteableProxy(IAddressBook.<jk>class</jk>, <js>"/addressBook/myproxy"</js>);
 			</p>
 				See {@link org.apache.juneau.rest.annotation.RestMethod#name()} for more information.

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-examples/juneau-examples-core/src/main/java/org/apache/juneau/examples/core/json/JsonConfigurationExample.java
----------------------------------------------------------------------
diff --git a/juneau-examples/juneau-examples-core/src/main/java/org/apache/juneau/examples/core/json/JsonConfigurationExample.java b/juneau-examples/juneau-examples-core/src/main/java/org/apache/juneau/examples/core/json/JsonConfigurationExample.java
index e18637a..5437537 100644
--- a/juneau-examples/juneau-examples-core/src/main/java/org/apache/juneau/examples/core/json/JsonConfigurationExample.java
+++ b/juneau-examples/juneau-examples-core/src/main/java/org/apache/juneau/examples/core/json/JsonConfigurationExample.java
@@ -20,7 +20,7 @@
 package org.apache.juneau.examples.core.json;
 
 import org.apache.juneau.examples.core.pojo.Pojo;
-import org.apache.juneau.json.JsonSerializerBuilder;
+import org.apache.juneau.json.*;
 
 /**
  * TODO
@@ -36,11 +36,11 @@ public class JsonConfigurationExample {
 	public static void main(String[] args) throws Exception {
 		Pojo aPojo = new Pojo("a","</pojo>");
 		// Json Serializers can be configured using properties defined in JsonSerializerContext
-		String withWhitespace = new JsonSerializerBuilder().ws().build().serialize(aPojo);
+		String withWhitespace = JsonSerializer.create().ws().build().serialize(aPojo);
 		// the output will be padded with spaces after format characters
 		System.out.println(withWhitespace);
 
-		String escaped = new JsonSerializerBuilder().escapeSolidus(true).build().serialize(aPojo);
+		String escaped = JsonSerializer.create().escapeSolidus(true).build().serialize(aPojo);
 		// the output will have escaped /
 		System.out.println(escaped);
 	}

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-examples/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/AddressBookResourceTest.java
----------------------------------------------------------------------
diff --git a/juneau-examples/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/AddressBookResourceTest.java b/juneau-examples/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/AddressBookResourceTest.java
index d4bb977..ad0836f 100644
--- a/juneau-examples/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/AddressBookResourceTest.java
+++ b/juneau-examples/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/AddressBookResourceTest.java
@@ -92,7 +92,7 @@ public class AddressBookResourceTest extends RestTestcase {
 			+"\n		}"
 			+"\n	]"
 			+"\n}";
-		JsonParser p = new JsonParserBuilder().pojoSwaps(CalendarSwap.DateMedium.class).build();
+		JsonParser p = JsonParser.create().pojoSwaps(CalendarSwap.DateMedium.class).build();
 		Person person = p.parse(in, Person.class);
 		if (debug) System.err.println(person);
 	}

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-examples/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/TestUtils.java
----------------------------------------------------------------------
diff --git a/juneau-examples/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/TestUtils.java b/juneau-examples/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/TestUtils.java
index 3f2d420..e11667c 100644
--- a/juneau-examples/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/TestUtils.java
+++ b/juneau-examples/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/TestUtils.java
@@ -40,12 +40,12 @@ import org.xml.sax.*;
 
 public class TestUtils {
 
-	private static JsonSerializer js = new JsonSerializerBuilder()
+	private static JsonSerializer js = JsonSerializer.create()
 		.simple()
 		.trimNullProperties(false)
 		.build();
 
-	private static JsonSerializer jsSorted = new JsonSerializerBuilder()
+	private static JsonSerializer jsSorted = JsonSerializer.create()
 		.simple()
 		.sortCollections(true)
 		.sortMaps(true)
@@ -53,12 +53,12 @@ public class TestUtils {
 		.build();
 
 
-	private static JsonSerializer js2 = new JsonSerializerBuilder()
+	private static JsonSerializer js2 = JsonSerializer.create()
 		.simple()
 		.pojoSwaps(IteratorSwap.class, EnumerationSwap.class)
 		.build();
 
-	private static JsonSerializer js3 = new JsonSerializerBuilder()
+	private static JsonSerializer js3 = JsonSerializer.create()
 		.simple()
 		.pojoSwaps(IteratorSwap.class, EnumerationSwap.class)
 		.sortProperties(true)

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-microservice/juneau-microservice-test/src/main/java/org/apache/juneau/rest/test/TestUtils.java
----------------------------------------------------------------------
diff --git a/juneau-microservice/juneau-microservice-test/src/main/java/org/apache/juneau/rest/test/TestUtils.java b/juneau-microservice/juneau-microservice-test/src/main/java/org/apache/juneau/rest/test/TestUtils.java
index 4fab49a..d7313ce 100644
--- a/juneau-microservice/juneau-microservice-test/src/main/java/org/apache/juneau/rest/test/TestUtils.java
+++ b/juneau-microservice/juneau-microservice-test/src/main/java/org/apache/juneau/rest/test/TestUtils.java
@@ -27,7 +27,7 @@ import junit.framework.*;
 
 public class TestUtils {
 
-	private static JsonSerializer js2 = new JsonSerializerBuilder()
+	private static JsonSerializer js2 = JsonSerializer.create()
 		.simple()
 		.pojoSwaps(IteratorSwap.class, EnumerationSwap.class)
 		.build();

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
index 8807865..bf03f6c 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
@@ -89,6 +89,17 @@ public class RestClient extends CoreObject {
 	private volatile ExecutorService executorService;
 	boolean executorServiceShutdownOnClose = true;
 
+	/**
+	 * Instantiates a new clean-slate {@link RestClientBuilder} object.
+	 * 
+	 * <p>
+	 * This is equivalent to simply calling <code><jk>new</jk> RestClientBuilder()</code>.
+	 * 
+	 * @return A new {@link RestClientBuilder} object.
+	 */
+	public static RestClientBuilder create() {
+		return new RestClientBuilder();
+	}
 
 	RestClient(
 			PropertyStore propertyStore,

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/package.html
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/package.html b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/package.html
index 32986bd..55950f1 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/package.html
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/package.html
@@ -125,7 +125,7 @@
 	<jc>// Examples below use the Juneau Address Book resource example</jc>
 
 	<jc>// Create a reusable client with JSON support</jc>
-	RestClient client = <jk>new</jk> RestClientBuilder().build();
+	RestClient client = RestClient.<jsm>create</jsm>().build();
 	
 	<jc>// GET request, ignoring output</jc>
 	<jk>try</jk> {
@@ -194,7 +194,7 @@
 		.getResponse(Boolean.<jk>class</jk>);
 			
 	<jc>// GET request, getting a filtered object</jc>
-	client = <jk>new</jk> RestClientBuilder().pojoSwaps(CalendarSwap.<jsf>ISO8601</jsf>.<jk>class</jk>).build();
+	client = RestClient.<jsm>create</jsm>().pojoSwaps(CalendarSwap.<jsf>ISO8601</jsf>.<jk>class</jk>).build();
 	Calendar birthDate = client.doGet(<js>"http://localhost:9080/sample/addressBook/0/birthDate"</js>)
 		.getResponse(GregorianCalendar.<jk>class</jk>);
 
@@ -236,18 +236,18 @@
 		<h6 class='topic'>Example:</h6>
 		<p class='bcode'>
 	<jc>// Create a client that ignores self-signed or otherwise invalid certificates.</jc>
-	RestClientBuilder builder = <jk>new</jk> RestClientBuilder() 
+	RestClientBuilder builder = RestClient.<jsm>create</jsm>() 
 		.enableSSL(SSLOpts.<jsf>LAX</jsf>);
 		
 	<jc>// ...or...</jc>
-	RestClientBuilder builder = <jk>new</jk> RestClientBuilder() 
+	RestClientBuilder builder = RestClient.<jsm>create</jsm>() 
 		.enableLaxSSL();
 		</p>
 		<p>
 			This is functionally equivalent to the following:
 		</p>
 		<p class='bcode'>
-	RestClientBuilder builder = <jk>new</jk> RestClientBuilder();
+	RestClientBuilder builder = RestClient.<jsm>create</jsm>();
 	
 	HostnameVerifier hv = <jk>new</jk> NoopHostnameVerifier();
 	TrustManager tm = <jk>new</jk> SimpleX509TrustManager(<jk>true</jk>);
@@ -291,7 +291,7 @@
 			<h6 class='figure'>Code that reads an <code>SSLOpts</code> bean from the config file</h6>
 			<p class='bcode'>
 		<jc>// Read config file and set SSL options based on what's in that file.</jc>
-		ConfigFile cf = <jk>new</jk> ConfigFileBuilder().build(<js>"MyConfig.cfg"</js>);
+		ConfigFile cf = ConfigFile.<jsm>create</jsm>().build(<js>"MyConfig.cfg"</js>);
 		SSLOpts ssl = cf.getObject(SSLOpts.<jk>class</jk>, <js>"Connection/ssl"</js>);
 		RestClient rc = <jk>new</jk> RestClient().enableSSL(ssl);
 			</p>
@@ -315,7 +315,7 @@
 			<h6 class='topic'>Example:</h6>
 			<p class='bcode'>
 	<jc>// Create a client that performs BASIC authentication using the specified user/pw.</jc>
-	RestClient restClient = <jk>new</jk> RestClientBuilder() 
+	RestClient restClient = RestClient.<jsm>create</jsm>() 
 		.basicAuth(<jsf>HOST</jsf>, <jsf>PORT</jsf>, <jsf>USER</jsf>, <jsf>PW</jsf>)
 		.build();
 			</p>
@@ -323,7 +323,7 @@
 				This is functionally equivalent to the following:
 			</p>
 			<p class='bcode'>
-	RestClientBuilder builder = <jk>new</jk> RestClientBuilder();
+	RestClientBuilder builder = RestClient.<jsm>create</jsm>();
 	AuthScope scope = <jk>new</jk> AuthScope(<jsf>HOST</jsf>, <jsf>PORT</jsf>);
 	Credentials up = <jk>new</jk> UsernamePasswordCredentials(<jsf>USER</jsf>, <jsf>PW</jsf>);
 	CredentialsProvider p = <jk>new</jk> BasicCredentialsProvider();
@@ -883,7 +883,7 @@
 		</p>
 		<p class='bcode'>
 	<jc>// Create a RestClient using JSON for serialization, and point to the server-side remoteable servlet.</jc>
-	RestClient client = <jk>new</jk> RestClientBuilder()
+	RestClient client = RestClient.<jsm>create</jsm>()
 		.rootUrl(<js>"https://localhost:9080/juneau/sample/remoteable"</js>)
 		.build();
 	
@@ -929,7 +929,7 @@
 		</p>
 		<p class='bcode'>
 	<jc>// Create a rest client with a root URL</jc>
-	RestClient rc = <jk>new</jk> RestClientBuilder().rootUrl(<js>"http://localhost:9080/foobar"</js>).build();
+	RestClient rc = RestClient.<jsm>create</jsm>().rootUrl(<js>"http://localhost:9080/foobar"</js>).build();
 	String r = rc.doGet(<js>"/baz"</js>).getResponseAsString();  <jc>// Gets "http://localhost:9080/foobar/baz"</jc>
 		</p>
 		<p>
@@ -940,7 +940,7 @@
 		</p>
 		<p class='bcode'>
 	<jc>// Create a rest client that ignores unknown fields in the response</jc>
-	RestClient rc = <jk>new</jk> RestClientBuilder()
+	RestClient rc = RestClient.<jsm>create</jsm>()
 		.property(<jsf>BEAN_ignoreUnknownBeanProperties</jsf>, <jk>true</jk>)
 		<jc>// or .ignoreUnknownBeanProperties(true)</jc>
 		.build();

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-rest/juneau-rest-server-jaxrs/src/main/java/org/apache/juneau/rest/jaxrs/BaseProvider.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server-jaxrs/src/main/java/org/apache/juneau/rest/jaxrs/BaseProvider.java b/juneau-rest/juneau-rest-server-jaxrs/src/main/java/org/apache/juneau/rest/jaxrs/BaseProvider.java
index 1847ba0..933a87b 100644
--- a/juneau-rest/juneau-rest-server-jaxrs/src/main/java/org/apache/juneau/rest/jaxrs/BaseProvider.java
+++ b/juneau-rest/juneau-rest-server-jaxrs/src/main/java/org/apache/juneau/rest/jaxrs/BaseProvider.java
@@ -53,14 +53,14 @@ public class BaseProvider implements MessageBodyReader<Object>, MessageBodyWrite
 			for (String p : jp.flags())
 				properties.put(p, true);
 
-			serializers = new SerializerGroupBuilder()
+			serializers = SerializerGroup.create()
 				.append(jp.serializers())
 				.beanFilters(jp.beanFilters())
 				.pojoSwaps(jp.pojoSwaps())
 				.properties(properties)
 				.build();
 
-			parsers = new ParserGroupBuilder()
+			parsers = ParserGroup.create()
 				.append(jp.parsers())
 				.beanFilters(jp.beanFilters())
 				.pojoSwaps(jp.pojoSwaps())

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/CallMethod.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/CallMethod.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/CallMethod.java
index b960092..c724d5f 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/CallMethod.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/CallMethod.java
@@ -179,8 +179,8 @@ class CallMethod implements Comparable<CallMethod>  {
 				if (m.serializers().length > 0 || m.parsers().length > 0 || m.properties().length > 0 || m.flags().length > 0
 						|| m.beanFilters().length > 0 || m.pojoSwaps().length > 0 || m.bpi().length > 0
 						|| m.bpx().length > 0) {
-					sgb = new SerializerGroupBuilder();
-					pgb = new ParserGroupBuilder();
+					sgb = SerializerGroup.create();
+					pgb = ParserGroup.create();
 					uepb = new UrlEncodingParserBuilder(urlEncodingParser.createPropertyStore());
 
 					if (si.contains(SERIALIZERS) || m.serializers().length == 0)
@@ -302,7 +302,7 @@ class CallMethod implements Comparable<CallMethod>  {
 				}
 
 				if (m.encoders().length > 0 || ! m.inheritEncoders()) {
-					EncoderGroupBuilder g = new EncoderGroupBuilder();
+					EncoderGroupBuilder g = EncoderGroup.create();
 					if (m.inheritEncoders())
 						g.append(encoders);
 					else

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestConfig.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestConfig.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestConfig.java
index 04c80f6..4da4058 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestConfig.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestConfig.java
@@ -97,9 +97,9 @@ public class RestConfig implements ServletConfig {
 		paramResolvers = new ArrayList<>();
 	Class<? extends SerializerListener> serializerListener;
 	Class<? extends ParserListener> parserListener;
-	SerializerGroupBuilder serializers = new SerializerGroupBuilder();
-	ParserGroupBuilder parsers = new ParserGroupBuilder();
-	EncoderGroupBuilder encoders = new EncoderGroupBuilder().append(IdentityEncoder.INSTANCE);
+	SerializerGroupBuilder serializers = SerializerGroup.create();
+	ParserGroupBuilder parsers = ParserGroup.create();
+	EncoderGroupBuilder encoders = EncoderGroup.create().append(IdentityEncoder.INSTANCE);
 	List<Object> converters = new ArrayList<>();
 	List<Object> guards = new ArrayList<>();
 	MimetypesFileTypeMap mimeTypes = new ExtendedMimetypesFileTypeMap();

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/package.html
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/package.html b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/package.html
index 2c57456..76fcc2c 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/package.html
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/package.html
@@ -1543,7 +1543,7 @@
 	<ja>@Override</ja>
 	<jk>public</jk> SerializerGroupBuilder createSerializers(ObjectMap,Class[],Class[]) {
 
- 		<jk>return new</jk> SerializerGroupBuilder()
+ 		<jk>return</jk> SerializerGroup.<jsm>create</jsm>()
  			.append(JsonSerializer.<jk>class</jk>, XmlSerializer.<jk>class</jk>);
 	}
 		</p>
@@ -1612,7 +1612,7 @@
 		<ja>@Override</ja>
 		<jk>public</jk> ParserGroupBuilder getParserGroup() {
 	
-	 		<jk>return new</jk> ParserGroupBuilder()
+	 		<jk>return</jk> ParserGroup.<jsm>create</jsm>()
 				.append(JsonParser.<jk>class</jk>, XmlParser.<jk>class</jk>);
 	 	}
 		</p>
@@ -2699,7 +2699,7 @@
 			These properties are then accessible through the {@link org.apache.juneau.ini.ConfigFile} class.
 		</p>
 		<p class='bcode'>
-	ConfigFile cf = <jk>new</jk> ConfigFileBuilder().build(<js>"myconfig.cfg"</js>);
+	ConfigFile cf = ConfigFile.<jsm>create</jsm>().build(<js>"myconfig.cfg"</js>);
 	String path = cf.getString(<js>"MyProperties/path"</js>);
 	File javaHome = cf.getObject(File.<jk>class</jk>, <js>"MyProperties/javaHome"</js>);
 	String customMessage = cf.getString(<js>"MyProperties/customMessage"</js>);

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/remoteable/package.html
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/remoteable/package.html b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/remoteable/package.html
index 6577c04..2747c3a 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/remoteable/package.html
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/remoteable/package.html
@@ -99,7 +99,7 @@
 	</p>
 	<p class='bcode'>
 	<jc>// Create a RestClient using JSON for serialization, and point to the server-side remoteable servlet.</jc>
-	RestClient client = <jk>new</jk> RestClientBuilder()
+	RestClient client = RestClient.<jsm>create</jsm>()
 		.rootUrl(<js>"https://localhost:9080/juneau/sample/remoteable"</js>)
 		.build();
 	


[3/3] juneau git commit: Add convenience create() methods to serializers and parsers.

Posted by ja...@apache.org.
Add convenience create() methods to serializers and parsers.

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

Branch: refs/heads/master
Commit: c0a5038895e6ede51e369e5d1be6318bd419ba85
Parents: 80da4f6
Author: JamesBognar <ja...@apache.org>
Authored: Wed Nov 8 16:40:55 2017 -0800
Committer: JamesBognar <ja...@apache.org>
Committed: Wed Nov 8 16:40:55 2017 -0800

----------------------------------------------------------------------
 .../java/org/apache/juneau/ini/ConfigFile.java  | 13 +++
 .../java/org/apache/juneau/ini/package.html     | 10 +--
 .../java/org/apache/juneau/BeanConfigTest.java  |  8 +-
 .../java/org/apache/juneau/BeanFilterTest.java  |  4 +-
 .../java/org/apache/juneau/BeanMapTest.java     | 14 ++--
 .../org/apache/juneau/ComboRoundTripTest.java   | 30 +++----
 .../org/apache/juneau/ComboSerializeTest.java   | 16 ++--
 .../org/apache/juneau/IgnoredClassesTest.java   |  2 +-
 .../java/org/apache/juneau/PojoSwapTest.java    |  4 +-
 .../test/java/org/apache/juneau/TestUtils.java  |  8 +-
 .../java/org/apache/juneau/VisibilityTest.java  |  8 +-
 .../a/rttests/RoundTripAddClassAttrsTest.java   |  2 +-
 .../juneau/a/rttests/RoundTripBeanMapsTest.java |  6 +-
 .../juneau/a/rttests/RoundTripEnumTest.java     |  2 +-
 .../a/rttests/RoundTripLargeObjectsTest.java    | 36 ++++----
 .../juneau/a/rttests/RoundTripMapsTest.java     | 10 +--
 .../apache/juneau/a/rttests/RoundTripTest.java  | 86 ++++++++++----------
 .../a/rttests/RoundTripTransformBeansTest.java  |  4 +-
 .../org/apache/juneau/dto/atom/AtomTest.java    |  6 +-
 .../apache/juneau/dto/cognos/CognosXmlTest.java |  2 +-
 .../juneau/dto/jsonschema/JsonSchemaTest.java   |  6 +-
 .../juneau/encoders/EncoderGroupTest.java       |  8 +-
 .../apache/juneau/html/CommonParserTest.java    |  8 +-
 .../java/org/apache/juneau/html/CommonTest.java | 14 ++--
 .../java/org/apache/juneau/html/HtmlTest.java   |  6 +-
 .../apache/juneau/jena/CommonParserTest.java    | 12 +--
 .../java/org/apache/juneau/jena/CommonTest.java |  4 +-
 .../org/apache/juneau/jena/CommonXmlTest.java   |  2 +-
 .../org/apache/juneau/jena/RdfParserTest.java   |  2 +-
 .../java/org/apache/juneau/jena/RdfTest.java    | 14 ++--
 .../apache/juneau/json/CommonParserTest.java    |  8 +-
 .../java/org/apache/juneau/json/CommonTest.java | 12 +--
 .../java/org/apache/juneau/json/JsonTest.java   | 10 +--
 .../apache/juneau/parser/ParserGroupTest.java   |  8 +-
 .../juneau/serializer/SerializerGroupTest.java  | 10 +--
 .../juneau/serializer/UriResolutionTest.java    | 26 +++---
 .../juneau/transforms/CalendarSwapTest.java     |  4 +-
 .../apache/juneau/transforms/DateSwapTest.java  |  4 +-
 .../juneau/transforms/EnumerationSwapTest.java  |  2 +-
 .../juneau/transforms/IteratorSwapTest.java     |  2 +-
 .../apache/juneau/transforms/PojoSwapTest.java  |  2 +-
 .../juneau/transforms/ReaderFilterTest.java     |  2 +-
 .../urlencoding/CommonParser_UonTest.java       |  8 +-
 .../CommonParser_UrlEncodingTest.java           |  8 +-
 .../juneau/urlencoding/Common_UonTest.java      | 10 +--
 .../urlencoding/Common_UrlEncodingTest.java     | 10 +--
 .../urlencoding/UrlEncodingParserTest.java      |  2 +-
 .../urlencoding/UrlEncodingSerializerTest.java  |  4 +-
 .../org/apache/juneau/utils/PojoQueryTest.java  |  4 +-
 .../org/apache/juneau/utils/PojoRestTest.java   |  6 +-
 .../apache/juneau/utils/StringUtilsTest.java    |  2 +-
 .../org/apache/juneau/xml/CommonParserTest.java |  4 +-
 .../java/org/apache/juneau/xml/CommonTest.java  | 10 +--
 .../org/apache/juneau/xml/CommonXmlTest.java    |  2 +-
 .../org/apache/juneau/xml/XmlContentTest.java   |  4 +-
 .../org/apache/juneau/xml/XmlParserTest.java    |  2 +-
 .../java/org/apache/juneau/xml/XmlTest.java     | 46 +++++------
 .../juneau/yaml/proto/CommonParserTest.java     |  8 +-
 .../apache/juneau/yaml/proto/CommonTest.java    | 12 +--
 .../org/apache/juneau/yaml/proto/YamlTest.java  | 10 +--
 .../org/apache/juneau/dto/atom/package.html     |  8 +-
 .../java/org/apache/juneau/jena/RdfParser.java  | 16 ++++
 .../org/apache/juneau/jena/RdfSerializer.java   | 16 ++++
 .../java/org/apache/juneau/jena/package.html    | 14 ++--
 .../java/org/apache/juneau/csv/CsvParser.java   | 16 ++++
 .../org/apache/juneau/csv/CsvSerializer.java    | 16 ++++
 .../apache/juneau/encoders/EncoderGroup.java    | 21 +++++
 .../java/org/apache/juneau/html/HtmlParser.java | 16 ++++
 .../org/apache/juneau/html/HtmlSerializer.java  | 16 ++++
 .../apache/juneau/internal/JuneauLogger.java    |  2 +-
 .../java/org/apache/juneau/jso/JsoParser.java   | 16 ++++
 .../org/apache/juneau/jso/JsoSerializer.java    | 16 ++++
 .../java/org/apache/juneau/json/JsonParser.java | 16 ++++
 .../org/apache/juneau/json/JsonSerializer.java  | 16 ++++
 .../java/org/apache/juneau/json/package.html    |  2 +-
 .../apache/juneau/msgpack/MsgPackParser.java    | 16 ++++
 .../juneau/msgpack/MsgPackSerializer.java       | 16 ++++
 .../org/apache/juneau/parser/ParserGroup.java   | 21 +++++
 .../juneau/plaintext/PlainTextParser.java       | 16 ++++
 .../juneau/plaintext/PlainTextSerializer.java   | 16 ++++
 .../juneau/serializer/SerializerGroup.java      | 21 +++++
 .../juneau/transform/BeanFilterBuilder.java     |  2 +-
 .../org/apache/juneau/transform/package.html    | 30 +++----
 .../java/org/apache/juneau/uon/UonParser.java   | 16 ++++
 .../org/apache/juneau/uon/UonSerializer.java    | 15 ++++
 .../juneau/urlencoding/UrlEncodingParser.java   | 16 ++++
 .../urlencoding/UrlEncodingSerializer.java      | 17 +++-
 .../java/org/apache/juneau/xml/XmlParser.java   | 16 ++++
 .../org/apache/juneau/xml/XmlSerializer.java    | 15 ++++
 .../java/org/apache/juneau/xml/package.html     | 16 ++--
 .../apache/juneau/yaml/proto/YamlParser.java    | 16 ++++
 .../juneau/yaml/proto/YamlSerializer.java       | 16 ++++
 .../org/apache/juneau/yaml/proto/package.html   |  2 +-
 juneau-doc/src/main/javadoc/overview.html       | 85 ++++++++++++-------
 .../core/json/JsonConfigurationExample.java     |  6 +-
 .../examples/rest/AddressBookResourceTest.java  |  2 +-
 .../apache/juneau/examples/rest/TestUtils.java  |  8 +-
 .../org/apache/juneau/rest/test/TestUtils.java  |  2 +-
 .../apache/juneau/rest/client/RestClient.java   | 11 +++
 .../org/apache/juneau/rest/client/package.html  | 22 ++---
 .../apache/juneau/rest/jaxrs/BaseProvider.java  |  4 +-
 .../java/org/apache/juneau/rest/CallMethod.java |  6 +-
 .../java/org/apache/juneau/rest/RestConfig.java |  6 +-
 .../java/org/apache/juneau/rest/package.html    |  6 +-
 .../apache/juneau/rest/remoteable/package.html  |  2 +-
 105 files changed, 850 insertions(+), 389 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-config/src/main/java/org/apache/juneau/ini/ConfigFile.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-config/src/main/java/org/apache/juneau/ini/ConfigFile.java b/juneau-core/juneau-config/src/main/java/org/apache/juneau/ini/ConfigFile.java
index 951008b..2e197a8 100644
--- a/juneau-core/juneau-config/src/main/java/org/apache/juneau/ini/ConfigFile.java
+++ b/juneau-core/juneau-config/src/main/java/org/apache/juneau/ini/ConfigFile.java
@@ -37,6 +37,19 @@ import org.apache.juneau.svl.*;
  * Refer to <a class='doclink' href='package-summary.html#TOC'>org.apache.juneau.ini</a> for usage information.
  */
 public abstract class ConfigFile implements Map<String,Section> {
+	
+	/**
+	 * Instantiates a new clean-slate {@link ConfigFileBuilder} object.
+	 * 
+	 * <p>
+	 * This is equivalent to simply calling <code><jk>new</jk> ConfigFileBuilder()</code>.
+	 * 
+	 * @return A new {@link ConfigFileBuilder} object.
+	 */
+	public static ConfigFileBuilder create() {
+		return new ConfigFileBuilder();
+	}
+	
 
 	//--------------------------------------------------------------------------------
 	// Abstract methods

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-config/src/main/java/org/apache/juneau/ini/package.html
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-config/src/main/java/org/apache/juneau/ini/package.html b/juneau-core/juneau-config/src/main/java/org/apache/juneau/ini/package.html
index 111048a..fab7c27 100644
--- a/juneau-core/juneau-config/src/main/java/org/apache/juneau/ini/package.html
+++ b/juneau-core/juneau-config/src/main/java/org/apache/juneau/ini/package.html
@@ -107,7 +107,7 @@
 	URL key4;
 	
 	<jc>// Get our config file using the default config manager</jc>
-	ConfigFile f = <jk>new</jk> ConfigFileBuilder().build(<js>"C:/temp/MyConfig.cfg"</js>);
+	ConfigFile f = ConfigFile.<jsm>create</jsm>().build(<js>"C:/temp/MyConfig.cfg"</js>);
 
 	<jc>// Read values from default section</jc>
 	key1 = f.getInt(<js>"key1"</js>);
@@ -128,7 +128,7 @@
 	
 	<p class='bcode'>
 	<jc>// Construct the sample INI file programmatically</jc>
-	ConfigFile f = <jk>new</jk> ConfigFileBuilder().build(<js>"C:/temp/MyConfig.cfg"</js>, <jk>true</jk>)
+	ConfigFile f = ConfigFile.<jsm>create</jsm>().build(<js>"C:/temp/MyConfig.cfg"</js>, <jk>true</jk>)
 		.addLines(<jk>null</jk>,                     <jc>// The default 'null' section</jc>
 			<js>"# Default section"</js>,             <jc>// A regular comment</jc>
 			<js>"key1 = 1"</js>,                      <jc>// A numeric entry</jc>
@@ -151,7 +151,7 @@
 		Note how we're setting values as POJOs which will be automatically converted to strings when persisted to disk.
 	<p class='bcode'>
 	<jc>// Construct the sample INI file programmatically</jc>
-	ConfigFile f = <jk>new</jk> ConfigFileBuilder().build(<js>"C:/temp/MyConfig.cfg"</js>, <jk>true</jk>)
+	ConfigFile f = ConfigFile.<jsm>create</jsm>().build(<js>"C:/temp/MyConfig.cfg"</js>, <jk>true</jk>)
 		.addLines(<jk>null</jk>,
 			<js>"# Default section"</js>)
 		.addHeaderComments(<js>"Section1"</js>,
@@ -339,7 +339,7 @@
 	<h6 class="topic">Example:</h6>
 	<p class='bcode'>
 	<jc>// Get our config file using the default config manager</jc>
-	ConfigFile f = <jk>new</jk> ConfigFileBuilder().build(<js>"C:/temp/MyConfig.cfg"</js>);
+	ConfigFile f = ConfigFile.<jsm>create</jsm>().build(<js>"C:/temp/MyConfig.cfg"</js>);
 
 	<jc>// Add a listener for an entry</jc>
 	f.addListener(
@@ -607,7 +607,7 @@
 	</p>
 	<p class='bcode'>
 	<jc>// Create a new REST client with JSON support</jc>
-	RestClient c = <jk>new</jk> RestClientBuilder().build();
+	RestClient c = RestClient.<jsm>create</jsm>().build();
 
 	<jc>// Retrieve config file through REST interface</jc>
 	ConfigFile cf = c.doGet(<js>"http://localhost:10000/sample/config"</js>).getResponse(ConfigFileImpl.<jk>class</jk>);

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/BeanConfigTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/BeanConfigTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/BeanConfigTest.java
index 6ec7335..cd9709a 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/BeanConfigTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/BeanConfigTest.java
@@ -567,8 +567,8 @@ public class BeanConfigTest {
 	public void testClassMetaCaching() throws Exception {
 		ParserBuilder p1, p2;
 
-		p1 = new JsonParserBuilder();
-		p2 = new JsonParserBuilder();
+		p1 = JsonParser.create();
+		p2 = JsonParser.create();
 		assertSameCache(p1, p2);
 
 		p1.beansRequireDefaultConstructor(true);
@@ -727,8 +727,8 @@ public class BeanConfigTest {
 		p2.pojoSwaps(DummyPojoSwapC.class,DummyPojoSwapB.class);
 		assertDifferentCache(p1, p2);
 
-		p1 = new JsonParserBuilder();
-		p2 = new JsonParserBuilder();
+		p1 = JsonParser.create();
+		p2 = JsonParser.create();
 		p1.beanFilters(DummyBeanFilterA.class);
 		assertDifferentCache(p1, p2);
 		p2.beanFilters(DummyBeanFilterA.class);

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/BeanFilterTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/BeanFilterTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/BeanFilterTest.java
index 8b6f383..d80f248 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/BeanFilterTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/BeanFilterTest.java
@@ -89,7 +89,7 @@ public class BeanFilterTest {
 	//====================================================================================================
 	@Test
 	public void testParentClassFilter() throws Exception {
-		JsonSerializer s = new JsonSerializerBuilder().simple().beanFilters(C1.class).build();
+		JsonSerializer s = JsonSerializer.create().simple().beanFilters(C1.class).build();
 
 		C1 c1 = new C2();
 		String r = s.serialize(c1);
@@ -114,7 +114,7 @@ public class BeanFilterTest {
 	//====================================================================================================
 	@Test
 	public void testParentClassFilter2() throws Exception {
-		JsonSerializer s = new JsonSerializerBuilder().simple().beanFilters(D1.class).build();
+		JsonSerializer s = JsonSerializer.create().simple().beanFilters(D1.class).build();
 
 		D1 d1 = new D2();
 		String r = s.serialize(d1);

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/BeanMapTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/BeanMapTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/BeanMapTest.java
index 679dd70..b882cd5 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/BeanMapTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/BeanMapTest.java
@@ -479,7 +479,7 @@ public class BeanMapTest {
 		m.put("b", new D2());
 		assertEquals("default", t.b.s);
 
-		JsonParser p = new JsonParserBuilder().beanDictionary(D2.class).build();
+		JsonParser p = JsonParser.create().beanDictionary(D2.class).build();
 		m.put("lb1", new ObjectList("[{_type:'D2',s:'foobar'}]", p));
 		assertEquals(ObjectList.class.getName(), t.lb1.getClass().getName());
 		assertEquals(D2.class.getName(), t.lb1.get(0).getClass().getName());
@@ -665,7 +665,7 @@ public class BeanMapTest {
 		assertEquals(HEnum.THREE, t7.getEnum2());
 
 		// Create instance directly from JSON.
-		JsonParser p = new JsonParserBuilder().beanDictionary(H.class).build();
+		JsonParser p = JsonParser.create().beanDictionary(H.class).build();
 		t7 = (H)p.parse("{_type:'H',enum1:'THREE',enum2:'ONE'}", Object.class);
 		assertEquals("{_type:'H',enum1:'THREE',enum2:'ONE'}", serializer.serialize(t7));
 		assertEquals(HEnum.THREE, t7.enum1);
@@ -957,7 +957,7 @@ public class BeanMapTest {
 
 		// JSON
 		String json = "{baz:789,foo:123,bar:456}";
-		p = new JsonParserBuilder().ignoreUnknownBeanProperties(true).build();
+		p = JsonParser.create().ignoreUnknownBeanProperties(true).build();
 		t = p.parse(json, O.class);
 		assertEquals(123, t.foo);
 
@@ -971,7 +971,7 @@ public class BeanMapTest {
 
 		// XML
 		String xml = "<object><baz type='number'>789</baz><foo type='number'>123</foo><bar type='number'>456</bar></object>";
-		p = new XmlParserBuilder().ignoreUnknownBeanProperties(true).build();
+		p = XmlParser.create().ignoreUnknownBeanProperties(true).build();
 		t = p.parse(xml, O.class);
 		assertEquals(123, t.foo);
 
@@ -985,7 +985,7 @@ public class BeanMapTest {
 
 		// HTML
 		String html = "<table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>baz</string></td><td><number>789</number></td></tr><tr><td><string>foo</string></td><td><number>123</number></td></tr><tr><td><string>bar</string></td><td><number>456</number></td></tr></table>";
-		p = new HtmlParserBuilder().ignoreUnknownBeanProperties(true).build();
+		p = HtmlParser.create().ignoreUnknownBeanProperties(true).build();
 		t = p.parse(html, O.class);
 		assertEquals(123, t.foo);
 
@@ -999,7 +999,7 @@ public class BeanMapTest {
 
 		// UON
 		String uon = "(baz=789,foo=123,bar=456)";
-		p = new UonParserBuilder().ignoreUnknownBeanProperties(true).build();
+		p = UonParser.create().ignoreUnknownBeanProperties(true).build();
 		t = p.parse(uon, O.class);
 		assertEquals(123, t.foo);
 
@@ -1013,7 +1013,7 @@ public class BeanMapTest {
 
 		// URL-Encoding
 		String urlencoding = "baz=789&foo=123&bar=456";
-		p = new UrlEncodingParserBuilder().ignoreUnknownBeanProperties(true).build();
+		p = UrlEncodingParser.create().ignoreUnknownBeanProperties(true).build();
 		t = p.parse(urlencoding, O.class);
 		assertEquals(123, t.foo);
 

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/ComboRoundTripTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/ComboRoundTripTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/ComboRoundTripTest.java
index 4da5f1e..fe3d62e 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/ComboRoundTripTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/ComboRoundTripTest.java
@@ -279,8 +279,8 @@ public abstract class ComboRoundTripTest {
 	//--------------------------------------------------------------------------------
 	// JSON - 't' property
 	//--------------------------------------------------------------------------------
-	WriterSerializer sJsonT = new JsonSerializerBuilder().simple().beanTypePropertyName("t").build();
-	ReaderParser pJsonT = new JsonParserBuilder().beanTypePropertyName("t").build();
+	WriterSerializer sJsonT = JsonSerializer.create().simple().beanTypePropertyName("t").build();
+	ReaderParser pJsonT = JsonParser.create().beanTypePropertyName("t").build();
 
 	@Test
 	public void a21_serializeJsonT() throws Exception {
@@ -342,8 +342,8 @@ public abstract class ComboRoundTripTest {
 	//--------------------------------------------------------------------------------
 	// XML - 't' property
 	//--------------------------------------------------------------------------------
-	WriterSerializer sXmlT = new XmlSerializerBuilder().sq().beanTypePropertyName("t").build();
-	ReaderParser pXmlT = new XmlParserBuilder().beanTypePropertyName("t").build();
+	WriterSerializer sXmlT = XmlSerializer.create().sq().beanTypePropertyName("t").build();
+	ReaderParser pXmlT = XmlParser.create().beanTypePropertyName("t").build();
 
 	@Test
 	public void b21_serializeXmlT() throws Exception {
@@ -426,8 +426,8 @@ public abstract class ComboRoundTripTest {
 	//--------------------------------------------------------------------------------
 	// HTML - 't' property
 	//--------------------------------------------------------------------------------
-	WriterSerializer sHtmlT = new HtmlSerializerBuilder().sq().beanTypePropertyName("t").build();
-	ReaderParser pHtmlT =  new HtmlParserBuilder().beanTypePropertyName("t").build();
+	WriterSerializer sHtmlT = HtmlSerializer.create().sq().beanTypePropertyName("t").build();
+	ReaderParser pHtmlT =  HtmlParser.create().beanTypePropertyName("t").build();
 
 	@Test
 	public void c21_serializeHtmlT() throws Exception {
@@ -489,8 +489,8 @@ public abstract class ComboRoundTripTest {
 	//--------------------------------------------------------------------------------
 	// UON - 't' property
 	//--------------------------------------------------------------------------------
-	WriterSerializer sUonT = new UonSerializerBuilder().beanTypePropertyName("t").build();
-	ReaderParser pUonT = new UonParserBuilder().beanTypePropertyName("t").build();
+	WriterSerializer sUonT = UonSerializer.create().beanTypePropertyName("t").build();
+	ReaderParser pUonT = UonParser.create().beanTypePropertyName("t").build();
 
 	@Test
 	public void d21_serializeUonT() throws Exception {
@@ -552,8 +552,8 @@ public abstract class ComboRoundTripTest {
 	//--------------------------------------------------------------------------------
 	// UrlEncoding - 't' property
 	//--------------------------------------------------------------------------------
-	WriterSerializer sUrlEncodingT = new UrlEncodingSerializerBuilder().beanTypePropertyName("t").build();
-	ReaderParser pUrlEncodingT = new UrlEncodingParserBuilder().beanTypePropertyName("t").build();
+	WriterSerializer sUrlEncodingT = UrlEncodingSerializer.create().beanTypePropertyName("t").build();
+	ReaderParser pUrlEncodingT = UrlEncodingParser.create().beanTypePropertyName("t").build();
 
 	@Test
 	public void e21_serializeUrlEncodingT() throws Exception {
@@ -620,8 +620,8 @@ public abstract class ComboRoundTripTest {
 	//--------------------------------------------------------------------------------
 	// MsgPack - 't' property
 	//--------------------------------------------------------------------------------
-	OutputStreamSerializer sMsgPackT = new MsgPackSerializerBuilder().beanTypePropertyName("t").build();
-	InputStreamParser pMsgPackT = new MsgPackParserBuilder().beanTypePropertyName("t").build();
+	OutputStreamSerializer sMsgPackT = MsgPackSerializer.create().beanTypePropertyName("t").build();
+	InputStreamParser pMsgPackT = MsgPackParser.create().beanTypePropertyName("t").build();
 
 	@Test
 	public void f21_serializeMsgPackT() throws Exception {
@@ -667,8 +667,8 @@ public abstract class ComboRoundTripTest {
 	//--------------------------------------------------------------------------------
 	// RdfXml - 't' property
 	//--------------------------------------------------------------------------------
-	WriterSerializer sRdfXmlT = new RdfSerializerBuilder().language(LANG_RDF_XML_ABBREV).beanTypePropertyName("t").build();
-	ReaderParser pRdfXmlT = new RdfParserBuilder().beanTypePropertyName("t").build();
+	WriterSerializer sRdfXmlT = RdfSerializer.create().language(LANG_RDF_XML_ABBREV).beanTypePropertyName("t").build();
+	ReaderParser pRdfXmlT = RdfParser.create().beanTypePropertyName("t").build();
 
 	@Test
 	public void g21_serializeRdfXmlT() throws Exception {
@@ -688,7 +688,7 @@ public abstract class ComboRoundTripTest {
 	//--------------------------------------------------------------------------------
 	// RdfXml - Readable
 	//--------------------------------------------------------------------------------
-	WriterSerializer sRdfXmlR = new RdfSerializerBuilder().language(LANG_RDF_XML_ABBREV).ws().build();
+	WriterSerializer sRdfXmlR = RdfSerializer.create().language(LANG_RDF_XML_ABBREV).ws().build();
 	ReaderParser pRdfXmlR = RdfParser.DEFAULT_XML;
 
 	@Test

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/ComboSerializeTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/ComboSerializeTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/ComboSerializeTest.java
index 6768d91..172597f 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/ComboSerializeTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/ComboSerializeTest.java
@@ -168,7 +168,7 @@ public abstract class ComboSerializeTest {
 	//--------------------------------------------------------------------------------
 	// JSON - 't' property
 	//--------------------------------------------------------------------------------
-	WriterSerializer sJsonT = new JsonSerializerBuilder().simple().beanTypePropertyName("t").build();
+	WriterSerializer sJsonT = JsonSerializer.create().simple().beanTypePropertyName("t").build();
 
 	@Test
 	public void a21_serializeJsonT() throws Exception {
@@ -198,7 +198,7 @@ public abstract class ComboSerializeTest {
 	//--------------------------------------------------------------------------------
 	// XML - 't' property
 	//--------------------------------------------------------------------------------
-	WriterSerializer sXmlT = new XmlSerializerBuilder().sq().beanTypePropertyName("t").build();
+	WriterSerializer sXmlT = XmlSerializer.create().sq().beanTypePropertyName("t").build();
 
 	@Test
 	public void b21_serializeXmlT() throws Exception {
@@ -238,7 +238,7 @@ public abstract class ComboSerializeTest {
 	//--------------------------------------------------------------------------------
 	// HTML - 't' property
 	//--------------------------------------------------------------------------------
-	WriterSerializer sHtmlT = new HtmlSerializerBuilder().sq().beanTypePropertyName("t").build();
+	WriterSerializer sHtmlT = HtmlSerializer.create().sq().beanTypePropertyName("t").build();
 
 	@Test
 	public void c21_serializeHtmlT() throws Exception {
@@ -268,7 +268,7 @@ public abstract class ComboSerializeTest {
 	//--------------------------------------------------------------------------------
 	// UON - 't' property
 	//--------------------------------------------------------------------------------
-	WriterSerializer sUonT = new UonSerializerBuilder().beanTypePropertyName("t").build();
+	WriterSerializer sUonT = UonSerializer.create().beanTypePropertyName("t").build();
 
 	@Test
 	public void d21_serializeUonT() throws Exception {
@@ -298,7 +298,7 @@ public abstract class ComboSerializeTest {
 	//--------------------------------------------------------------------------------
 	// UrlEncoding - 't' property
 	//--------------------------------------------------------------------------------
-	WriterSerializer sUrlEncodingT = new UrlEncodingSerializerBuilder().beanTypePropertyName("t").build();
+	WriterSerializer sUrlEncodingT = UrlEncodingSerializer.create().beanTypePropertyName("t").build();
 
 	@Test
 	public void e21_serializeUrlEncodingT() throws Exception {
@@ -328,7 +328,7 @@ public abstract class ComboSerializeTest {
 	//--------------------------------------------------------------------------------
 	// MsgPack - 't' property
 	//--------------------------------------------------------------------------------
-	OutputStreamSerializer sMsgPackT = new MsgPackSerializerBuilder().beanTypePropertyName("t").build();
+	OutputStreamSerializer sMsgPackT = MsgPackSerializer.create().beanTypePropertyName("t").build();
 
 	@Test
 	public void f21_serializeMsgPackT() throws Exception {
@@ -348,7 +348,7 @@ public abstract class ComboSerializeTest {
 	//--------------------------------------------------------------------------------
 	// RdfXml - 't' property
 	//--------------------------------------------------------------------------------
-	WriterSerializer sRdfXmlT = new RdfSerializerBuilder().language(LANG_RDF_XML_ABBREV).beanTypePropertyName("t").build();
+	WriterSerializer sRdfXmlT = RdfSerializer.create().language(LANG_RDF_XML_ABBREV).beanTypePropertyName("t").build();
 
 	@Test
 	public void g21_serializeRdfXmlT() throws Exception {
@@ -358,7 +358,7 @@ public abstract class ComboSerializeTest {
 	//--------------------------------------------------------------------------------
 	// RdfXml - Readable
 	//--------------------------------------------------------------------------------
-	WriterSerializer sRdfXmlR = new RdfSerializerBuilder().language(LANG_RDF_XML_ABBREV).ws().build();
+	WriterSerializer sRdfXmlR = RdfSerializer.create().language(LANG_RDF_XML_ABBREV).ws().build();
 
 	@Test
 	public void g31_serializeRdfXmlR() throws Exception {

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/IgnoredClassesTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/IgnoredClassesTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/IgnoredClassesTest.java
index e22d86d..9c00169 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/IgnoredClassesTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/IgnoredClassesTest.java
@@ -41,7 +41,7 @@ public class IgnoredClassesTest {
 	@Test
 	public void testIgnorePackages() throws Exception {
 		A a = new A();
-		JsonSerializerBuilder s = new JsonSerializerBuilder().simple();
+		JsonSerializerBuilder s = JsonSerializer.create().simple();
 		assertEquals("{f1:'isBean'}", s.build().serialize(a));
 		s.notBeanPackages("org.apache.juneau");
 		assertEquals("'isNotBean'", s.build().serialize(a));

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/PojoSwapTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/PojoSwapTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/PojoSwapTest.java
index 5fa73b2..54cbcb4 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/PojoSwapTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/PojoSwapTest.java
@@ -29,8 +29,8 @@ public class PojoSwapTest {
 	//====================================================================================================
 	@Test
 	public void testSameType() throws Exception {
-		JsonSerializer s = new JsonSerializerBuilder().simple().pojoSwaps(ASwap.class).build();
-		JsonParser p = new JsonParserBuilder().pojoSwaps(ASwap.class).build();
+		JsonSerializer s = JsonSerializer.create().simple().pojoSwaps(ASwap.class).build();
+		JsonParser p = JsonParser.create().pojoSwaps(ASwap.class).build();
 		String r;
 
 		r = s.serialize("foobar");

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/TestUtils.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/TestUtils.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/TestUtils.java
index a94ba62..d7d1bda 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/TestUtils.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/TestUtils.java
@@ -40,12 +40,12 @@ import org.xml.sax.*;
 @SuppressWarnings({"javadoc"})
 public class TestUtils {
 
-	private static JsonSerializer js = new JsonSerializerBuilder()
+	private static JsonSerializer js = JsonSerializer.create()
 		.simple()
 		.trimNullProperties(false)
 		.build();
 
-	private static JsonSerializer jsSorted = new JsonSerializerBuilder()
+	private static JsonSerializer jsSorted = JsonSerializer.create()
 		.simple()
 		.sortCollections(true)
 		.sortMaps(true)
@@ -53,12 +53,12 @@ public class TestUtils {
 		.build();
 
 
-	private static JsonSerializer js2 = new JsonSerializerBuilder()
+	private static JsonSerializer js2 = JsonSerializer.create()
 		.simple()
 		.pojoSwaps(IteratorSwap.class, EnumerationSwap.class)
 		.build();
 
-	private static JsonSerializer js3 = new JsonSerializerBuilder()
+	private static JsonSerializer js3 = JsonSerializer.create()
 		.simple()
 		.pojoSwaps(IteratorSwap.class, EnumerationSwap.class)
 		.sortProperties(true)

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/VisibilityTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/VisibilityTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/VisibilityTest.java
index 3101903..388f8b4 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/VisibilityTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/VisibilityTest.java
@@ -27,10 +27,10 @@ public class VisibilityTest {
 	//====================================================================================================
 	@Test
 	public void testClassDefault() throws Exception {
-		JsonSerializerBuilder s1 = new JsonSerializerBuilder().simple().beansRequireSomeProperties(false);
-		JsonSerializerBuilder s2 = new JsonSerializerBuilder().simple().beansRequireSomeProperties(false).beanClassVisibility(PROTECTED);
-		JsonSerializerBuilder s3 = new JsonSerializerBuilder().simple().beansRequireSomeProperties(false).beanClassVisibility(Visibility.DEFAULT);
-		JsonSerializerBuilder s4 = new JsonSerializerBuilder().simple().beansRequireSomeProperties(false).beanClassVisibility(PRIVATE);
+		JsonSerializerBuilder s1 = JsonSerializer.create().simple().beansRequireSomeProperties(false);
+		JsonSerializerBuilder s2 = JsonSerializer.create().simple().beansRequireSomeProperties(false).beanClassVisibility(PROTECTED);
+		JsonSerializerBuilder s3 = JsonSerializer.create().simple().beansRequireSomeProperties(false).beanClassVisibility(Visibility.DEFAULT);
+		JsonSerializerBuilder s4 = JsonSerializer.create().simple().beansRequireSomeProperties(false).beanClassVisibility(PRIVATE);
 
 		A1 a1 = A1.create();
 		String r;

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripAddClassAttrsTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripAddClassAttrsTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripAddClassAttrsTest.java
index d607d04..c421b74 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripAddClassAttrsTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripAddClassAttrsTest.java
@@ -42,7 +42,7 @@ public class RoundTripAddClassAttrsTest extends RoundTripTest {
 		return Arrays.asList(new Object[][] {
 			{ /* 0 */
 				"JsonSerializer.DEFAULT/JsonParser.DEFAULT",
-				new JsonSerializerBuilder().addBeanTypeProperties(true),
+				JsonSerializer.create().addBeanTypeProperties(true),
 				new JsonParserBuilder().useInterfaceProxies(false),
 				0
 			},

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanMapsTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanMapsTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanMapsTest.java
index 35ba64a..3ae522b 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanMapsTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanMapsTest.java
@@ -216,7 +216,7 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
 	//====================================================================================================
 	@Test
 	public void testSubTypesUsingAnnotation() throws Exception {
-		JsonSerializer js = new JsonSerializerBuilder().simple().pojoSwaps(XMLGregorianCalendarSwap.class).build();
+		JsonSerializer js = JsonSerializer.create().simple().pojoSwaps(XMLGregorianCalendarSwap.class).build();
 
 		// Skip validation-only tests
 		if (isValidationOnly())
@@ -289,7 +289,7 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
 	//====================================================================================================
 	@Test
 	public void testSubTypesUsingBeanFilter() throws Exception {
-		JsonSerializer js = new JsonSerializerBuilder().simple().pojoSwaps(XMLGregorianCalendarSwap.class).build();
+		JsonSerializer js = JsonSerializer.create().simple().pojoSwaps(XMLGregorianCalendarSwap.class).build();
 
 		// Skip validation-only tests
 		if (isValidationOnly())
@@ -495,7 +495,7 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
 	//====================================================================================================
 	@Test
 	public void testPropertiesUsingBeanFilter() throws Exception {
-		JsonSerializer js = new JsonSerializerBuilder().simple().beanFilters(D2Filter.class).build();
+		JsonSerializer js = JsonSerializer.create().simple().beanFilters(D2Filter.class).build();
 
 		// Skip validation-only tests
 		if (isValidationOnly())

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripEnumTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripEnumTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripEnumTest.java
index 77a2ec0..8fd3991 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripEnumTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripEnumTest.java
@@ -47,7 +47,7 @@ public class RoundTripEnumTest extends RoundTripTest {
 
 	@Test
 	public void testEnumB() throws Exception {
-		WriterSerializer s = new JsonSerializerBuilder().simple().beanFilters(getBeanFilters()).pojoSwaps(getPojoSwaps()).build();
+		WriterSerializer s = JsonSerializer.create().simple().beanFilters(getBeanFilters()).pojoSwaps(getPojoSwaps()).build();
 		BEnum t = BEnum.FOO;
 		assertEquals("'xfoo'", s.serialize(t));
 		t = roundTrip(t, BEnum.class);

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripLargeObjectsTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripLargeObjectsTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripLargeObjectsTest.java
index c4f11ba..6a5024d 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripLargeObjectsTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripLargeObjectsTest.java
@@ -49,56 +49,56 @@ public class RoundTripLargeObjectsTest extends RoundTripTest {
 			// Full round-trip testing
 			{ /* 0 */
 				"Json DEFAULT",
-				new JsonSerializerBuilder().trimNullProperties(false),
-				new JsonParserBuilder(),
+				JsonSerializer.create().trimNullProperties(false),
+				JsonParser.create(),
 				0
 			},
 			{ /* 1 */
 				"Json DEFAULT_LAX",
-				new JsonSerializerBuilder().simple().trimNullProperties(false),
-				new JsonParserBuilder(),
+				JsonSerializer.create().simple().trimNullProperties(false),
+				JsonParser.create(),
 				0
 			},
 			{ /* 2 */
 				"Json DEFAULT_SQ",
-				new JsonSerializerBuilder().simple().trimNullProperties(false),
-				new JsonParserBuilder(),
+				JsonSerializer.create().simple().trimNullProperties(false),
+				JsonParser.create(),
 				0
 			},
 			{ /* 3 */
 				"Xml DEFAULT w/namespaces,validation",
-				new XmlSerializerBuilder().sq().ns().trimNullProperties(false).addNamespaceUrisToRoot(true).useWhitespace(true),
-				new XmlParserBuilder(),
+				XmlSerializer.create().sq().ns().trimNullProperties(false).addNamespaceUrisToRoot(true).useWhitespace(true),
+				XmlParser.create(),
 				CHECK_XML_WHITESPACE | VALIDATE_XML
 			},
 			{ /* 4 */
 				"Xml DEFAULT wo/namespaces,validation",
-				new XmlSerializerBuilder().sq().trimNullProperties(false),
-				new XmlParserBuilder(),
+				XmlSerializer.create().sq().trimNullProperties(false),
+				XmlParser.create(),
 				CHECK_XML_WHITESPACE
 			},
 			{ /* 5 */
 				"Html",
-				new HtmlSerializerBuilder().trimNullProperties(false),
-				new HtmlParserBuilder(),
+				HtmlSerializer.create().trimNullProperties(false),
+				HtmlParser.create(),
 				CHECK_XML_WHITESPACE
 			},
 			{ /* 6 */
 				"UrlEncoding",
-				new UrlEncodingSerializerBuilder().trimNullProperties(false),
-				new UrlEncodingParserBuilder(),
+				UrlEncodingSerializer.create().trimNullProperties(false),
+				UrlEncodingParser.create(),
 				0
 			},
 			{ /* 7 */
 				"Uon",
-				new UonSerializerBuilder().trimNullProperties(false),
-				new UonParserBuilder(),
+				UonSerializer.create().trimNullProperties(false),
+				UonParser.create(),
 				0
 			},
 			{ /* 8 */
 				"MsgPack",
-				new MsgPackSerializerBuilder().trimNullProperties(false),
-				new MsgPackParserBuilder(),
+				MsgPackSerializer.create().trimNullProperties(false),
+				MsgPackParser.create(),
 				0
 			},
 //			{ /* 9 */

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripMapsTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripMapsTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripMapsTest.java
index 7a3ecca..d05ba3f 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripMapsTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripMapsTest.java
@@ -106,27 +106,27 @@ public class RoundTripMapsTest extends RoundTripTest {
 		t.put(new byte[]{4,5,6}, null);
 		t.put(null, "b");
 
-		s = new JsonSerializerBuilder().simple().pojoSwaps(getPojoSwaps()).trimNullProperties(false).build();
+		s = JsonSerializer.create().simple().pojoSwaps(getPojoSwaps()).trimNullProperties(false).build();
 		e = "{AQID:'a',BAUG:null,null:'b'}";
 		r = s.serialize(t);
 		assertEquals(e, r);
 
-		s = new XmlSerializerBuilder().ns().sq().pojoSwaps(getPojoSwaps()).trimNullProperties(false).build();
+		s = XmlSerializer.create().ns().sq().pojoSwaps(getPojoSwaps()).trimNullProperties(false).build();
 		e = "<object><AQID>a</AQID><BAUG _type='null'/><_x0000_>b</_x0000_></object>";
 		r = s.serialize(t);
 		assertEquals(e, r);
 
-		s = new HtmlSerializerBuilder().sq().pojoSwaps(getPojoSwaps()).trimNullProperties(false).addKeyValueTableHeaders(true).build();
+		s = HtmlSerializer.create().sq().pojoSwaps(getPojoSwaps()).trimNullProperties(false).addKeyValueTableHeaders(true).build();
 		e = "<table><tr><th>key</th><th>value</th></tr><tr><td>AQID</td><td>a</td></tr><tr><td>BAUG</td><td><null/></td></tr><tr><td><null/></td><td>b</td></tr></table>";
 		r = s.serialize(t);
 		assertEquals(e, r);
 
-		s = new UonSerializerBuilder().encoding().pojoSwaps(getPojoSwaps()).trimNullProperties(false).build();
+		s = UonSerializer.create().encoding().pojoSwaps(getPojoSwaps()).trimNullProperties(false).build();
 		e = "(AQID=a,BAUG=null,null=b)";
 		r = s.serialize(t);
 		assertEquals(e, r);
 
-		s = new UrlEncodingSerializerBuilder().pojoSwaps(getPojoSwaps()).trimNullProperties(false).build();
+		s = UrlEncodingSerializer.create().pojoSwaps(getPojoSwaps()).trimNullProperties(false).build();
 		e = "AQID=a&BAUG=null&null=b";
 		r = s.serialize(t);
 		assertEquals(e, r);

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripTest.java
index b09a8bd..3e80d35 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripTest.java
@@ -49,136 +49,136 @@ public abstract class RoundTripTest {
 			// Full round-trip testing
 			{ /* 0 */
 				"Json - default",
-				new JsonSerializerBuilder().trimNullProperties(false),
-				new JsonParserBuilder(),
+				JsonSerializer.create().trimNullProperties(false),
+				JsonParser.create(),
 				0
 			},
 			{ /* 1 */
 				"Json - lax",
-				new JsonSerializerBuilder().simple().trimNullProperties(false),
-				new JsonParserBuilder(),
+				JsonSerializer.create().simple().trimNullProperties(false),
+				JsonParser.create(),
 				0
 			},
 			{ /* 2 */
 				"Json - lax, readable",
-				new JsonSerializerBuilder().simple().ws().trimNullProperties(false),
-				new JsonParserBuilder(),
+				JsonSerializer.create().simple().ws().trimNullProperties(false),
+				JsonParser.create(),
 				0
 			},
 			{ /* 3 */
 				"Xml - namespaces, validation, readable",
-				new XmlSerializerBuilder().ns().sq().trimNullProperties(false).addNamespaceUrisToRoot(true).useWhitespace(true),
-				new XmlParserBuilder(),
+				XmlSerializer.create().ns().sq().trimNullProperties(false).addNamespaceUrisToRoot(true).useWhitespace(true),
+				XmlParser.create(),
 				CHECK_XML_WHITESPACE | VALIDATE_XML
 			},
 			{ /* 4 */
 				"Xml - no namespaces, validation",
-				new XmlSerializerBuilder().sq().trimNullProperties(false),
-				new XmlParserBuilder(),
+				XmlSerializer.create().sq().trimNullProperties(false),
+				XmlParser.create(),
 				CHECK_XML_WHITESPACE
 			},
 			{ /* 5 */
 				"Html - default",
-				new HtmlSerializerBuilder().trimNullProperties(false),
-				new HtmlParserBuilder(),
+				HtmlSerializer.create().trimNullProperties(false),
+				HtmlParser.create(),
 				CHECK_XML_WHITESPACE
 			},
 			{ /* 6 */
 				"Html - readable",
-				new HtmlSerializerBuilder().sq().ws().trimNullProperties(false),
-				new HtmlParserBuilder(),
+				HtmlSerializer.create().sq().ws().trimNullProperties(false),
+				HtmlParser.create(),
 				CHECK_XML_WHITESPACE
 			},
 			{ /* 7 */
 				"Html - with key/value headers",
-				new HtmlSerializerBuilder().addKeyValueTableHeaders(true),
-				new HtmlParserBuilder(),
+				HtmlSerializer.create().addKeyValueTableHeaders(true),
+				HtmlParser.create(),
 				CHECK_XML_WHITESPACE
 			},
 			{ /* 8 */
 				"Uon - default",
-				new UonSerializerBuilder().trimNullProperties(false),
-				new UonParserBuilder(),
+				UonSerializer.create().trimNullProperties(false),
+				UonParser.create(),
 				0
 			},
 			{ /* 9 */
 				"Uon - readable",
-				new UonSerializerBuilder().ws().trimNullProperties(false),
-				new UonParserBuilder(),
+				UonSerializer.create().ws().trimNullProperties(false),
+				UonParser.create(),
 				0
 			},
 			{ /* 10 */
 				"Uon - encoded",
-				new UonSerializerBuilder().encoding().trimNullProperties(false),
-				new UonParserBuilder().decoding(),
+				UonSerializer.create().encoding().trimNullProperties(false),
+				UonParser.create().decoding(),
 				0
 			},
 			{ /* 11 */
 				"UrlEncoding - default",
-				new UrlEncodingSerializerBuilder().trimNullProperties(false),
-				new UrlEncodingParserBuilder(),
+				UrlEncodingSerializer.create().trimNullProperties(false),
+				UrlEncodingParser.create(),
 				0
 			},
 			{ /* 12 */
 				"UrlEncoding - readable",
-				new UrlEncodingSerializerBuilder().ws().trimNullProperties(false),
-				new UrlEncodingParserBuilder(),
+				UrlEncodingSerializer.create().ws().trimNullProperties(false),
+				UrlEncodingParser.create(),
 				0
 			},
 			{ /* 13 */
 				"UrlEncoding - expanded params",
-				new UrlEncodingSerializerBuilder().expandedParams(true),
-				new UrlEncodingParserBuilder().expandedParams(true),
+				UrlEncodingSerializer.create().expandedParams(true),
+				UrlEncodingParser.create().expandedParams(true),
 				0
 			},
 			{ /* 14 */
 				"Rdf.Xml",
-				new RdfSerializerBuilder().trimNullProperties(false).addLiteralTypes(true),
-				new RdfParserBuilder().xml(),
+				RdfSerializer.create().trimNullProperties(false).addLiteralTypes(true),
+				RdfParser.create().xml(),
 				0
 			},
 			{ /* 15 */
 				"Rdf.XmlAbbrev",
-				new RdfSerializerBuilder().xmlabbrev().trimNullProperties(false).addLiteralTypes(true),
-				new RdfParserBuilder().xml(),
+				RdfSerializer.create().xmlabbrev().trimNullProperties(false).addLiteralTypes(true),
+				RdfParser.create().xml(),
 				0
 			},
 			{ /* 16 */
 				"Rdf.Turtle",
-				new RdfSerializerBuilder().turtle().trimNullProperties(false).addLiteralTypes(true),
-				new RdfParserBuilder().turtle(),
+				RdfSerializer.create().turtle().trimNullProperties(false).addLiteralTypes(true),
+				RdfParser.create().turtle(),
 				0
 			},
 			{ /* 17 */
 				"Rdf.NTriple",
-				new RdfSerializerBuilder().ntriple().trimNullProperties(false).addLiteralTypes(true),
-				new RdfParserBuilder().ntriple(),
+				RdfSerializer.create().ntriple().trimNullProperties(false).addLiteralTypes(true),
+				RdfParser.create().ntriple(),
 				0
 			},
 			{ /* 18 */
 				"Rdf.N3",
-				new RdfSerializerBuilder().n3().trimNullProperties(false).addLiteralTypes(true),
-				new RdfParserBuilder().n3(),
+				RdfSerializer.create().n3().trimNullProperties(false).addLiteralTypes(true),
+				RdfParser.create().n3(),
 				0
 			},
 			{ /* 19 */
 				"MsgPack",
-				new MsgPackSerializerBuilder().trimNullProperties(false),
-				new MsgPackParserBuilder(),
+				MsgPackSerializer.create().trimNullProperties(false),
+				MsgPackParser.create(),
 				0
 			},
 
 			// Validation testing only
 			{ /* 20 */
 				"Json schema",
-				new JsonSchemaSerializerBuilder().trimNullProperties(false),
+				JsonSchemaSerializer.create().trimNullProperties(false),
 				null,
 				RETURN_ORIGINAL_OBJECT
 			},
 			{ /* 21 */
 				"Xml schema",
-				new XmlSchemaSerializerBuilder().trimNullProperties(false),
-				new XmlValidatorParserBuilder(),
+				XmlSchemaSerializer.create().trimNullProperties(false),
+				XmlValidatorParser.create(),
 				RETURN_ORIGINAL_OBJECT | CHECK_XML_WHITESPACE
 			},
 		});

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripTransformBeansTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripTransformBeansTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripTransformBeansTest.java
index bde5202..043b6f3 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripTransformBeansTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripTransformBeansTest.java
@@ -331,8 +331,8 @@ public class RoundTripTransformBeansTest extends RoundTripTest {
 	public void testSurrogates() throws Exception {
 		pojoSwaps(D2.class);
 
-		JsonSerializer s = new JsonSerializerBuilder().simple().pojoSwaps(D2.class).build();
-		JsonParser p = new JsonParserBuilder().pojoSwaps(D2.class).build();
+		JsonSerializer s = JsonSerializer.create().simple().pojoSwaps(D2.class).build();
+		JsonParser p = JsonParser.create().pojoSwaps(D2.class).build();
 		Object r;
 		D1 d1 = D1.create();
 

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/dto/atom/AtomTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/dto/atom/AtomTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/dto/atom/AtomTest.java
index 584b32e..066bfdc 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/dto/atom/AtomTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/dto/atom/AtomTest.java
@@ -96,7 +96,7 @@ public class AtomTest {
 			+"	<updated>2016-12-31T01:02:03-04:00</updated>\n"
 			+"</feed>\n";
 
-		s = new XmlSerializerBuilder().sq().ws().enableNamespaces(false).sortProperties(true).build();
+		s = XmlSerializer.create().sq().ws().enableNamespaces(false).sortProperties(true).build();
 		r = s.serialize(f);
 		assertEquals(expected, r);
 		f2 = p.parse(r, Feed.class);
@@ -141,7 +141,7 @@ public class AtomTest {
 			+"	<atom:updated>2016-12-31T01:02:03-04:00</atom:updated>\n"
 			+"</atom:feed>\n";
 
-		s = new XmlSerializerBuilder().sq().ws().enableNamespaces(true).addNamespaceUrisToRoot(true).sortProperties(true).build();
+		s = XmlSerializer.create().sq().ws().enableNamespaces(true).addNamespaceUrisToRoot(true).sortProperties(true).build();
 		r = s.serialize(f);
 		assertEquals(expected, r);
 		f2 = p.parse(r, Feed.class);
@@ -186,7 +186,7 @@ public class AtomTest {
 			+"	<updated>2016-12-31T01:02:03-04:00</updated>\n"
 			+"</feed>\n";
 
-		s = new XmlSerializerBuilder().sq().ws().defaultNamespace("atom").enableNamespaces(true).addNamespaceUrisToRoot(true).sortProperties(true).build();
+		s = XmlSerializer.create().sq().ws().defaultNamespace("atom").enableNamespaces(true).addNamespaceUrisToRoot(true).sortProperties(true).build();
 		r = s.serialize(f);
 		assertEquals(expected, r);
 		f2 = p.parse(r, Feed.class);

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/dto/cognos/CognosXmlTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/dto/cognos/CognosXmlTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/dto/cognos/CognosXmlTest.java
index 0f0bdd4..6883fdc 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/dto/cognos/CognosXmlTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/dto/cognos/CognosXmlTest.java
@@ -72,7 +72,7 @@ public class CognosXmlTest {
 			new Column("productLineCode", "xs:int")
 		};
 
-		XmlSerializer s = new XmlSerializerBuilder()
+		XmlSerializer s = XmlSerializer.create()
 			.ws()
 			.sq()
 			.defaultNamespace("cognos")

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/dto/jsonschema/JsonSchemaTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/dto/jsonschema/JsonSchemaTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/dto/jsonschema/JsonSchemaTest.java
index fe8f125..8427835 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/dto/jsonschema/JsonSchemaTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/dto/jsonschema/JsonSchemaTest.java
@@ -24,7 +24,7 @@ public class JsonSchemaTest {
 
 	@Test
 	public void testSchema1() throws Exception {
-		JsonSerializer s = new JsonSerializerBuilder().simple().ws().addBeanTypeProperties(false).build();
+		JsonSerializer s = JsonSerializer.create().simple().ws().addBeanTypeProperties(false).build();
 		JsonParser p = JsonParser.DEFAULT;
 		String r;
 		Schema t, t2;
@@ -118,7 +118,7 @@ public class JsonSchemaTest {
 
 	@Test
 	public void testSchema2() throws Exception {
-		JsonSerializer s = new JsonSerializerBuilder().simple().ws().addBeanTypeProperties(false).build();
+		JsonSerializer s = JsonSerializer.create().simple().ws().addBeanTypeProperties(false).build();
 		JsonParser p = JsonParser.DEFAULT;
 		String r;
 		Schema t, t2;
@@ -155,7 +155,7 @@ public class JsonSchemaTest {
 
 	@Test
 	public void testToString() throws Exception {
-		JsonSerializer s = new JsonSerializerBuilder().simple().ws().addBeanTypeProperties(false).build();
+		JsonSerializer s = JsonSerializer.create().simple().ws().addBeanTypeProperties(false).build();
 		JsonParser p = JsonParser.DEFAULT;
 		String r;
 		Schema t, t2;

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/encoders/EncoderGroupTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/encoders/EncoderGroupTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/encoders/EncoderGroupTest.java
index 3a0e026..d66489a 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/encoders/EncoderGroupTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/encoders/EncoderGroupTest.java
@@ -25,7 +25,7 @@ public class EncoderGroupTest {
 	@Test
 	public void testEncoderGroupMatching() throws Exception {
 
-		EncoderGroup g = new EncoderGroupBuilder().append(Encoder1.class, Encoder2.class, Encoder3.class).build();
+		EncoderGroup g = EncoderGroup.create().append(Encoder1.class, Encoder2.class, Encoder3.class).build();
 		assertType(Encoder1.class, g.getEncoder("gzip1"));
 		assertType(Encoder2.class, g.getEncoder("gzip2"));
 		assertType(Encoder2.class, g.getEncoder("gzip2a"));
@@ -66,15 +66,15 @@ public class EncoderGroupTest {
 		EncoderGroupBuilder gb = null;
 		EncoderGroup g = null;
 
-		gb = new EncoderGroupBuilder().append(E1.class, E2.class);
+		gb = EncoderGroup.create().append(E1.class, E2.class);
 		g = gb.build();
 		assertObjectEquals("['E1','E2','E2a']", g.getSupportedEncodings());
 
-		gb = new EncoderGroupBuilder(g).append(E3.class, E4.class);
+		gb = g.builder().append(E3.class, E4.class);
 		g = gb.build();
 		assertObjectEquals("['E3','E4','E4a','E1','E2','E2a']", g.getSupportedEncodings());
 
-		gb = new EncoderGroupBuilder(g).append(E5.class);
+		gb = g.builder().append(E5.class);
 		g = gb.build();
 		assertObjectEquals("['E5','E3','E4','E4a','E1','E2','E2a']", g.getSupportedEncodings());
 	}

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/html/CommonParserTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/html/CommonParserTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/html/CommonParserTest.java
index a41d9c6..f7b0d99 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/html/CommonParserTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/html/CommonParserTest.java
@@ -29,7 +29,7 @@ public class CommonParserTest {
 	//====================================================================================================
 	@Test
 	public void testFromSerializer() throws Exception {
-		ReaderParser p = new HtmlParserBuilder().beanDictionary(A1.class).build();
+		ReaderParser p = HtmlParser.create().beanDictionary(A1.class).build();
 		Map m = null;
 		String in;
 
@@ -63,7 +63,7 @@ public class CommonParserTest {
 		t2.add(new A3("name0","value0"));
 		t2.add(new A3("name1","value1"));
 		t1.list = t2;
-		in = new HtmlSerializerBuilder().addBeanTypeProperties(true).build().serialize(t1);
+		in = HtmlSerializer.create().addBeanTypeProperties(true).build().serialize(t1);
 		t1 = (A1)p.parse(in, Object.class);
 		assertEquals("value1", t1.list.get(1).value);
 
@@ -94,7 +94,7 @@ public class CommonParserTest {
 	//====================================================================================================
 	@Test
 	public void testCorrectHandlingOfUnknownProperties() throws Exception {
-		ReaderParser p = new HtmlParserBuilder().ignoreUnknownBeanProperties(true).build();
+		ReaderParser p = HtmlParser.create().ignoreUnknownBeanProperties(true).build();
 		B t;
 
 		String in = "<table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>a</string></td><td><number>1</number></td></tr><tr><td><string>unknown</string></td><td><number>1</number></td></tr><tr><td><string>b</string></td><td><number>2</number></td></tr></table>";
@@ -142,7 +142,7 @@ public class CommonParserTest {
 	//====================================================================================================
 	@Test
 	public void testParserListeners() throws Exception {
-		HtmlParser p = new HtmlParserBuilder().ignoreUnknownBeanProperties(true).listener(MyParserListener.class).build();
+		HtmlParser p = HtmlParser.create().ignoreUnknownBeanProperties(true).listener(MyParserListener.class).build();
 
 		String in = "<table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>a</string></td><td><number>1</number></td></tr><tr><td><string>unknown</string></td><td><string>/foo</string></td></tr><tr><td><string>b</string></td><td><number>2</number></td></tr></table>";
 		p.parse(in, B.class);

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/html/CommonTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/html/CommonTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/html/CommonTest.java
index e83900e..901b6fc 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/html/CommonTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/html/CommonTest.java
@@ -33,7 +33,7 @@ public class CommonTest {
 	//====================================================================================================
 	@Test
 	public void testTrimNullsFromBeans() throws Exception {
-		HtmlSerializerBuilder s = new HtmlSerializerBuilder().sq().addKeyValueTableHeaders(true);
+		HtmlSerializerBuilder s = HtmlSerializer.create().sq().addKeyValueTableHeaders(true);
 		HtmlParser p = HtmlParser.DEFAULT;
 		A t1 = A.create(), t2;
 
@@ -65,7 +65,7 @@ public class CommonTest {
 	//====================================================================================================
 	@Test
 	public void testTrimEmptyMaps() throws Exception {
-		HtmlSerializerBuilder s = new HtmlSerializerBuilder().sq().addKeyValueTableHeaders(true);
+		HtmlSerializerBuilder s = HtmlSerializer.create().sq().addKeyValueTableHeaders(true);
 		HtmlParser p = HtmlParser.DEFAULT;
 		B t1 = B.create(), t2;
 		String r;
@@ -99,7 +99,7 @@ public class CommonTest {
 	//====================================================================================================
 	@Test
 	public void testTrimEmptyLists() throws Exception {
-		HtmlSerializerBuilder s = new HtmlSerializerBuilder().sq().addKeyValueTableHeaders(true);
+		HtmlSerializerBuilder s = HtmlSerializer.create().sq().addKeyValueTableHeaders(true);
 		HtmlParser p = HtmlParser.DEFAULT;
 		C t1 = C.create(), t2;
 		String r;
@@ -133,7 +133,7 @@ public class CommonTest {
 	//====================================================================================================
 	@Test
 	public void testTrimEmptyArrays() throws Exception {
-		HtmlSerializerBuilder s = new HtmlSerializerBuilder().sq().addKeyValueTableHeaders(true);
+		HtmlSerializerBuilder s = HtmlSerializer.create().sq().addKeyValueTableHeaders(true);
 		HtmlParser p = HtmlParser.DEFAULT;
 		D t1 = D.create(), t2;
 		String r;
@@ -199,7 +199,7 @@ public class CommonTest {
 	//====================================================================================================
 	@Test
 	public void testBeanPropertyProperties() throws Exception {
-		HtmlSerializer s = new HtmlSerializerBuilder().sq().addKeyValueTableHeaders(true).build();
+		HtmlSerializer s = HtmlSerializer.create().sq().addKeyValueTableHeaders(true).build();
 		E1 t = new E1();
 		String r;
 
@@ -347,7 +347,7 @@ public class CommonTest {
 	//====================================================================================================
 	@Test
 	public void testRecursion() throws Exception {
-		HtmlSerializerBuilder s = new HtmlSerializerBuilder().sq().addKeyValueTableHeaders(true);
+		HtmlSerializerBuilder s = HtmlSerializer.create().sq().addKeyValueTableHeaders(true);
 
 		R1 r1 = new R1();
 		R2 r2 = new R2();
@@ -406,7 +406,7 @@ public class CommonTest {
 	//====================================================================================================
 	@Test
 	public void testBasicBean() throws Exception {
-		WriterSerializer s = new HtmlSerializerBuilder().sq().trimNullProperties(false).sortProperties(true).addKeyValueTableHeaders(true).build();
+		WriterSerializer s = HtmlSerializer.create().sq().trimNullProperties(false).sortProperties(true).addKeyValueTableHeaders(true).build();
 
 		J a = new J();
 		a.setF1("J");

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/html/HtmlTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/html/HtmlTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/html/HtmlTest.java
index 6229b14..2665292 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/html/HtmlTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/html/HtmlTest.java
@@ -48,7 +48,7 @@ public class HtmlTest {
 	//====================================================================================================
 	@Test
 	public void testAnchorTextOptions() throws Exception {
-		HtmlSerializerBuilder s = new HtmlSerializerBuilder().sq().addKeyValueTableHeaders(true).uriResolution(UriResolution.NONE);
+		HtmlSerializerBuilder s = HtmlSerializer.create().sq().addKeyValueTableHeaders(true).uriResolution(UriResolution.NONE);
 		TestURI t = new TestURI();
 		String r;
 		String expected = null;
@@ -209,7 +209,7 @@ public class HtmlTest {
 	//====================================================================================================
 	@Test
 	public void testHtmlAnnotationAsPlainText() throws Exception {
-		HtmlSerializer s = new HtmlSerializerBuilder().sq().addKeyValueTableHeaders(true).build();
+		HtmlSerializer s = HtmlSerializer.create().sq().addKeyValueTableHeaders(true).build();
 		Object o = null;
 		String r;
 
@@ -241,7 +241,7 @@ public class HtmlTest {
 	//====================================================================================================
 	@Test
 	public void testHtmlAnnotationAsXml() throws Exception {
-		HtmlSerializer s = new HtmlSerializerBuilder().sq().addKeyValueTableHeaders(true).build();
+		HtmlSerializer s = HtmlSerializer.create().sq().addKeyValueTableHeaders(true).build();
 		Object o = null;
 		String r;
 

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jena/CommonParserTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jena/CommonParserTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jena/CommonParserTest.java
index 2aa8a59..1af8a8c 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jena/CommonParserTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jena/CommonParserTest.java
@@ -41,7 +41,7 @@ public class CommonParserTest {
 	}
 
 	private RdfSerializerBuilder getBasicSerializer() {
-		return new RdfSerializerBuilder()
+		return RdfSerializer.create()
 			.sq()
 			.addLiteralTypes(true)
 			.useWhitespace(false)
@@ -56,7 +56,7 @@ public class CommonParserTest {
 	@Test
 	public void testFromSerializer() throws Exception {
 		WriterSerializer s = getBasicSerializer().build();
-		ReaderParser p = new RdfParserBuilder().xml().trimWhitespace(true).build();
+		ReaderParser p = RdfParser.create().xml().trimWhitespace(true).build();
 		Map m = null;
 		String in;
 		Integer one = Integer.valueOf(1);
@@ -139,7 +139,7 @@ public class CommonParserTest {
 	//====================================================================================================
 	@Test
 	public void testCorrectHandlingOfUnknownProperties() throws Exception {
-		ReaderParser p = new RdfParserBuilder().xml().ignoreUnknownBeanProperties(true).build();
+		ReaderParser p = RdfParser.create().xml().ignoreUnknownBeanProperties(true).build();
 		B t;
 
 		String in = wrap("<rdf:Description><jp:a rdf:datatype='http://www.w3.org/2001/XMLSchema#int'>1</jp:a><jp:unknownProperty>foo</jp:unknownProperty><jp:b rdf:datatype='http://www.w3.org/2001/XMLSchema#int'>2</jp:b></rdf:Description>");
@@ -148,7 +148,7 @@ public class CommonParserTest {
 		assertEquals(t.b, 2);
 
 		try {
-			p = new RdfParserBuilder().xml().build();
+			p = RdfParser.create().xml().build();
 			p.parse(in, B.class);
 			fail("Exception expected");
 		} catch (ParseException e) {}
@@ -163,7 +163,7 @@ public class CommonParserTest {
 	//====================================================================================================
 	@Test
 	public void testCollectionPropertiesWithNoSetters() throws Exception {
-		RdfParser p = new RdfParserBuilder().xml().build();
+		RdfParser p = RdfParser.create().xml().build();
 		String in = wrap("<rdf:Description><jp:ints><rdf:Seq><rdf:li>1</rdf:li><rdf:li>2</rdf:li></rdf:Seq></jp:ints><jp:beans><rdf:Seq><rdf:li rdf:parseType='Resource'><jp:a>1</jp:a><jp:b>2</jp:b></rdf:li></rdf:Seq></jp:beans></rdf:Description>");
 		C t = p.parse(in, C.class);
 		assertEquals(t.getInts().size(), 2);
@@ -186,7 +186,7 @@ public class CommonParserTest {
 	//====================================================================================================
 	@Test
 	public void testParserListeners() throws Exception {
-		RdfParser p = new RdfParserBuilder().xml().ignoreUnknownBeanProperties(true).listener(MyParserListener.class).build();
+		RdfParser p = RdfParser.create().xml().ignoreUnknownBeanProperties(true).listener(MyParserListener.class).build();
 
 		String in = wrap("<rdf:Description><jp:a rdf:datatype='http://www.w3.org/2001/XMLSchema#int'>1</jp:a><jp:unknownProperty>foo</jp:unknownProperty><jp:b rdf:datatype='http://www.w3.org/2001/XMLSchema#int'>2</jp:b></rdf:Description>");
 		p.parse(in, B.class);

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jena/CommonTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jena/CommonTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jena/CommonTest.java
index 845198d..a79cebe 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jena/CommonTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jena/CommonTest.java
@@ -30,7 +30,7 @@ import org.junit.*;
 public class CommonTest {
 
 	private RdfSerializerBuilder getBasicSerializer() {
-		return new RdfSerializerBuilder()
+		return RdfSerializer.create()
 			.sq()
 			.useWhitespace(false)
 			.property(RDF_rdfxml_allowBadUris, true)
@@ -280,7 +280,7 @@ public class CommonTest {
 	//====================================================================================================
 	@Test
 	public void testRecursion() throws Exception {
-		RdfSerializerBuilder s = new RdfSerializerBuilder().xmlabbrev().sq();
+		RdfSerializerBuilder s = RdfSerializer.create().xmlabbrev().sq();
 
 		R1 r1 = new R1();
 		R2 r2 = new R2();

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jena/CommonXmlTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jena/CommonXmlTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jena/CommonXmlTest.java
index fcb03e3..b3fd3bc 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jena/CommonXmlTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jena/CommonXmlTest.java
@@ -26,7 +26,7 @@ import org.junit.*;
 public class CommonXmlTest {
 
 	private RdfSerializerBuilder getBasicSerializer() {
-		return new RdfSerializerBuilder()
+		return RdfSerializer.create()
 			.sq()
 			.useWhitespace(false)
 			.property(RDF_rdfxml_allowBadUris, true)

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jena/RdfParserTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jena/RdfParserTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jena/RdfParserTest.java
index cbb43cb..acf414f 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jena/RdfParserTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jena/RdfParserTest.java
@@ -45,7 +45,7 @@ public class RdfParserTest {
 		A a = new A().init();
 
 		// Create a new serializer with readable output.
-		RdfSerializer s = new RdfSerializerBuilder().xmlabbrev()
+		RdfSerializer s = RdfSerializer.create().xmlabbrev()
 			.property(RDF_rdfxml_tab, 3)
 			.sq()
 			.addRootProperty(true)

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jena/RdfTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jena/RdfTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jena/RdfTest.java
index b9ca944..9d17b22 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jena/RdfTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/jena/RdfTest.java
@@ -32,11 +32,11 @@ public class RdfTest {
 		String rdfXml;
 		String expected;
 
-		RdfSerializerBuilder s = new RdfSerializerBuilder().xmlabbrev()
+		RdfSerializerBuilder s = RdfSerializer.create().xmlabbrev()
 			.property(RDF_rdfxml_tab, 3)
 			.sq()
 			.addRootProperty(true);
-		RdfParser p = new RdfParserBuilder().xml().build();
+		RdfParser p = RdfParser.create().xml().build();
 
 		//--------------------------------------------------------------------------------
 		// Normal format - Sequence
@@ -169,7 +169,7 @@ public class RdfTest {
 		assertXmlEquals(expected, rdfXml);
 
 		// Note - Must specify collection format on parser for it to be able to understand this layout.
-		p = new RdfParserBuilder().xml().collectionFormat(RdfCollectionFormat.MULTI_VALUED).build();
+		p = RdfParser.create().xml().collectionFormat(RdfCollectionFormat.MULTI_VALUED).build();
 		a2 = p.parse(rdfXml, A.class);
 		assertEqualObjects(a, a2);
 	}
@@ -192,7 +192,7 @@ public class RdfTest {
 	public void testCollectionFormatAnnotations() throws Exception {
 		B b = new B().init(), b2;
 		String rdfXml, expected;
-		RdfSerializerBuilder s = new RdfSerializerBuilder().xmlabbrev()
+		RdfSerializerBuilder s = RdfSerializer.create().xmlabbrev()
 			.property(RDF_rdfxml_tab, 3)
 			.sq()
 			.addRootProperty(true);
@@ -425,7 +425,7 @@ public class RdfTest {
 	public void testCollectionFormatAnnotationOnClass() throws Exception {
 		C c = new C().init(), c2;
 		String rdfXml, expected;
-		RdfSerializerBuilder s = new RdfSerializerBuilder().xmlabbrev()
+		RdfSerializerBuilder s = RdfSerializer.create().xmlabbrev()
 			.property(RDF_rdfxml_tab, 3)
 			.sq()
 			.addRootProperty(true);
@@ -524,8 +524,8 @@ public class RdfTest {
 
 	@Test
 	public void testLooseCollectionsOfBeans() throws Exception {
-		WriterSerializer s = new RdfSerializerBuilder().xmlabbrev().looseCollections(true).build();
-		ReaderParser p = new RdfParserBuilder().xml().looseCollections(true).build();
+		WriterSerializer s = RdfSerializer.create().xmlabbrev().looseCollections(true).build();
+		ReaderParser p = RdfParser.create().xml().looseCollections(true).build();
 		String rdfXml, expected;
 
 		List<D> l = new LinkedList<D>();

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/json/CommonParserTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/json/CommonParserTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/json/CommonParserTest.java
index 6f51438..49e67c0 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/json/CommonParserTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/json/CommonParserTest.java
@@ -29,7 +29,7 @@ public class CommonParserTest {
 	//====================================================================================================
 	@Test
 	public void testFromSerializer() throws Exception {
-		ReaderParser p = new JsonParserBuilder().beanDictionary(A1.class).build();
+		ReaderParser p = JsonParser.create().beanDictionary(A1.class).build();
 
 		Map m = null;
 		m = (Map)p.parse("{a:1}", Object.class);
@@ -83,7 +83,7 @@ public class CommonParserTest {
 		tl.add(new A3("name0","value0"));
 		tl.add(new A3("name1","value1"));
 		b.list = tl;
-		String json = new JsonSerializerBuilder().addBeanTypeProperties(true).beanDictionary(A1.class).build().serialize(b);
+		String json = JsonSerializer.create().addBeanTypeProperties(true).beanDictionary(A1.class).build().serialize(b);
 		b = (A1)p.parse(json, Object.class);
 		assertEquals("value1", b.list.get(1).value);
 
@@ -114,7 +114,7 @@ public class CommonParserTest {
 	//====================================================================================================
 	@Test
 	public void testCorrectHandlingOfUnknownProperties() throws Exception {
-		ReaderParser p = new JsonParserBuilder().ignoreUnknownBeanProperties(true).build();
+		ReaderParser p = JsonParser.create().ignoreUnknownBeanProperties(true).build();
 		B b;
 
 		String in =  "{a:1,unknown:3,b:2}";
@@ -161,7 +161,7 @@ public class CommonParserTest {
 	//====================================================================================================
 	@Test
 	public void testParserListeners() throws Exception {
-		JsonParser p = new JsonParserBuilder().ignoreUnknownBeanProperties(true).listener(MyParserListener.class).build();
+		JsonParser p = JsonParser.create().ignoreUnknownBeanProperties(true).listener(MyParserListener.class).build();
 
 		String json = "{a:1,unknownProperty:\"/foo\",b:2}";
 		p.parse(json, B.class);

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/json/CommonTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/json/CommonTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/json/CommonTest.java
index cd2cb22..54e95b6 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/json/CommonTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/json/CommonTest.java
@@ -32,7 +32,7 @@ public class CommonTest {
 	//====================================================================================================
 	@Test
 	public void testTrimNullsFromBeans() throws Exception {
-		JsonSerializerBuilder s = new JsonSerializerBuilder().simple();
+		JsonSerializerBuilder s = JsonSerializer.create().simple();
 		JsonParser p = JsonParser.DEFAULT;
 		A t1 = A.create(), t2;
 
@@ -64,7 +64,7 @@ public class CommonTest {
 	//====================================================================================================
 	@Test
 	public void testTrimEmptyMaps() throws Exception {
-		JsonSerializerBuilder s = new JsonSerializerBuilder().simple();
+		JsonSerializerBuilder s = JsonSerializer.create().simple();
 		JsonParser p = JsonParser.DEFAULT;
 		B t1 = B.create(), t2;
 		String r;
@@ -98,7 +98,7 @@ public class CommonTest {
 	//====================================================================================================
 	@Test
 	public void testTrimEmptyLists() throws Exception {
-		JsonSerializerBuilder s = new JsonSerializerBuilder().simple();
+		JsonSerializerBuilder s = JsonSerializer.create().simple();
 		JsonParser p = JsonParser.DEFAULT;
 		C t1 = C.create(), t2;
 		String r;
@@ -132,7 +132,7 @@ public class CommonTest {
 	//====================================================================================================
 	@Test
 	public void testTrimEmptyArrays() throws Exception {
-		JsonSerializerBuilder s = new JsonSerializerBuilder().simple();
+		JsonSerializerBuilder s = JsonSerializer.create().simple();
 		JsonParser p = JsonParser.DEFAULT;
 		D t1 = D.create(), t2;
 		String r;
@@ -241,7 +241,7 @@ public class CommonTest {
 	//====================================================================================================
 	@Test
 	public void testRecursion() throws Exception {
-		JsonSerializerBuilder s = new JsonSerializerBuilder().simple();
+		JsonSerializerBuilder s = JsonSerializer.create().simple();
 
 		R1 r1 = new R1();
 		R2 r2 = new R2();
@@ -297,7 +297,7 @@ public class CommonTest {
 	//====================================================================================================
 	@Test
 	public void testBasicBean() throws Exception {
-		JsonSerializer s = new JsonSerializerBuilder().simple().trimNullProperties(false).sortProperties(true).build();
+		JsonSerializer s = JsonSerializer.create().simple().trimNullProperties(false).sortProperties(true).build();
 
 		J a = new J();
 		a.setF1("J");

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/json/JsonTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/json/JsonTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/json/JsonTest.java
index 120cde4..880e2d4 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/json/JsonTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/json/JsonTest.java
@@ -33,8 +33,8 @@ public class JsonTest {
 		Map<String,Object> m = new LinkedHashMap<String,Object>();
 		List<Object> l = new LinkedList<Object>();
 
-		WriterSerializer s1 = new JsonSerializerBuilder().simple().trimNullProperties(false).build();
-		WriterSerializer s2 = new JsonSerializerBuilder().simple().trimNullProperties(false).quoteChar('"').build();
+		WriterSerializer s1 = JsonSerializer.create().simple().trimNullProperties(false).build();
+		WriterSerializer s2 = JsonSerializer.create().simple().trimNullProperties(false).quoteChar('"').build();
 		String r;
 
 		// Null keys and values
@@ -109,7 +109,7 @@ public class JsonTest {
 	//====================================================================================================
 	@Test
 	public void testBackslashesInStrings() throws Exception {
-		JsonSerializer s = new JsonSerializerBuilder().simple().trimNullProperties(false).quoteChar('"').build();
+		JsonSerializer s = JsonSerializer.create().simple().trimNullProperties(false).quoteChar('"').build();
 		String r, r2;
 
 		// [\\]
@@ -289,13 +289,13 @@ public class JsonTest {
 	//====================================================================================================
 	@Test
 	public void testEscapeSolidus() throws Exception {
-		JsonSerializer s = new JsonSerializerBuilder().escapeSolidus(false).build();
+		JsonSerializer s = JsonSerializer.create().escapeSolidus(false).build();
 		String r = s.serialize("foo/bar");
 		assertEquals("\"foo/bar\"", r);
 		r = JsonParser.DEFAULT.parse(r, String.class);
 		assertEquals("foo/bar", r);
 
-		s = new JsonSerializerBuilder().escapeSolidus(true).build();
+		s = JsonSerializer.create().escapeSolidus(true).build();
 		r = s.serialize("foo/bar");
 		assertEquals("\"foo\\/bar\"", r);
 		r = JsonParser.DEFAULT.parse(r, String.class);

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/parser/ParserGroupTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/parser/ParserGroupTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/parser/ParserGroupTest.java
index 62b17dc..d6b039a 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/parser/ParserGroupTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/parser/ParserGroupTest.java
@@ -27,7 +27,7 @@ public class ParserGroupTest {
 	@Test
 	public void testParserGroupMatching() throws Exception {
 
-		ParserGroup g = new ParserGroupBuilder().append(Parser1.class, Parser2.class, Parser3.class).build();
+		ParserGroup g = ParserGroup.create().append(Parser1.class, Parser2.class, Parser3.class).build();
 		assertType(Parser1.class, g.getParser("text/foo"));
 		assertType(Parser1.class, g.getParser("text/foo_a"));
 		assertType(Parser1.class, g.getParser("text/foo_a+xxx"));
@@ -71,15 +71,15 @@ public class ParserGroupTest {
 		ParserGroupBuilder gb = null;
 		ParserGroup g = null;
 
-		gb = new ParserGroupBuilder().append(P1.class, P2.class);
+		gb = ParserGroup.create().append(P1.class, P2.class);
 		g = gb.build();
 		assertObjectEquals("['text/1','text/2','text/2a']", g.getSupportedMediaTypes());
 
-		gb = new ParserGroupBuilder(g).append(P3.class, P4.class);
+		gb = g.builder().append(P3.class, P4.class);
 		g = gb.build();
 		assertObjectEquals("['text/3','text/4','text/4a','text/1','text/2','text/2a']", g.getSupportedMediaTypes());
 
-		gb = new ParserGroupBuilder(g).append(P5.class);
+		gb = g.builder().append(P5.class);
 		g = gb.build();
 		assertObjectEquals("['text/5','text/3','text/4','text/4a','text/1','text/2','text/2a']", g.getSupportedMediaTypes());
 	}

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/serializer/SerializerGroupTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/serializer/SerializerGroupTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/serializer/SerializerGroupTest.java
index a9839d4..385ba4e 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/serializer/SerializerGroupTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/serializer/SerializerGroupTest.java
@@ -27,7 +27,7 @@ public class SerializerGroupTest {
 	@Test
 	public void testSerializerGroupMatching() throws Exception {
 
-		SerializerGroup sg = new SerializerGroupBuilder().append(SA1.class, SA2.class, SA3.class).build();
+		SerializerGroup sg = SerializerGroup.create().append(SA1.class, SA2.class, SA3.class).build();
 		assertType(SA1.class, sg.getSerializer("text/foo"));
 		assertType(SA1.class, sg.getSerializer("text/foo_a"));
 		assertType(SA1.class, sg.getSerializer("text/xxx+foo_a"));
@@ -76,15 +76,15 @@ public class SerializerGroupTest {
 		SerializerGroupBuilder gb = null;
 		SerializerGroup g = null;
 
-		gb = new SerializerGroupBuilder().append(SB1.class, SB2.class);
+		gb = SerializerGroup.create().append(SB1.class, SB2.class);
 		g = gb.build();
 		assertObjectEquals("['text/1','text/2','text/2a']", g.getSupportedMediaTypes());
 
-		gb = new SerializerGroupBuilder(g).append(SB3.class, SB4.class);
+		gb = g.builder().append(SB3.class, SB4.class);
 		g = gb.build();
 		assertObjectEquals("['text/3','text/4','text/4a','text/1','text/2','text/2a']", g.getSupportedMediaTypes());
 
-		gb = new SerializerGroupBuilder(g).append(SB5.class);
+		gb = g.builder().append(SB5.class);
 		g = gb.build();
 		assertObjectEquals("['text/5','text/3','text/4','text/4a','text/1','text/2','text/2a']", g.getSupportedMediaTypes());
 	}
@@ -127,7 +127,7 @@ public class SerializerGroupTest {
 		SerializerGroupBuilder gb = null;
 		SerializerGroup g = null;
 
-		gb = new SerializerGroupBuilder().append(SC1.class, SC2.class, SC3.class);
+		gb = SerializerGroup.create().append(SC1.class, SC2.class, SC3.class);
 		g = gb.build();
 		assertType(SC1.class, g.getSerializer("text/foo"));
 		assertType(SC2.class, g.getSerializer("foo/json"));



[2/3] juneau git commit: Add convenience create() methods to serializers and parsers.

Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/serializer/UriResolutionTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/serializer/UriResolutionTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/serializer/UriResolutionTest.java
index f1c094d..05759f8 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/serializer/UriResolutionTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/serializer/UriResolutionTest.java
@@ -593,79 +593,79 @@ public class UriResolutionTest {
 
 	@Test
 	public void a1_testJsonSerialize() throws Exception {
-		Serializer s = new JsonSerializerBuilder().simple().sq().uriContext(input.context).uriResolution(input.resolution).uriRelativity(input.relativity).build();
+		Serializer s = JsonSerializer.create().simple().sq().uriContext(input.context).uriResolution(input.resolution).uriRelativity(input.relativity).build();
 		testSerialize(s, results.json);
 	}
 
 	@Test
 	public void a2_testJsonParse() throws Exception {
-		Serializer s = new JsonSerializerBuilder().simple().sq().uriContext(input.context).uriResolution(input.resolution).uriRelativity(input.relativity).build();
+		Serializer s = JsonSerializer.create().simple().sq().uriContext(input.context).uriResolution(input.resolution).uriRelativity(input.relativity).build();
 		testParse(s, JsonParser.DEFAULT);
 	}
 
 	@Test
 	public void b1_testXmlSerialize() throws Exception {
-		Serializer s = new XmlSerializerBuilder().sq().uriContext(input.context).uriResolution(input.resolution).uriRelativity(input.relativity).build();
+		Serializer s = XmlSerializer.create().sq().uriContext(input.context).uriResolution(input.resolution).uriRelativity(input.relativity).build();
 		testSerialize(s, results.xml);
 	}
 
 	@Test
 	public void b2_testXmlParse() throws Exception {
-		Serializer s = new XmlSerializerBuilder().sq().uriContext(input.context).uriResolution(input.resolution).uriRelativity(input.relativity).build();
+		Serializer s = XmlSerializer.create().sq().uriContext(input.context).uriResolution(input.resolution).uriRelativity(input.relativity).build();
 		testParse(s, XmlParser.DEFAULT);
 	}
 
 	@Test
 	public void c1_testHtmlSerialize() throws Exception {
-		Serializer s = new HtmlSerializerBuilder().sq().lookForLabelParameters(true).uriAnchorText(AnchorText.LAST_TOKEN).uriContext(input.context).uriResolution(input.resolution).uriRelativity(input.relativity).build();
+		Serializer s = HtmlSerializer.create().sq().lookForLabelParameters(true).uriAnchorText(AnchorText.LAST_TOKEN).uriContext(input.context).uriResolution(input.resolution).uriRelativity(input.relativity).build();
 		testSerialize(s, results.html);
 	}
 
 	@Test
 	public void c2_testHtmlParse() throws Exception {
-		Serializer s = new HtmlSerializerBuilder().sq().lookForLabelParameters(true).uriAnchorText(AnchorText.LAST_TOKEN).uriContext(input.context).uriResolution(input.resolution).uriRelativity(input.relativity).build();
+		Serializer s = HtmlSerializer.create().sq().lookForLabelParameters(true).uriAnchorText(AnchorText.LAST_TOKEN).uriContext(input.context).uriResolution(input.resolution).uriRelativity(input.relativity).build();
 		testParse(s, HtmlParser.DEFAULT);
 	}
 
 	@Test
 	public void d1_testUonSerialize() throws Exception {
-		Serializer s = new UonSerializerBuilder().uriContext(input.context).uriResolution(input.resolution).uriRelativity(input.relativity).build();
+		Serializer s = UonSerializer.create().uriContext(input.context).uriResolution(input.resolution).uriRelativity(input.relativity).build();
 		testSerialize(s, results.uon);
 	}
 
 	@Test
 	public void d2_testUonParse() throws Exception {
-		Serializer s = new UonSerializerBuilder().uriContext(input.context).uriResolution(input.resolution).uriRelativity(input.relativity).build();
+		Serializer s = UonSerializer.create().uriContext(input.context).uriResolution(input.resolution).uriRelativity(input.relativity).build();
 		testParse(s, UonParser.DEFAULT);
 	}
 
 	@Test
 	public void e1_testUrlEncodingSerialize() throws Exception {
-		Serializer s = new UrlEncodingSerializerBuilder().uriContext(input.context).uriResolution(input.resolution).uriRelativity(input.relativity).build();
+		Serializer s = UrlEncodingSerializer.create().uriContext(input.context).uriResolution(input.resolution).uriRelativity(input.relativity).build();
 		testSerialize(s, results.urlEncoding);
 	}
 
 	@Test
 	public void e2_testUrlEncodingParse() throws Exception {
-		Serializer s = new UrlEncodingSerializerBuilder().uriContext(input.context).uriResolution(input.resolution).uriRelativity(input.relativity).build();
+		Serializer s = UrlEncodingSerializer.create().uriContext(input.context).uriResolution(input.resolution).uriRelativity(input.relativity).build();
 		testParse(s, UrlEncodingParser.DEFAULT);
 	}
 
 	@Test
 	public void f1_testMsgPackSerialize() throws Exception {
-		Serializer s = new MsgPackSerializerBuilder().uriContext(input.context).uriResolution(input.resolution).uriRelativity(input.relativity).build();
+		Serializer s = MsgPackSerializer.create().uriContext(input.context).uriResolution(input.resolution).uriRelativity(input.relativity).build();
 		testSerialize(s, results.msgPack);
 	}
 
 	@Test
 	public void f2_testMsgPackParse() throws Exception {
-		Serializer s = new MsgPackSerializerBuilder().uriContext(input.context).uriResolution(input.resolution).uriRelativity(input.relativity).build();
+		Serializer s = MsgPackSerializer.create().uriContext(input.context).uriResolution(input.resolution).uriRelativity(input.relativity).build();
 		testParse(s, MsgPackParser.DEFAULT);
 	}
 
 	@Test
 	public void g1_testRdfXmlSerialize() throws Exception {
-		Serializer s = new RdfSerializerBuilder().language(Constants.LANG_RDF_XML_ABBREV).uriContext(input.context).uriResolution(input.resolution).uriRelativity(input.relativity).build();
+		Serializer s = RdfSerializer.create().language(Constants.LANG_RDF_XML_ABBREV).uriContext(input.context).uriResolution(input.resolution).uriRelativity(input.relativity).build();
 		testSerialize(s, results.rdfXml);
 	}
 }

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/transforms/CalendarSwapTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/transforms/CalendarSwapTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/transforms/CalendarSwapTest.java
index e29a286..6be4e10 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/transforms/CalendarSwapTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/transforms/CalendarSwapTest.java
@@ -52,7 +52,7 @@ public class CalendarSwapTest {
 	}
 
 	private RdfSerializer getRdfSerializer() {
-		return new RdfSerializerBuilder()
+		return RdfSerializer.create()
 			.sq()
 			.useWhitespace(false)
 			.property(RdfCommon.RDF_rdfxml_allowBadUris, true)
@@ -186,7 +186,7 @@ public class CalendarSwapTest {
 	//====================================================================================================
 	@Test
 	public void testBeanProperyFilterHtml() throws Exception {
-		WriterSerializer s = new HtmlSerializerBuilder().sq().addKeyValueTableHeaders(true).build();
+		WriterSerializer s = HtmlSerializer.create().sq().addKeyValueTableHeaders(true).build();
 		ReaderParser p = HtmlParser.DEFAULT;
 
 		Calendar c = testDate;

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/transforms/DateSwapTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/transforms/DateSwapTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/transforms/DateSwapTest.java
index f05c5ae..1293c7d 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/transforms/DateSwapTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/transforms/DateSwapTest.java
@@ -37,11 +37,11 @@ public class DateSwapTest {
 	public void testBeanWithDate() throws Exception {
 		A testBeanA = new A().init();
 
-		final String jsonData = new JsonSerializerBuilder()
+		final String jsonData = JsonSerializer.create()
 			.pojoSwaps(DateSwap.ISO8601DT.class)
 			.build()
 			.serialize(testBeanA);
-		final ObjectMap data = new JsonParserBuilder()
+		final ObjectMap data = JsonParser.create()
 			.pojoSwaps(DateSwap.ISO8601DT.class)
 			.build()
 			.parse(jsonData, ObjectMap.class);

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/transforms/EnumerationSwapTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/transforms/EnumerationSwapTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/transforms/EnumerationSwapTest.java
index 207c5f1..ad6fa09 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/transforms/EnumerationSwapTest.java
+++ b/juneau-core/juneau-core-test/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 JsonSerializerBuilder().simple().pojoSwaps(EnumerationSwap.class).build();
+		WriterSerializer s = JsonSerializer.create().simple().pojoSwaps(EnumerationSwap.class).build();
 		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/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/transforms/IteratorSwapTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/transforms/IteratorSwapTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/transforms/IteratorSwapTest.java
index 68db0b6..b86781e 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/transforms/IteratorSwapTest.java
+++ b/juneau-core/juneau-core-test/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 JsonSerializerBuilder().simple().pojoSwaps(IteratorSwap.class).build();
+		WriterSerializer s = JsonSerializer.create().simple().pojoSwaps(IteratorSwap.class).build();
 
 		// Iterators
 		List<String> l = new ArrayList<String>(Arrays.asList(new String[]{"foo","bar","baz"}));

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/transforms/PojoSwapTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/transforms/PojoSwapTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/transforms/PojoSwapTest.java
index df9b756..646a0c1 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/transforms/PojoSwapTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/transforms/PojoSwapTest.java
@@ -66,7 +66,7 @@ public class PojoSwapTest {
 	@Test
 	public void doTest() throws Exception {
 		
-		SerializerGroup g = new SerializerGroupBuilder()
+		SerializerGroup g = SerializerGroup.create()
 			.append(JsonSerializer.class, XmlSerializer.class, HtmlSerializer.class)
 			.sq()
 			.pojoSwaps(MyJsonSwap.class, MyXmlSwap.class, MyOtherSwap.class)

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/transforms/ReaderFilterTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/transforms/ReaderFilterTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/transforms/ReaderFilterTest.java
index 3e0999d..046f863 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/transforms/ReaderFilterTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/transforms/ReaderFilterTest.java
@@ -28,7 +28,7 @@ public class ReaderFilterTest {
 	//====================================================================================================
 	@Test
 	public void test() throws Exception {
-		JsonSerializerBuilder s = new JsonSerializerBuilder().simple().pojoSwaps(ReaderSwap.Json.class);
+		JsonSerializerBuilder s = JsonSerializer.create().simple().pojoSwaps(ReaderSwap.Json.class);
 
 		Reader r;
 		Map<String,Object> m;

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/CommonParser_UonTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/CommonParser_UonTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/CommonParser_UonTest.java
index fd869ab..a677b24 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/CommonParser_UonTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/CommonParser_UonTest.java
@@ -25,7 +25,7 @@ import org.junit.*;
 @SuppressWarnings({"rawtypes","serial","javadoc"})
 public class CommonParser_UonTest {
 
-	ReaderParser p = new UonParserBuilder().beanDictionary(A1.class).build();
+	ReaderParser p = UonParser.create().beanDictionary(A1.class).build();
 	ReaderParser pe = UonParser.DEFAULT_DECODING;
 
 	//====================================================================================================
@@ -70,7 +70,7 @@ public class CommonParser_UonTest {
 		tl.add(new A3("name1","value1"));
 		b.list = tl;
 
-		in = new UonSerializerBuilder().addBeanTypeProperties(true).build().serialize(b);
+		in = UonSerializer.create().addBeanTypeProperties(true).build().serialize(b);
 		b = (A1)p.parse(in, Object.class);
 		assertEquals("value1", b.list.get(1).value);
 
@@ -101,7 +101,7 @@ public class CommonParser_UonTest {
 	//====================================================================================================
 	@Test
 	public void testCorrectHandlingOfUnknownProperties() throws Exception {
-		ReaderParser p = new UonParserBuilder().ignoreUnknownBeanProperties(true).build();
+		ReaderParser p = UonParser.create().ignoreUnknownBeanProperties(true).build();
 		B t;
 
 		String in =  "(a=1,unknown=3,b=2)";
@@ -150,7 +150,7 @@ public class CommonParser_UonTest {
 	//====================================================================================================
 	@Test
 	public void testParserListeners() throws Exception {
-		UonParser p = new UonParserBuilder().ignoreUnknownBeanProperties(true).listener(MyParserListener.class).build();
+		UonParser p = UonParser.create().ignoreUnknownBeanProperties(true).listener(MyParserListener.class).build();
 
 		String in = "(a=1,unknownProperty=foo,b=2)";
 		p.parse(in, B.class);

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/CommonParser_UrlEncodingTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/CommonParser_UrlEncodingTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/CommonParser_UrlEncodingTest.java
index e3ba9c4..8e94198 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/CommonParser_UrlEncodingTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/CommonParser_UrlEncodingTest.java
@@ -27,7 +27,7 @@ import org.junit.*;
 @SuppressWarnings({"rawtypes","serial","javadoc"})
 public class CommonParser_UrlEncodingTest {
 
-	ReaderParser p = new UrlEncodingParserBuilder().beanDictionary(A1.class).build();
+	ReaderParser p = UrlEncodingParser.create().beanDictionary(A1.class).build();
 
 	//====================================================================================================
 	// testFromSerializer
@@ -72,7 +72,7 @@ public class CommonParser_UrlEncodingTest {
 		tl.add(new A3("name1","value1"));
 		b.list = tl;
 
-		in = new UrlEncodingSerializerBuilder().addBeanTypeProperties(true).build().serialize(b);
+		in = UrlEncodingSerializer.create().addBeanTypeProperties(true).build().serialize(b);
 		b = (A1)p.parse(in, Object.class);
 		assertEquals("value1", b.list.get(1).value);
 
@@ -103,7 +103,7 @@ public class CommonParser_UrlEncodingTest {
 	//====================================================================================================
 	@Test
 	public void testCorrectHandlingOfUnknownProperties() throws Exception {
-		ReaderParser p = new UrlEncodingParserBuilder().ignoreUnknownBeanProperties(true).build();
+		ReaderParser p = UrlEncodingParser.create().ignoreUnknownBeanProperties(true).build();
 		B t;
 
 		String in =  "a=1&unknown=3&b=2";
@@ -152,7 +152,7 @@ public class CommonParser_UrlEncodingTest {
 	//====================================================================================================
 	@Test
 	public void testParserListeners() throws Exception {
-		UonParser p = new UrlEncodingParserBuilder().ignoreUnknownBeanProperties(true).listener(MyParserListener.class).build();
+		UonParser p = UrlEncodingParser.create().ignoreUnknownBeanProperties(true).listener(MyParserListener.class).build();
 
 		String in = "a=1&unknownProperty=foo&b=2";
 		p.parse(in, B.class);

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/Common_UonTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/Common_UonTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/Common_UonTest.java
index 3bc6fa4..47162e8 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/Common_UonTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/Common_UonTest.java
@@ -35,7 +35,7 @@ public class Common_UonTest {
 	//====================================================================================================
 	@Test
 	public void testTrimNullsFromBeans() throws Exception {
-		UonSerializerBuilder s = new UonSerializerBuilder().encoding();
+		UonSerializerBuilder s = UonSerializer.create().encoding();
 		A t1 = A.create(), t2;
 
 		s.trimNullProperties(false);
@@ -66,7 +66,7 @@ public class Common_UonTest {
 	//====================================================================================================
 	@Test
 	public void testTrimEmptyMaps() throws Exception {
-		UonSerializerBuilder s = new UonSerializerBuilder().encoding();
+		UonSerializerBuilder s = UonSerializer.create().encoding();
 		B t1 = B.create(), t2;
 		String r;
 
@@ -99,7 +99,7 @@ public class Common_UonTest {
 	//====================================================================================================
 	@Test
 	public void testTrimEmptyLists() throws Exception {
-		UonSerializerBuilder s = new UonSerializerBuilder().encoding();
+		UonSerializerBuilder s = UonSerializer.create().encoding();
 		C t1 = C.create(), t2;
 		String r;
 
@@ -132,7 +132,7 @@ public class Common_UonTest {
 	//====================================================================================================
 	@Test
 	public void testTrimEmptyArrays() throws Exception {
-		UonSerializerBuilder s = new UonSerializerBuilder().encoding();
+		UonSerializerBuilder s = UonSerializer.create().encoding();
 		D t1 = D.create(), t2;
 		String r;
 
@@ -234,7 +234,7 @@ public class Common_UonTest {
 	//====================================================================================================
 	@Test
 	public void testRecursion() throws Exception {
-		UonSerializerBuilder s = new UonSerializerBuilder();
+		UonSerializerBuilder s = UonSerializer.create();
 
 		R1 r1 = new R1();
 		R2 r2 = new R2();

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/Common_UrlEncodingTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/Common_UrlEncodingTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/Common_UrlEncodingTest.java
index e4f2d1b..317920d 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/Common_UrlEncodingTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/Common_UrlEncodingTest.java
@@ -33,7 +33,7 @@ public class Common_UrlEncodingTest {
 	//====================================================================================================
 	@Test
 	public void testTrimNullsFromBeans() throws Exception {
-		UrlEncodingSerializerBuilder s = new UrlEncodingSerializerBuilder();
+		UrlEncodingSerializerBuilder s = UrlEncodingSerializer.create();
 		A t1 = A.create(), t2;
 
 		s.trimNullProperties(false);
@@ -64,7 +64,7 @@ public class Common_UrlEncodingTest {
 	//====================================================================================================
 	@Test
 	public void testTrimEmptyMaps() throws Exception {
-		UrlEncodingSerializerBuilder s = new UrlEncodingSerializerBuilder();
+		UrlEncodingSerializerBuilder s = UrlEncodingSerializer.create();
 		B t1 = B.create(), t2;
 		String r;
 
@@ -97,7 +97,7 @@ public class Common_UrlEncodingTest {
 	//====================================================================================================
 	@Test
 	public void testTrimEmptyLists() throws Exception {
-		UrlEncodingSerializerBuilder s = new UrlEncodingSerializerBuilder();
+		UrlEncodingSerializerBuilder s = UrlEncodingSerializer.create();
 		C t1 = C.create(), t2;
 		String r;
 
@@ -130,7 +130,7 @@ public class Common_UrlEncodingTest {
 	//====================================================================================================
 	@Test
 	public void testTrimEmptyArrays() throws Exception {
-		UrlEncodingSerializerBuilder s = new UrlEncodingSerializerBuilder();
+		UrlEncodingSerializerBuilder s = UrlEncodingSerializer.create();
 		D t1 = D.create(), t2;
 		String r;
 
@@ -235,7 +235,7 @@ public class Common_UrlEncodingTest {
 	//====================================================================================================
 	@Test
 	public void testRecursion() throws Exception {
-		UrlEncodingSerializerBuilder s = new UrlEncodingSerializerBuilder();
+		UrlEncodingSerializerBuilder s = UrlEncodingSerializer.create();
 
 		R1 r1 = new R1();
 		R2 r2 = new R2();

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UrlEncodingParserTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UrlEncodingParserTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UrlEncodingParserTest.java
index 141ea07..6460011 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UrlEncodingParserTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UrlEncodingParserTest.java
@@ -845,7 +845,7 @@ public class UrlEncodingParserTest {
 		UrlEncodingParser p;
 		String in;
 
-		p = new UrlEncodingParserBuilder().expandedParams(true).build();
+		p = UrlEncodingParser.create().expandedParams(true).build();
 		in = ""
 			+ "f01=a&f01=b"
 			+ "&f02=c&f02=d"

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UrlEncodingSerializerTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UrlEncodingSerializerTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UrlEncodingSerializerTest.java
index 8f1ed5a..4611082 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UrlEncodingSerializerTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UrlEncodingSerializerTest.java
@@ -346,7 +346,7 @@ public class UrlEncodingSerializerTest {
 			+ "&f20=@(@((a=a,b=1,c=true)),@((a=a,b=1,c=true)))";
 		assertEquals(e, r);
 
-		s = new UrlEncodingSerializerBuilder().expandedParams(true).build();
+		s = UrlEncodingSerializer.create().expandedParams(true).build();
 		r = s.serialize(t);
 		e = ""
 			+ "f01=a&f01=b"
@@ -407,7 +407,7 @@ public class UrlEncodingSerializerTest {
 			+ "&f20=@((a=a,b=1,c=true))&f20=@((a=a,b=1,c=true))";
 		assertEquals(e, r);
 
-		s = new UrlEncodingSerializerBuilder().expandedParams(true).build();
+		s = UrlEncodingSerializer.create().expandedParams(true).build();
 		r = s.serialize(t);
 		e = ""
 			+ "f01=a&f01=b"

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/utils/PojoQueryTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/utils/PojoQueryTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/utils/PojoQueryTest.java
index bb8e11b..3cd3d2e 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/utils/PojoQueryTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/utils/PojoQueryTest.java
@@ -75,7 +75,7 @@ public class PojoQueryTest {
 	@Test
 	public void testFilterCollectionDateSearchOneLevel() throws Exception {
 		BeanSession session = BeanContext.DEFAULT.createSession();
-		WriterSerializer s = new JsonSerializerBuilder().simple().pojoSwaps(CalendarSwap.DateTimeSimple.class).build();
+		WriterSerializer s = JsonSerializer.create().simple().pojoSwaps(CalendarSwap.DateTimeSimple.class).build();
 		B[] in;
 		PojoQuery q;
 		SearchArgs sa;
@@ -360,7 +360,7 @@ public class PojoQueryTest {
 	@Test
 	public void testSorting() throws Exception {
 		BeanSession session = BeanContext.DEFAULT.createSession();
-		WriterSerializer s = new JsonSerializerBuilder().simple().pojoSwaps(CalendarSwap.DateTimeSimple.class).build();
+		WriterSerializer s = JsonSerializer.create().simple().pojoSwaps(CalendarSwap.DateTimeSimple.class).build();
 		SearchArgs sa;
 		List results;
 

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/utils/PojoRestTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/utils/PojoRestTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/utils/PojoRestTest.java
index edb6403..a53c9bd 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/utils/PojoRestTest.java
+++ b/juneau-core/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 = new JsonSerializerBuilder().simple().addBeanTypeProperties(false).build();
+		JsonSerializer serializer = JsonSerializer.create().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.
@@ -94,7 +94,7 @@ public class PojoRestTest {
 		assertEquals(expectedValue, s);
 
 		// Parse it back to Java objects.
-		p = (Person)new JsonParserBuilder().beanDictionary(Person.class).build().parse(s, Object.class);
+		p = (Person)JsonParser.create().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 = new JsonSerializerBuilder().simple().addBeanTypeProperties(false).build();
+		serializer = JsonSerializer.create().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/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/utils/StringUtilsTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/utils/StringUtilsTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/utils/StringUtilsTest.java
index 7143b97..5b37c1c 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/utils/StringUtilsTest.java
+++ b/juneau-core/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 JsonSerializerBuilder().simple().pojoSwaps(DateSwap.ISO8601DTPZ.class).timeZone(TimeZone.getTimeZone("GMT")).build();
+		WriterSerializer s = JsonSerializer.create().simple().pojoSwaps(DateSwap.ISO8601DTPZ.class).timeZone(TimeZone.getTimeZone("GMT")).build();
 
 		assertNull(parseISO8601Date(null));
 		assertNull(parseISO8601Date(""));

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/xml/CommonParserTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/xml/CommonParserTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/xml/CommonParserTest.java
index a01dd3f..a9c838f 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/xml/CommonParserTest.java
+++ b/juneau-core/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 XmlParserBuilder().ignoreUnknownBeanProperties(true).build();
+		ReaderParser p = XmlParser.create().ignoreUnknownBeanProperties(true).build();
 		B t;
 
 		String in =  "<object><a>1</a><unknown>foo</unknown><b>2</b></object>";
@@ -158,7 +158,7 @@ public class CommonParserTest {
 	//====================================================================================================
 	@Test
 	public void testParserListeners() throws Exception {
-		XmlParser p = new XmlParserBuilder().ignoreUnknownBeanProperties(true).listener(MyParserListener.class).build();
+		XmlParser p = XmlParser.create().ignoreUnknownBeanProperties(true).listener(MyParserListener.class).build();
 
 		String in = "<object><a _type='number'>1</a><unknownProperty _type='string'>foo</unknownProperty><b _type='number'>2</b></object>";
 		p.parse(in, B.class);

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/xml/CommonTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/xml/CommonTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/xml/CommonTest.java
index 3e8563f..0081998 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/xml/CommonTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/xml/CommonTest.java
@@ -35,7 +35,7 @@ public class CommonTest {
 	//====================================================================================================
 	@Test
 	public void testTrimNullsFromBeans() throws Exception {
-		XmlSerializerBuilder s = new XmlSerializerBuilder().sq();
+		XmlSerializerBuilder s = XmlSerializer.create().sq();
 		XmlParser p = XmlParser.DEFAULT;
 		A t1 = A.create(), t2;
 
@@ -67,7 +67,7 @@ public class CommonTest {
 	//====================================================================================================
 	@Test
 	public void testTrimEmptyMaps() throws Exception {
-		XmlSerializerBuilder s = new XmlSerializerBuilder().sq();
+		XmlSerializerBuilder s = XmlSerializer.create().sq();
 		XmlParser p = XmlParser.DEFAULT;
 		B t1 = B.create(), t2;
 		String r;
@@ -101,7 +101,7 @@ public class CommonTest {
 	//====================================================================================================
 	@Test
 	public void testTrimEmptyLists() throws Exception {
-		XmlSerializerBuilder s = new XmlSerializerBuilder().sq();
+		XmlSerializerBuilder s = XmlSerializer.create().sq();
 		XmlParser p = XmlParser.DEFAULT;
 		C t1 = C.create(), t2;
 		String r;
@@ -135,7 +135,7 @@ public class CommonTest {
 	//====================================================================================================
 	@Test
 	public void testTrimEmptyArrays() throws Exception {
-		XmlSerializerBuilder s = new XmlSerializerBuilder().sq();
+		XmlSerializerBuilder s = XmlSerializer.create().sq();
 		XmlParser p = XmlParser.DEFAULT;
 		D t1 = D.create(), t2;
 		String r;
@@ -251,7 +251,7 @@ public class CommonTest {
 	//====================================================================================================
 	@Test
 	public void testRecursion() throws Exception {
-		XmlSerializerBuilder s = new XmlSerializerBuilder().enableNamespaces(false);
+		XmlSerializerBuilder s = XmlSerializer.create().enableNamespaces(false);
 
 		R1 r1 = new R1();
 		R2 r2 = new R2();

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/xml/CommonXmlTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/xml/CommonXmlTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/xml/CommonXmlTest.java
index 031a879..5fd315c 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/xml/CommonXmlTest.java
+++ b/juneau-core/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 XmlSerializerBuilder().sq().addNamespaceUrisToRoot(false).build();
+		XmlSerializer s = XmlSerializer.create().sq().addNamespaceUrisToRoot(false).build();
 
 		B t = new B("http://foo");
 		String xml = s.serialize(t);

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlContentTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlContentTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlContentTest.java
index c6210d6..7f832db 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlContentTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlContentTest.java
@@ -35,7 +35,7 @@ public class XmlContentTest {
 	public void testContentFormat() throws Exception {
 		A t = A.newInstance(), t2;
 		XmlSerializer s1 = XmlSerializer.DEFAULT_SQ,
-			s2 = new XmlSerializerBuilder().sq().ws().enableNamespaces(false).build();
+			s2 = XmlSerializer.create().sq().ws().enableNamespaces(false).build();
 		XmlParser p = XmlParser.DEFAULT;
 		WriterSerializerSession session;
 		String r;
@@ -143,7 +143,7 @@ public class XmlContentTest {
 	public void testXmlMixed() throws Exception {
 		B t = B.newInstance(), t2;
 		XmlSerializer s1 = XmlSerializer.DEFAULT_SQ,
-			s2 = new XmlSerializerBuilder().sq().ws().enableNamespaces(false).build();
+			s2 = XmlSerializer.create().sq().ws().enableNamespaces(false).build();
 		XmlParser p = XmlParser.DEFAULT;
 		WriterSerializerSession session;
 		String r;

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlParserTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlParserTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlParserTest.java
index 9e1f571..51ddcab 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlParserTest.java
+++ b/juneau-core/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 XmlParserBuilder().preserveRootElement(true).build();
+		ReaderParser p = XmlParser.create().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/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlTest.java
index ffcca5a..43aacdd 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/xml/XmlTest.java
@@ -78,11 +78,11 @@ public class XmlTest {
 			+"</object>\n";
 
 		ObjectMap m = (ObjectMap) XmlParser.DEFAULT.parse(xml1, Object.class);
-		String json2 = new JsonSerializerBuilder().simple().ws().quoteChar('"').trimNullProperties(false).build().serialize(m);
+		String json2 = JsonSerializer.create().simple().ws().quoteChar('"').trimNullProperties(false).build().serialize(m);
 		assertEquals(json1, json2);
 
 		m = (ObjectMap) JsonParser.DEFAULT.parse(json1, Object.class);
-		String xml2 = new XmlSerializerBuilder().sq().ws()
+		String xml2 = XmlSerializer.create().sq().ws()
 			.trimNullProperties(false)
 			.build()
 			.serialize(m);
@@ -134,7 +134,7 @@ public class XmlTest {
 			+"</object>\n";
 
 		ObjectMap m = (ObjectMap) JsonParser.DEFAULT.parse(json1, Object.class);
-		String r = new XmlSerializerBuilder().ns().sq().ws()
+		String r = XmlSerializer.create().ns().sq().ws()
 			.addNamespaceUrisToRoot(true)
 			.defaultNamespace("http://www.apache.org")
 			.trimNullProperties(false)
@@ -353,7 +353,7 @@ public class XmlTest {
 	//====================================================================================================
 	@Test
 	public void testXmlFormatAttrWithNs() throws Exception {
-		XmlSerializerBuilder s = new XmlSerializerBuilder().sq();
+		XmlSerializerBuilder s = XmlSerializer.create().sq();
 		XmlParser p = XmlParser.DEFAULT;
 		M t = new M();
 		String r = null;
@@ -521,7 +521,7 @@ public class XmlTest {
 	//====================================================================================================
 	@Test
 	public void testNsOnClass() throws Exception {
-		XmlSerializerBuilder s = new XmlSerializerBuilder().sq().autoDetectNamespaces(false);
+		XmlSerializerBuilder s = XmlSerializer.create().sq().autoDetectNamespaces(false);
 		XmlParser p = XmlParser.DEFAULT;
 
 		T1 t = new T1();
@@ -551,7 +551,7 @@ public class XmlTest {
 		validateXml(t, s.build());
 
 		// Auto-detect namespaces.
-		s = new XmlSerializerBuilder().sq().autoDetectNamespaces(true);
+		s = XmlSerializer.create().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)));
@@ -573,7 +573,7 @@ public class XmlTest {
 	//====================================================================================================
 	@Test
 	public void testNsOnClassWithElementName() throws Exception {
-		XmlSerializerBuilder s = new XmlSerializerBuilder().sq().autoDetectNamespaces(false);
+		XmlSerializerBuilder s = XmlSerializer.create().sq().autoDetectNamespaces(false);
 		XmlParser p = XmlParser.DEFAULT;
 
 		T2 t = new T2();
@@ -603,7 +603,7 @@ public class XmlTest {
 		validateXml(t, s.build());
 
 		// Auto-detect namespaces.
-		s = new XmlSerializerBuilder().sq().autoDetectNamespaces(true);
+		s = XmlSerializer.create().sq().autoDetectNamespaces(true);
 		r = s.build().serialize(t);
 		assertEquals("<T2><f1>1</f1><f2>2</f2><f3>3</f3><f4>4</f4></T2>", r);
 
@@ -624,7 +624,7 @@ public class XmlTest {
 	//====================================================================================================
 	@Test
 	public void testNsOnPackageNoNsOnClass() throws Exception {
-		XmlSerializerBuilder s = new XmlSerializerBuilder().sq();
+		XmlSerializerBuilder s = XmlSerializer.create().sq();
 		XmlParser p = XmlParser.DEFAULT;
 
 		T3 t = new T3();
@@ -656,7 +656,7 @@ public class XmlTest {
 		validateXml(t, s.build());
 
 		// Auto-detect namespaces.
-		s = new XmlSerializerBuilder().sq().autoDetectNamespaces(true);
+		s = XmlSerializer.create().sq().autoDetectNamespaces(true);
 		r = s.build().serialize(t);
 		assertEquals("<object><f1>1</f1><f2>2</f2><f3>3</f3><f4>4</f4></object>", r);
 
@@ -676,7 +676,7 @@ public class XmlTest {
 	//====================================================================================================
 	@Test
 	public void testNsOnPackageNoNsOnClassElementNameOnClass() throws Exception {
-		XmlSerializerBuilder s = new XmlSerializerBuilder().sq().autoDetectNamespaces(false);
+		XmlSerializerBuilder s = XmlSerializer.create().sq().autoDetectNamespaces(false);
 		XmlParser p = XmlParser.DEFAULT;
 
 		T4 t = new T4();
@@ -707,7 +707,7 @@ public class XmlTest {
 		validateXml(t, s.build());
 
 		// Auto-detect namespaces.
-		s = new XmlSerializerBuilder().sq().autoDetectNamespaces(true);
+		s = XmlSerializer.create().sq().autoDetectNamespaces(true);
 		r = s.build().serialize(t);
 		assertEquals("<T4><f1>1</f1><f2>2</f2><f3>3</f3><f4>4</f4></T4>", r);
 
@@ -727,7 +727,7 @@ public class XmlTest {
 	//====================================================================================================
 	@Test
 	public void testNsOnPackageNsOnClassElementNameOnClass() throws Exception {
-		XmlSerializerBuilder s = new XmlSerializerBuilder().sq();
+		XmlSerializerBuilder s = XmlSerializer.create().sq();
 		XmlParser p = XmlParser.DEFAULT;
 
 		T5 t = new T5();
@@ -758,7 +758,7 @@ public class XmlTest {
 		validateXml(t, s.build());
 
 		// Auto-detect namespaces.
-		s = new XmlSerializerBuilder().sq().autoDetectNamespaces(true);
+		s = XmlSerializer.create().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.build());
@@ -780,7 +780,7 @@ public class XmlTest {
 	//====================================================================================================
 	@Test
 	public void testNsOnPackageNsOnClassNoElementNameOnClass() throws Exception {
-		XmlSerializerBuilder s = new XmlSerializerBuilder().sq().autoDetectNamespaces(false);
+		XmlSerializerBuilder s = XmlSerializer.create().sq().autoDetectNamespaces(false);
 		XmlParser p = XmlParser.DEFAULT;
 
 		T6 t = new T6();
@@ -810,7 +810,7 @@ public class XmlTest {
 		validateXml(t, s.build());
 
 		// Auto-detect namespaces.
-		s = new XmlSerializerBuilder().sq().autoDetectNamespaces(true);
+		s = XmlSerializer.create().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.build());
@@ -832,7 +832,7 @@ public class XmlTest {
 	//====================================================================================================
 	@Test
 	public void testComboOfNsAndOverriddenBeanPropertyNames() throws Exception {
-		XmlSerializerBuilder s = new XmlSerializerBuilder().sq().autoDetectNamespaces(false);
+		XmlSerializerBuilder s = XmlSerializer.create().sq().autoDetectNamespaces(false);
 		XmlParser p = XmlParser.DEFAULT;
 
 		T7 t = new T7();
@@ -862,7 +862,7 @@ public class XmlTest {
 		assertTrue(t.equals(p.parse(r, T7.class)));
 
 		// Auto-detect namespaces.
-		s = new XmlSerializerBuilder().sq().autoDetectNamespaces(true);
+		s = XmlSerializer.create().sq().autoDetectNamespaces(true);
 		r = s.build().serialize(t);
 		assertEquals("<object><g1>1</g1><g2>2</g2><g3>3</g3><g4>4</g4></object>", r);
 
@@ -882,7 +882,7 @@ public class XmlTest {
 	//====================================================================================================
 	@Test
 	public void testXmlNsAnnotation() throws Exception {
-		XmlSerializerBuilder s = new XmlSerializerBuilder().sq().autoDetectNamespaces(false);
+		XmlSerializerBuilder s = XmlSerializer.create().sq().autoDetectNamespaces(false);
 		XmlParser p = XmlParser.DEFAULT;
 
 		T8 t = new T8();
@@ -910,7 +910,7 @@ public class XmlTest {
 		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 XmlSerializerBuilder().sq().autoDetectNamespaces(true);
+		s = XmlSerializer.create().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)));
@@ -933,7 +933,7 @@ public class XmlTest {
 	//====================================================================================================
 	@Test
 	public void testXmlNsOnPackageNsUriInXmlNs() throws Exception {
-		XmlSerializerBuilder s = new XmlSerializerBuilder().sq().autoDetectNamespaces(false);
+		XmlSerializerBuilder s = XmlSerializer.create().sq().autoDetectNamespaces(false);
 		XmlParser p = XmlParser.DEFAULT;
 
 		T9 t = new T9();
@@ -961,7 +961,7 @@ public class XmlTest {
 		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 XmlSerializerBuilder().sq().autoDetectNamespaces(true);
+		s = XmlSerializer.create().sq().autoDetectNamespaces(true);
 		r = s.build().serialize(t);
 		assertEquals("<object><f1>1</f1></object>", r);
 		assertTrue(t.equals(p.parse(r, T9.class)));
@@ -984,7 +984,7 @@ public class XmlTest {
 	//====================================================================================================
 	@Test
 	public void testXmlAttrs() throws Exception {
-		XmlSerializerBuilder s = new XmlSerializerBuilder().sq();
+		XmlSerializerBuilder s = XmlSerializer.create().sq();
 		XmlParser p = XmlParser.DEFAULT;
 		String r;
 

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/yaml/proto/CommonParserTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/yaml/proto/CommonParserTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/yaml/proto/CommonParserTest.java
index 212c06e..77aa953 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/yaml/proto/CommonParserTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/yaml/proto/CommonParserTest.java
@@ -29,7 +29,7 @@ public class CommonParserTest {
 	//====================================================================================================
 	@Test
 	public void testFromSerializer() throws Exception {
-		ReaderParser p = new YamlParserBuilder().beanDictionary(A1.class).build();
+		ReaderParser p = YamlParser.create().beanDictionary(A1.class).build();
 
 		Map m = null;
 		m = (Map)p.parse("{a:1}", Object.class);
@@ -83,7 +83,7 @@ public class CommonParserTest {
 		tl.add(new A3("name0","value0"));
 		tl.add(new A3("name1","value1"));
 		b.list = tl;
-		String json = new YamlSerializerBuilder().addBeanTypeProperties(true).beanDictionary(A1.class).build().serialize(b);
+		String json = YamlSerializer.create().addBeanTypeProperties(true).beanDictionary(A1.class).build().serialize(b);
 		b = (A1)p.parse(json, Object.class);
 		assertEquals("value1", b.list.get(1).value);
 
@@ -114,7 +114,7 @@ public class CommonParserTest {
 	//====================================================================================================
 	@Test
 	public void testCorrectHandlingOfUnknownProperties() throws Exception {
-		ReaderParser p = new YamlParserBuilder().ignoreUnknownBeanProperties(true).build();
+		ReaderParser p = YamlParser.create().ignoreUnknownBeanProperties(true).build();
 		B b;
 
 		String in =  "{a:1,unknown:3,b:2}";
@@ -161,7 +161,7 @@ public class CommonParserTest {
 	//====================================================================================================
 	@Test
 	public void testParserListeners() throws Exception {
-		YamlParser p = new YamlParserBuilder().ignoreUnknownBeanProperties(true).listener(MyParserListener.class).build();
+		YamlParser p = YamlParser.create().ignoreUnknownBeanProperties(true).listener(MyParserListener.class).build();
 
 		String json = "{a:1,unknownProperty:\"/foo\",b:2}";
 		p.parse(json, B.class);

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/yaml/proto/CommonTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/yaml/proto/CommonTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/yaml/proto/CommonTest.java
index a6e6e7b..e7e35b3 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/yaml/proto/CommonTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/yaml/proto/CommonTest.java
@@ -33,7 +33,7 @@ public class CommonTest {
 	//====================================================================================================
 	@Test
 	public void testTrimNullsFromBeans() throws Exception {
-		YamlSerializerBuilder s = new YamlSerializerBuilder().simple();
+		YamlSerializerBuilder s = YamlSerializer.create().simple();
 		YamlParser p = YamlParser.DEFAULT;
 		A t1 = A.create(), t2;
 
@@ -65,7 +65,7 @@ public class CommonTest {
 	//====================================================================================================
 	@Test
 	public void testTrimEmptyMaps() throws Exception {
-		YamlSerializerBuilder s = new YamlSerializerBuilder().simple();
+		YamlSerializerBuilder s = YamlSerializer.create().simple();
 		YamlParser p = YamlParser.DEFAULT;
 		B t1 = B.create(), t2;
 		String r;
@@ -99,7 +99,7 @@ public class CommonTest {
 	//====================================================================================================
 	@Test
 	public void testTrimEmptyLists() throws Exception {
-		YamlSerializerBuilder s = new YamlSerializerBuilder().simple();
+		YamlSerializerBuilder s = YamlSerializer.create().simple();
 		YamlParser p = YamlParser.DEFAULT;
 		C t1 = C.create(), t2;
 		String r;
@@ -133,7 +133,7 @@ public class CommonTest {
 	//====================================================================================================
 	@Test
 	public void testTrimEmptyArrays() throws Exception {
-		YamlSerializerBuilder s = new YamlSerializerBuilder().simple();
+		YamlSerializerBuilder s = YamlSerializer.create().simple();
 		YamlParser p = YamlParser.DEFAULT;
 		D t1 = D.create(), t2;
 		String r;
@@ -240,7 +240,7 @@ public class CommonTest {
 	//====================================================================================================
 	@Test
 	public void testRecursion() throws Exception {
-		YamlSerializerBuilder s = new YamlSerializerBuilder().simple();
+		YamlSerializerBuilder s = YamlSerializer.create().simple();
 
 		R1 r1 = new R1();
 		R2 r2 = new R2();
@@ -293,7 +293,7 @@ public class CommonTest {
 	//====================================================================================================
 	@Test
 	public void testBasicBean() throws Exception {
-		YamlSerializer s = new YamlSerializerBuilder().simple().trimNullProperties(false).sortProperties(true).build();
+		YamlSerializer s = YamlSerializer.create().simple().trimNullProperties(false).sortProperties(true).build();
 
 		J a = new J();
 		a.setF1("J");

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/yaml/proto/YamlTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/yaml/proto/YamlTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/yaml/proto/YamlTest.java
index cf74bf6..6bbac30 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/yaml/proto/YamlTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/yaml/proto/YamlTest.java
@@ -25,8 +25,8 @@ public class YamlTest {
 //		Map<String,Object> m = new LinkedHashMap<String,Object>();
 //		List<Object> l = new LinkedList<Object>();
 //
-//		WriterSerializer s1 = new YamlSerializerBuilder().simple().trimNullProperties(false).build();
-//		WriterSerializer s2 = new YamlSerializerBuilder().simple().trimNullProperties(false).quoteChar('"').build();
+//		WriterSerializer s1 = YamlSerializer.create().simple().trimNullProperties(false).build();
+//		WriterSerializer s2 = YamlSerializer.create().simple().trimNullProperties(false).quoteChar('"').build();
 //		String r;
 //
 //		// Null keys and values
@@ -101,7 +101,7 @@ public class YamlTest {
 //	//====================================================================================================
 //	@Test
 //	public void testBackslashesInStrings() throws Exception {
-//		YamlSerializer s = new YamlSerializerBuilder().simple().trimNullProperties(false).quoteChar('"').build();
+//		YamlSerializer s = YamlSerializer.create().simple().trimNullProperties(false).quoteChar('"').build();
 //		String r, r2;
 //
 //		// [\\]
@@ -200,13 +200,13 @@ public class YamlTest {
 //	//====================================================================================================
 //	@Test
 //	public void testEscapeSolidus() throws Exception {
-//		YamlSerializer s = new YamlSerializerBuilder().escapeSolidus(false).build();
+//		YamlSerializer s = YamlSerializer.create().escapeSolidus(false).build();
 //		String r = s.serialize("foo/bar");
 //		assertEquals("\"foo/bar\"", r);
 //		r = YamlParser.DEFAULT.parse(r, String.class);
 //		assertEquals("foo/bar", r);
 //
-//		s = new YamlSerializerBuilder().escapeSolidus(true).build();
+//		s = YamlSerializer.create().escapeSolidus(true).build();
 //		r = s.serialize("foo/bar");
 //		assertEquals("\"foo\\/bar\"", r);
 //		r = YamlParser.DEFAULT.parse(r, String.class);

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/package.html
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/package.html b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/package.html
index 5cd3f6a..400c441 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/package.html
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/atom/package.html
@@ -134,7 +134,7 @@
 		<h6 class='figure'>Example with no namespaces</h6>
 		<p class='bcode'>
 	<jc>// Create a serializer with readable output, no namespaces yet.</jc>
-	XmlSerializer s = <jk>new</jk> XmlSerializerBuilder().sq().ws().build();
+	XmlSerializer s = XmlSerializer.<jsm>create</jsm>().sq().ws().build();
 
 	<jc>// Serialize to ATOM/XML</jc>
 	String atomXml = s.serialize(feed);
@@ -191,7 +191,7 @@
 		<h6 class='figure'>Example with namespaces</h6>
 		<p class='bcode'>
 	<jc>// Create a serializer with readable output with namespaces.</jc>
-	XmlSerializer s = <jk>new</jk> XmlSerializerBuilder().sq().ws().build();
+	XmlSerializer s = XmlSerializer.<jsm>create</jsm>().sq().ws().build();
 
 	<jc>// Serialize to ATOM/XML</jc>
 	String atomXml = s.serialize(feed);
@@ -252,7 +252,7 @@
 		<h6 class='figure'>Example with namespaces with ATOM as the default namespace</h6>
 		<p class='bcode'>
 	<jc>// Create a serializer with readable output with namespaces.</jc>
-	XmlSerializer s = <jk>new</jk> XmlSerializerBuilder().sq().ws().defaultNamespaceUri(<js>"atom"</js>).build();
+	XmlSerializer s = XmlSerializer.<jsm>create</jsm>().sq().ws().defaultNamespaceUri(<js>"atom"</js>).build();
 
 	<jc>// Serialize to ATOM/XML</jc>
 	String atomXml = s.serialize(feed);
@@ -416,7 +416,7 @@
 			<h6 class='figure'>ATOM/RDF/XML example</h6>
 			<p class='bcode'>
 	<jc>// Get RDF/XML serializer with readable output.</jc>
-	RdfSerializer s = <jk>new</jk> RdfSerializerBuilder()
+	RdfSerializer s = RdfSerializer.<jsm>create</jsm>()
 		.xmlabbrev()
 		.ws()
 		.sq()

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java
index f6e0c0b..c0ac3b7 100644
--- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java
+++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java
@@ -159,6 +159,22 @@ public class RdfParser extends ReaderParser {
 		return new RdfParserBuilder(propertyStore);
 	}
 
+	/**
+	 * Instantiates a new clean-slate {@link RdfParserBuilder} object.
+	 * 
+	 * <p>
+	 * This is equivalent to simply calling <code><jk>new</jk> RdfParserBuilder()</code>.
+	 * 
+	 * <p>
+	 * Note that this method creates a builder initialized to all default settings, whereas {@link #builder()} copies 
+	 * the settings of the object called on.
+	 * 
+	 * @return A new {@link RdfParserBuilder} object.
+	 */
+	public static RdfParserBuilder create() {
+		return new RdfParserBuilder();
+	}
+
 	@Override /* Parser */
 	public ReaderParserSession createSession(ParserSessionArgs args) {
 		return new RdfParserSession(ctx, args);

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
index af3dbd3..98f4b34 100644
--- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
+++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
@@ -263,6 +263,22 @@ public class RdfSerializer extends WriterSerializer {
 		return new RdfSerializerBuilder(propertyStore);
 	}
 
+	/**
+	 * Instantiates a new clean-slate {@link RdfSerializerBuilder} object.
+	 * 
+	 * <p>
+	 * This is equivalent to simply calling <code><jk>new</jk> RdfSerializerBuilder()</code>.
+	 * 
+	 * <p>
+	 * Note that this method creates a builder initialized to all default settings, whereas {@link #builder()} copies 
+	 * the settings of the object called on.
+	 * 
+	 * @return A new {@link RdfSerializerBuilder} object.
+	 */
+	public static RdfSerializerBuilder create() {
+		return new RdfSerializerBuilder();
+	}
+
 	@Override /* Serializer */
 	public WriterSerializerSession createSession(SerializerSessionArgs args) {
 		return new RdfSerializerSession(ctx, args);

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/package.html
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/package.html b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/package.html
index f32362c..a2de3ac 100644
--- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/package.html
+++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/package.html
@@ -241,7 +241,7 @@
 	</p>
 	<p class='bcode'>
 	<jc>// Create a new serializer with readable output.</jc>
-	RdfSerializer s = <jk>new</jk> RdfSerializerBuilder().xmlabbrev()
+	RdfSerializer s = RdfSerializer.<jsm>create</jsm>().xmlabbrev()
 		.property(RdfProperties.<jsf>RDF_rdfxml_tab</jsf>, 3).build();
 
 	<jc>// Create our bean.</jc>
@@ -350,7 +350,7 @@
 		</p>
 		<p class='bcode'>
 	<jc>// Create a new serializer, but manually specify the namespaces.</jc>
-	RdfSerializer s = <jk>new</jk> RdfSerializerBuilder()
+	RdfSerializer s = RdfSerializer.<jsm>create</jsm>()
 		.xmlabbrev()
 		.property(RdfProperties.<jsf>RDF_rdfxml_tab</jsf>, 3)
 		.autoDetectNamespaces(<jk>false</jk>)
@@ -455,7 +455,7 @@
 		</p>
 		<p class='bcode'>
 	<jc>// Create a new serializer with readable output.</jc>
-	RdfSerializer s = <jk>new</jk> RdfSerializerBuilder()
+	RdfSerializer s = RdfSerializer.<jsm>create</jsm>()
 		.xmlabbrev()
 		.property(RdfProperties.<jsf>RDF_rdfxml_tab</jsf>, 3);
 		.relativeUriBase(<js>"http://myhost/sample"</js>);
@@ -586,7 +586,7 @@
 		</p>
 		<p class='bcode'>
 	<jc>// Create a new serializer (revert back to namespace autodetection).</jc>
-	RdfSerializer s = <jk>new</jk> RdfSerializerBuilder().xmlabbrev().property(RdfProperties.<jsf>RDF_rdfxml_tab</jsf>, 3).build();
+	RdfSerializer s = RdfSerializer.<jsm>create</jsm>().xmlabbrev().property(RdfProperties.<jsf>RDF_rdfxml_tab</jsf>, 3).build();
 
 	<jc>// Create our bean.</jc>
 	Person p = <jk>new</jk> Person(1, <js>"John Smith"</js>, <js>"http://sample/addressBook/person/1"</js>, 
@@ -667,7 +667,7 @@
 		</p>
 		<p class='bcode'>
 	<jc>// Create a new serializer.</jc>
-	RdfSerializer s = <jk>new</jk> RdfSerializerBuilder()
+	RdfSerializer s = RdfSerializer.<jsm>create</jsm>()
 		.xmlabbrev()
 		.property(RdfProperties.<jsf>RDF_rdfxml_tab</jsf>, 3),
 		.addRootProperty(<jk>true</jk>)
@@ -723,7 +723,7 @@
 		</p>
 		<p class='bcode'>
 	<jc>// Create a new serializer (revert back to namespace autodetection).</jc>
-	RdfSerializer s = <jk>new</jk> RdfSerializerBuilder()
+	RdfSerializer s = RdfSerializer.<jsm>create</jsm>()
 		.xmlabbrev()
 		.property(RdfProperties.<jsf>RDF_rdfxml_tab</jsf>, 3),
 		.addLiteralTypes(<jk>true</jk>)
@@ -852,7 +852,7 @@
 	</p>
 		<p class='bcode'>
 	<jc>// Create a new serializer with readable output.</jc>
-	RdfSerializer s = <jk>new</jk> RdfSerializerBuilder()
+	RdfSerializer s = RdfSerializer.<jsm>create</jsm>()
 		.xmlabbrev()
 		.property(RdfProperties.<jsf>RDF_rdfxml_tab</jsf>, 3)
 		.addRootProperty(<jk>true</jk>)

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParser.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParser.java
index 4932b68..88258a1 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParser.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvParser.java
@@ -49,6 +49,22 @@ public class CsvParser extends ReaderParser {
 		return new CsvParserBuilder(propertyStore);
 	}
 
+	/**
+	 * Instantiates a new clean-slate {@link CsvParserBuilder} object.
+	 * 
+	 * <p>
+	 * This is equivalent to simply calling <code>CsvParser.create()
+	 * 
+	 * <p>
+	 * Note that this method creates a builder initialized to all default settings, whereas {@link #builder()} copies 
+	 * the settings of the object called on.
+	 * 
+	 * @return A new {@link CsvParserBuilder} object.
+	 */
+	public static CsvParserBuilder create() {
+		return new CsvParserBuilder();
+	}
+
 	@Override /* Parser */
 	public ReaderParserSession createSession(ParserSessionArgs args) {
 		return new CsvParserSession(ctx, args);

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializer.java
index 9f757d6..529a921 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializer.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/CsvSerializer.java
@@ -49,6 +49,22 @@ public final class CsvSerializer extends WriterSerializer {
 		return new CsvSerializerBuilder(propertyStore);
 	}
 
+	/**
+	 * Instantiates a new clean-slate {@link CsvSerializerBuilder} object.
+	 * 
+	 * <p>
+	 * This is equivalent to simply calling <code><jk>new</jk> CsvSerializerBuilder()</code>.
+	 * 
+	 * <p>
+	 * Note that this method creates a builder initialized to all default settings, whereas {@link #builder()} copies 
+	 * the settings of the object called on.
+	 * 
+	 * @return A new {@link CsvSerializerBuilder} object.
+	 */
+	public static CsvSerializerBuilder create() {
+		return new CsvSerializerBuilder();
+	}
+
 	@Override /* Serializer */
 	public WriterSerializerSession createSession(SerializerSessionArgs args) {
 		return new CsvSerializerSession(ctx, args);

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/encoders/EncoderGroup.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/encoders/EncoderGroup.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/encoders/EncoderGroup.java
index 0c8c448..f1ddd88 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/encoders/EncoderGroup.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/encoders/EncoderGroup.java
@@ -63,6 +63,27 @@ public final class EncoderGroup {
 	private final List<Encoder> encoders;
 
 	/**
+	 * Instantiates a new clean-slate {@link EncoderGroupBuilder} object.
+	 * 
+	 * <p>
+	 * This is equivalent to simply calling <code><jk>new</jk> EncoderGroupBuilder()</code>.
+	 * 
+	 * @return A new {@link EncoderGroupBuilder} object.
+	 */
+	public static EncoderGroupBuilder create() {
+		return new EncoderGroupBuilder();
+	}
+
+	/**
+	 * Returns a builder that's a copy of the settings on this encoder group.
+	 * 
+	 * @return A new {@link EncoderGroupBuilder} initialized to this group.
+	 */
+	public EncoderGroupBuilder builder() {
+		return new EncoderGroupBuilder(this);
+	}
+	
+	/**
 	 * Constructor
 	 *
 	 * @param encoders The encoders to add to this group.

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParser.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParser.java
index b316f27..1002a17 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParser.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParser.java
@@ -60,6 +60,22 @@ public class HtmlParser extends XmlParser {
 		return new HtmlParserBuilder(propertyStore);
 	}
 
+	/**
+	 * Instantiates a new clean-slate {@link HtmlParserBuilder} object.
+	 * 
+	 * <p>
+	 * This is equivalent to simply calling <code><jk>new</jk> HtmlParserBuilder()</code>.
+	 * 
+	 * <p>
+	 * Note that this method creates a builder initialized to all default settings, whereas {@link #builder()} copies 
+	 * the settings of the object called on.
+	 * 
+	 * @return A new {@link HtmlParserBuilder} object.
+	 */
+	public static HtmlParserBuilder create() {
+		return new HtmlParserBuilder();
+	}
+
 	@Override /* Parser */
 	public HtmlParserSession createSession(ParserSessionArgs args) {
 		return new HtmlParserSession(ctx, args);

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializer.java
index 1e1425d..15aff31 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializer.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializer.java
@@ -324,6 +324,22 @@ public class HtmlSerializer extends XmlSerializer {
 		return new HtmlSerializerBuilder(propertyStore);
 	}
 
+	/**
+	 * Instantiates a new clean-slate {@link HtmlSerializerBuilder} object.
+	 * 
+	 * <p>
+	 * This is equivalent to simply calling <code><jk>new</jk> HtmlSerializerBuilder()</code>.
+	 * 
+	 * <p>
+	 * Note that this method creates a builder initialized to all default settings, whereas {@link #builder()} copies 
+	 * the settings of the object called on.
+	 * 
+	 * @return A new {@link HtmlSerializerBuilder} object.
+	 */
+	public static HtmlSerializerBuilder create() {
+		return new HtmlSerializerBuilder();
+	}
+
 	@Override /* XmlSerializer */
 	public HtmlSerializer getSchemaSerializer() {
 		if (schemaSerializer == null)

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/JuneauLogger.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/JuneauLogger.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/JuneauLogger.java
index 93db12a..51429a4 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/JuneauLogger.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/JuneauLogger.java
@@ -29,7 +29,7 @@ import org.apache.juneau.transforms.*;
  */
 public class JuneauLogger extends java.util.logging.Logger {
 
-	private static final WriterSerializer serializer = new JsonSerializerBuilder()
+	private static final WriterSerializer serializer = JsonSerializer.create()
 		.pojoSwaps(
 			CalendarSwap.ISO8601DTZ.class,
 			DateSwap.ISO8601DTZ.class,

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoParser.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoParser.java
index 8b5666a..d08d2fc 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoParser.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoParser.java
@@ -51,6 +51,22 @@ public final class JsoParser extends InputStreamParser {
 	public JsoParserBuilder builder() {
 		return new JsoParserBuilder(propertyStore);
 	}
+	
+	/**
+	 * Instantiates a new clean-slate {@link JsoParserBuilder} object.
+	 * 
+	 * <p>
+	 * This is equivalent to simply calling <code><jk>new</jk> JsoParserBuilder()</code>.
+	 * 
+	 * <p>
+	 * Note that this method creates a builder initialized to all default settings, whereas {@link #builder()} copies 
+	 * the settings of the object called on.
+	 * 
+	 * @return A new {@link JsoParserBuilder} object.
+	 */
+	public static JsoParserBuilder create() {
+		return new JsoParserBuilder();
+	}
 
 	@Override /* Parser */
 	public InputStreamParserSession createSession(ParserSessionArgs args) {

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializer.java
index e56c279..aabd641 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializer.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jso/JsoSerializer.java
@@ -58,6 +58,22 @@ public class JsoSerializer extends OutputStreamSerializer {
 		return new JsoSerializerBuilder(propertyStore);
 	}
 
+	/**
+	 * Instantiates a new clean-slate {@link JsoSerializerBuilder} object.
+	 * 
+	 * <p>
+	 * This is equivalent to simply calling <code><jk>new</jk> JsoSerializerBuilder()</code>.
+	 * 
+	 * <p>
+	 * Note that this method creates a builder initialized to all default settings, whereas {@link #builder()} copies 
+	 * the settings of the object called on.
+	 * 
+	 * @return A new {@link JsoSerializerBuilder} object.
+	 */
+	public static JsoSerializerBuilder create() {
+		return new JsoSerializerBuilder();
+	}
+
 	@Override /* Serializer */
 	public OutputStreamSerializerSession createSession(SerializerSessionArgs args) {
 		return new JsoSerializerSession(ctx, args);

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParser.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParser.java
index 98f05c7..760ea06 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParser.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParser.java
@@ -160,6 +160,22 @@ public class JsonParser extends ReaderParser {
 		return new JsonParserBuilder(propertyStore);
 	}
 
+	/**
+	 * Instantiates a new clean-slate {@link JsonParserBuilder} object.
+	 * 
+	 * <p>
+	 * This is equivalent to simply calling <code><jk>new</jk> JsonParserBuilder()</code>.
+	 * 
+	 * <p>
+	 * Note that this method creates a builder initialized to all default settings, whereas {@link #builder()} copies 
+	 * the settings of the object called on.
+	 * 
+	 * @return A new {@link JsonParserBuilder} object.
+	 */
+	public static JsonParserBuilder create() {
+		return new JsonParserBuilder();
+	}
+
 	@Override /* Parser */
 	public ReaderParserSession createSession(ParserSessionArgs args) {
 		return new JsonParserSession(ctx, args);

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializer.java
index ed0141e..9fdec76 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializer.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializer.java
@@ -302,9 +302,25 @@ public class JsonSerializer extends WriterSerializer {
 	public JsonSerializerBuilder builder() {
 		return new JsonSerializerBuilder(propertyStore);
 	}
+	
+	/**
+	 * Instantiates a new clean-slate {@link JsonSerializerBuilder} object.
+	 * 
+	 * <p>
+	 * This is equivalent to simply calling <code><jk>new</jk> JsonSerializerBuilder()</code>.
+	 * 
+	 * @return A new {@link JsonSerializerBuilder} object.
+	 */
+	public static JsonSerializerBuilder create() {
+		return new JsonSerializerBuilder();
+	}
 
 	/**
 	 * Returns the schema serializer based on the settings of this serializer.
+	 * 
+	 * <p>
+	 * Note that this method creates a builder initialized to all default settings, whereas {@link #builder()} copies 
+	 * the settings of the object called on.
 	 *
 	 * @return The schema serializer.
 	 */

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/package.html
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/package.html b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/package.html
index 9e1598a..0c25ece 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/package.html
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/package.html
@@ -295,7 +295,7 @@
 		We could have also created a new serializer with the same settings using the following code:
 	</p>
 	<p class='bcode'>
-	JsonSerializer s = <jk>new</jk> JsonSerializerBuilder().simple().ws().sq().build();
+	JsonSerializer s = JsonSerializer.<jsm>create</jsm>().simple().ws().sq().build();
 	</p>
 	
 	<p>

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParser.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParser.java
index 7aa8793..cf15e8a 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParser.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackParser.java
@@ -53,6 +53,22 @@ public class MsgPackParser extends InputStreamParser {
 		return new MsgPackParserBuilder(propertyStore);
 	}
 
+	/**
+	 * Instantiates a new clean-slate {@link MsgPackParserBuilder} object.
+	 * 
+	 * <p>
+	 * This is equivalent to simply calling <code><jk>new</jk> MsgPackParserBuilder()</code>.
+	 * 
+	 * <p>
+	 * Note that this method creates a builder initialized to all default settings, whereas {@link #builder()} copies 
+	 * the settings of the object called on.
+	 * 
+	 * @return A new {@link MsgPackParserBuilder} object.
+	 */
+	public static MsgPackParserBuilder create() {
+		return new MsgPackParserBuilder();
+	}
+
 	@Override /* Parser */
 	public MsgPackParserSession createSession(ParserSessionArgs args) {
 		return new MsgPackParserSession(ctx, args);

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
index 0c21be9..2404201 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
@@ -86,6 +86,22 @@ public class MsgPackSerializer extends OutputStreamSerializer {
 		return new MsgPackSerializerBuilder(propertyStore);
 	}
 
+	/**
+	 * Instantiates a new clean-slate {@link MsgPackSerializerBuilder} object.
+	 * 
+	 * <p>
+	 * This is equivalent to simply calling <code><jk>new</jk> MsgPackSerializerBuilder()</code>.
+	 * 
+	 * <p>
+	 * Note that this method creates a builder initialized to all default settings, whereas {@link #builder()} copies 
+	 * the settings of the object called on.
+	 * 
+	 * @return A new {@link MsgPackSerializerBuilder} object.
+	 */
+	public static MsgPackSerializerBuilder create() {
+		return new MsgPackSerializerBuilder();
+	}
+	
 	@Override /* Serializer */
 	public OutputStreamSerializerSession createSession(SerializerSessionArgs args) {
 		return new MsgPackSerializerSession(ctx, args);

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroup.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroup.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroup.java
index 775dbbe..ff699e3 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroup.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroup.java
@@ -81,6 +81,27 @@ public final class ParserGroup {
 	private final PropertyStore propertyStore;
 
 	/**
+	 * Instantiates a new clean-slate {@link ParserGroupBuilder} object.
+	 * 
+	 * <p>
+	 * This is equivalent to simply calling <code><jk>new</jk> ParserGroupBuilder()</code>.
+	 * 
+	 * @return A new {@link ParserGroupBuilder} object.
+	 */
+	public static ParserGroupBuilder create() {
+		return new ParserGroupBuilder();
+	}
+	
+	/**
+	 * Returns a builder that's a copy of the settings on this parser group.
+	 * 
+	 * @return A new {@link ParserGroupBuilder} initialized to this group.
+	 */
+	public ParserGroupBuilder builder() {
+		return new ParserGroupBuilder(this);
+	}
+	
+	/**
 	 * Constructor.
 	 *
 	 * @param propertyStore

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextParser.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextParser.java
index 1f34d23..3b0561e 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextParser.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextParser.java
@@ -77,6 +77,22 @@ public class PlainTextParser extends ReaderParser {
 		return new PlainTextParserBuilder(propertyStore);
 	}
 
+	/**
+	 * Instantiates a new clean-slate {@link PlainTextParserBuilder} object.
+	 * 
+	 * <p>
+	 * This is equivalent to simply calling <code><jk>new</jk> PlainTextParserBuilder()</code>.
+	 * 
+	 * <p>
+	 * Note that this method creates a builder initialized to all default settings, whereas {@link #builder()} copies 
+	 * the settings of the object called on.
+	 * 
+	 * @return A new {@link PlainTextParserBuilder} object.
+	 */
+	public static PlainTextParserBuilder create() {
+		return new PlainTextParserBuilder();
+	}
+
 	@Override /* Parser */
 	public ReaderParserSession createSession(ParserSessionArgs args) {
 		return new PlainTextParserSession(args);

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextSerializer.java
index 110623d..55c15cc 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextSerializer.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/PlainTextSerializer.java
@@ -92,6 +92,22 @@ public class PlainTextSerializer extends WriterSerializer {
 		return new PlainTextSerializerBuilder(propertyStore);
 	}
 
+	/**
+	 * Instantiates a new clean-slate {@link PlainTextSerializerBuilder} object.
+	 * 
+	 * <p>
+	 * This is equivalent to simply calling <code><jk>new</jk> PlainTextSerializerBuilder()</code>.
+	 * 
+	 * <p>
+	 * Note that this method creates a builder initialized to all default settings, whereas {@link #builder()} copies 
+	 * the settings of the object called on.
+	 * 
+	 * @return A new {@link PlainTextSerializerBuilder} object.
+	 */
+	public static PlainTextSerializerBuilder create() {
+		return new PlainTextSerializerBuilder();
+	}
+
 	@Override /* Serializer */
 	public WriterSerializerSession createSession(SerializerSessionArgs args) {
 		return new PlainTextSerializerSession(ctx, args);

http://git-wip-us.apache.org/repos/asf/juneau/blob/c0a50388/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroup.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroup.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroup.java
index c8146bc..9b49e8f 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroup.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroup.java
@@ -74,6 +74,27 @@ public final class SerializerGroup {
 	private final BeanContext beanContext;
 
 	/**
+	 * Instantiates a new clean-slate {@link SerializerGroupBuilder} object.
+	 * 
+	 * <p>
+	 * This is equivalent to simply calling <code><jk>new</jk> SerializerGroupBuilder()</code>.
+	 * 
+	 * @return A new {@link SerializerGroupBuilder} object.
+	 */
+	public static SerializerGroupBuilder create() {
+		return new SerializerGroupBuilder();
+	}
+	
+	/**
+	 * Returns a builder that's a copy of the settings on this serializer group.
+	 * 
+	 * @return A new {@link SerializerGroupBuilder} initialized to this group.
+	 */
+	public SerializerGroupBuilder builder() {
+		return new SerializerGroupBuilder(this);
+	}
+
+	/**
 	 * Constructor.
 	 *
 	 * @param propertyStore