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/02/09 17:31:28 UTC

[06/14] incubator-juneau git commit: Add convenience property setters to serializers and parsers.

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/68dffad1/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializer.java b/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializer.java
index d5c2b3f..07121d3 100644
--- a/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializer.java
+++ b/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializer.java
@@ -76,12 +76,12 @@ import org.apache.juneau.transform.*;
  *
  * 	<jc>// Create a custom serializer for lax syntax using single quote characters</jc>
  * 	JsonSerializer serializer = <jk>new</jk> JsonSerializer()
- * 		.setProperty(JsonSerializerContext.<jsf>JSON_simpleMode</jsf>, <jk>true</jk>)
- * 		.setProperty(SerializerContext.<jsf>SERIALIZER_quoteChar</jsf>, <js>'\''</js>);
+ * 		.setSimpleMode(<jk>true</jk>)
+ * 		.setQuoteChar(<js>'\''</js>);
  *
  * 	<jc>// Clone an existing serializer and modify it to use single-quotes</jc>
  * 	JsonSerializer serializer = JsonSerializer.<jsf>DEFAULT</jsf>.clone()
- * 		.setProperty(SerializerContext.<jsf>SERIALIZER_quoteChar</jsf>, <js>'\''</js>);
+ * 		.setQuoteChar(<js>'\''</js>);
  *
  * 	<jc>// Serialize a POJO to JSON</jc>
  * 	String json = serializer.serialize(someObject);
@@ -112,8 +112,8 @@ public class JsonSerializer extends WriterSerializer {
 	public static class Readable extends JsonSerializer {
 		/** Constructor */
 		public Readable() {
-			setProperty(JSON_useWhitespace, true);
-			setProperty(SERIALIZER_useIndentation, true);
+			setUseWhitespace(true);
+			setUseIndentation(true);
 		}
 	}
 
@@ -122,8 +122,8 @@ public class JsonSerializer extends WriterSerializer {
 	public static class Simple extends JsonSerializer {
 		/** Constructor */
 		public Simple() {
-			setProperty(JSON_simpleMode, true);
-			setProperty(SERIALIZER_quoteChar, '\'');
+			setSimpleMode(true);
+			setQuoteChar('\'');
 		}
 	}
 
@@ -131,8 +131,8 @@ public class JsonSerializer extends WriterSerializer {
 	public static class SimpleReadable extends Simple {
 		/** Constructor */
 		public SimpleReadable() {
-			setProperty(JSON_useWhitespace, true);
-			setProperty(SERIALIZER_useIndentation, true);
+			setUseWhitespace(true);
+			setUseIndentation(true);
 		}
 	}
 
@@ -143,7 +143,7 @@ public class JsonSerializer extends WriterSerializer {
 	public static class SimpleReadableSafe extends SimpleReadable {
 		/** Constructor */
 		public SimpleReadableSafe() {
-			setProperty(SERIALIZER_detectRecursions, true);
+			setDetectRecursions(true);
 		}
 	}
 
@@ -324,8 +324,9 @@ public class JsonSerializer extends WriterSerializer {
 		return s;
 	}
 
+
 	//--------------------------------------------------------------------------------
-	// Overridden methods
+	// Entry point methods
 	//--------------------------------------------------------------------------------
 
 	@Override /* Serializer */
@@ -339,49 +340,554 @@ public class JsonSerializer extends WriterSerializer {
 		serializeAnything(s, s.getWriter(), o, null, "root", null);
 	}
 
+
+	//--------------------------------------------------------------------------------
+	// Properties
+	//--------------------------------------------------------------------------------
+
+	/**
+	 * <b>Configuration property:</b>  Simple JSON mode.
+	 * <p>
+	 * <ul>
+	 * 	<li><b>Name:</b> <js>"JsonSerializer.simpleMode"</js>
+	 * 	<li><b>Data type:</b> <code>Boolean</code>
+	 * 	<li><b>Default:</b> <jk>false</jk>
+	 * 	<li><b>Session-overridable:</b> <jk>true</jk>
+	 * </ul>
+	 * <p>
+	 * If <jk>true</jk>, JSON attribute names will only be quoted when necessary.
+	 * Otherwise, they are always quoted.
+	 * <p>
+	 * <h5 class='section'>Notes:</h5>
+	 * <ul>
+	 * 	<li>This is equivalent to calling <code>setProperty(<jsf>JSON_simpleMode</jsf>, value)</code>.
+	 * </ul>
+	 *
+	 * @param value The new value for this property.
+	 * @return This object (for method chaining).
+	 * @throws LockedException If {@link #lock()} was called on this class.
+	 * @see JsonSerializerContext#JSON_simpleMode
+	 */
+	public JsonSerializer setSimpleMode(boolean value) throws LockedException {
+		return setProperty(JSON_simpleMode, value);
+	}
+
+	/**
+	 * <b>Configuration property:</b>  Use whitespace.
+	 * <p>
+	 * <ul>
+	 * 	<li><b>Name:</b> <js>"JsonSerializer.useWhitespace"</js>
+	 * 	<li><b>Data type:</b> <code>Boolean</code>
+	 * 	<li><b>Default:</b> <jk>false</jk>
+	 * 	<li><b>Session-overridable:</b> <jk>true</jk>
+	 * </ul>
+	 * <p>
+	 * If <jk>true</jk>, whitespace is added to the output to improve readability.
+	 * <p>
+	 * <h5 class='section'>Notes:</h5>
+	 * <ul>
+	 * 	<li>This is equivalent to calling <code>setProperty(<jsf>JSON_useWhitespace</jsf>, value)</code>.
+	 * </ul>
+	 *
+	 * @param value The new value for this property.
+	 * @return This object (for method chaining).
+	 * @throws LockedException If {@link #lock()} was called on this class.
+	 * @see JsonSerializerContext#JSON_useWhitespace
+	 */
+	public JsonSerializer setUseWhitespace(boolean value) throws LockedException {
+		return setProperty(JSON_useWhitespace, value);
+	}
+
+	/**
+	 * <b>Configuration property:</b>  Prefix solidus <js>'/'</js> characters with escapes.
+	 * <p>
+	 * <ul>
+	 * 	<li><b>Name:</b> <js>"JsonSerializer.escapeSolidus"</js>
+	 * 	<li><b>Data type:</b> <code>Boolean</code>
+	 * 	<li><b>Default:</b> <jk>false</jk>
+	 * 	<li><b>Session-overridable:</b> <jk>true</jk>
+	 * </ul>
+	 * <p>
+	 * If <jk>true</jk>, solidus (e.g. slash) characters should be escaped.
+	 * The JSON specification allows for either format.
+	 * However, if you're embedding JSON in an HTML script tag, this setting prevents
+	 * 	confusion when trying to serialize <xt>&lt;\/script&gt;</xt>.
+	 * <p>
+	 * <h5 class='section'>Notes:</h5>
+	 * <ul>
+	 * 	<li>This is equivalent to calling <code>setProperty(<jsf>JSON_escapeSolidus</jsf>, value)</code>.
+	 * </ul>
+	 *
+	 * @param value The new value for this property.
+	 * @return This object (for method chaining).
+	 * @throws LockedException If {@link #lock()} was called on this class.
+	 * @see JsonSerializerContext#JSON_escapeSolidus
+	 */
+	public JsonSerializer setEscapeSolidus(boolean value) throws LockedException {
+		return setProperty(JSON_escapeSolidus, value);
+	}
+
+	@Override /* Serializer */
+	public JsonSerializer setMaxDepth(int value) throws LockedException {
+		super.setMaxDepth(value);
+		return this;
+	}
+
+	@Override /* Serializer */
+	public JsonSerializer setInitialDepth(int value) throws LockedException {
+		super.setInitialDepth(value);
+		return this;
+	}
+
+	@Override /* Serializer */
+	public JsonSerializer setDetectRecursions(boolean value) throws LockedException {
+		super.setDetectRecursions(value);
+		return this;
+	}
+
+	@Override /* Serializer */
+	public JsonSerializer setIgnoreRecursions(boolean value) throws LockedException {
+		super.setIgnoreRecursions(value);
+		return this;
+	}
+
+	@Override /* Serializer */
+	public JsonSerializer setUseIndentation(boolean value) throws LockedException {
+		super.setUseIndentation(value);
+		return this;
+	}
+
+	@Override /* Serializer */
+	public JsonSerializer setAddBeanTypeProperties(boolean value) throws LockedException {
+		super.setAddBeanTypeProperties(value);
+		return this;
+	}
+
+	@Override /* Serializer */
+	public JsonSerializer setQuoteChar(char value) throws LockedException {
+		super.setQuoteChar(value);
+		return this;
+	}
+
+	@Override /* Serializer */
+	public JsonSerializer setTrimNullProperties(boolean value) throws LockedException {
+		super.setTrimNullProperties(value);
+		return this;
+	}
+
+	@Override /* Serializer */
+	public JsonSerializer setTrimEmptyCollections(boolean value) throws LockedException {
+		super.setTrimEmptyCollections(value);
+		return this;
+	}
+
+	@Override /* Serializer */
+	public JsonSerializer setTrimEmptyMaps(boolean value) throws LockedException {
+		super.setTrimEmptyMaps(value);
+		return this;
+	}
+
+	@Override /* Serializer */
+	public JsonSerializer setTrimStrings(boolean value) throws LockedException {
+		super.setTrimStrings(value);
+		return this;
+	}
+
+	@Override /* Serializer */
+	public JsonSerializer setRelativeUriBase(String value) throws LockedException {
+		super.setRelativeUriBase(value);
+		return this;
+	}
+
+	@Override /* Serializer */
+	public JsonSerializer setAbsolutePathUriBase(String value) throws LockedException {
+		super.setAbsolutePathUriBase(value);
+		return this;
+	}
+
+	@Override /* Serializer */
+	public JsonSerializer setSortCollections(boolean value) throws LockedException {
+		super.setSortCollections(value);
+		return this;
+	}
+
+	@Override /* Serializer */
+	public JsonSerializer setSortMaps(boolean value) throws LockedException {
+		super.setSortMaps(value);
+		return this;
+	}
 	@Override /* CoreApi */
-	public JsonSerializer setProperty(String property, Object value) throws LockedException {
-		super.setProperty(property, value);
+	public JsonSerializer setBeansRequireDefaultConstructor(boolean value) throws LockedException {
+		super.setBeansRequireDefaultConstructor(value);
 		return this;
 	}
 
 	@Override /* CoreApi */
-	public JsonSerializer setProperties(ObjectMap properties) throws LockedException {
-		super.setProperties(properties);
+	public JsonSerializer setBeansRequireSerializable(boolean value) throws LockedException {
+		super.setBeansRequireSerializable(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer setBeansRequireSettersForGetters(boolean value) throws LockedException {
+		super.setBeansRequireSettersForGetters(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer setBeansRequireSomeProperties(boolean value) throws LockedException {
+		super.setBeansRequireSomeProperties(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer setBeanMapPutReturnsOldValue(boolean value) throws LockedException {
+		super.setBeanMapPutReturnsOldValue(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer setBeanConstructorVisibility(Visibility value) throws LockedException {
+		super.setBeanConstructorVisibility(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer setBeanClassVisibility(Visibility value) throws LockedException {
+		super.setBeanClassVisibility(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer setBeanFieldVisibility(Visibility value) throws LockedException {
+		super.setBeanFieldVisibility(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer setMethodVisibility(Visibility value) throws LockedException {
+		super.setMethodVisibility(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer setUseJavaBeanIntrospector(boolean value) throws LockedException {
+		super.setUseJavaBeanIntrospector(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer setUseInterfaceProxies(boolean value) throws LockedException {
+		super.setUseInterfaceProxies(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer setIgnoreUnknownBeanProperties(boolean value) throws LockedException {
+		super.setIgnoreUnknownBeanProperties(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer setIgnoreUnknownNullBeanProperties(boolean value) throws LockedException {
+		super.setIgnoreUnknownNullBeanProperties(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer setIgnorePropertiesWithoutSetters(boolean value) throws LockedException {
+		super.setIgnorePropertiesWithoutSetters(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer setIgnoreInvocationExceptionsOnGetters(boolean value) throws LockedException {
+		super.setIgnoreInvocationExceptionsOnGetters(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer setIgnoreInvocationExceptionsOnSetters(boolean value) throws LockedException {
+		super.setIgnoreInvocationExceptionsOnSetters(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer setSortProperties(boolean value) throws LockedException {
+		super.setSortProperties(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer setNotBeanPackages(String...values) throws LockedException {
+		super.setNotBeanPackages(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer setNotBeanPackages(Collection<String> values) throws LockedException {
+		super.setNotBeanPackages(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer addNotBeanPackages(String...values) throws LockedException {
+		super.addNotBeanPackages(values);
 		return this;
 	}
 
 	@Override /* CoreApi */
-	public JsonSerializer addNotBeanClasses(Class<?>...classes) throws LockedException {
-		super.addNotBeanClasses(classes);
+	public JsonSerializer addNotBeanPackages(Collection<String> values) throws LockedException {
+		super.addNotBeanPackages(values);
 		return this;
 	}
 
 	@Override /* CoreApi */
-	public JsonSerializer addBeanFilters(Class<?>...classes) throws LockedException {
-		super.addBeanFilters(classes);
+	public JsonSerializer removeNotBeanPackages(String...values) throws LockedException {
+		super.removeNotBeanPackages(values);
 		return this;
 	}
 
 	@Override /* CoreApi */
-	public JsonSerializer addPojoSwaps(Class<?>...classes) throws LockedException {
-		super.addPojoSwaps(classes);
+	public JsonSerializer removeNotBeanPackages(Collection<String> values) throws LockedException {
+		super.removeNotBeanPackages(values);
 		return this;
 	}
 
 	@Override /* CoreApi */
-	public JsonSerializer addToDictionary(Class<?>...classes) throws LockedException {
-		super.addToDictionary(classes);
+	public JsonSerializer setNotBeanClasses(Class<?>...values) throws LockedException {
+		super.setNotBeanClasses(values);
 		return this;
 	}
 
 	@Override /* CoreApi */
-	public <T> JsonSerializer addImplClass(Class<T> interfaceClass, Class<? extends T> implClass) throws LockedException {
+	public JsonSerializer setNotBeanClasses(Collection<Class<?>> values) throws LockedException {
+		super.setNotBeanClasses(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer addNotBeanClasses(Class<?>...values) throws LockedException {
+		super.addNotBeanClasses(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer addNotBeanClasses(Collection<Class<?>> values) throws LockedException {
+		super.addNotBeanClasses(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer removeNotBeanClasses(Class<?>...values) throws LockedException {
+		super.removeNotBeanClasses(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer removeNotBeanClasses(Collection<Class<?>> values) throws LockedException {
+		super.removeNotBeanClasses(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer setBeanFilters(Class<?>...values) throws LockedException {
+		super.setBeanFilters(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer setBeanFilters(Collection<Class<?>> values) throws LockedException {
+		super.setBeanFilters(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer addBeanFilters(Class<?>...values) throws LockedException {
+		super.addBeanFilters(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer addBeanFilters(Collection<Class<?>> values) throws LockedException {
+		super.addBeanFilters(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer removeBeanFilters(Class<?>...values) throws LockedException {
+		super.removeBeanFilters(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer removeBeanFilters(Collection<Class<?>> values) throws LockedException {
+		super.removeBeanFilters(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer setPojoSwaps(Class<?>...values) throws LockedException {
+		super.setPojoSwaps(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer setPojoSwaps(Collection<Class<?>> values) throws LockedException {
+		super.setPojoSwaps(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer addPojoSwaps(Class<?>...values) throws LockedException {
+		super.addPojoSwaps(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer addPojoSwaps(Collection<Class<?>> values) throws LockedException {
+		super.addPojoSwaps(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer removePojoSwaps(Class<?>...values) throws LockedException {
+		super.removePojoSwaps(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer removePojoSwaps(Collection<Class<?>> values) throws LockedException {
+		super.removePojoSwaps(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer setImplClasses(Map<Class<?>,Class<?>> values) throws LockedException {
+		super.setImplClasses(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public <T> CoreApi addImplClass(Class<T> interfaceClass, Class<? extends T> implClass) throws LockedException {
 		super.addImplClass(interfaceClass, implClass);
 		return this;
 	}
 
 	@Override /* CoreApi */
+	public JsonSerializer setBeanDictionary(Class<?>...values) throws LockedException {
+		super.setBeanDictionary(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer setBeanDictionary(Collection<Class<?>> values) throws LockedException {
+		super.setBeanDictionary(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer addToBeanDictionary(Class<?>...values) throws LockedException {
+		super.addToBeanDictionary(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer addToBeanDictionary(Collection<Class<?>> values) throws LockedException {
+		super.addToBeanDictionary(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer removeFromBeanDictionary(Class<?>...values) throws LockedException {
+		super.removeFromBeanDictionary(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer removeFromBeanDictionary(Collection<Class<?>> values) throws LockedException {
+		super.removeFromBeanDictionary(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer setBeanTypePropertyName(String value) throws LockedException {
+		super.setBeanTypePropertyName(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer setDefaultParser(Class<?> value) throws LockedException {
+		super.setDefaultParser(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer setLocale(Locale value) throws LockedException {
+		super.setLocale(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer setTimeZone(TimeZone value) throws LockedException {
+		super.setTimeZone(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer setMediaType(MediaType value) throws LockedException {
+		super.setMediaType(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer setDebug(boolean value) throws LockedException {
+		super.setDebug(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer setProperty(String name, Object value) throws LockedException {
+		super.setProperty(name, value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer setProperties(ObjectMap properties) throws LockedException {
+		super.setProperties(properties);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer addToProperty(String name, Object value) throws LockedException {
+		super.addToProperty(name, value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer putToProperty(String name, Object key, Object value) throws LockedException {
+		super.putToProperty(name, key, value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer putToProperty(String name, Object value) throws LockedException {
+		super.putToProperty(name, value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public JsonSerializer removeFromProperty(String name, Object value) throws LockedException {
+		super.removeFromProperty(name, value);
+		return this;
+	}
+
+
+	//--------------------------------------------------------------------------------
+	// Overridden methods
+	//--------------------------------------------------------------------------------
+
+	@Override /* CoreApi */
 	public JsonSerializer setClassLoader(ClassLoader classLoader) throws LockedException {
 		super.setClassLoader(classLoader);
 		return this;

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/68dffad1/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializerContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializerContext.java b/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializerContext.java
index c4a62cd..eec89c8 100644
--- a/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializerContext.java
+++ b/juneau-core/src/main/java/org/apache/juneau/json/JsonSerializerContext.java
@@ -21,45 +21,8 @@ import org.apache.juneau.serializer.*;
  * Context properties are set by calling {@link ContextFactory#setProperty(String, Object)} on the context factory
  * returned {@link CoreApi#getContextFactory()}.
  * <p>
- * The following convenience methods are also provided for setting context properties:
- * <ul>
- * 	<li>{@link JsonSerializer#setProperty(String,Object)}
- * 	<li>{@link JsonSerializer#setProperties(ObjectMap)}
- * 	<li>{@link JsonSerializer#addNotBeanClasses(Class[])}
- * 	<li>{@link JsonSerializer#addBeanFilters(Class[])}
- * 	<li>{@link JsonSerializer#addPojoSwaps(Class[])}
- * 	<li>{@link JsonSerializer#addToDictionary(Class[])}
- * 	<li>{@link JsonSerializer#addImplClass(Class,Class)}
- * </ul>
- * <p>
  * See {@link ContextFactory} for more information about context properties.
  *
- * <h6 class='topic' id='ConfigProperties'>Configurable properties on the JSON serializer</h6>
- * <table class='styled' style='border-collapse: collapse;'>
- * 	<tr><th>Setting name</th><th>Description</th><th>Data type</th><th>Default value</th><th>Session overridable</th></tr>
- * 	<tr>
- * 		<td>{@link #JSON_simpleMode}</td>
- * 		<td>Simple JSON mode.</td>
- * 		<td><code>Boolean</code></td>
- * 		<td><jk>false</jk></td>
- * 		<td><jk>true</jk></td>
- * 	</tr>
- * 	<tr>
- * 		<td>{@link #JSON_useWhitespace}</td>
- * 		<td>Use whitespace.</td>
- * 		<td><code>Boolean</code></td>
- * 		<td><jk>false</jk></td>
- * 		<td><jk>true</jk></td>
- * 	</tr>
- * 	<tr>
- * 		<td>{@link #JSON_escapeSolidus}</td>
- * 		<td>Prefix solidus <js>'/'</js> characters with escapes.</td>
- * 		<td><code>Boolean</code></td>
- * 		<td><jk>false</jk></td>
- * 		<td><jk>true</jk></td>
- * 	</tr>
- * </table>
- *
  * <h5 class='section'>Inherited configurable properties:</h5>
  * <ul class='javahierarchy'>
  * 	<li class='c'><a class="doclink" href="../BeanContext.html#ConfigProperties">BeanContext</a> - Properties associated with handling beans on serializers and parsers.

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/68dffad1/juneau-core/src/main/java/org/apache/juneau/json/JsonWriter.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/json/JsonWriter.java b/juneau-core/src/main/java/org/apache/juneau/json/JsonWriter.java
index 374cf94..4b3af99 100644
--- a/juneau-core/src/main/java/org/apache/juneau/json/JsonWriter.java
+++ b/juneau-core/src/main/java/org/apache/juneau/json/JsonWriter.java
@@ -176,6 +176,7 @@ public final class JsonWriter extends SerializerWriter {
 		return this;
 	}
 
+
 	//--------------------------------------------------------------------------------
 	// Overridden methods
 	//--------------------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/68dffad1/juneau-core/src/main/java/org/apache/juneau/json/package.html
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/json/package.html b/juneau-core/src/main/java/org/apache/juneau/json/package.html
index 1131613..bb0d4c3 100644
--- a/juneau-core/src/main/java/org/apache/juneau/json/package.html
+++ b/juneau-core/src/main/java/org/apache/juneau/json/package.html
@@ -277,10 +277,10 @@
 	</p>
 	<p class='bcode'>
 	JsonSerializer s = <jk>new</jk> JsonSerializer()
-		.setProperty(SerializerContext.<jsf>SERIALIZER_useIndentation</jsf>, <jk>true</jk>)
-		.setProperty(JsonSerializerContext.<jsf>JSON_useWhitespace</jsf>, <jk>true</jk>)
-		.setProperty(JsonSerializerContext.<jsf>JSON_simpleMode</jsf>, <jk>true</jk>)
-		.setProperty(SerializerContext.<jsf>SERIALIZER_quoteChar</jsf>, <js>'\''</js>);
+		.setUseIndentation(<jk>true</jk>)
+		.setUseWhitespace(<jk>true</jk>)
+		.setSimpleMode(<jk>true</jk>)
+		.setQuoteChar(<js>'\''</js>);
 	</p>
 	
 	<p>
@@ -648,7 +648,7 @@
 		</p>
 		<p class='bcode'>
 	<jc>// Clone an existing serializer and set property for detecting recursions.</jc>
-	JsonSerializer s = JsonSerializer.<jsf>DEFAULT_LAX_READABLE</jsf>.clone().setProperty(SerializerContext.<jsf>SERIALIZER_detectRecursions</jsf>, <jk>true</jk>);
+	JsonSerializer s = JsonSerializer.<jsf>DEFAULT_LAX_READABLE</jsf>.clone().setDetectRecursions(<jk>true</jk>);
 
 	<jc>// Create a recursive loop.</jc>
 	A a = <jk>new</jk> A();

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/68dffad1/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackParser.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackParser.java b/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackParser.java
index 9113093..0b15adc 100644
--- a/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackParser.java
+++ b/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackParser.java
@@ -18,7 +18,6 @@ import java.lang.reflect.*;
 import java.util.*;
 
 import org.apache.juneau.*;
-import org.apache.juneau.MediaType;
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.transform.*;
@@ -181,8 +180,9 @@ public final class MsgPackParser extends InputStreamParser {
 		return (T)o;
 	}
 
+
 	//--------------------------------------------------------------------------------
-	// Overridden methods
+	// Entry point methods
 	//--------------------------------------------------------------------------------
 
 	@Override /* Parser */
@@ -198,50 +198,408 @@ public final class MsgPackParser extends InputStreamParser {
 		return o;
 	}
 
+
+	//--------------------------------------------------------------------------------
+	// Properties
+	//--------------------------------------------------------------------------------
+
+	@Override /* Parser */
+	public Parser setTrimStrings(boolean value) throws LockedException {
+		super.setTrimStrings(value);
+		return this;
+	}
+
+	@Override /* Parser */
+	public Parser setStrict(boolean value) throws LockedException {
+		super.setStrict(value);
+		return this;
+	}
+
 	@Override /* Parser */
-	public MsgPackParser setProperty(String property, Object value) throws LockedException {
-		super.setProperty(property, value);
+	public Parser setInputStreamCharset(String value) throws LockedException {
+		super.setInputStreamCharset(value);
+		return this;
+	}
+
+	@Override /* Parser */
+	public Parser setFileCharset(String value) throws LockedException {
+		super.setFileCharset(value);
 		return this;
 	}
 
 	@Override /* CoreApi */
-	public MsgPackParser setProperties(ObjectMap properties) throws LockedException {
-		super.setProperties(properties);
+	public Parser setBeansRequireDefaultConstructor(boolean value) throws LockedException {
+		super.setBeansRequireDefaultConstructor(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setBeansRequireSerializable(boolean value) throws LockedException {
+		super.setBeansRequireSerializable(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setBeansRequireSettersForGetters(boolean value) throws LockedException {
+		super.setBeansRequireSettersForGetters(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setBeansRequireSomeProperties(boolean value) throws LockedException {
+		super.setBeansRequireSomeProperties(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setBeanMapPutReturnsOldValue(boolean value) throws LockedException {
+		super.setBeanMapPutReturnsOldValue(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setBeanConstructorVisibility(Visibility value) throws LockedException {
+		super.setBeanConstructorVisibility(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setBeanClassVisibility(Visibility value) throws LockedException {
+		super.setBeanClassVisibility(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setBeanFieldVisibility(Visibility value) throws LockedException {
+		super.setBeanFieldVisibility(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setMethodVisibility(Visibility value) throws LockedException {
+		super.setMethodVisibility(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setUseJavaBeanIntrospector(boolean value) throws LockedException {
+		super.setUseJavaBeanIntrospector(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setUseInterfaceProxies(boolean value) throws LockedException {
+		super.setUseInterfaceProxies(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setIgnoreUnknownBeanProperties(boolean value) throws LockedException {
+		super.setIgnoreUnknownBeanProperties(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setIgnoreUnknownNullBeanProperties(boolean value) throws LockedException {
+		super.setIgnoreUnknownNullBeanProperties(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setIgnorePropertiesWithoutSetters(boolean value) throws LockedException {
+		super.setIgnorePropertiesWithoutSetters(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setIgnoreInvocationExceptionsOnGetters(boolean value) throws LockedException {
+		super.setIgnoreInvocationExceptionsOnGetters(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setIgnoreInvocationExceptionsOnSetters(boolean value) throws LockedException {
+		super.setIgnoreInvocationExceptionsOnSetters(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setSortProperties(boolean value) throws LockedException {
+		super.setSortProperties(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setNotBeanPackages(String...values) throws LockedException {
+		super.setNotBeanPackages(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setNotBeanPackages(Collection<String> values) throws LockedException {
+		super.setNotBeanPackages(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser addNotBeanPackages(String...values) throws LockedException {
+		super.addNotBeanPackages(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser addNotBeanPackages(Collection<String> values) throws LockedException {
+		super.addNotBeanPackages(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser removeNotBeanPackages(String...values) throws LockedException {
+		super.removeNotBeanPackages(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser removeNotBeanPackages(Collection<String> values) throws LockedException {
+		super.removeNotBeanPackages(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setNotBeanClasses(Class<?>...values) throws LockedException {
+		super.setNotBeanClasses(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setNotBeanClasses(Collection<Class<?>> values) throws LockedException {
+		super.setNotBeanClasses(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser addNotBeanClasses(Class<?>...values) throws LockedException {
+		super.addNotBeanClasses(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser addNotBeanClasses(Collection<Class<?>> values) throws LockedException {
+		super.addNotBeanClasses(values);
 		return this;
 	}
 
 	@Override /* CoreApi */
-	public MsgPackParser addNotBeanClasses(Class<?>...classes) throws LockedException {
-		super.addNotBeanClasses(classes);
+	public Parser removeNotBeanClasses(Class<?>...values) throws LockedException {
+		super.removeNotBeanClasses(values);
 		return this;
 	}
 
 	@Override /* CoreApi */
-	public MsgPackParser addBeanFilters(Class<?>...classes) throws LockedException {
-		super.addBeanFilters(classes);
+	public Parser removeNotBeanClasses(Collection<Class<?>> values) throws LockedException {
+		super.removeNotBeanClasses(values);
 		return this;
 	}
 
 	@Override /* CoreApi */
-	public MsgPackParser addPojoSwaps(Class<?>...classes) throws LockedException {
-		super.addPojoSwaps(classes);
+	public Parser setBeanFilters(Class<?>...values) throws LockedException {
+		super.setBeanFilters(values);
 		return this;
 	}
 
 	@Override /* CoreApi */
-	public MsgPackParser addToDictionary(Class<?>...classes) throws LockedException {
-		super.addToDictionary(classes);
+	public Parser setBeanFilters(Collection<Class<?>> values) throws LockedException {
+		super.setBeanFilters(values);
 		return this;
 	}
 
 	@Override /* CoreApi */
-	public <T> MsgPackParser addImplClass(Class<T> interfaceClass, Class<? extends T> implClass) throws LockedException {
+	public Parser addBeanFilters(Class<?>...values) throws LockedException {
+		super.addBeanFilters(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser addBeanFilters(Collection<Class<?>> values) throws LockedException {
+		super.addBeanFilters(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser removeBeanFilters(Class<?>...values) throws LockedException {
+		super.removeBeanFilters(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser removeBeanFilters(Collection<Class<?>> values) throws LockedException {
+		super.removeBeanFilters(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setPojoSwaps(Class<?>...values) throws LockedException {
+		super.setPojoSwaps(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setPojoSwaps(Collection<Class<?>> values) throws LockedException {
+		super.setPojoSwaps(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser addPojoSwaps(Class<?>...values) throws LockedException {
+		super.addPojoSwaps(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser addPojoSwaps(Collection<Class<?>> values) throws LockedException {
+		super.addPojoSwaps(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser removePojoSwaps(Class<?>...values) throws LockedException {
+		super.removePojoSwaps(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser removePojoSwaps(Collection<Class<?>> values) throws LockedException {
+		super.removePojoSwaps(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setImplClasses(Map<Class<?>,Class<?>> values) throws LockedException {
+		super.setImplClasses(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public <T> CoreApi addImplClass(Class<T> interfaceClass, Class<? extends T> implClass) throws LockedException {
 		super.addImplClass(interfaceClass, implClass);
 		return this;
 	}
 
 	@Override /* CoreApi */
-	public MsgPackParser setClassLoader(ClassLoader classLoader) throws LockedException {
+	public Parser setBeanDictionary(Class<?>...values) throws LockedException {
+		super.setBeanDictionary(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setBeanDictionary(Collection<Class<?>> values) throws LockedException {
+		super.setBeanDictionary(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser addToBeanDictionary(Class<?>...values) throws LockedException {
+		super.addToBeanDictionary(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser addToBeanDictionary(Collection<Class<?>> values) throws LockedException {
+		super.addToBeanDictionary(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser removeFromBeanDictionary(Class<?>...values) throws LockedException {
+		super.removeFromBeanDictionary(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser removeFromBeanDictionary(Collection<Class<?>> values) throws LockedException {
+		super.removeFromBeanDictionary(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setBeanTypePropertyName(String value) throws LockedException {
+		super.setBeanTypePropertyName(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setDefaultParser(Class<?> value) throws LockedException {
+		super.setDefaultParser(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setLocale(Locale value) throws LockedException {
+		super.setLocale(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setTimeZone(TimeZone value) throws LockedException {
+		super.setTimeZone(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setMediaType(MediaType value) throws LockedException {
+		super.setMediaType(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setDebug(boolean value) throws LockedException {
+		super.setDebug(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setProperty(String name, Object value) throws LockedException {
+		super.setProperty(name, value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setProperties(ObjectMap properties) throws LockedException {
+		super.setProperties(properties);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser addToProperty(String name, Object value) throws LockedException {
+		super.addToProperty(name, value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser putToProperty(String name, Object key, Object value) throws LockedException {
+		super.putToProperty(name, key, value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser putToProperty(String name, Object value) throws LockedException {
+		super.putToProperty(name, value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser removeFromProperty(String name, Object value) throws LockedException {
+		super.removeFromProperty(name, value);
+		return this;
+	}
+
+
+	//--------------------------------------------------------------------------------
+	// Overridden methods
+	//--------------------------------------------------------------------------------
+
+	@Override /* CoreApi */
+	public Parser setClassLoader(ClassLoader classLoader) throws LockedException {
 		super.setClassLoader(classLoader);
 		return this;
 	}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/68dffad1/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackParserContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackParserContext.java b/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackParserContext.java
index 2e04978..267305f 100644
--- a/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackParserContext.java
+++ b/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackParserContext.java
@@ -21,23 +21,8 @@ import org.apache.juneau.parser.*;
  * Context properties are set by calling {@link ContextFactory#setProperty(String, Object)} on the context factory
  * returned {@link CoreApi#getContextFactory()}.
  * <p>
- * The following convenience methods are also provided for setting context properties:
- * <ul>
- * 	<li>{@link MsgPackParser#setProperty(String,Object)}
- * 	<li>{@link MsgPackParser#setProperties(ObjectMap)}
- * 	<li>{@link MsgPackParser#addNotBeanClasses(Class[])}
- * 	<li>{@link MsgPackParser#addBeanFilters(Class[])}
- * 	<li>{@link MsgPackParser#addPojoSwaps(Class[])}
- * 	<li>{@link MsgPackParser#addToDictionary(Class[])}
- * 	<li>{@link MsgPackParser#addImplClass(Class,Class)}
- * </ul>
- * <p>
  * See {@link ContextFactory} for more information about context properties.
  *
- * <h6 class='topic' id='ConfigProperties'>Configurable properties on the MessagePack parser</h6>
- * <p>
- * 	None.
- *
  * <h5 class='section'>Inherited configurable properties:</h5>
  * <ul class='javahierarchy'>
  * 	<li class='c'><a class="doclink" href="../BeanContext.html#ConfigProperties">BeanContext</a> - Properties associated with handling beans on serializers and parsers.

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/68dffad1/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java b/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
index 4ab038b..4ce103d 100644
--- a/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
+++ b/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
@@ -190,7 +190,7 @@ public class MsgPackSerializer extends OutputStreamSerializer {
 
 
 	//--------------------------------------------------------------------------------
-	// Overridden methods
+	// Entry point methods
 	//--------------------------------------------------------------------------------
 
 	@Override /* Serializer */
@@ -204,49 +204,473 @@ public class MsgPackSerializer extends OutputStreamSerializer {
 		serializeAnything(s, s.getOutputStream(), o, null, "root", null);
 	}
 
+
+	//--------------------------------------------------------------------------------
+	// Properties
+	//--------------------------------------------------------------------------------
+
+	@Override /* Serializer */
+	public MsgPackSerializer setMaxDepth(int value) throws LockedException {
+		super.setMaxDepth(value);
+		return this;
+	}
+
+	@Override /* Serializer */
+	public MsgPackSerializer setInitialDepth(int value) throws LockedException {
+		super.setInitialDepth(value);
+		return this;
+	}
+
+	@Override /* Serializer */
+	public MsgPackSerializer setDetectRecursions(boolean value) throws LockedException {
+		super.setDetectRecursions(value);
+		return this;
+	}
+
+	@Override /* Serializer */
+	public MsgPackSerializer setIgnoreRecursions(boolean value) throws LockedException {
+		super.setIgnoreRecursions(value);
+		return this;
+	}
+
+	@Override /* Serializer */
+	public MsgPackSerializer setUseIndentation(boolean value) throws LockedException {
+		super.setUseIndentation(value);
+		return this;
+	}
+
+	@Override /* Serializer */
+	public MsgPackSerializer setAddBeanTypeProperties(boolean value) throws LockedException {
+		super.setAddBeanTypeProperties(value);
+		return this;
+	}
+
+	@Override /* Serializer */
+	public MsgPackSerializer setQuoteChar(char value) throws LockedException {
+		super.setQuoteChar(value);
+		return this;
+	}
+
+	@Override /* Serializer */
+	public MsgPackSerializer setTrimNullProperties(boolean value) throws LockedException {
+		super.setTrimNullProperties(value);
+		return this;
+	}
+
+	@Override /* Serializer */
+	public MsgPackSerializer setTrimEmptyCollections(boolean value) throws LockedException {
+		super.setTrimEmptyCollections(value);
+		return this;
+	}
+
+	@Override /* Serializer */
+	public MsgPackSerializer setTrimEmptyMaps(boolean value) throws LockedException {
+		super.setTrimEmptyMaps(value);
+		return this;
+	}
+
+	@Override /* Serializer */
+	public MsgPackSerializer setTrimStrings(boolean value) throws LockedException {
+		super.setTrimStrings(value);
+		return this;
+	}
+
+	@Override /* Serializer */
+	public MsgPackSerializer setRelativeUriBase(String value) throws LockedException {
+		super.setRelativeUriBase(value);
+		return this;
+	}
+
+	@Override /* Serializer */
+	public MsgPackSerializer setAbsolutePathUriBase(String value) throws LockedException {
+		super.setAbsolutePathUriBase(value);
+		return this;
+	}
+
+	@Override /* Serializer */
+	public MsgPackSerializer setSortCollections(boolean value) throws LockedException {
+		super.setSortCollections(value);
+		return this;
+	}
+
+	@Override /* Serializer */
+	public MsgPackSerializer setSortMaps(boolean value) throws LockedException {
+		super.setSortMaps(value);
+		return this;
+	}
+
 	@Override /* CoreApi */
-	public MsgPackSerializer setProperty(String property, Object value) throws LockedException {
-		super.setProperty(property, value);
+	public MsgPackSerializer setBeansRequireDefaultConstructor(boolean value) throws LockedException {
+		super.setBeansRequireDefaultConstructor(value);
 		return this;
 	}
 
 	@Override /* CoreApi */
-	public MsgPackSerializer setProperties(ObjectMap properties) throws LockedException {
-		super.setProperties(properties);
+	public MsgPackSerializer setBeansRequireSerializable(boolean value) throws LockedException {
+		super.setBeansRequireSerializable(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer setBeansRequireSettersForGetters(boolean value) throws LockedException {
+		super.setBeansRequireSettersForGetters(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer setBeansRequireSomeProperties(boolean value) throws LockedException {
+		super.setBeansRequireSomeProperties(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer setBeanMapPutReturnsOldValue(boolean value) throws LockedException {
+		super.setBeanMapPutReturnsOldValue(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer setBeanConstructorVisibility(Visibility value) throws LockedException {
+		super.setBeanConstructorVisibility(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer setBeanClassVisibility(Visibility value) throws LockedException {
+		super.setBeanClassVisibility(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer setBeanFieldVisibility(Visibility value) throws LockedException {
+		super.setBeanFieldVisibility(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer setMethodVisibility(Visibility value) throws LockedException {
+		super.setMethodVisibility(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer setUseJavaBeanIntrospector(boolean value) throws LockedException {
+		super.setUseJavaBeanIntrospector(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer setUseInterfaceProxies(boolean value) throws LockedException {
+		super.setUseInterfaceProxies(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer setIgnoreUnknownBeanProperties(boolean value) throws LockedException {
+		super.setIgnoreUnknownBeanProperties(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer setIgnoreUnknownNullBeanProperties(boolean value) throws LockedException {
+		super.setIgnoreUnknownNullBeanProperties(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer setIgnorePropertiesWithoutSetters(boolean value) throws LockedException {
+		super.setIgnorePropertiesWithoutSetters(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer setIgnoreInvocationExceptionsOnGetters(boolean value) throws LockedException {
+		super.setIgnoreInvocationExceptionsOnGetters(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer setIgnoreInvocationExceptionsOnSetters(boolean value) throws LockedException {
+		super.setIgnoreInvocationExceptionsOnSetters(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer setSortProperties(boolean value) throws LockedException {
+		super.setSortProperties(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer setNotBeanPackages(String...values) throws LockedException {
+		super.setNotBeanPackages(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer setNotBeanPackages(Collection<String> values) throws LockedException {
+		super.setNotBeanPackages(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer addNotBeanPackages(String...values) throws LockedException {
+		super.addNotBeanPackages(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer addNotBeanPackages(Collection<String> values) throws LockedException {
+		super.addNotBeanPackages(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer removeNotBeanPackages(String...values) throws LockedException {
+		super.removeNotBeanPackages(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer removeNotBeanPackages(Collection<String> values) throws LockedException {
+		super.removeNotBeanPackages(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer setNotBeanClasses(Class<?>...values) throws LockedException {
+		super.setNotBeanClasses(values);
 		return this;
 	}
 
 	@Override /* CoreApi */
-	public MsgPackSerializer addNotBeanClasses(Class<?>...classes) throws LockedException {
-		super.addNotBeanClasses(classes);
+	public MsgPackSerializer setNotBeanClasses(Collection<Class<?>> values) throws LockedException {
+		super.setNotBeanClasses(values);
 		return this;
 	}
 
 	@Override /* CoreApi */
-	public MsgPackSerializer addBeanFilters(Class<?>...classes) throws LockedException {
-		super.addBeanFilters(classes);
+	public MsgPackSerializer addNotBeanClasses(Class<?>...values) throws LockedException {
+		super.addNotBeanClasses(values);
 		return this;
 	}
 
 	@Override /* CoreApi */
-	public MsgPackSerializer addPojoSwaps(Class<?>...classes) throws LockedException {
-		super.addPojoSwaps(classes);
+	public MsgPackSerializer addNotBeanClasses(Collection<Class<?>> values) throws LockedException {
+		super.addNotBeanClasses(values);
 		return this;
 	}
 
 	@Override /* CoreApi */
-	public MsgPackSerializer addToDictionary(Class<?>...classes) throws LockedException {
-		super.addToDictionary(classes);
+	public MsgPackSerializer removeNotBeanClasses(Class<?>...values) throws LockedException {
+		super.removeNotBeanClasses(values);
 		return this;
 	}
 
 	@Override /* CoreApi */
-	public <T> MsgPackSerializer addImplClass(Class<T> interfaceClass, Class<? extends T> implClass) throws LockedException {
+	public MsgPackSerializer removeNotBeanClasses(Collection<Class<?>> values) throws LockedException {
+		super.removeNotBeanClasses(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer setBeanFilters(Class<?>...values) throws LockedException {
+		super.setBeanFilters(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer setBeanFilters(Collection<Class<?>> values) throws LockedException {
+		super.setBeanFilters(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer addBeanFilters(Class<?>...values) throws LockedException {
+		super.addBeanFilters(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer addBeanFilters(Collection<Class<?>> values) throws LockedException {
+		super.addBeanFilters(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer removeBeanFilters(Class<?>...values) throws LockedException {
+		super.removeBeanFilters(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer removeBeanFilters(Collection<Class<?>> values) throws LockedException {
+		super.removeBeanFilters(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer setPojoSwaps(Class<?>...values) throws LockedException {
+		super.setPojoSwaps(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer setPojoSwaps(Collection<Class<?>> values) throws LockedException {
+		super.setPojoSwaps(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer addPojoSwaps(Class<?>...values) throws LockedException {
+		super.addPojoSwaps(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer addPojoSwaps(Collection<Class<?>> values) throws LockedException {
+		super.addPojoSwaps(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer removePojoSwaps(Class<?>...values) throws LockedException {
+		super.removePojoSwaps(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer removePojoSwaps(Collection<Class<?>> values) throws LockedException {
+		super.removePojoSwaps(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer setImplClasses(Map<Class<?>,Class<?>> values) throws LockedException {
+		super.setImplClasses(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public <T> CoreApi addImplClass(Class<T> interfaceClass, Class<? extends T> implClass) throws LockedException {
 		super.addImplClass(interfaceClass, implClass);
 		return this;
 	}
 
 	@Override /* CoreApi */
+	public MsgPackSerializer setBeanDictionary(Class<?>...values) throws LockedException {
+		super.setBeanDictionary(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer setBeanDictionary(Collection<Class<?>> values) throws LockedException {
+		super.setBeanDictionary(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer addToBeanDictionary(Class<?>...values) throws LockedException {
+		super.addToBeanDictionary(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer addToBeanDictionary(Collection<Class<?>> values) throws LockedException {
+		super.addToBeanDictionary(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer removeFromBeanDictionary(Class<?>...values) throws LockedException {
+		super.removeFromBeanDictionary(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer removeFromBeanDictionary(Collection<Class<?>> values) throws LockedException {
+		super.removeFromBeanDictionary(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer setBeanTypePropertyName(String value) throws LockedException {
+		super.setBeanTypePropertyName(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer setDefaultParser(Class<?> value) throws LockedException {
+		super.setDefaultParser(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer setLocale(Locale value) throws LockedException {
+		super.setLocale(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer setTimeZone(TimeZone value) throws LockedException {
+		super.setTimeZone(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer setMediaType(MediaType value) throws LockedException {
+		super.setMediaType(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer setDebug(boolean value) throws LockedException {
+		super.setDebug(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer setProperty(String name, Object value) throws LockedException {
+		super.setProperty(name, value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer setProperties(ObjectMap properties) throws LockedException {
+		super.setProperties(properties);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer addToProperty(String name, Object value) throws LockedException {
+		super.addToProperty(name, value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer putToProperty(String name, Object key, Object value) throws LockedException {
+		super.putToProperty(name, key, value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer putToProperty(String name, Object value) throws LockedException {
+		super.putToProperty(name, value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public MsgPackSerializer removeFromProperty(String name, Object value) throws LockedException {
+		super.removeFromProperty(name, value);
+		return this;
+	}
+
+
+	//--------------------------------------------------------------------------------
+	// Overridden methods
+	//--------------------------------------------------------------------------------
+
+	@Override /* CoreApi */
 	public MsgPackSerializer setClassLoader(ClassLoader classLoader) throws LockedException {
 		super.setClassLoader(classLoader);
 		return this;

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/68dffad1/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerContext.java b/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerContext.java
index ced4439..7fa6019 100644
--- a/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerContext.java
+++ b/juneau-core/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerContext.java
@@ -21,23 +21,8 @@ import org.apache.juneau.serializer.*;
  * Context properties are set by calling {@link ContextFactory#setProperty(String, Object)} on the context factory
  * returned {@link CoreApi#getContextFactory()}.
  * <p>
- * The following convenience methods are also provided for setting context properties:
- * <ul>
- * 	<li>{@link MsgPackSerializer#setProperty(String,Object)}
- * 	<li>{@link MsgPackSerializer#setProperties(ObjectMap)}
- * 	<li>{@link MsgPackSerializer#addNotBeanClasses(Class[])}
- * 	<li>{@link MsgPackSerializer#addBeanFilters(Class[])}
- * 	<li>{@link MsgPackSerializer#addPojoSwaps(Class[])}
- * 	<li>{@link MsgPackSerializer#addToDictionary(Class[])}
- * 	<li>{@link MsgPackSerializer#addImplClass(Class,Class)}
- * </ul>
- * <p>
  * See {@link ContextFactory} for more information about context properties.
  *
- * <h6 class='topic' id='ConfigProperties'>Configurable properties on the MessagePack serializer</h6>
- * <p>
- * 	None.
- *
  * <h5 class='section'>Inherited configurable properties:</h5>
  * <ul class='javahierarchy'>
  * 	<li class='c'><a class="doclink" href="../BeanContext.html#ConfigProperties">BeanContext</a> - Properties associated with handling beans on serializers and parsers.

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/68dffad1/juneau-core/src/main/java/org/apache/juneau/parser/Parser.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/parser/Parser.java b/juneau-core/src/main/java/org/apache/juneau/parser/Parser.java
index 9ec061a..e3d9f9a 100644
--- a/juneau-core/src/main/java/org/apache/juneau/parser/Parser.java
+++ b/juneau-core/src/main/java/org/apache/juneau/parser/Parser.java
@@ -12,6 +12,7 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.parser;
 
+import static org.apache.juneau.parser.ParserContext.*;
 import static org.apache.juneau.internal.StringUtils.*;
 
 import java.io.*;
@@ -22,6 +23,8 @@ import java.util.*;
 import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.internal.*;
+import org.apache.juneau.json.*;
+import org.apache.juneau.parser.ParseException;
 import org.apache.juneau.transform.*;
 import org.apache.juneau.transforms.*;
 import org.apache.juneau.utils.*;
@@ -149,6 +152,7 @@ public abstract class Parser extends CoreApi {
 		}
 	}
 
+
 	//--------------------------------------------------------------------------------
 	// Abstract methods
 	//--------------------------------------------------------------------------------
@@ -354,6 +358,7 @@ public abstract class Parser extends CoreApi {
 		return createSession(input, null, null, null, null, null, getPrimaryMediaType());
 	}
 
+
 	//--------------------------------------------------------------------------------
 	// Optional methods
 	//--------------------------------------------------------------------------------
@@ -498,6 +503,7 @@ public abstract class Parser extends CoreApi {
 		throw new UnsupportedOperationException("Parser '"+getClass().getName()+"' does not support this method.");
 	}
 
+
 	//--------------------------------------------------------------------------------
 	// Other methods
 	//--------------------------------------------------------------------------------
@@ -643,47 +649,520 @@ public abstract class Parser extends CoreApi {
 		return mediaTypes == null || mediaTypes.length == 0 ? null : mediaTypes[0];
 	}
 
+
 	//--------------------------------------------------------------------------------
-	// Overridden methods
+	// Properties
 	//--------------------------------------------------------------------------------
 
+	/**
+	 * <b>Configuration property:</b>  Trim parsed strings.
+	 * <p>
+	 * <ul>
+	 * 	<li><b>Name:</b> <js>"Parser.trimStrings"</js>
+	 * 	<li><b>Data type:</b> <code>Boolean</code>
+	 * 	<li><b>Default:</b> <jk>false</jk>
+	 * 	<li><b>Session-overridable:</b> <jk>true</jk>
+	 * </ul>
+	 * <p>
+	 * If <jk>true</jk>, string values will be trimmed of whitespace using {@link String#trim()} before being added to the POJO.
+	 * <p>
+	 * <h5 class='section'>Notes:</h5>
+	 * <ul>
+	 * 	<li>This is equivalent to calling <code>setProperty(<jsf>PARSER_trimStrings</jsf>, value)</code>.
+	 * </ul>
+	 *
+	 * @param value The new value for this property.
+	 * @return This object (for method chaining).
+	 * @throws LockedException If {@link #lock()} was called on this class.
+	 * @see ParserContext#PARSER_trimStrings
+	 */
+	public Parser setTrimStrings(boolean value) throws LockedException {
+		return setProperty(PARSER_trimStrings, value);
+	}
+
+	/**
+	 * <b>Configuration property:</b>  Strict mode.
+	 * <p>
+	 * <ul>
+	 * 	<li><b>Name:</b> <js>"Parser.strict"</js>
+	 * 	<li><b>Data type:</b> <code>Boolean</code>
+	 * 	<li><b>Default:</b> <jk>false</jk>
+	 * 	<li><b>Session-overridable:</b> <jk>true</jk>
+	 * </ul>
+	 * <p>
+	 * If <jk>true</jk>, strict mode for the parser is enabled.
+	 * <p>
+	 * Strict mode can mean different things for different parsers.
+	 * <p>
+	 * <table class='styled'>
+	 * 	<tr><th>Parser class</th><th>Strict behavior</th></tr>
+	 * 	<tr>
+	 * 		<td>All reader-based parsers</td>
+	 * 		<td>
+	 * 			When enabled, throws {@link ParseException ParseExceptions} on malformed charset input.
+	 * 			Otherwise, malformed input is ignored.
+	 * 		</td>
+	 * 	</tr>
+	 * 	<tr>
+	 * 		<td>{@link JsonParser}</td>
+	 * 		<td>
+	 * 			When enabled, throws exceptions on the following invalid JSON syntax:
+	 * 			<ul>
+	 * 				<li>Unquoted attributes.
+	 * 				<li>Missing attribute values.
+	 * 				<li>Concatenated strings.
+	 * 				<li>Javascript comments.
+	 * 				<li>Numbers and booleans when Strings are expected.
+	 * 				<li>Numbers valid in Java but not JSON (e.g. octal notation, etc...)
+	 * 			</ul>
+	 * 		</td>
+	 * 	</tr>
+	 * </table>
+	 * <p>
+	 * <h5 class='section'>Notes:</h5>
+	 * <ul>
+	 * 	<li>This is equivalent to calling <code>setProperty(<jsf>PARSER_strict</jsf>,value)</code>.
+	 * </ul>
+	 *
+	 * @param value The new value for this property.
+	 * @return This object (for method chaining).
+	 * @throws LockedException If {@link #lock()} was called on this class.
+	 * @see ParserContext#PARSER_strict
+	 */
+	public Parser setStrict(boolean value) throws LockedException {
+		return setProperty(PARSER_strict, value);
+	}
+
+	/**
+	 * <b>Configuration property:</b>  Input stream charset.
+	 * <p>
+	 * <ul>
+	 * 	<li><b>Name:</b> <js>"Parser.inputStreamCharset"</js>
+	 * 	<li><b>Data type:</b> <code>String</code>
+	 * 	<li><b>Default:</b> <js>"UTF-8"</js>
+	 * 	<li><b>Session-overridable:</b> <jk>true</jk>
+	 * </ul>
+	 * <p>
+	 * The character set to use for converting <code>InputStreams</code> and byte arrays to readers.
+	 * <p>
+	 * Used when passing in input streams and byte arrays to {@link Parser#parse(Object, Class)}.
+	 * <p>
+	 * <h5 class='section'>Notes:</h5>
+	 * <ul>
+	 * 	<li>This is equivalent to calling <code>setProperty(<jsf>PARSER_inputStreamCharset</jsf>, value)</code>.
+	 * </ul>
+	 *
+	 * @param value The new value for this property.
+	 * @return This object (for method chaining).
+	 * @throws LockedException If {@link #lock()} was called on this class.
+	 * @see ParserContext#PARSER_inputStreamCharset
+	 */
+	public Parser setInputStreamCharset(String value) throws LockedException {
+		return setProperty(PARSER_inputStreamCharset, value);
+	}
+
+	/**
+	 * <b>Configuration property:</b>  File charset.
+	 * <p>
+	 * <ul>
+	 * 	<li><b>Name:</b> <js>"Parser.fileCharset"</js>
+	 * 	<li><b>Data type:</b> <code>String</code>
+	 * 	<li><b>Default:</b> <js>"default"</js>
+	 * 	<li><b>Session-overridable:</b> <jk>true</jk>
+	 * </ul>
+	 * <p>
+	 * The character set to use for reading <code>Files</code> from the file system.
+	 * <p>
+	 * Used when passing in files to {@link Parser#parse(Object, Class)}.
+	 * <p>
+	 * <js>"default"</js> can be used to indicate the JVM default file system charset.
+	 * <p>
+	 * <h5 class='section'>Notes:</h5>
+	 * <ul>
+	 * 	<li>This is equivalent to calling <code>setProperty(<jsf>PARSER_fileCharset</jsf>,value)</code>.
+	 * </ul>
+	 *
+	 * @param value The new value for this property.
+	 * @return This object (for method chaining).
+	 * @throws LockedException If {@link #lock()} was called on this class.
+	 * @see ParserContext#PARSER_fileCharset
+	 */
+	public Parser setFileCharset(String value) throws LockedException {
+		return setProperty(PARSER_fileCharset, value);
+	}
+
+	@Override /* CoreApi */
+	public Parser setBeansRequireDefaultConstructor(boolean value) throws LockedException {
+		super.setBeansRequireDefaultConstructor(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setBeansRequireSerializable(boolean value) throws LockedException {
+		super.setBeansRequireSerializable(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setBeansRequireSettersForGetters(boolean value) throws LockedException {
+		super.setBeansRequireSettersForGetters(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setBeansRequireSomeProperties(boolean value) throws LockedException {
+		super.setBeansRequireSomeProperties(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setBeanMapPutReturnsOldValue(boolean value) throws LockedException {
+		super.setBeanMapPutReturnsOldValue(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setBeanConstructorVisibility(Visibility value) throws LockedException {
+		super.setBeanConstructorVisibility(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setBeanClassVisibility(Visibility value) throws LockedException {
+		super.setBeanClassVisibility(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setBeanFieldVisibility(Visibility value) throws LockedException {
+		super.setBeanFieldVisibility(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setMethodVisibility(Visibility value) throws LockedException {
+		super.setMethodVisibility(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setUseJavaBeanIntrospector(boolean value) throws LockedException {
+		super.setUseJavaBeanIntrospector(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setUseInterfaceProxies(boolean value) throws LockedException {
+		super.setUseInterfaceProxies(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setIgnoreUnknownBeanProperties(boolean value) throws LockedException {
+		super.setIgnoreUnknownBeanProperties(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setIgnoreUnknownNullBeanProperties(boolean value) throws LockedException {
+		super.setIgnoreUnknownNullBeanProperties(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setIgnorePropertiesWithoutSetters(boolean value) throws LockedException {
+		super.setIgnorePropertiesWithoutSetters(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setIgnoreInvocationExceptionsOnGetters(boolean value) throws LockedException {
+		super.setIgnoreInvocationExceptionsOnGetters(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setIgnoreInvocationExceptionsOnSetters(boolean value) throws LockedException {
+		super.setIgnoreInvocationExceptionsOnSetters(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setSortProperties(boolean value) throws LockedException {
+		super.setSortProperties(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setNotBeanPackages(String...values) throws LockedException {
+		super.setNotBeanPackages(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setNotBeanPackages(Collection<String> values) throws LockedException {
+		super.setNotBeanPackages(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser addNotBeanPackages(String...values) throws LockedException {
+		super.addNotBeanPackages(values);
+		return this;
+	}
+
 	@Override /* CoreApi */
-	public Parser setProperty(String property, Object value) throws LockedException {
-		super.setProperty(property, value);
+	public Parser addNotBeanPackages(Collection<String> values) throws LockedException {
+		super.addNotBeanPackages(values);
 		return this;
 	}
 
 	@Override /* CoreApi */
-	public Parser addNotBeanClasses(Class<?>...classes) throws LockedException {
-		super.addNotBeanClasses(classes);
+	public Parser removeNotBeanPackages(String...values) throws LockedException {
+		super.removeNotBeanPackages(values);
 		return this;
 	}
 
 	@Override /* CoreApi */
-	public Parser addBeanFilters(Class<?>...classes) throws LockedException {
-		super.addBeanFilters(classes);
+	public Parser removeNotBeanPackages(Collection<String> values) throws LockedException {
+		super.removeNotBeanPackages(values);
 		return this;
 	}
 
 	@Override /* CoreApi */
-	public Parser addPojoSwaps(Class<?>...classes) throws LockedException {
-		super.addPojoSwaps(classes);
+	public Parser setNotBeanClasses(Class<?>...values) throws LockedException {
+		super.setNotBeanClasses(values);
 		return this;
 	}
 
 	@Override /* CoreApi */
-	public Parser addToDictionary(Class<?>...classes) throws LockedException {
-		super.addToDictionary(classes);
+	public Parser setNotBeanClasses(Collection<Class<?>> values) throws LockedException {
+		super.setNotBeanClasses(values);
 		return this;
 	}
 
 	@Override /* CoreApi */
-	public <T> Parser addImplClass(Class<T> interfaceClass, Class<? extends T> implClass) throws LockedException {
+	public Parser addNotBeanClasses(Class<?>...values) throws LockedException {
+		super.addNotBeanClasses(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser addNotBeanClasses(Collection<Class<?>> values) throws LockedException {
+		super.addNotBeanClasses(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser removeNotBeanClasses(Class<?>...values) throws LockedException {
+		super.removeNotBeanClasses(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser removeNotBeanClasses(Collection<Class<?>> values) throws LockedException {
+		super.removeNotBeanClasses(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setBeanFilters(Class<?>...values) throws LockedException {
+		super.setBeanFilters(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setBeanFilters(Collection<Class<?>> values) throws LockedException {
+		super.setBeanFilters(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser addBeanFilters(Class<?>...values) throws LockedException {
+		super.addBeanFilters(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser addBeanFilters(Collection<Class<?>> values) throws LockedException {
+		super.addBeanFilters(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser removeBeanFilters(Class<?>...values) throws LockedException {
+		super.removeBeanFilters(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser removeBeanFilters(Collection<Class<?>> values) throws LockedException {
+		super.removeBeanFilters(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setPojoSwaps(Class<?>...values) throws LockedException {
+		super.setPojoSwaps(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setPojoSwaps(Collection<Class<?>> values) throws LockedException {
+		super.setPojoSwaps(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser addPojoSwaps(Class<?>...values) throws LockedException {
+		super.addPojoSwaps(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser addPojoSwaps(Collection<Class<?>> values) throws LockedException {
+		super.addPojoSwaps(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser removePojoSwaps(Class<?>...values) throws LockedException {
+		super.removePojoSwaps(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser removePojoSwaps(Collection<Class<?>> values) throws LockedException {
+		super.removePojoSwaps(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setImplClasses(Map<Class<?>,Class<?>> values) throws LockedException {
+		super.setImplClasses(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public <T> CoreApi addImplClass(Class<T> interfaceClass, Class<? extends T> implClass) throws LockedException {
 		super.addImplClass(interfaceClass, implClass);
 		return this;
 	}
 
 	@Override /* CoreApi */
+	public Parser setBeanDictionary(Class<?>...values) throws LockedException {
+		super.setBeanDictionary(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setBeanDictionary(Collection<Class<?>> values) throws LockedException {
+		super.setBeanDictionary(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser addToBeanDictionary(Class<?>...values) throws LockedException {
+		super.addToBeanDictionary(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser addToBeanDictionary(Collection<Class<?>> values) throws LockedException {
+		super.addToBeanDictionary(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser removeFromBeanDictionary(Class<?>...values) throws LockedException {
+		super.removeFromBeanDictionary(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser removeFromBeanDictionary(Collection<Class<?>> values) throws LockedException {
+		super.removeFromBeanDictionary(values);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setBeanTypePropertyName(String value) throws LockedException {
+		super.setBeanTypePropertyName(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setDefaultParser(Class<?> value) throws LockedException {
+		super.setDefaultParser(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setLocale(Locale value) throws LockedException {
+		super.setLocale(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setTimeZone(TimeZone value) throws LockedException {
+		super.setTimeZone(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setMediaType(MediaType value) throws LockedException {
+		super.setMediaType(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setDebug(boolean value) throws LockedException {
+		super.setDebug(value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setProperty(String name, Object value) throws LockedException {
+		super.setProperty(name, value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser setProperties(ObjectMap properties) throws LockedException {
+		super.setProperties(properties);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser addToProperty(String name, Object value) throws LockedException {
+		super.addToProperty(name, value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser putToProperty(String name, Object key, Object value) throws LockedException {
+		super.putToProperty(name, key, value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser putToProperty(String name, Object value) throws LockedException {
+		super.putToProperty(name, value);
+		return this;
+	}
+
+	@Override /* CoreApi */
+	public Parser removeFromProperty(String name, Object value) throws LockedException {
+		super.removeFromProperty(name, value);
+		return this;
+	}
+
+
+	//--------------------------------------------------------------------------------
+	// Overridden methods
+	//--------------------------------------------------------------------------------
+
+	@Override /* CoreApi */
 	public Parser setClassLoader(ClassLoader classLoader) throws LockedException {
 		super.setClassLoader(classLoader);
 		return this;

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/68dffad1/juneau-core/src/main/java/org/apache/juneau/parser/ParserContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/parser/ParserContext.java b/juneau-core/src/main/java/org/apache/juneau/parser/ParserContext.java
index a314a41..1432efb 100644
--- a/juneau-core/src/main/java/org/apache/juneau/parser/ParserContext.java
+++ b/juneau-core/src/main/java/org/apache/juneau/parser/ParserContext.java
@@ -17,39 +17,6 @@ import org.apache.juneau.json.*;
 
 /**
  * Configurable properties common to all parsers.
- *
- * <h6 class='topic' id='ConfigProperties'>Configurable properties common to all parsers</h6>
- * <table class='styled' style='border-collapse: collapse;'>
- * 	<tr><th>Setting name</th><th>Description</th><th>Data type</th><th>Default value</th><th>Session overridable</th></tr>
- * 	<tr>
- * 		<td>{@link #PARSER_trimStrings}</td>
- * 		<td>Trim parsed strings.</td>
- * 		<td><code>Boolean</code></td>
- * 		<td><jk>false</jk></td>
- * 		<td><jk>true</jk></td>
- * 	</tr>
- * 	<tr>
- * 		<td>{@link #PARSER_strict}</td>
- * 		<td>Strict mode.</td>
- * 		<td><code>Boolean</code></td>
- * 		<td><jk>false</jk></td>
- * 		<td><jk>true</jk></td>
- * 	</tr>
- * 	<tr>
- * 		<td>{@link #PARSER_inputStreamCharset}</td>
- * 		<td>Input stream charset.</td>
- * 		<td><code>String</code></td>
- * 		<td><js>"UTF-8"</js></td>
- * 		<td><jk>true</jk></td>
- * 	</tr>
- * 	<tr>
- * 		<td>{@link #PARSER_fileCharset}</td>
- * 		<td>File charset.</td>
- * 		<td><code>String</code></td>
- * 		<td><js>"default"</js></td>
- * 		<td><jk>true</jk></td>
- * 	</tr>
- * </table>
  */
 public class ParserContext extends BeanContext {