http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/68dffad1/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonSerializer.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonSerializer.java 
b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonSerializer.java
index 4a227ed..8c7848f 100644
--- a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonSerializer.java
+++ b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonSerializer.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.urlencoding;
 
-import static org.apache.juneau.serializer.SerializerContext.*;
 import static org.apache.juneau.urlencoding.UonSerializerContext.*;
 
 import java.lang.reflect.*;
@@ -179,46 +178,46 @@ public class UonSerializer extends WriterSerializer {
        public static final UonSerializer DEFAULT_SIMPLE_ENCODING = new 
SimpleEncoding().lock();
 
        /**
-        * Equivalent to <code><jk>new</jk> 
UonSerializer().setProperty(UonSerializerContext.<jsf>UON_simpleMode</jsf>,<jk>true</jk>);</code>.
+        * Equivalent to <code><jk>new</jk> 
UonSerializer().setSimpleMode(<jk>true</jk>);</code>.
         */
        @Produces(value="text/uon-simple",contentType="text/uon")
        public static class Simple extends UonSerializer {
                /** Constructor */
                public Simple() {
-                       setProperty(UON_simpleMode, true);
+                       setSimpleMode(true);
                }
        }
 
        /**
-        * Equivalent to <code><jk>new</jk> 
UonSerializer().setProperty(UonSerializerContext.<jsf>UON_useWhitespace</jsf>,<jk>true</jk>);</code>.
+        * Equivalent to <code><jk>new</jk> 
UonSerializer().setUseWhitespace(<jk>true</jk>).setUseIndentation(<jk>true</jk>);</code>.
         */
        public static class Readable extends UonSerializer {
                /** Constructor */
                public Readable() {
-                       setProperty(UON_useWhitespace, true);
-                       setProperty(SERIALIZER_useIndentation, true);
+                       setUseWhitespace(true);
+                       setUseIndentation(true);
                }
        }
 
        /**
-        * Equivalent to <code><jk>new</jk> 
UonSerializer().setProperty(UonSerializerContext.<jsf>UON_encodeChars</jsf>,<jk>true</jk>);</code>.
+        * Equivalent to <code><jk>new</jk> 
UonSerializer().setEncodeChars(<jk>true</jk>);</code>.
         */
        public static class Encoding extends UonSerializer {
                /** Constructor */
                public Encoding() {
-                       setProperty(UON_encodeChars, true);
+                       setEncodeChars(true);
                }
        }
 
        /**
-        * Equivalent to <code><jk>new</jk> 
UonSerializer().setProperty(UonSerializerContext.<jsf>UON_simpleMode</jsf>,<jk>true</jk>).setProperty(UonSerializerContext.<jsf>UON_encodeChars</jsf>,<jk>true</jk>);</code>.
+        * Equivalent to <code><jk>new</jk> 
UonSerializer().setSimpleMode(<jk>true</jk>).setEncodeChars(<jk>true</jk>);</code>.
         */
        @Produces(value="text/uon-simple",contentType="text/uon")
        public static class SimpleEncoding extends UonSerializer {
                /** Constructor */
                public SimpleEncoding() {
-                       setProperty(UON_simpleMode, true);
-                       setProperty(UON_encodeChars, true);
+                       setSimpleMode(true);
+                       setEncodeChars(true);
                }
        }
 
@@ -397,8 +396,9 @@ public class UonSerializer extends WriterSerializer {
                return out;
        }
 
+
        
//--------------------------------------------------------------------------------
-       // Overridden methods
+       // Entry point methods
        
//--------------------------------------------------------------------------------
 
        @Override /* Serializer */
@@ -412,49 +412,604 @@ public class UonSerializer extends WriterSerializer {
                serializeAnything(s, s.getWriter(), o, null, "root", null, 
false, true);
        }
 
+
+       
//--------------------------------------------------------------------------------
+       // Properties
+       
//--------------------------------------------------------------------------------
+
+       /**
+        * <b>Configuration property:</b>  Use simplified output.
+        * <p>
+        * <ul>
+        *      <li><b>Name:</b> <js>"UonSerializer.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>, type flags will not be prepended to values in most 
cases.
+        * <p>
+        * Use this setting if the data types of the values (e.g. 
object/array/boolean/number/string)
+        *      is known on the receiving end.
+        * <p>
+        * It should be noted that the default behavior produces a data 
structure that can
+        *      be losslessly converted into JSON, and any JSON can be 
losslessly represented
+        *      in a URL-encoded value.  However, this strict equivalency does 
not exist
+        *      when simple mode is used.
+        * <p>
+        * <table class='styled'>
+        *      <tr>
+        *              <th>Input (in JSON)</th>
+        *              <th>Normal mode output</th>
+        *              <th>Simple mode output</th>
+        *      </tr>
+        *      <tr>
+        *              <td class='code'>{foo:'bar',baz:'bing'}</td>
+        *              <td class='code'>$o(foo=bar,baz=bing)</td>
+        *              <td class='code'>(foo=bar,baz=bing)</td>
+        *      </tr>
+        *      <tr>
+        *              <td class='code'>{foo:{bar:'baz'}}</td>
+        *              <td class='code'>$o(foo=$o(bar=baz))</td>
+        *              <td class='code'>(foo=(bar=baz))</td>
+        *      </tr>
+        *      <tr>
+        *              <td class='code'>['foo','bar']</td>
+        *              <td class='code'>$a(foo,bar)</td>
+        *              <td class='code'>(foo,bar)</td>
+        *      </tr>
+        *      <tr>
+        *              <td class='code'>['foo',['bar','baz']]</td>
+        *              <td class='code'>$a(foo,$a(bar,baz))</td>
+        *              <td class='code'>(foo,(bar,baz))</td>
+        *      </tr>
+        *      <tr>
+        *              <td class='code'>true</td>
+        *              <td class='code'>$b(true)</td>
+        *              <td class='code'>true</td>
+        *      </tr>
+        *      <tr>
+        *              <td class='code'>123</td>
+        *              <td class='code'>$n(123)</td>
+        *              <td class='code'>123</td>
+        *      </tr>
+        * </table>
+        * <p>
+        * <h5 class='section'>Notes:</h5>
+        * <ul>
+        *      <li>This is equivalent to calling 
<code>setProperty(<jsf>UON_simpleMode</jsf>, value)</code>.
+        *      <li>This introduces a slight performance penalty.
+        * </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 UonSerializerContext#UON_simpleMode
+        */
+       public UonSerializer setSimpleMode(boolean value) throws 
LockedException {
+               return setProperty(UON_simpleMode, value);
+       }
+
+       /**
+        * <b>Configuration property:</b>  Use whitespace.
+        * <p>
+        * <ul>
+        *      <li><b>Name:</b> <js>"UonSerializer.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>UON_useWhitespace</jsf>, value)</code>.
+        *      <li>This introduces a slight performance penalty.
+        * </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 UonSerializerContext#UON_useWhitespace
+        */
+       public UonSerializer setUseWhitespace(boolean value) throws 
LockedException {
+               return setProperty(UON_useWhitespace, value);
+       }
+
+       /**
+        * <b>Configuration property:</b>  Encode non-valid URI characters.
+        * <p>
+        * <ul>
+        *      <li><b>Name:</b> <js>"UonSerializer.encodeChars"</js>
+        *      <li><b>Data type:</b> <code>Boolean</code>
+        *      <li><b>Default:</b> <jk>false</jk> for {@link UonSerializer}, 
<jk>true</jk> for {@link UrlEncodingSerializer}
+        *      <li><b>Session-overridable:</b> <jk>true</jk>
+        * </ul>
+        * <p>
+        * Encode non-valid URI characters with <js>"%xx"</js> constructs.
+        * <p>
+        * If <jk>true</jk>, non-valid URI characters will be converted to 
<js>"%xx"</js> sequences.
+        * Set to <jk>false</jk> if parameter value is being passed to some 
other code that will already
+        *      perform URL-encoding of non-valid URI characters.
+        * <p>
+        * <h5 class='section'>Notes:</h5>
+        * <ul>
+        *      <li>This is equivalent to calling 
<code>setProperty(<jsf>UON_encodeChars</jsf>, value)</code>.
+        *      <li>This introduces a slight performance penalty.
+        * </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 UonSerializerContext#UON_encodeChars
+        */
+       public UonSerializer setEncodeChars(boolean value) throws 
LockedException {
+               return setProperty(UON_encodeChars, value);
+       }
+
+       @Override /* Serializer */
+       public UonSerializer setMaxDepth(int value) throws LockedException {
+               super.setMaxDepth(value);
+               return this;
+       }
+
+       @Override /* Serializer */
+       public UonSerializer setInitialDepth(int value) throws LockedException {
+               super.setInitialDepth(value);
+               return this;
+       }
+
+       @Override /* Serializer */
+       public UonSerializer setDetectRecursions(boolean value) throws 
LockedException {
+               super.setDetectRecursions(value);
+               return this;
+       }
+
+       @Override /* Serializer */
+       public UonSerializer setIgnoreRecursions(boolean value) throws 
LockedException {
+               super.setIgnoreRecursions(value);
+               return this;
+       }
+
+       @Override /* Serializer */
+       public UonSerializer setUseIndentation(boolean value) throws 
LockedException {
+               super.setUseIndentation(value);
+               return this;
+       }
+
+       @Override /* Serializer */
+       public UonSerializer setAddBeanTypeProperties(boolean value) throws 
LockedException {
+               super.setAddBeanTypeProperties(value);
+               return this;
+       }
+
+       @Override /* Serializer */
+       public UonSerializer setQuoteChar(char value) throws LockedException {
+               super.setQuoteChar(value);
+               return this;
+       }
+
+       @Override /* Serializer */
+       public UonSerializer setTrimNullProperties(boolean value) throws 
LockedException {
+               super.setTrimNullProperties(value);
+               return this;
+       }
+
+       @Override /* Serializer */
+       public UonSerializer setTrimEmptyCollections(boolean value) throws 
LockedException {
+               super.setTrimEmptyCollections(value);
+               return this;
+       }
+
+       @Override /* Serializer */
+       public UonSerializer setTrimEmptyMaps(boolean value) throws 
LockedException {
+               super.setTrimEmptyMaps(value);
+               return this;
+       }
+
+       @Override /* Serializer */
+       public UonSerializer setTrimStrings(boolean value) throws 
LockedException {
+               super.setTrimStrings(value);
+               return this;
+       }
+
+       @Override /* Serializer */
+       public UonSerializer setRelativeUriBase(String value) throws 
LockedException {
+               super.setRelativeUriBase(value);
+               return this;
+       }
+
+       @Override /* Serializer */
+       public UonSerializer setAbsolutePathUriBase(String value) throws 
LockedException {
+               super.setAbsolutePathUriBase(value);
+               return this;
+       }
+
+       @Override /* Serializer */
+       public UonSerializer setSortCollections(boolean value) throws 
LockedException {
+               super.setSortCollections(value);
+               return this;
+       }
+
+       @Override /* Serializer */
+       public UonSerializer setSortMaps(boolean value) throws LockedException {
+               super.setSortMaps(value);
+               return this;
+       }
+
        @Override /* CoreApi */
-       public UonSerializer setProperty(String property, Object value) throws 
LockedException {
-               super.setProperty(property, value);
+       public UonSerializer setBeansRequireDefaultConstructor(boolean value) 
throws LockedException {
+               super.setBeansRequireDefaultConstructor(value);
                return this;
        }
 
        @Override /* CoreApi */
-       public UonSerializer setProperties(ObjectMap properties) throws 
LockedException {
-               super.setProperties(properties);
+       public UonSerializer setBeansRequireSerializable(boolean value) throws 
LockedException {
+               super.setBeansRequireSerializable(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer setBeansRequireSettersForGetters(boolean value) 
throws LockedException {
+               super.setBeansRequireSettersForGetters(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer setBeansRequireSomeProperties(boolean value) 
throws LockedException {
+               super.setBeansRequireSomeProperties(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer setBeanMapPutReturnsOldValue(boolean value) throws 
LockedException {
+               super.setBeanMapPutReturnsOldValue(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer setBeanConstructorVisibility(Visibility value) 
throws LockedException {
+               super.setBeanConstructorVisibility(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer setBeanClassVisibility(Visibility value) throws 
LockedException {
+               super.setBeanClassVisibility(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer setBeanFieldVisibility(Visibility value) throws 
LockedException {
+               super.setBeanFieldVisibility(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer setMethodVisibility(Visibility value) throws 
LockedException {
+               super.setMethodVisibility(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer setUseJavaBeanIntrospector(boolean value) throws 
LockedException {
+               super.setUseJavaBeanIntrospector(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer setUseInterfaceProxies(boolean value) throws 
LockedException {
+               super.setUseInterfaceProxies(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer setIgnoreUnknownBeanProperties(boolean value) 
throws LockedException {
+               super.setIgnoreUnknownBeanProperties(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer setIgnoreUnknownNullBeanProperties(boolean value) 
throws LockedException {
+               super.setIgnoreUnknownNullBeanProperties(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer setIgnorePropertiesWithoutSetters(boolean value) 
throws LockedException {
+               super.setIgnorePropertiesWithoutSetters(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer setIgnoreInvocationExceptionsOnGetters(boolean 
value) throws LockedException {
+               super.setIgnoreInvocationExceptionsOnGetters(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer setIgnoreInvocationExceptionsOnSetters(boolean 
value) throws LockedException {
+               super.setIgnoreInvocationExceptionsOnSetters(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer setSortProperties(boolean value) throws 
LockedException {
+               super.setSortProperties(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer setNotBeanPackages(String...values) throws 
LockedException {
+               super.setNotBeanPackages(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer setNotBeanPackages(Collection<String> values) 
throws LockedException {
+               super.setNotBeanPackages(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer addNotBeanPackages(String...values) throws 
LockedException {
+               super.addNotBeanPackages(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer addNotBeanPackages(Collection<String> values) 
throws LockedException {
+               super.addNotBeanPackages(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer removeNotBeanPackages(String...values) throws 
LockedException {
+               super.removeNotBeanPackages(values);
                return this;
        }
 
        @Override /* CoreApi */
-       public UonSerializer addNotBeanClasses(Class<?>...classes) throws 
LockedException {
-               super.addNotBeanClasses(classes);
+       public UonSerializer removeNotBeanPackages(Collection<String> values) 
throws LockedException {
+               super.removeNotBeanPackages(values);
                return this;
        }
 
        @Override /* CoreApi */
-       public UonSerializer addBeanFilters(Class<?>...classes) throws 
LockedException {
-               super.addBeanFilters(classes);
+       public UonSerializer setNotBeanClasses(Class<?>...values) throws 
LockedException {
+               super.setNotBeanClasses(values);
                return this;
        }
 
        @Override /* CoreApi */
-       public UonSerializer addPojoSwaps(Class<?>...classes) throws 
LockedException {
-               super.addPojoSwaps(classes);
+       public UonSerializer setNotBeanClasses(Collection<Class<?>> values) 
throws LockedException {
+               super.setNotBeanClasses(values);
                return this;
        }
 
        @Override /* CoreApi */
-       public UonSerializer addToDictionary(Class<?>...classes) throws 
LockedException {
-               super.addToDictionary(classes);
+       public UonSerializer addNotBeanClasses(Class<?>...values) throws 
LockedException {
+               super.addNotBeanClasses(values);
                return this;
        }
 
        @Override /* CoreApi */
-       public <T> UonSerializer addImplClass(Class<T> interfaceClass, Class<? 
extends T> implClass) throws LockedException {
+       public UonSerializer addNotBeanClasses(Collection<Class<?>> values) 
throws LockedException {
+               super.addNotBeanClasses(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer removeNotBeanClasses(Class<?>...values) throws 
LockedException {
+               super.removeNotBeanClasses(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer removeNotBeanClasses(Collection<Class<?>> values) 
throws LockedException {
+               super.removeNotBeanClasses(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer setBeanFilters(Class<?>...values) throws 
LockedException {
+               super.setBeanFilters(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer setBeanFilters(Collection<Class<?>> values) throws 
LockedException {
+               super.setBeanFilters(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer addBeanFilters(Class<?>...values) throws 
LockedException {
+               super.addBeanFilters(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer addBeanFilters(Collection<Class<?>> values) throws 
LockedException {
+               super.addBeanFilters(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer removeBeanFilters(Class<?>...values) throws 
LockedException {
+               super.removeBeanFilters(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer removeBeanFilters(Collection<Class<?>> values) 
throws LockedException {
+               super.removeBeanFilters(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer setPojoSwaps(Class<?>...values) throws 
LockedException {
+               super.setPojoSwaps(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer setPojoSwaps(Collection<Class<?>> values) throws 
LockedException {
+               super.setPojoSwaps(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer addPojoSwaps(Class<?>...values) throws 
LockedException {
+               super.addPojoSwaps(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer addPojoSwaps(Collection<Class<?>> values) throws 
LockedException {
+               super.addPojoSwaps(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer removePojoSwaps(Class<?>...values) throws 
LockedException {
+               super.removePojoSwaps(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer removePojoSwaps(Collection<Class<?>> values) 
throws LockedException {
+               super.removePojoSwaps(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer 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 UonSerializer setBeanDictionary(Class<?>...values) throws 
LockedException {
+               super.setBeanDictionary(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer setBeanDictionary(Collection<Class<?>> values) 
throws LockedException {
+               super.setBeanDictionary(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer addToBeanDictionary(Class<?>...values) throws 
LockedException {
+               super.addToBeanDictionary(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer addToBeanDictionary(Collection<Class<?>> values) 
throws LockedException {
+               super.addToBeanDictionary(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer removeFromBeanDictionary(Class<?>...values) throws 
LockedException {
+               super.removeFromBeanDictionary(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer removeFromBeanDictionary(Collection<Class<?>> 
values) throws LockedException {
+               super.removeFromBeanDictionary(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer setBeanTypePropertyName(String value) throws 
LockedException {
+               super.setBeanTypePropertyName(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer setDefaultParser(Class<?> value) throws 
LockedException {
+               super.setDefaultParser(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer setLocale(Locale value) throws LockedException {
+               super.setLocale(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer setTimeZone(TimeZone value) throws LockedException 
{
+               super.setTimeZone(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer setMediaType(MediaType value) throws 
LockedException {
+               super.setMediaType(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer setDebug(boolean value) throws LockedException {
+               super.setDebug(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer setProperty(String name, Object value) throws 
LockedException {
+               super.setProperty(name, value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer setProperties(ObjectMap properties) throws 
LockedException {
+               super.setProperties(properties);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer addToProperty(String name, Object value) throws 
LockedException {
+               super.addToProperty(name, value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer putToProperty(String name, Object key, Object 
value) throws LockedException {
+               super.putToProperty(name, key, value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer putToProperty(String name, Object value) throws 
LockedException {
+               super.putToProperty(name, value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UonSerializer removeFromProperty(String name, Object value) 
throws LockedException {
+               super.removeFromProperty(name, value);
+               return this;
+       }
+
+
+       
//--------------------------------------------------------------------------------
+       // Overridden methods
+       
//--------------------------------------------------------------------------------
+
+       @Override /* CoreApi */
        public UonSerializer 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/UonSerializerContext.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonSerializerContext.java
 
b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonSerializerContext.java
index 5c7e30e..db0cb2f 100644
--- 
a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonSerializerContext.java
+++ 
b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonSerializerContext.java
@@ -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 UonSerializer#setProperty(String,Object)}
- *     <li>{@link UonSerializer#setProperties(ObjectMap)}
- *     <li>{@link UonSerializer#addNotBeanClasses(Class[])}
- *     <li>{@link UonSerializer#addBeanFilters(Class[])}
- *     <li>{@link UonSerializer#addPojoSwaps(Class[])}
- *     <li>{@link UonSerializer#addToDictionary(Class[])}
- *     <li>{@link UonSerializer#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 serializers</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_simpleMode}</td>
- *             <td>Use simplified output.</td>
- *             <td><code>Boolean</code></td>
- *             <td><jk>false</jk></td>
- *             <td><jk>true</jk></td>
- *     </tr>
- *     <tr>
- *             <td>{@link #UON_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 #UON_encodeChars}</td>
- *             <td>Encode non-valid URI characters.</td>
- *             <td><code>Boolean</code></td>
- *             <td><jk>false</jk> for {@link UonSerializer}<br><jk>true</jk> 
for {@link UrlEncodingSerializer}</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/urlencoding/UonWriter.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonWriter.java 
b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonWriter.java
index 118b5e8..7025620 100644
--- a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonWriter.java
+++ b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UonWriter.java
@@ -192,6 +192,7 @@ public final class UonWriter extends SerializerWriter {
                return appendObject(s, false, false, isTop);
        }
 
+
        
//--------------------------------------------------------------------------------
        // Overridden methods
        
//--------------------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/68dffad1/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingContext.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingContext.java
 
b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingContext.java
index 95fe474..0a0fd5d 100644
--- 
a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingContext.java
+++ 
b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingContext.java
@@ -34,7 +34,7 @@ public final class UrlEncodingContext implements Cloneable {
         *      }
         *
         *      UrlEncodingSerializer s1 = <jk>new</jk> UrlEncodingParser();
-        *      UrlEncodingSerializer s2 = <jk>new</jk> 
UrlEncodingParser().setProperty(UrlEncodingContext.<jsf>URLENC_expandedParams</jsf>,
 <jk>true</jk>);
+        *      UrlEncodingSerializer s2 = <jk>new</jk> 
UrlEncodingParser().setExpandedParams(<jk>true</jk>);
         *
         *      String s1 = p1.serialize(<jk>new</jk> A()); <jc>// Produces 
"f1=(a,b)&amp;f2=(c,d)"</jc>
         *      String s2 = p2.serialize(<jk>new</jk> A()); <jc>// Produces 
"f1=a&amp;f1=b&amp;f2=c&amp;f2=d"</jc>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/68dffad1/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
 
b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
index 2c68e09..460e919 100644
--- 
a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
+++ 
b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
@@ -12,7 +12,7 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.urlencoding;
 
-import static org.apache.juneau.urlencoding.UonParserContext.*;
+import static org.apache.juneau.urlencoding.UrlEncodingParserContext.*;
 
 import java.lang.reflect.*;
 import java.util.*;
@@ -54,13 +54,13 @@ public class UrlEncodingParser extends UonParser {
        public static final UrlEncodingParser DEFAULT = new 
UrlEncodingParser().lock();
 
        /** Reusable instance of {@link UrlEncodingParser}. */
-       public static final UrlEncodingParser DEFAULT_WS_AWARE = new 
UrlEncodingParser().setProperty(UON_whitespaceAware, true).lock();
+       public static final UrlEncodingParser DEFAULT_WS_AWARE = new 
UrlEncodingParser().setWhitespaceAware(true).lock();
 
        /**
         * Constructor.
         */
        public UrlEncodingParser() {
-               setProperty(UON_decodeChars, true);
+               setDecodeChars(true);
        }
 
        private <T> T parseAnything(UrlEncodingParserSession session, 
ClassMeta<T> eType, ParserReader r, Object outer) throws Exception {
@@ -501,8 +501,9 @@ public class UrlEncodingParser extends UonParser {
                }
        }
 
+
        
//--------------------------------------------------------------------------------
-       // Overridden methods
+       // Entry point methods
        
//--------------------------------------------------------------------------------
 
        @Override /* Parser */
@@ -536,49 +537,469 @@ public class UrlEncodingParser extends UonParser {
                return m;
        }
 
+
+       
//--------------------------------------------------------------------------------
+       // Properties
+       
//--------------------------------------------------------------------------------
+
+       /**
+        * <b>Configuration property:</b> Serialize bean property 
collections/arrays as separate key/value pairs.
+        * <p>
+        * <ul>
+        *      <li><b>Name:</b> <js>"UrlEncoding.expandedParams"</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>false</jk>, serializing the array <code>[1,2,3]</code> 
results in <code>?key=$a(1,2,3)</code>.
+        *      If <jk>true</jk>, serializing the same array results in 
<code>?key=1&amp;key=2&amp;key=3</code>.
+        *
+        * <h5 class='section'>Example:</h5>
+        * <p class='bcode'>
+        *      <jk>public class</jk> A {
+        *              <jk>public</jk> String[] f1 = 
{<js>"a"</js>,<js>"b"</js>};
+        *              <jk>public</jk> List&lt;String&gt; f2 = <jk>new</jk> 
LinkedList&lt;String&gt;(Arrays.<jsm>asList</jsm>(<jk>new</jk> 
String[]{<js>"c"</js>,<js>"d"</js>}));
+        *      }
+        *
+        *      UrlEncodingSerializer s1 = <jk>new</jk> UrlEncodingParser();
+        *      UrlEncodingSerializer s2 = <jk>new</jk> 
UrlEncodingParser().setExpandedParams(<jk>true</jk>);
+        *
+        *      String s1 = p1.serialize(<jk>new</jk> A()); <jc>// Produces 
"f1=(a,b)&amp;f2=(c,d)"</jc>
+        *      String s2 = p2.serialize(<jk>new</jk> A()); <jc>// Produces 
"f1=a&amp;f1=b&amp;f2=c&amp;f2=d"</jc>
+        * </p>
+        * <p>
+        *      This option only applies to beans.
+        * <p>
+        * <h5 class='section'>Notes:</h5>
+        * <ul>
+        *      <li>If parsing multi-part parameters, it's highly recommended 
to use Collections or Lists
+        *              as bean property types instead of arrays since arrays 
have to be recreated from scratch every time a value
+        *              is added to it.
+        * </ul>
+        * <p>
+        * <h5 class='section'>Notes:</h5>
+        * <ul>
+        *      <li>This is equivalent to calling 
<code>setProperty(<jsf>URLENC_expandedParams</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 UrlEncodingParserContext#URLENC_expandedParams
+        */
+       public UrlEncodingParser setExpandedParams(boolean value) throws 
LockedException {
+               return setProperty(URLENC_expandedParams, value);
+       }
+
+       @Override /* UonParser */
+       public UrlEncodingParser setDecodeChars(boolean value) throws 
LockedException {
+               super.setDecodeChars(value);
+               return this;
+       }
+
+       @Override /* UonParser */
+       public UrlEncodingParser setWhitespaceAware(boolean value) throws 
LockedException {
+               super.setWhitespaceAware(value);
+               return this;
+       }
+
+       @Override /* Parser */
+       public UrlEncodingParser setTrimStrings(boolean value) throws 
LockedException {
+               super.setTrimStrings(value);
+               return this;
+       }
+
+       @Override /* Parser */
+       public UrlEncodingParser setStrict(boolean value) throws 
LockedException {
+               super.setStrict(value);
+               return this;
+       }
+
+       @Override /* Parser */
+       public UrlEncodingParser setInputStreamCharset(String value) throws 
LockedException {
+               super.setInputStreamCharset(value);
+               return this;
+       }
+
        @Override /* Parser */
-       public UrlEncodingParser setProperty(String property, Object value) 
throws LockedException {
-               super.setProperty(property, value);
+       public UrlEncodingParser setFileCharset(String value) throws 
LockedException {
+               super.setFileCharset(value);
                return this;
        }
 
        @Override /* CoreApi */
-       public UrlEncodingParser setProperties(ObjectMap properties) throws 
LockedException {
-               super.setProperties(properties);
+       public UrlEncodingParser setBeansRequireDefaultConstructor(boolean 
value) throws LockedException {
+               super.setBeansRequireDefaultConstructor(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser setBeansRequireSerializable(boolean value) 
throws LockedException {
+               super.setBeansRequireSerializable(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser setBeansRequireSettersForGetters(boolean 
value) throws LockedException {
+               super.setBeansRequireSettersForGetters(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser setBeansRequireSomeProperties(boolean value) 
throws LockedException {
+               super.setBeansRequireSomeProperties(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser setBeanMapPutReturnsOldValue(boolean value) 
throws LockedException {
+               super.setBeanMapPutReturnsOldValue(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser setBeanConstructorVisibility(Visibility value) 
throws LockedException {
+               super.setBeanConstructorVisibility(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser setBeanClassVisibility(Visibility value) 
throws LockedException {
+               super.setBeanClassVisibility(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser setBeanFieldVisibility(Visibility value) 
throws LockedException {
+               super.setBeanFieldVisibility(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser setMethodVisibility(Visibility value) throws 
LockedException {
+               super.setMethodVisibility(value);
                return this;
        }
 
        @Override /* CoreApi */
-       public UrlEncodingParser addNotBeanClasses(Class<?>...classes) throws 
LockedException {
-               super.addNotBeanClasses(classes);
+       public UrlEncodingParser setUseJavaBeanIntrospector(boolean value) 
throws LockedException {
+               super.setUseJavaBeanIntrospector(value);
                return this;
        }
 
        @Override /* CoreApi */
-       public UrlEncodingParser addBeanFilters(Class<?>...classes) throws 
LockedException {
-               super.addBeanFilters(classes);
+       public UrlEncodingParser setUseInterfaceProxies(boolean value) throws 
LockedException {
+               super.setUseInterfaceProxies(value);
                return this;
        }
 
        @Override /* CoreApi */
-       public UrlEncodingParser addPojoSwaps(Class<?>...classes) throws 
LockedException {
-               super.addPojoSwaps(classes);
+       public UrlEncodingParser setIgnoreUnknownBeanProperties(boolean value) 
throws LockedException {
+               super.setIgnoreUnknownBeanProperties(value);
                return this;
        }
 
        @Override /* CoreApi */
-       public UrlEncodingParser addToDictionary(Class<?>...classes) throws 
LockedException {
-               super.addToDictionary(classes);
+       public UrlEncodingParser setIgnoreUnknownNullBeanProperties(boolean 
value) throws LockedException {
+               super.setIgnoreUnknownNullBeanProperties(value);
                return this;
        }
 
        @Override /* CoreApi */
-       public <T> UrlEncodingParser addImplClass(Class<T> interfaceClass, 
Class<? extends T> implClass) throws LockedException {
+       public UrlEncodingParser setIgnorePropertiesWithoutSetters(boolean 
value) throws LockedException {
+               super.setIgnorePropertiesWithoutSetters(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser setIgnoreInvocationExceptionsOnGetters(boolean 
value) throws LockedException {
+               super.setIgnoreInvocationExceptionsOnGetters(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser setIgnoreInvocationExceptionsOnSetters(boolean 
value) throws LockedException {
+               super.setIgnoreInvocationExceptionsOnSetters(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser setSortProperties(boolean value) throws 
LockedException {
+               super.setSortProperties(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser setNotBeanPackages(String...values) throws 
LockedException {
+               super.setNotBeanPackages(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser setNotBeanPackages(Collection<String> values) 
throws LockedException {
+               super.setNotBeanPackages(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser addNotBeanPackages(String...values) throws 
LockedException {
+               super.addNotBeanPackages(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser addNotBeanPackages(Collection<String> values) 
throws LockedException {
+               super.addNotBeanPackages(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser removeNotBeanPackages(String...values) throws 
LockedException {
+               super.removeNotBeanPackages(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser removeNotBeanPackages(Collection<String> 
values) throws LockedException {
+               super.removeNotBeanPackages(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser setNotBeanClasses(Class<?>...values) throws 
LockedException {
+               super.setNotBeanClasses(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser setNotBeanClasses(Collection<Class<?>> values) 
throws LockedException {
+               super.setNotBeanClasses(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser addNotBeanClasses(Class<?>...values) throws 
LockedException {
+               super.addNotBeanClasses(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser addNotBeanClasses(Collection<Class<?>> values) 
throws LockedException {
+               super.addNotBeanClasses(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser removeNotBeanClasses(Class<?>...values) throws 
LockedException {
+               super.removeNotBeanClasses(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser removeNotBeanClasses(Collection<Class<?>> 
values) throws LockedException {
+               super.removeNotBeanClasses(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser setBeanFilters(Class<?>...values) throws 
LockedException {
+               super.setBeanFilters(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser setBeanFilters(Collection<Class<?>> values) 
throws LockedException {
+               super.setBeanFilters(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser addBeanFilters(Class<?>...values) throws 
LockedException {
+               super.addBeanFilters(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser addBeanFilters(Collection<Class<?>> values) 
throws LockedException {
+               super.addBeanFilters(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser removeBeanFilters(Class<?>...values) throws 
LockedException {
+               super.removeBeanFilters(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser removeBeanFilters(Collection<Class<?>> values) 
throws LockedException {
+               super.removeBeanFilters(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser setPojoSwaps(Class<?>...values) throws 
LockedException {
+               super.setPojoSwaps(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser setPojoSwaps(Collection<Class<?>> values) 
throws LockedException {
+               super.setPojoSwaps(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser addPojoSwaps(Class<?>...values) throws 
LockedException {
+               super.addPojoSwaps(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser addPojoSwaps(Collection<Class<?>> values) 
throws LockedException {
+               super.addPojoSwaps(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser removePojoSwaps(Class<?>...values) throws 
LockedException {
+               super.removePojoSwaps(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser removePojoSwaps(Collection<Class<?>> values) 
throws LockedException {
+               super.removePojoSwaps(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser 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 UrlEncodingParser setBeanDictionary(Class<?>...values) throws 
LockedException {
+               super.setBeanDictionary(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser setBeanDictionary(Collection<Class<?>> values) 
throws LockedException {
+               super.setBeanDictionary(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser addToBeanDictionary(Class<?>...values) throws 
LockedException {
+               super.addToBeanDictionary(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser addToBeanDictionary(Collection<Class<?>> 
values) throws LockedException {
+               super.addToBeanDictionary(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser removeFromBeanDictionary(Class<?>...values) 
throws LockedException {
+               super.removeFromBeanDictionary(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser removeFromBeanDictionary(Collection<Class<?>> 
values) throws LockedException {
+               super.removeFromBeanDictionary(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser setBeanTypePropertyName(String value) throws 
LockedException {
+               super.setBeanTypePropertyName(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser setDefaultParser(Class<?> value) throws 
LockedException {
+               super.setDefaultParser(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser setLocale(Locale value) throws LockedException 
{
+               super.setLocale(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser setTimeZone(TimeZone value) throws 
LockedException {
+               super.setTimeZone(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser setMediaType(MediaType value) throws 
LockedException {
+               super.setMediaType(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser setDebug(boolean value) throws LockedException 
{
+               super.setDebug(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser setProperty(String name, Object value) throws 
LockedException {
+               super.setProperty(name, value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser setProperties(ObjectMap properties) throws 
LockedException {
+               super.setProperties(properties);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser addToProperty(String name, Object value) 
throws LockedException {
+               super.addToProperty(name, value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser putToProperty(String name, Object key, Object 
value) throws LockedException {
+               super.putToProperty(name, key, value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser putToProperty(String name, Object value) 
throws LockedException {
+               super.putToProperty(name, value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingParser removeFromProperty(String name, Object value) 
throws LockedException {
+               super.removeFromProperty(name, value);
+               return this;
+       }
+
+
+       
//--------------------------------------------------------------------------------
+       // Overridden methods
+       
//--------------------------------------------------------------------------------
+
+       @Override /* CoreApi */
        public UrlEncodingParser 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/UrlEncodingParserContext.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserContext.java
 
b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserContext.java
index fa13729..20b33e3 100644
--- 
a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserContext.java
+++ 
b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserContext.java
@@ -20,30 +20,7 @@ import org.apache.juneau.*;
  * 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 UrlEncodingParser#setProperty(String,Object)}
- *     <li>{@link UrlEncodingParser#setProperties(ObjectMap)}
- *     <li>{@link UrlEncodingParser#addNotBeanClasses(Class[])}
- *     <li>{@link UrlEncodingParser#addBeanFilters(Class[])}
- *     <li>{@link UrlEncodingParser#addPojoSwaps(Class[])}
- *     <li>{@link UrlEncodingParser#addToDictionary(Class[])}
- *     <li>{@link UrlEncodingParser#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 parser</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 #URLENC_expandedParams}</td>
- *             <td>Serialize bean property collections/arrays as separate 
key/value pairs.</td>
- *             <td><code>Boolean</code></td>
- *             <td><jk>false</jk></td>
- *             <td><jk>true</jk></td>
- *     </tr>
- * </table>
  */
 public class UrlEncodingParserContext extends UonParserContext {
 
@@ -68,7 +45,7 @@ public class UrlEncodingParserContext extends 
UonParserContext {
         *      }
         *
         *      UrlEncodingSerializer s1 = <jk>new</jk> UrlEncodingParser();
-        *      UrlEncodingSerializer s2 = <jk>new</jk> 
UrlEncodingParser().setProperty(UrlEncodingContext.<jsf>URLENC_expandedParams</jsf>,
 <jk>true</jk>);
+        *      UrlEncodingSerializer s2 = <jk>new</jk> 
UrlEncodingParser().setExpandedParams(<jk>true</jk>);
         *
         *      String s1 = p1.serialize(<jk>new</jk> A()); <jc>// Produces 
"f1=(a,b)&amp;f2=(c,d)"</jc>
         *      String s2 = p2.serialize(<jk>new</jk> A()); <jc>// Produces 
"f1=a&amp;f1=b&amp;f2=c&amp;f2=d"</jc>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/68dffad1/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java
 
b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java
index 6bb81d5..232ce6b 100644
--- 
a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java
+++ 
b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.urlencoding;
 
-import static org.apache.juneau.urlencoding.UonSerializerContext.*;
 import static org.apache.juneau.urlencoding.UrlEncodingSerializerContext.*;
 
 import java.io.*;
@@ -179,38 +178,38 @@ public class UrlEncodingSerializer extends UonSerializer {
         * Constructor.
         */
        public UrlEncodingSerializer() {
-               setProperty(UON_encodeChars, true);
+               setEncodeChars(true);
        }
 
        /**
-        * Equivalent to <code><jk>new</jk> 
UrlEncodingSerializer().setProperty(UonSerializerContext.<jsf>UON_simpleMode</jsf>,<jk>true</jk>);</code>.
+        * Equivalent to <code><jk>new</jk> 
UrlEncodingSerializer().setSimpleMode(<jk>true</jk>);</code>.
         */
        
@Produces(value="application/x-www-form-urlencoded-simple",contentType="application/x-www-form-urlencoded")
        public static class Simple extends UrlEncodingSerializer {
                /** Constructor */
                public Simple() {
-                       setProperty(UON_simpleMode, true);
+                       setSimpleMode(true);
                }
        }
 
        /**
-        * Equivalent to <code><jk>new</jk> 
UrlEncodingSerializer().setProperty(UonSerializerContext.<jsf>UON_simpleMode</jsf>,<jk>true</jk>).setProperty(UonSerializerContext.<jsf>URLENC_expandedParams</jsf>,<jk>true</jk>);</code>.
+        * Equivalent to <code><jk>new</jk> 
UrlEncodingSerializer().setSimpleMode(<jk>true</jk>).setExpandedParams(<jk>true</jk>);</code>.
         */
        
@Produces(value="application/x-www-form-urlencoded-simple",contentType="application/x-www-form-urlencoded")
        public static class SimpleExpanded extends Simple {
                /** Constructor */
                public SimpleExpanded() {
-                       setProperty(URLENC_expandedParams, true);
+                       setExpandedParams(true);
                }
        }
 
        /**
-        * Equivalent to <code><jk>new</jk> 
UrlEncodingSerializer().setProperty(UonSerializerContext.<jsf>UON_useWhitespace</jsf>,<jk>true</jk>);</code>.
+        * Equivalent to <code><jk>new</jk> 
UrlEncodingSerializer().setUseWhitespace(<jk>true</jk>);</code>.
         */
        public static class Readable extends UrlEncodingSerializer {
                /** Constructor */
                public Readable() {
-                       setProperty(UON_useWhitespace, true);
+                       setUseWhitespace(true);
                }
        }
 
@@ -359,6 +358,7 @@ public class UrlEncodingSerializer extends UonSerializer {
                return out;
        }
 
+
        
//--------------------------------------------------------------------------------
        // Methods for constructing individual parameter values.
        
//--------------------------------------------------------------------------------
@@ -390,7 +390,7 @@ public class UrlEncodingSerializer extends UonSerializer {
 
 
        
//--------------------------------------------------------------------------------
-       // Overridden methods
+       // Entry point methods
        
//--------------------------------------------------------------------------------
 
        @Override /* Serializer */
@@ -404,49 +404,542 @@ public class UrlEncodingSerializer extends UonSerializer 
{
                serializeAnything(s, s.getWriter(), o);
        }
 
+
+       
//--------------------------------------------------------------------------------
+       // Properties
+       
//--------------------------------------------------------------------------------
+
+       /**
+        * <b>Configuration property:</b>  Serialize bean property 
collections/arrays as separate key/value pairs.
+        * <p>
+        * <ul>
+        *      <li><b>Name:</b> <js>"UrlEncoding.expandedParams"</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>false</jk>, serializing the array <code>[1,2,3]</code> 
results in <code>?key=$a(1,2,3)</code>.
+        * If <jk>true</jk>, serializing the same array results in 
<code>?key=1&amp;key=2&amp;key=3</code>.
+        *
+        * <h5 class='section'>Example:</h5>
+        * <p class='bcode'>
+        *      <jk>public class</jk> A {
+        *              <jk>public</jk> String[] f1 = 
{<js>"a"</js>,<js>"b"</js>};
+        *              <jk>public</jk> List&lt;String&gt; f2 = <jk>new</jk> 
LinkedList&lt;String&gt;(Arrays.<jsm>asList</jsm>(<jk>new</jk> 
String[]{<js>"c"</js>,<js>"d"</js>}));
+        *      }
+        *
+        *      UrlEncodingSerializer s1 = <jk>new</jk> UrlEncodingParser();
+        *      UrlEncodingSerializer s2 = <jk>new</jk> 
UrlEncodingParser().setExpandedParams(<jk>true</jk>);
+        *
+        *      String s1 = p1.serialize(<jk>new</jk> A()); <jc>// Produces 
"f1=(a,b)&amp;f2=(c,d)"</jc>
+        *      String s2 = p2.serialize(<jk>new</jk> A()); <jc>// Produces 
"f1=a&amp;f1=b&amp;f2=c&amp;f2=d"</jc>
+        * </p>
+        * <p>
+        * This option only applies to beans.
+        * <p>
+        * <h5 class='section'>Notes:</h5>
+        * <ul>
+        *      <li>If parsing multi-part parameters, it's highly recommended 
to use Collections or Lists
+        *              as bean property types instead of arrays since arrays 
have to be recreated from scratch every time a value
+        *              is added to it.
+        * </ul>
+        * <p>
+        * <h5 class='section'>Notes:</h5>
+        * <ul>
+        *      <li>This is equivalent to calling 
<code>setProperty(<jsf>URLENC_expandedParams</jsf>, value)</code>.
+        *      <li>This introduces a slight performance penalty.
+        * </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 UrlEncodingSerializerContext#URLENC_expandedParams
+        */
+       public UrlEncodingSerializer setExpandedParams(boolean value) throws 
LockedException {
+               return setProperty(URLENC_expandedParams, value);
+       }
+
+       @Override /* UonSerializer */
+       public UrlEncodingSerializer setSimpleMode(boolean value) throws 
LockedException {
+               super.setSimpleMode(value);
+               return this;
+       }
+
+       @Override /* UonSerializer */
+       public UrlEncodingSerializer setUseWhitespace(boolean value) throws 
LockedException {
+               super.setUseWhitespace(value);
+               return this;
+       }
+
+       @Override /* UonSerializer */
+       public UrlEncodingSerializer setEncodeChars(boolean value) throws 
LockedException {
+               super.setEncodeChars(value);
+               return this;
+       }
+
+       @Override /* Serializer */
+       public UrlEncodingSerializer setMaxDepth(int value) throws 
LockedException {
+               super.setMaxDepth(value);
+               return this;
+       }
+
+       @Override /* Serializer */
+       public UrlEncodingSerializer setInitialDepth(int value) throws 
LockedException {
+               super.setInitialDepth(value);
+               return this;
+       }
+
+       @Override /* Serializer */
+       public UrlEncodingSerializer setDetectRecursions(boolean value) throws 
LockedException {
+               super.setDetectRecursions(value);
+               return this;
+       }
+
+       @Override /* Serializer */
+       public UrlEncodingSerializer setIgnoreRecursions(boolean value) throws 
LockedException {
+               super.setIgnoreRecursions(value);
+               return this;
+       }
+
+       @Override /* Serializer */
+       public UrlEncodingSerializer setUseIndentation(boolean value) throws 
LockedException {
+               super.setUseIndentation(value);
+               return this;
+       }
+
+       @Override /* Serializer */
+       public UrlEncodingSerializer setAddBeanTypeProperties(boolean value) 
throws LockedException {
+               super.setAddBeanTypeProperties(value);
+               return this;
+       }
+
+       @Override /* Serializer */
+       public UrlEncodingSerializer setQuoteChar(char value) throws 
LockedException {
+               super.setQuoteChar(value);
+               return this;
+       }
+
+       @Override /* Serializer */
+       public UrlEncodingSerializer setTrimNullProperties(boolean value) 
throws LockedException {
+               super.setTrimNullProperties(value);
+               return this;
+       }
+
+       @Override /* Serializer */
+       public UrlEncodingSerializer setTrimEmptyCollections(boolean value) 
throws LockedException {
+               super.setTrimEmptyCollections(value);
+               return this;
+       }
+
+       @Override /* Serializer */
+       public UrlEncodingSerializer setTrimEmptyMaps(boolean value) throws 
LockedException {
+               super.setTrimEmptyMaps(value);
+               return this;
+       }
+
+       @Override /* Serializer */
+       public UrlEncodingSerializer setTrimStrings(boolean value) throws 
LockedException {
+               super.setTrimStrings(value);
+               return this;
+       }
+
+       @Override /* Serializer */
+       public UrlEncodingSerializer setRelativeUriBase(String value) throws 
LockedException {
+               super.setRelativeUriBase(value);
+               return this;
+       }
+
+       @Override /* Serializer */
+       public UrlEncodingSerializer setAbsolutePathUriBase(String value) 
throws LockedException {
+               super.setAbsolutePathUriBase(value);
+               return this;
+       }
+
+       @Override /* Serializer */
+       public UrlEncodingSerializer setSortCollections(boolean value) throws 
LockedException {
+               super.setSortCollections(value);
+               return this;
+       }
+
+       @Override /* Serializer */
+       public UrlEncodingSerializer setSortMaps(boolean value) throws 
LockedException {
+               super.setSortMaps(value);
+               return this;
+       }
+
        @Override /* CoreApi */
-       public UrlEncodingSerializer setProperty(String property, Object value) 
throws LockedException {
-               super.setProperty(property, value);
+       public UrlEncodingSerializer setBeansRequireDefaultConstructor(boolean 
value) throws LockedException {
+               super.setBeansRequireDefaultConstructor(value);
                return this;
        }
 
        @Override /* CoreApi */
-       public UrlEncodingSerializer setProperties(ObjectMap properties) throws 
LockedException {
-               super.setProperties(properties);
+       public UrlEncodingSerializer setBeansRequireSerializable(boolean value) 
throws LockedException {
+               super.setBeansRequireSerializable(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer setBeansRequireSettersForGetters(boolean 
value) throws LockedException {
+               super.setBeansRequireSettersForGetters(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer setBeansRequireSomeProperties(boolean 
value) throws LockedException {
+               super.setBeansRequireSomeProperties(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer setBeanMapPutReturnsOldValue(boolean 
value) throws LockedException {
+               super.setBeanMapPutReturnsOldValue(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer setBeanConstructorVisibility(Visibility 
value) throws LockedException {
+               super.setBeanConstructorVisibility(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer setBeanClassVisibility(Visibility value) 
throws LockedException {
+               super.setBeanClassVisibility(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer setBeanFieldVisibility(Visibility value) 
throws LockedException {
+               super.setBeanFieldVisibility(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer setMethodVisibility(Visibility value) 
throws LockedException {
+               super.setMethodVisibility(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer setUseJavaBeanIntrospector(boolean value) 
throws LockedException {
+               super.setUseJavaBeanIntrospector(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer setUseInterfaceProxies(boolean value) 
throws LockedException {
+               super.setUseInterfaceProxies(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer setIgnoreUnknownBeanProperties(boolean 
value) throws LockedException {
+               super.setIgnoreUnknownBeanProperties(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer setIgnoreUnknownNullBeanProperties(boolean 
value) throws LockedException {
+               super.setIgnoreUnknownNullBeanProperties(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer setIgnorePropertiesWithoutSetters(boolean 
value) throws LockedException {
+               super.setIgnorePropertiesWithoutSetters(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer 
setIgnoreInvocationExceptionsOnGetters(boolean value) throws LockedException {
+               super.setIgnoreInvocationExceptionsOnGetters(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer 
setIgnoreInvocationExceptionsOnSetters(boolean value) throws LockedException {
+               super.setIgnoreInvocationExceptionsOnSetters(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer setSortProperties(boolean value) throws 
LockedException {
+               super.setSortProperties(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer setNotBeanPackages(String...values) throws 
LockedException {
+               super.setNotBeanPackages(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer setNotBeanPackages(Collection<String> 
values) throws LockedException {
+               super.setNotBeanPackages(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer addNotBeanPackages(String...values) throws 
LockedException {
+               super.addNotBeanPackages(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer addNotBeanPackages(Collection<String> 
values) throws LockedException {
+               super.addNotBeanPackages(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer removeNotBeanPackages(String...values) 
throws LockedException {
+               super.removeNotBeanPackages(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer removeNotBeanPackages(Collection<String> 
values) throws LockedException {
+               super.removeNotBeanPackages(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer setNotBeanClasses(Class<?>...values) 
throws LockedException {
+               super.setNotBeanClasses(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer setNotBeanClasses(Collection<Class<?>> 
values) throws LockedException {
+               super.setNotBeanClasses(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer addNotBeanClasses(Class<?>...values) 
throws LockedException {
+               super.addNotBeanClasses(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer addNotBeanClasses(Collection<Class<?>> 
values) throws LockedException {
+               super.addNotBeanClasses(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer removeNotBeanClasses(Class<?>...values) 
throws LockedException {
+               super.removeNotBeanClasses(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer removeNotBeanClasses(Collection<Class<?>> 
values) throws LockedException {
+               super.removeNotBeanClasses(values);
                return this;
        }
 
        @Override /* CoreApi */
-       public UrlEncodingSerializer addNotBeanClasses(Class<?>...classes) 
throws LockedException {
-               super.addNotBeanClasses(classes);
+       public UrlEncodingSerializer setBeanFilters(Class<?>...values) throws 
LockedException {
+               super.setBeanFilters(values);
                return this;
        }
 
        @Override /* CoreApi */
-       public UrlEncodingSerializer addBeanFilters(Class<?>...classes) throws 
LockedException {
-               super.addBeanFilters(classes);
+       public UrlEncodingSerializer setBeanFilters(Collection<Class<?>> 
values) throws LockedException {
+               super.setBeanFilters(values);
                return this;
        }
 
        @Override /* CoreApi */
-       public UrlEncodingSerializer addPojoSwaps(Class<?>...classes) throws 
LockedException {
-               super.addPojoSwaps(classes);
+       public UrlEncodingSerializer addBeanFilters(Class<?>...values) throws 
LockedException {
+               super.addBeanFilters(values);
                return this;
        }
 
        @Override /* CoreApi */
-       public UrlEncodingSerializer addToDictionary(Class<?>...classes) throws 
LockedException {
-               super.addToDictionary(classes);
+       public UrlEncodingSerializer addBeanFilters(Collection<Class<?>> 
values) throws LockedException {
+               super.addBeanFilters(values);
                return this;
        }
 
        @Override /* CoreApi */
-       public <T> UrlEncodingSerializer addImplClass(Class<T> interfaceClass, 
Class<? extends T> implClass) throws LockedException {
+       public UrlEncodingSerializer removeBeanFilters(Class<?>...values) 
throws LockedException {
+               super.removeBeanFilters(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer removeBeanFilters(Collection<Class<?>> 
values) throws LockedException {
+               super.removeBeanFilters(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer setPojoSwaps(Class<?>...values) throws 
LockedException {
+               super.setPojoSwaps(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer setPojoSwaps(Collection<Class<?>> values) 
throws LockedException {
+               super.setPojoSwaps(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer addPojoSwaps(Class<?>...values) throws 
LockedException {
+               super.addPojoSwaps(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer addPojoSwaps(Collection<Class<?>> values) 
throws LockedException {
+               super.addPojoSwaps(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer removePojoSwaps(Class<?>...values) throws 
LockedException {
+               super.removePojoSwaps(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer removePojoSwaps(Collection<Class<?>> 
values) throws LockedException {
+               super.removePojoSwaps(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer 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 UrlEncodingSerializer setBeanDictionary(Class<?>...values) 
throws LockedException {
+               super.setBeanDictionary(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer setBeanDictionary(Collection<Class<?>> 
values) throws LockedException {
+               super.setBeanDictionary(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer addToBeanDictionary(Class<?>...values) 
throws LockedException {
+               super.addToBeanDictionary(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer addToBeanDictionary(Collection<Class<?>> 
values) throws LockedException {
+               super.addToBeanDictionary(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer 
removeFromBeanDictionary(Class<?>...values) throws LockedException {
+               super.removeFromBeanDictionary(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer 
removeFromBeanDictionary(Collection<Class<?>> values) throws LockedException {
+               super.removeFromBeanDictionary(values);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer setBeanTypePropertyName(String value) 
throws LockedException {
+               super.setBeanTypePropertyName(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer setDefaultParser(Class<?> value) throws 
LockedException {
+               super.setDefaultParser(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer setLocale(Locale value) throws 
LockedException {
+               super.setLocale(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer setTimeZone(TimeZone value) throws 
LockedException {
+               super.setTimeZone(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer setMediaType(MediaType value) throws 
LockedException {
+               super.setMediaType(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer setDebug(boolean value) throws 
LockedException {
+               super.setDebug(value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer setProperty(String name, Object value) 
throws LockedException {
+               super.setProperty(name, value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer setProperties(ObjectMap properties) throws 
LockedException {
+               super.setProperties(properties);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer addToProperty(String name, Object value) 
throws LockedException {
+               super.addToProperty(name, value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer putToProperty(String name, Object key, 
Object value) throws LockedException {
+               super.putToProperty(name, key, value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer putToProperty(String name, Object value) 
throws LockedException {
+               super.putToProperty(name, value);
+               return this;
+       }
+
+       @Override /* CoreApi */
+       public UrlEncodingSerializer removeFromProperty(String name, Object 
value) throws LockedException {
+               super.removeFromProperty(name, value);
+               return this;
+       }
+
+
+       
//--------------------------------------------------------------------------------
+       // Overridden methods
+       
//--------------------------------------------------------------------------------
+
+       @Override /* CoreApi */
        public UrlEncodingSerializer 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/UrlEncodingSerializerContext.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerContext.java
 
b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerContext.java
index 0e68416..dc2c46e 100644
--- 
a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerContext.java
+++ 
b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerContext.java
@@ -20,31 +20,7 @@ import org.apache.juneau.*;
  * 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 UrlEncodingSerializer#setProperty(String,Object)}
- *     <li>{@link UrlEncodingSerializer#setProperties(ObjectMap)}
- *     <li>{@link UrlEncodingSerializer#addNotBeanClasses(Class[])}
- *     <li>{@link UrlEncodingSerializer#addBeanFilters(Class[])}
- *     <li>{@link UrlEncodingSerializer#addPojoSwaps(Class[])}
- *     <li>{@link UrlEncodingSerializer#addToDictionary(Class[])}
- *     <li>{@link UrlEncodingSerializer#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 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 #URLENC_expandedParams}</td>
- *             <td>Serialize bean property collections/arrays as separate 
key/value pairs.</td>
- *             <td><code>Boolean</code></td>
- *             <td><jk>false</jk></td>
- *             <td><jk>true</jk></td>
- *     </tr>
- * </table>
  */
 public class UrlEncodingSerializerContext extends UonSerializerContext {
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/68dffad1/juneau-core/src/main/java/org/apache/juneau/urlencoding/package.html
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/urlencoding/package.html 
b/juneau-core/src/main/java/org/apache/juneau/urlencoding/package.html
index 83bebb6..d75d638 100644
--- a/juneau-core/src/main/java/org/apache/juneau/urlencoding/package.html
+++ b/juneau-core/src/main/java/org/apache/juneau/urlencoding/package.html
@@ -593,7 +593,7 @@
                </p>
                <p class='bcode'>
        <jc>// Clone an existing serializer and set property for detecting 
recursions.</jc>
-       UrlEncodingSerializer s = 
UrlEncodingSerializer.<jsf>DEFAULT_READABLE</jsf>.clone().setProperty(SerializerContext.<jsf>SERIALIZER_detectRecursions</jsf>,
 <jk>true</jk>);
+       UrlEncodingSerializer s = 
UrlEncodingSerializer.<jsf>DEFAULT_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/xml/XmlDocSerializer.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/xml/XmlDocSerializer.java 
b/juneau-core/src/main/java/org/apache/juneau/xml/XmlDocSerializer.java
index 501de0f..d521717 100644
--- a/juneau-core/src/main/java/org/apache/juneau/xml/XmlDocSerializer.java
+++ b/juneau-core/src/main/java/org/apache/juneau/xml/XmlDocSerializer.java
@@ -12,8 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.xml;
 
-import static org.apache.juneau.xml.XmlSerializerContext.*;
-
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.serializer.*;
 
@@ -39,12 +37,13 @@ public class XmlDocSerializer extends XmlSerializer {
        public static class Simple extends XmlDocSerializer {
                /** Constructor */
                public Simple() {
-                       setProperty(XML_enableNamespaces, false);
+                       setEnableNamespaces(false);
                }
        }
 
+
        
//--------------------------------------------------------------------------------
-       // Overridden methods
+       // Entry point methods
        
//--------------------------------------------------------------------------------
 
        @Override /* Serializer */

Reply via email to