http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/68dffad1/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerGroup.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerGroup.java 
b/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerGroup.java
index ec62ae8..63f0400 100644
--- 
a/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerGroup.java
+++ 
b/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerGroup.java
@@ -74,7 +74,7 @@ public final class SerializerGroup extends Lockable {
        /**
         * Adds the specified serializer to the beginning of this group.
         *
-        * @param s - The serializer to add to this group.
+        * @param s The serializer to add to this group.
         * @return This object (for method chaining).
         */
        public SerializerGroup append(Serializer s) {
@@ -237,103 +237,892 @@ public final class SerializerGroup extends Lockable {
                return l;
        }
 
+
        
//--------------------------------------------------------------------------------
-       // Convenience methods for setting properties on all serializers.
+       // Properties
        
//--------------------------------------------------------------------------------
 
        /**
-        * Shortcut for calling {@link Serializer#setProperty(String, Object)} 
on all serializers in this group.
+        * Calls {@link Serializer#setMaxDepth(int)} on all serializers in this 
group.
+        *
+        * @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 SerializerContext#SERIALIZER_maxDepth
+        */
+       public SerializerGroup setMaxDepth(int value) throws LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setMaxDepth(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setInitialDepth(int)} on all serializers in 
this group.
+        *
+        * @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 SerializerContext#SERIALIZER_initialDepth
+        */
+       public SerializerGroup setInitialDepth(int value) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setInitialDepth(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setDetectRecursions(boolean)} on all 
serializers in this group.
+        *
+        * @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 SerializerContext#SERIALIZER_detectRecursions
+        */
+       public SerializerGroup setDetectRecursions(boolean value) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setDetectRecursions(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setIgnoreRecursions(boolean)} on all 
serializers in this group.
+        *
+        * @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 SerializerContext#SERIALIZER_ignoreRecursions
+        */
+       public SerializerGroup setIgnoreRecursions(boolean value) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setIgnoreRecursions(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setUseIndentation(boolean)} on all 
serializers in this group.
+        *
+        * @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 SerializerContext#SERIALIZER_useIndentation
+        */
+       public SerializerGroup setUseIndentation(boolean value) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setUseIndentation(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setAddBeanTypeProperties(boolean)} on all 
serializers in this group.
+        *
+        * @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 SerializerContext#SERIALIZER_addBeanTypeProperties
+        */
+       public SerializerGroup setAddBeanTypeProperties(boolean value) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setAddBeanTypeProperties(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setQuoteChar(char)} on all serializers in 
this group.
+        *
+        * @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 SerializerContext#SERIALIZER_quoteChar
+        */
+       public SerializerGroup setQuoteChar(char value) throws LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setQuoteChar(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setTrimNullProperties(boolean)} on all 
serializers in this group.
+        *
+        * @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 SerializerContext#SERIALIZER_trimNullProperties
+        */
+       public SerializerGroup setTrimNullProperties(boolean value) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setTrimNullProperties(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setTrimEmptyCollections(boolean)} on all 
serializers in this group.
+        *
+        * @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 SerializerContext#SERIALIZER_trimEmptyCollections
+        */
+       public SerializerGroup setTrimEmptyCollections(boolean value) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setTrimEmptyCollections(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setTrimEmptyMaps(boolean)} on all 
serializers in this group.
+        *
+        * @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 SerializerContext#SERIALIZER_trimEmptyMaps
+        */
+       public SerializerGroup setTrimEmptyMaps(boolean value) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setTrimEmptyMaps(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setTrimStrings(boolean)} on all serializers 
in this group.
+        *
+        * @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 SerializerContext#SERIALIZER_trimStrings
+        */
+       public SerializerGroup setTrimStrings(boolean value) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setTrimStrings(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setRelativeUriBase(String)} on all 
serializers in this group.
+        *
+        * @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 SerializerContext#SERIALIZER_relativeUriBase
+        */
+       public SerializerGroup setRelativeUriBase(String value) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setRelativeUriBase(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setAbsolutePathUriBase(String)} on all 
serializers in this group.
+        *
+        * @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 SerializerContext#SERIALIZER_absolutePathUriBase
+        */
+       public SerializerGroup setAbsolutePathUriBase(String value) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setAbsolutePathUriBase(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setSortCollections(boolean)} on all 
serializers in this group.
+        *
+        * @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 SerializerContext#SERIALIZER_sortCollections
+        */
+       public SerializerGroup setSortCollections(boolean value) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setSortCollections(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setSortMaps(boolean)} on all serializers in 
this group.
+        *
+        * @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 SerializerContext#SERIALIZER_sortMaps
+        */
+       public SerializerGroup setSortMaps(boolean value) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setSortMaps(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setBeansRequireDefaultConstructor(boolean)} 
on all serializers in this group.
+        *
+        * @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 BeanContext#BEAN_beansRequireDefaultConstructor
+        */
+       public SerializerGroup setBeansRequireDefaultConstructor(boolean value) 
throws LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setBeansRequireDefaultConstructor(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setBeansRequireSerializable(boolean)} on all 
serializers in this group.
+        *
+        * @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 BeanContext#BEAN_beansRequireSerializable
+        */
+       public SerializerGroup setBeansRequireSerializable(boolean value) 
throws LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setBeansRequireSerializable(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setBeansRequireSettersForGetters(boolean)} 
on all serializers in this group.
+        *
+        * @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 BeanContext#BEAN_beansRequireSettersForGetters
+        */
+       public SerializerGroup setBeansRequireSettersForGetters(boolean value) 
throws LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setBeansRequireSettersForGetters(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setBeansRequireSomeProperties(boolean)} on 
all serializers in this group.
+        *
+        * @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 BeanContext#BEAN_beansRequireSomeProperties
+        */
+       public SerializerGroup setBeansRequireSomeProperties(boolean value) 
throws LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setBeansRequireSomeProperties(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setBeanMapPutReturnsOldValue(boolean)} on 
all serializers in this group.
+        *
+        * @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 BeanContext#BEAN_beanMapPutReturnsOldValue
+        */
+       public SerializerGroup setBeanMapPutReturnsOldValue(boolean value) 
throws LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setBeanMapPutReturnsOldValue(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setBeanConstructorVisibility(Visibility)} on 
all serializers in this group.
+        *
+        * @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 BeanContext#BEAN_beanConstructorVisibility
+        */
+       public SerializerGroup setBeanConstructorVisibility(Visibility value) 
throws LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setBeanConstructorVisibility(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setBeanClassVisibility(Visibility)} on all 
serializers in this group.
+        *
+        * @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 BeanContext#BEAN_beanClassVisibility
+        */
+       public SerializerGroup setBeanClassVisibility(Visibility value) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setBeanClassVisibility(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setBeanFieldVisibility(Visibility)} on all 
serializers in this group.
+        *
+        * @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 BeanContext#BEAN_beanFieldVisibility
+        */
+       public SerializerGroup setBeanFieldVisibility(Visibility value) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setBeanFieldVisibility(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setMethodVisibility(Visibility)} on all 
serializers in this group.
+        *
+        * @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 BeanContext#BEAN_methodVisibility
+        */
+       public SerializerGroup setMethodVisibility(Visibility value) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setMethodVisibility(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setUseJavaBeanIntrospector(boolean)} on all 
serializers in this group.
+        *
+        * @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 BeanContext#BEAN_useJavaBeanIntrospector
+        */
+       public SerializerGroup setUseJavaBeanIntrospector(boolean value) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setUseJavaBeanIntrospector(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setUseInterfaceProxies(boolean)} on all 
serializers in this group.
+        *
+        * @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 BeanContext#BEAN_useInterfaceProxies
+        */
+       public SerializerGroup setUseInterfaceProxies(boolean value) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setUseInterfaceProxies(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setIgnoreUnknownBeanProperties(boolean)} on 
all serializers in this group.
+        *
+        * @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 BeanContext#BEAN_ignoreUnknownBeanProperties
+        */
+       public SerializerGroup setIgnoreUnknownBeanProperties(boolean value) 
throws LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setIgnoreUnknownBeanProperties(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setIgnoreUnknownNullBeanProperties(boolean)} 
on all serializers in this group.
+        *
+        * @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 BeanContext#BEAN_ignoreUnknownNullBeanProperties
+        */
+       public SerializerGroup setIgnoreUnknownNullBeanProperties(boolean 
value) throws LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setIgnoreUnknownNullBeanProperties(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setIgnorePropertiesWithoutSetters(boolean)} 
on all serializers in this group.
+        *
+        * @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 BeanContext#BEAN_ignorePropertiesWithoutSetters
+        */
+       public SerializerGroup setIgnorePropertiesWithoutSetters(boolean value) 
throws LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setIgnorePropertiesWithoutSetters(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link 
Serializer#setIgnoreInvocationExceptionsOnGetters(boolean)} on all serializers 
in this group.
+        *
+        * @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 BeanContext#BEAN_ignoreInvocationExceptionsOnGetters
+        */
+       public SerializerGroup setIgnoreInvocationExceptionsOnGetters(boolean 
value) throws LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setIgnoreInvocationExceptionsOnGetters(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link 
Serializer#setIgnoreInvocationExceptionsOnSetters(boolean)} on all serializers 
in this group.
+        *
+        * @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 BeanContext#BEAN_ignoreInvocationExceptionsOnSetters
+        */
+       public SerializerGroup setIgnoreInvocationExceptionsOnSetters(boolean 
value) throws LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setIgnoreInvocationExceptionsOnSetters(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setSortProperties(boolean)} on all 
serializers in this group.
+        *
+        * @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 BeanContext#BEAN_sortProperties
+        */
+       public SerializerGroup setSortProperties(boolean value) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setSortProperties(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setNotBeanPackages(String...)} on all 
serializers in this group.
+        *
+        * @param values The new value for this property.
+        * @return This object (for method chaining).
+        * @throws LockedException If {@link #lock()} was called on this class.
+        * @see BeanContext#BEAN_notBeanPackages
+        */
+       public SerializerGroup setNotBeanPackages(String...values) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setNotBeanPackages(values);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setNotBeanPackages(Collection)} on all 
serializers in this group.
+        *
+        * @param values The new value for this property.
+        * @return This object (for method chaining).
+        * @throws LockedException If {@link #lock()} was called on this class.
+        * @see BeanContext#BEAN_notBeanPackages
+        */
+       public SerializerGroup setNotBeanPackages(Collection<String> values) 
throws LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setNotBeanPackages(values);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#addNotBeanPackages(String...)} on all 
serializers in this group.
+        *
+        * @param values The values to remove from this property.
+        * @return This object (for method chaining).
+        * @throws LockedException If {@link #lock()} was called on this class.
+        * @see BeanContext#BEAN_notBeanPackages
+        * @see BeanContext#BEAN_notBeanPackages_remove
+        */
+       public SerializerGroup addNotBeanPackages(String...values) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.addNotBeanPackages(values);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#addNotBeanPackages(Collection)} on all 
serializers in this group.
+        *
+        * @param values The values to remove from this property.
+        * @return This object (for method chaining).
+        * @throws LockedException If {@link #lock()} was called on this class.
+        * @see BeanContext#BEAN_notBeanPackages
+        * @see BeanContext#BEAN_notBeanPackages_remove
+        */
+       public SerializerGroup addNotBeanPackages(Collection<String> values) 
throws LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.addNotBeanPackages(values);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#removeNotBeanPackages(String...)} on all 
serializers in this group.
+        *
+        * @param values The values to remove from this property.
+        * @return This object (for method chaining).
+        * @throws LockedException If {@link #lock()} was called on this class.
+        * @see BeanContext#BEAN_notBeanPackages
+        * @see BeanContext#BEAN_notBeanPackages_remove
+        */
+       public SerializerGroup removeNotBeanPackages(String...values) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.removeNotBeanPackages(values);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#removeNotBeanPackages(Collection)} on all 
serializers in this group.
+        *
+        * @param values The values to remove from this property.
+        * @return This object (for method chaining).
+        * @throws LockedException If {@link #lock()} was called on this class.
+        * @see BeanContext#BEAN_notBeanPackages
+        * @see BeanContext#BEAN_notBeanPackages_remove
+        */
+       public SerializerGroup removeNotBeanPackages(Collection<String> values) 
throws LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.removeNotBeanPackages(values);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setNotBeanClasses(Class...)} on all 
serializers in this group.
+        *
+        * @param values The new value for this property.
+        * @return This object (for method chaining).
+        * @throws LockedException If {@link #lock()} was called on this class.
+        * @see BeanContext#BEAN_notBeanClasses
+        */
+       public SerializerGroup setNotBeanClasses(Class<?>...values) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setNotBeanClasses(values);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setNotBeanClasses(Collection)} on all 
serializers in this group.
+        *
+        * @param values The new value for this property.
+        * @return This object (for method chaining).
+        * @throws LockedException If {@link #lock()} was called on this class.
+        * @see BeanContext#BEAN_notBeanPackages
+        */
+       public SerializerGroup setNotBeanClasses(Collection<Class<?>> values) 
throws LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setNotBeanClasses(values);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#addNotBeanClasses(Class...)} on all 
serializers in this group.
+        *
+        * @param values The values to add to this property.
+        * @return This object (for method chaining).
+        * @throws LockedException If {@link #lock()} was called on this class.
+        * @see BeanContext#BEAN_notBeanClasses
+        * @see BeanContext#BEAN_notBeanClasses_add
+        */
+       public SerializerGroup addNotBeanClasses(Class<?>...values) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.addNotBeanClasses(values);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#addNotBeanClasses(Collection)} on all 
serializers in this group.
+        *
+        * @param values The values to add to this property.
+        * @return This object (for method chaining).
+        * @throws LockedException If {@link #lock()} was called on this class.
+        * @see BeanContext#BEAN_notBeanClasses
+        * @see BeanContext#BEAN_notBeanClasses_add
+        */
+       public SerializerGroup addNotBeanClasses(Collection<Class<?>> values) 
throws LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.addNotBeanClasses(values);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#removeNotBeanClasses(Class...)} on all 
serializers in this group.
         *
-        * @param property The property name.
-        * @param value The property value.
-        * @throws LockedException If {@link #lock()} was called on this object.
+        * @param values The values to remove from this property.
         * @return This object (for method chaining).
+        * @throws LockedException If {@link #lock()} was called on this class.
+        * @see BeanContext#BEAN_notBeanClasses
+        * @see BeanContext#BEAN_notBeanClasses_remove
         */
-       public SerializerGroup setProperty(String property, Object value) 
throws LockedException {
+       public SerializerGroup removeNotBeanClasses(Class<?>...values) throws 
LockedException {
                checkLock();
                for (Serializer s : serializers)
-                       s.setProperty(property, value);
+                       s.removeNotBeanClasses(values);
                return this;
        }
 
        /**
-        * Shortcut for calling {@link Serializer#setProperties(ObjectMap)} on 
all serializers in this group.
+        * Calls {@link Serializer#removeNotBeanClasses(Collection)} on all 
serializers in this group.
         *
-        * @param properties The properties to set.  Ignored if <jk>null</jk>.
-        * @throws LockedException If {@link #lock()} was called on this object.
+        * @param values The values to remove from this property.
         * @return This object (for method chaining).
+        * @throws LockedException If {@link #lock()} was called on this class.
+        * @see BeanContext#BEAN_notBeanClasses
+        * @see BeanContext#BEAN_notBeanClasses_remove
         */
-       public SerializerGroup setProperties(ObjectMap properties) {
+       public SerializerGroup removeNotBeanClasses(Collection<Class<?>> 
values) throws LockedException {
                checkLock();
                for (Serializer s : serializers)
-                       s.setProperties(properties);
+                       s.removeNotBeanClasses(values);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setBeanFilters(Class...)} on all serializers 
in this group.
+        *
+        * @param values The new value for this property.
+        * @return This object (for method chaining).
+        * @throws LockedException If {@link #lock()} was called on this class.
+        * @see BeanContext#BEAN_beanFilters
+        */
+       public SerializerGroup setBeanFilters(Class<?>...values) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setBeanFilters(values);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setBeanFilters(Collection)} on all 
serializers in this group.
+        *
+        * @param values The new value for this property.
+        * @return This object (for method chaining).
+        * @throws LockedException If {@link #lock()} was called on this class.
+        * @see BeanContext#BEAN_beanFilters
+        */
+       public SerializerGroup setBeanFilters(Collection<Class<?>> values) 
throws LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setBeanFilters(values);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#addBeanFilters(Class...)} on all serializers 
in this group.
+        *
+        * @param values The values to add to this property.
+        * @return This object (for method chaining).
+        * @throws LockedException If {@link #lock()} was called on this class.
+        * @see BeanContext#BEAN_beanFilters
+        * @see BeanContext#BEAN_beanFilters_add
+        */
+       public SerializerGroup addBeanFilters(Class<?>...values) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.addBeanFilters(values);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#addBeanFilters(Collection)} on all 
serializers in this group.
+        *
+        * @param values The values to add to this property.
+        * @return This object (for method chaining).
+        * @throws LockedException If {@link #lock()} was called on this class.
+        * @see BeanContext#BEAN_beanFilters
+        * @see BeanContext#BEAN_beanFilters_add
+        */
+       public SerializerGroup addBeanFilters(Collection<Class<?>> values) 
throws LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.addBeanFilters(values);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#removeBeanFilters(Class...)} on all 
serializers in this group.
+        *
+        * @param values The values to remove from this property.
+        * @return This object (for method chaining).
+        * @throws LockedException If {@link #lock()} was called on this class.
+        * @see BeanContext#BEAN_beanFilters
+        * @see BeanContext#BEAN_beanFilters_remove
+        */
+       public SerializerGroup removeBeanFilters(Class<?>...values) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.removeBeanFilters(values);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#removeBeanFilters(Collection)} on all 
serializers in this group.
+        *
+        * @param values The values to remove from this property.
+        * @return This object (for method chaining).
+        * @throws LockedException If {@link #lock()} was called on this class.
+        * @see BeanContext#BEAN_beanFilters
+        * @see BeanContext#BEAN_beanFilters_remove
+        */
+       public SerializerGroup removeBeanFilters(Collection<Class<?>> values) 
throws LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.removeBeanFilters(values);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setPojoSwaps(Class...)} on all serializers 
in this group.
+        *
+        * @param values The new value for this property.
+        * @return This object (for method chaining).
+        * @throws LockedException If {@link #lock()} was called on this class.
+        * @see BeanContext#BEAN_pojoSwaps
+        */
+       public SerializerGroup setPojoSwaps(Class<?>...values) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setPojoSwaps(values);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setPojoSwaps(Collection)} on all serializers 
in this group.
+        *
+        * @param values The new value for this property.
+        * @return This object (for method chaining).
+        * @throws LockedException If {@link #lock()} was called on this class.
+        * @see BeanContext#BEAN_pojoSwaps
+        */
+       public SerializerGroup setPojoSwaps(Collection<Class<?>> values) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setPojoSwaps(values);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#addPojoSwaps(Class...)} on all serializers 
in this group.
+        *
+        * @param values The values to add to this property.
+        * @return This object (for method chaining).
+        * @throws LockedException If {@link #lock()} was called on this class.
+        * @see BeanContext#BEAN_pojoSwaps
+        * @see BeanContext#BEAN_pojoSwaps_add
+        */
+       public SerializerGroup addPojoSwaps(Class<?>...values) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.addPojoSwaps(values);
                return this;
        }
 
        /**
-        * Shortcut for calling {@link Serializer#addNotBeanClasses(Class[])} 
on all serializers in this group.
+        * Calls {@link Serializer#addPojoSwaps(Collection)} on all serializers 
in this group.
         *
-        * @param classes The classes to specify as not-beans to the underlying 
bean context of all serializers in this group.
-        * @throws LockedException If {@link #lock()} was called on this object.
+        * @param values The values to add to this property.
         * @return This object (for method chaining).
+        * @throws LockedException If {@link #lock()} was called on this class.
+        * @see BeanContext#BEAN_pojoSwaps
+        * @see BeanContext#BEAN_pojoSwaps_add
         */
-       public SerializerGroup addNotBeanClasses(Class<?>...classes) throws 
LockedException {
+       public SerializerGroup addPojoSwaps(Collection<Class<?>> values) throws 
LockedException {
                checkLock();
                for (Serializer s : serializers)
-                       s.addNotBeanClasses(classes);
+                       s.addPojoSwaps(values);
                return this;
        }
 
        /**
-        * Shortcut for calling {@link Serializer#addBeanFilters(Class[])} on 
all serializers in this group.
+        * Calls {@link Serializer#removePojoSwaps(Class...)} on all 
serializers in this group.
         *
-        * @param classes The classes to add bean filters for to the underlying 
bean context of all serializers in this group.
-        * @throws LockedException If {@link #lock()} was called on this object.
+        * @param values The values to remove from this property.
         * @return This object (for method chaining).
+        * @throws LockedException If {@link #lock()} was called on this class.
+        * @see BeanContext#BEAN_pojoSwaps
+        * @see BeanContext#BEAN_pojoSwaps_remove
         */
-       public SerializerGroup addBeanFilters(Class<?>...classes) throws 
LockedException {
+       public SerializerGroup removePojoSwaps(Class<?>...values) throws 
LockedException {
                checkLock();
                for (Serializer s : serializers)
-                       s.addBeanFilters(classes);
+                       s.removePojoSwaps(values);
                return this;
        }
 
        /**
-        * Shortcut for calling {@link Serializer#addPojoSwaps(Class[])} on all 
serializers in this group.
+        * Calls {@link Serializer#removePojoSwaps(Collection)} on all 
serializers in this group.
         *
-        * @param classes The classes to add POJO swaps for to the underlying 
bean context of all serializers in this group.
-        * @throws LockedException If {@link #lock()} was called on this object.
+        * @param values The values to remove from this property.
         * @return This object (for method chaining).
+        * @throws LockedException If {@link #lock()} was called on this class.
+        * @see BeanContext#BEAN_pojoSwaps
+        * @see BeanContext#BEAN_pojoSwaps_remove
         */
-       public SerializerGroup addPojoSwaps(Class<?>...classes) throws 
LockedException {
+       public SerializerGroup removePojoSwaps(Collection<Class<?>> values) 
throws LockedException {
                checkLock();
                for (Serializer s : serializers)
-                       s.addPojoSwaps(classes);
+                       s.removePojoSwaps(values);
                return this;
        }
 
        /**
-        * Shortcut for calling {@link Serializer#addToDictionary(Class[])} on 
all serializers in this group.
+        * Calls {@link Serializer#setImplClasses(Map)} on all serializers in 
this group.
         *
-        * @param classes The classes to add to the bean dictionary on the 
underlying bean context of all serializers in this group.
-        * @throws LockedException If {@link #lock()} was called on this object.
+        * @param values The new value for this property.
         * @return This object (for method chaining).
+        * @throws LockedException If {@link #lock()} was called on this class.
+        * @see BeanContext#BEAN_implClasses
         */
-       public SerializerGroup addToDictionary(Class<?>...classes) throws 
LockedException {
+       public SerializerGroup setImplClasses(Map<Class<?>,Class<?>> values) 
throws LockedException {
                checkLock();
                for (Serializer s : serializers)
-                       s.addToDictionary(classes);
+                       s.setImplClasses(values);
                return this;
        }
 
        /**
-        * Shortcut for calling {@link Serializer#addImplClass(Class, Class)} 
on all serializers in this group.
+        * Calls {@link Serializer#addImplClass(Class,Class)} on all 
serializers in this group.
         *
-        * @param <T> The interface or abstract class type.
-        * @param interfaceClass The interface or abstract class.
+        * @param interfaceClass The interface class.
         * @param implClass The implementation class.
-        * @throws LockedException If {@link #lock()} was called on this object.
+        * @param <T> The class type of the interface.
         * @return This object (for method chaining).
+        * @throws LockedException If {@link #lock()} was called on this class.
+        * @see BeanContext#BEAN_implClasses
+        * @see BeanContext#BEAN_implClasses_put
         */
        public <T> SerializerGroup addImplClass(Class<T> interfaceClass, 
Class<? extends T> implClass) throws LockedException {
                checkLock();
@@ -342,12 +1131,308 @@ public final class SerializerGroup extends Lockable {
                return this;
        }
 
+       /**
+        * Calls {@link Serializer#setBeanDictionary(Class...)} on all 
serializers in this group.
+        *
+        * @param values The new value for this property.
+        * @return This object (for method chaining).
+        * @throws LockedException If {@link #lock()} was called on this class.
+        * @see BeanContext#BEAN_beanDictionary
+        */
+       public SerializerGroup setBeanDictionary(Class<?>...values) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setBeanDictionary(values);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setBeanDictionary(Collection)} on all 
serializers in this group.
+        *
+        * @param values The values to add to this property.
+        * @return This object (for method chaining).
+        * @throws LockedException If {@link #lock()} was called on this class.
+        * @see BeanContext#BEAN_beanDictionary
+        * @see BeanContext#BEAN_beanDictionary_add
+        */
+       public SerializerGroup setBeanDictionary(Collection<Class<?>> values) 
throws LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setBeanDictionary(values);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#addToBeanDictionary(Class...)} on all 
serializers in this group.
+        *
+        * @param values The values to add to this property.
+        * @return This object (for method chaining).
+        * @throws LockedException If {@link #lock()} was called on this class.
+        * @see BeanContext#BEAN_beanDictionary
+        * @see BeanContext#BEAN_beanDictionary_add
+        */
+       public SerializerGroup addToBeanDictionary(Class<?>...values) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.addToBeanDictionary(values);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#addToBeanDictionary(Collection)} on all 
serializers in this group.
+        *
+        * @param values The values to add to this property.
+        * @return This object (for method chaining).
+        * @throws LockedException If {@link #lock()} was called on this class.
+        * @see BeanContext#BEAN_beanDictionary
+        * @see BeanContext#BEAN_beanDictionary_add
+        */
+       public SerializerGroup addToBeanDictionary(Collection<Class<?>> values) 
throws LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.addToBeanDictionary(values);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#removeFromBeanDictionary(Class...)} on all 
serializers in this group.
+        *
+        * @param values The values to remove from this property.
+        * @return This object (for method chaining).
+        * @throws LockedException If {@link #lock()} was called on this class.
+        * @see BeanContext#BEAN_beanDictionary
+        * @see BeanContext#BEAN_beanDictionary_remove
+        */
+       public SerializerGroup removeFromBeanDictionary(Class<?>...values) 
throws LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.removeFromBeanDictionary(values);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#removeFromBeanDictionary(Collection)} on all 
serializers in this group.
+        *
+        * @param values The values to remove from this property.
+        * @return This object (for method chaining).
+        * @throws LockedException If {@link #lock()} was called on this class.
+        * @see BeanContext#BEAN_beanDictionary
+        * @see BeanContext#BEAN_beanDictionary_remove
+        */
+       public SerializerGroup removeFromBeanDictionary(Collection<Class<?>> 
values) throws LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.removeFromBeanDictionary(values);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setBeanTypePropertyName(String)} on all 
serializers in this group.
+        *
+        * @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 BeanContext#BEAN_beanTypePropertyName
+        */
+       public SerializerGroup setBeanTypePropertyName(String value) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setBeanTypePropertyName(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setDefaultParser(Class)} on all serializers 
in this group.
+        *
+        * @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 BeanContext#BEAN_defaultParser
+        */
+       public SerializerGroup setDefaultParser(Class<?> value) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setDefaultParser(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setLocale(Locale)} on all serializers in 
this group.
+        *
+        * @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 BeanContext#BEAN_locale
+        */
+       public SerializerGroup setLocale(Locale value) throws LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setLocale(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setTimeZone(TimeZone)} on all serializers in 
this group.
+        *
+        * @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 BeanContext#BEAN_timeZone
+        */
+       public SerializerGroup setTimeZone(TimeZone value) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setTimeZone(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setMediaType(MediaType)} on all serializers 
in this group.
+        *
+        * @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 BeanContext#BEAN_mediaType
+        */
+       public SerializerGroup setMediaType(MediaType value) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setMediaType(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setDebug(boolean)} on all serializers in 
this group.
+        *
+        * @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 BeanContext#BEAN_debug
+        */
+       public SerializerGroup setDebug(boolean value) throws LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setDebug(value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setProperty(String,Object)} on all 
serializers in this group.
+        *
+        * @param name The property name.
+        * @param value The property value.
+        * @return This class (for method chaining).
+        * @throws LockedException If {@link #lock()} has been called on this 
object or {@link ContextFactory} object.
+        * @see ContextFactory#setProperty(String, Object)
+        */
+       public SerializerGroup setProperty(String name, Object value) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setProperty(name, value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#setProperties(ObjectMap)} on all serializers 
in this group.
+        *
+        * @param properties The properties to set on this class.
+        * @return This class (for method chaining).
+        * @throws LockedException If {@link #lock()} has been called on this 
object.
+        * @see ContextFactory#setProperties(java.util.Map)
+        */
+       public SerializerGroup setProperties(ObjectMap properties) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setProperties(properties);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#addToProperty(String,Object)} on all 
serializers in this group.
+        *
+        * @param name The property name.
+        * @param value The new value to add to the SET property.
+        * @return This object (for method chaining).
+        * @throws ConfigException If property is not a SET property.
+        * @throws LockedException If {@link #lock()} has been called on this 
object.
+        */
+       public SerializerGroup addToProperty(String name, Object value) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.addToProperty(name, value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#putToProperty(String,Object,Object)} on all 
serializers in this group.
+        *
+        * @param name The property name.
+        * @param key The property value map key.
+        * @param value The property value map value.
+        * @return This object (for method chaining).
+        * @throws ConfigException If property is not a MAP property.
+        * @throws LockedException If {@link #lock()} has been called on this 
object.
+        */
+       public SerializerGroup putToProperty(String name, Object key, Object 
value) throws LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.putToProperty(name, key, value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#putToProperty(String,Object)} on all 
serializers in this group.
+        *
+        * @param name The property value.
+        * @param value The property value map value.
+        * @return This object (for method chaining).
+        * @throws ConfigException If property is not a MAP property.
+        * @throws LockedException If {@link #lock()} has been called on this 
object.
+        */
+       public SerializerGroup putToProperty(String name, Object value) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.putToProperty(name, value);
+               return this;
+       }
+
+       /**
+        * Calls {@link Serializer#removeFromProperty(String,Object)} on all 
serializers in this group.
+        *
+        * @param name The property name.
+        * @param value The property value in the SET property.
+        * @return This object (for method chaining).
+        * @throws ConfigException If property is not a SET property.
+        * @throws LockedException If {@link #lock()} has been called on this 
object.
+        */
+       public SerializerGroup removeFromProperty(String name, Object value) 
throws LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.removeFromProperty(name, value);
+               return this;
+       }
+
 
        
//--------------------------------------------------------------------------------
        // Overridden methods
        
//--------------------------------------------------------------------------------
 
        /**
+        * Calls {@link Serializer#setClassLoader(ClassLoader)} on all 
serializers in this group.
+        *
+        * @param classLoader The new classloader.
+        * @throws LockedException If {@link ContextFactory#lock()} was called 
on this class or the bean context.
+        * @return This object (for method chaining).
+        * @see ContextFactory#setClassLoader(ClassLoader)
+        */
+       public SerializerGroup setClassLoader(ClassLoader classLoader) throws 
LockedException {
+               checkLock();
+               for (Serializer s : serializers)
+                       s.setClassLoader(classLoader);
+               return this;
+       }
+
+       /**
         * Locks this group and all serializers in this group.
         */
        @Override /* Lockable */

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/68dffad1/juneau-core/src/main/java/org/apache/juneau/serializer/WriterSerializer.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/serializer/WriterSerializer.java 
b/juneau-core/src/main/java/org/apache/juneau/serializer/WriterSerializer.java
index 5f38d4a..27aa39c 100644
--- 
a/juneau-core/src/main/java/org/apache/juneau/serializer/WriterSerializer.java
+++ 
b/juneau-core/src/main/java/org/apache/juneau/serializer/WriterSerializer.java
@@ -45,6 +45,7 @@ public abstract class WriterSerializer extends Serializer {
                return true;
        }
 
+
        
//--------------------------------------------------------------------------------
        // Other methods
        
//--------------------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/68dffad1/juneau-core/src/main/java/org/apache/juneau/svl/VarResolver.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/svl/VarResolver.java 
b/juneau-core/src/main/java/org/apache/juneau/svl/VarResolver.java
index 6ffdaeb..37344b8 100644
--- a/juneau-core/src/main/java/org/apache/juneau/svl/VarResolver.java
+++ b/juneau-core/src/main/java/org/apache/juneau/svl/VarResolver.java
@@ -198,6 +198,7 @@ public class VarResolver extends CoreApi {
                createSession(null).resolveTo(s, w);
        }
 
+
        
//--------------------------------------------------------------------------------
        // Overridden methods
        
//--------------------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/68dffad1/juneau-core/src/main/java/org/apache/juneau/transform/PojoSwap.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/transform/PojoSwap.java 
b/juneau-core/src/main/java/org/apache/juneau/transform/PojoSwap.java
index efd94d1..910561f 100644
--- a/juneau-core/src/main/java/org/apache/juneau/transform/PojoSwap.java
+++ b/juneau-core/src/main/java/org/apache/juneau/transform/PojoSwap.java
@@ -229,6 +229,7 @@ public abstract class PojoSwap<T,S> {
                return ClassUtils.isParentClass(swapClass, o.getClass());
        }
 
+
        
//--------------------------------------------------------------------------------
        // Overridden methods
        
//--------------------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/68dffad1/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonParser.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonParser.java 
b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonParser.java
index 7f803ae..510078a 100644
--- a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonParser.java
+++ b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonParser.java
@@ -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.internal.*;
 import org.apache.juneau.parser.*;
@@ -55,7 +54,7 @@ public class UonParser extends ReaderParser {
        public static final UonParser DEFAULT_DECODING = new Decoding().lock();
 
        /** Reusable instance of {@link UonParser}, all default settings, 
whitespace-aware. */
-       public static final UonParser DEFAULT_WS_AWARE = new 
UonParser().setProperty(UON_whitespaceAware, true).lock();
+       public static final UonParser DEFAULT_WS_AWARE = new 
UonParser().setWhitespaceAware(true).lock();
 
        // Characters that need to be preceeded with an escape character.
        private static final AsciiSet escapedChars = new 
AsciiSet(",()~=$\u0001\u0002");
@@ -68,7 +67,7 @@ public class UonParser extends ReaderParser {
        public static class Decoding extends UonParser {
                /** Constructor */
                public Decoding() {
-                       setProperty(UON_decodeChars, true);
+                       setDecodeChars(true);
                }
        }
 
@@ -719,8 +718,9 @@ public class UonParser extends ReaderParser {
                return new UonParserSession(getContext(UonParserContext.class), 
input);
        }
 
+
        
//--------------------------------------------------------------------------------
-       // Overridden methods
+       // Entry point methods
        
//--------------------------------------------------------------------------------
 
        @Override /* Parser */
@@ -766,49 +766,460 @@ public class UonParser extends ReaderParser {
                return a;
        }
 
+
+       
//--------------------------------------------------------------------------------
+       // Properties
+       
//--------------------------------------------------------------------------------
+
+       /**
+        * <b>Configuration property:</b> Decode <js>"%xx"</js> sequences.
+        * <p>
+        * <ul>
+        *      <li><b>Name:</b> <js>"UonParser.decodeChars"</js>
+        *      <li><b>Data type:</b> <code>Boolean</code>
+        *      <li><b>Default:</b> <jk>false</jk> for {@link UonParser}, 
<jk>true</jk> for {@link UrlEncodingParser}
+        *      <li><b>Session-overridable:</b> <jk>true</jk>
+        * </ul>
+        * <p>
+        * Specify <jk>true</jk> if URI encoded characters should be decoded, 
<jk>false</jk>
+        *      if they've already been decoded before being passed to this 
parser.
+        * <p>
+        * <h5 class='section'>Notes:</h5>
+        * <ul>
+        *      <li>This is equivalent to calling 
<code>setProperty(<jsf>UON_decodeChars</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 UonParserContext#UON_decodeChars
+        */
+       public UonParser setDecodeChars(boolean value) throws LockedException {
+               return setProperty(UON_decodeChars, value);
+       }
+
+       /**
+        * <b>Configuration property:</b> Whitespace aware.
+        * <p>
+        * <ul>
+        *      <li><b>Name:</b> <js>"UonParser.whitespaceAware"</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>
+        * Expect input to contain readable whitespace characters from using 
the {@link UonSerializerContext#UON_useWhitespace} setting.
+        * <p>
+        * <h5 class='section'>Notes:</h5>
+        * <ul>
+        *      <li>This is equivalent to calling 
<code>setProperty(<jsf>UON_whitespaceAware</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 UonParserContext#UON_whitespaceAware
+        */
+       public UonParser setWhitespaceAware(boolean value) throws 
LockedException {
+               return setProperty(UON_whitespaceAware, value);
+       }
+
        @Override /* Parser */
-       public UonParser setProperty(String property, Object value) throws 
LockedException {
-               super.setProperty(property, value);
+       public UonParser setTrimStrings(boolean value) throws LockedException {
+               super.setTrimStrings(value);
+               return this;
+       }
+
+       @Override /* Parser */
+       public UonParser setStrict(boolean value) throws LockedException {
+               super.setStrict(value);
+               return this;
+       }
+
+       @Override /* Parser */
+       public UonParser setInputStreamCharset(String value) throws 
LockedException {
+               super.setInputStreamCharset(value);
+               return this;
+       }
+
+       @Override /* Parser */
+       public UonParser setFileCharset(String value) throws LockedException {
+               super.setFileCharset(value);
                return this;
        }
 
        @Override /* CoreApi */
-       public UonParser setProperties(ObjectMap properties) throws 
LockedException {
-               super.setProperties(properties);
+       public UonParser setBeansRequireDefaultConstructor(boolean value) 
throws LockedException {
+               super.setBeansRequireDefaultConstructor(value);
                return this;
        }
 
        @Override /* CoreApi */
-       public UonParser addNotBeanClasses(Class<?>...classes) throws 
LockedException {
-               super.addNotBeanClasses(classes);
+       public UonParser setBeansRequireSerializable(boolean value) throws 
LockedException {
+               super.setBeansRequireSerializable(value);
                return this;
        }
 
        @Override /* CoreApi */
-       public UonParser addBeanFilters(Class<?>...classes) throws 
LockedException {
-               super.addBeanFilters(classes);
+       public UonParser setBeansRequireSettersForGetters(boolean value) throws 
LockedException {
+               super.setBeansRequireSettersForGetters(value);
                return this;
        }
 
        @Override /* CoreApi */
-       public UonParser addPojoSwaps(Class<?>...classes) throws 
LockedException {
-               super.addPojoSwaps(classes);
+       public UonParser setBeansRequireSomeProperties(boolean value) throws 
LockedException {
+               super.setBeansRequireSomeProperties(value);
                return this;
        }
 
        @Override /* CoreApi */
-       public UonParser addToDictionary(Class<?>...classes) throws 
LockedException {
-               super.addToDictionary(classes);
+       public UonParser setBeanMapPutReturnsOldValue(boolean value) throws 
LockedException {
+               super.setBeanMapPutReturnsOldValue(value);
                return this;
        }
 
        @Override /* CoreApi */
-       public <T> UonParser addImplClass(Class<T> interfaceClass, Class<? 
extends T> implClass) throws LockedException {
+       public UonParser setBeanConstructorVisibility(Visibility value) throws 
LockedException {
+               super.setBeanConstructorVisibility(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser setBeanClassVisibility(Visibility value) throws 
LockedException {
+               super.setBeanClassVisibility(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser setBeanFieldVisibility(Visibility value) throws 
LockedException {
+               super.setBeanFieldVisibility(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser setMethodVisibility(Visibility value) throws 
LockedException {
+               super.setMethodVisibility(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser setUseJavaBeanIntrospector(boolean value) throws 
LockedException {
+               super.setUseJavaBeanIntrospector(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser setUseInterfaceProxies(boolean value) throws 
LockedException {
+               super.setUseInterfaceProxies(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser setIgnoreUnknownBeanProperties(boolean value) throws 
LockedException {
+               super.setIgnoreUnknownBeanProperties(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser setIgnoreUnknownNullBeanProperties(boolean value) 
throws LockedException {
+               super.setIgnoreUnknownNullBeanProperties(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser setIgnorePropertiesWithoutSetters(boolean value) 
throws LockedException {
+               super.setIgnorePropertiesWithoutSetters(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser setIgnoreInvocationExceptionsOnGetters(boolean value) 
throws LockedException {
+               super.setIgnoreInvocationExceptionsOnGetters(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser setIgnoreInvocationExceptionsOnSetters(boolean value) 
throws LockedException {
+               super.setIgnoreInvocationExceptionsOnSetters(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser setSortProperties(boolean value) throws 
LockedException {
+               super.setSortProperties(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser setNotBeanPackages(String...values) throws 
LockedException {
+               super.setNotBeanPackages(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser setNotBeanPackages(Collection<String> values) throws 
LockedException {
+               super.setNotBeanPackages(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser addNotBeanPackages(String...values) throws 
LockedException {
+               super.addNotBeanPackages(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser addNotBeanPackages(Collection<String> values) throws 
LockedException {
+               super.addNotBeanPackages(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser removeNotBeanPackages(String...values) throws 
LockedException {
+               super.removeNotBeanPackages(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser removeNotBeanPackages(Collection<String> values) 
throws LockedException {
+               super.removeNotBeanPackages(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser setNotBeanClasses(Class<?>...values) throws 
LockedException {
+               super.setNotBeanClasses(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser setNotBeanClasses(Collection<Class<?>> values) throws 
LockedException {
+               super.setNotBeanClasses(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser addNotBeanClasses(Class<?>...values) throws 
LockedException {
+               super.addNotBeanClasses(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser addNotBeanClasses(Collection<Class<?>> values) throws 
LockedException {
+               super.addNotBeanClasses(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser removeNotBeanClasses(Class<?>...values) throws 
LockedException {
+               super.removeNotBeanClasses(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser removeNotBeanClasses(Collection<Class<?>> values) 
throws LockedException {
+               super.removeNotBeanClasses(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser setBeanFilters(Class<?>...values) throws 
LockedException {
+               super.setBeanFilters(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser setBeanFilters(Collection<Class<?>> values) throws 
LockedException {
+               super.setBeanFilters(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser addBeanFilters(Class<?>...values) throws 
LockedException {
+               super.addBeanFilters(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser addBeanFilters(Collection<Class<?>> values) throws 
LockedException {
+               super.addBeanFilters(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser removeBeanFilters(Class<?>...values) throws 
LockedException {
+               super.removeBeanFilters(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser removeBeanFilters(Collection<Class<?>> values) throws 
LockedException {
+               super.removeBeanFilters(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser setPojoSwaps(Class<?>...values) throws LockedException 
{
+               super.setPojoSwaps(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser setPojoSwaps(Collection<Class<?>> values) throws 
LockedException {
+               super.setPojoSwaps(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser addPojoSwaps(Class<?>...values) throws LockedException 
{
+               super.addPojoSwaps(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser addPojoSwaps(Collection<Class<?>> values) throws 
LockedException {
+               super.addPojoSwaps(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser removePojoSwaps(Class<?>...values) throws 
LockedException {
+               super.removePojoSwaps(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser removePojoSwaps(Collection<Class<?>> values) throws 
LockedException {
+               super.removePojoSwaps(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser 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 UonParser setBeanDictionary(Class<?>...values) throws 
LockedException {
+               super.setBeanDictionary(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser setBeanDictionary(Collection<Class<?>> values) throws 
LockedException {
+               super.setBeanDictionary(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser addToBeanDictionary(Class<?>...values) throws 
LockedException {
+               super.addToBeanDictionary(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser addToBeanDictionary(Collection<Class<?>> values) 
throws LockedException {
+               super.addToBeanDictionary(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser removeFromBeanDictionary(Class<?>...values) throws 
LockedException {
+               super.removeFromBeanDictionary(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser removeFromBeanDictionary(Collection<Class<?>> values) 
throws LockedException {
+               super.removeFromBeanDictionary(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser setBeanTypePropertyName(String value) throws 
LockedException {
+               super.setBeanTypePropertyName(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser setDefaultParser(Class<?> value) throws 
LockedException {
+               super.setDefaultParser(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser setLocale(Locale value) throws LockedException {
+               super.setLocale(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser setTimeZone(TimeZone value) throws LockedException {
+               super.setTimeZone(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser setMediaType(MediaType value) throws LockedException {
+               super.setMediaType(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser setDebug(boolean value) throws LockedException {
+               super.setDebug(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser setProperty(String name, Object value) throws 
LockedException {
+               super.setProperty(name, value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser setProperties(ObjectMap properties) throws 
LockedException {
+               super.setProperties(properties);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser addToProperty(String name, Object value) throws 
LockedException {
+               super.addToProperty(name, value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser putToProperty(String name, Object key, Object value) 
throws LockedException {
+               super.putToProperty(name, key, value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser putToProperty(String name, Object value) throws 
LockedException {
+               super.putToProperty(name, value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonParser removeFromProperty(String name, Object value) throws 
LockedException {
+               super.removeFromProperty(name, value);
+               return this;
+       }
+
+
+       
//--------------------------------------------------------------------------------
+       // Overridden methods
+       
//--------------------------------------------------------------------------------
+
+       @Override /* CoreApi */
        public UonParser 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/urlencoding/UonParserContext.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonParserContext.java 
b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonParserContext.java
index 144ade5..f1f65bb 100644
--- 
a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonParserContext.java
+++ 
b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonParserContext.java
@@ -21,38 +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 UonParser#setProperty(String,Object)}
- *     <li>{@link UonParser#setProperties(ObjectMap)}
- *     <li>{@link UonParser#addNotBeanClasses(Class[])}
- *     <li>{@link UonParser#addBeanFilters(Class[])}
- *     <li>{@link UonParser#addPojoSwaps(Class[])}
- *     <li>{@link UonParser#addToDictionary(Class[])}
- *     <li>{@link UonParser#addImplClass(Class,Class)}
- * </ul>
- * <p>
  * See {@link ContextFactory} for more information about context properties.
  *
- * <h6 class='topic' id='ConfigProperties'>Configurable properties on the 
URL-Encoding and UON 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 #UON_decodeChars}</td>
- *             <td>Decode <js>"%xx"</js> sequences</td>
- *             <td><code>Boolean</code></td>
- *             <td><jk>false</jk> for {@link UonParser}<br><jk>true</jk> for 
{@link UrlEncodingParser}</td>
- *             <td><jk>true</jk></td>
- *     </tr>
- *     <tr>
- *             <td>{@link #UON_whitespaceAware}</td>
- *             <td>Whitespace aware</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.

Reply via email to