You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2016/08/01 15:49:26 UTC

[08/51] [partial] incubator-juneau git commit: Merge changes from GitHub repo.

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerProperties.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerProperties.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerProperties.java
deleted file mode 100755
index 669a832..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerProperties.java
+++ /dev/null
@@ -1,303 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2014, 2015. All Rights Reserved.
- *
- *  The source code for this program is not published or otherwise
- *  divested of its trade secrets, irrespective of what has been
- *  deposited with the U.S. Copyright Office.
- *******************************************************************************/
-package com.ibm.juno.core.serializer;
-
-import com.ibm.juno.core.*;
-
-/**
- * Configurable properties common to all {@link Serializer} classes.
- * <p>
- * 	Use the {@link Serializer#setProperty(String, Object)} method to set property values.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class SerializerProperties implements Cloneable {
-
-	/**
-	 * Max depth ({@link Integer}, default=<code>100</code>).
-	 * <p>
-	 * Abort serialization if specified depth is reached in the POJO tree.
-	 * If this depth is exceeded, an exception is thrown.
-	 * This prevents stack overflows from occurring when trying to serialize models with recursive references.
-	 */
-	public static final String SERIALIZER_maxDepth = "Serializer.maxDepth";
-
-	/**
-	 * Initial depth ({@link Integer}, default=<code>0</code>).
-	 * <p>
-	 * The initial indentation level at the root.
-	 * Useful when constructing document fragments that need to be indented at a certain level.
-	 */
-	public static final String SERIALIZER_initialDepth = "Serializer.initialDepth";
-
-	/**
-	 * Automatically detect POJO recursions ({@link Boolean}, default=<jk>false</jk>).
-	 * <p>
-	 * Specifies that recursions should be checked for during serialization.
-	 * <p>
-	 * Recursions can occur when serializing models that aren't true trees, but rather contain loops.
-	 * <p>
-	 * The behavior when recursions are detected depends on the value for {@link #SERIALIZER_ignoreRecursions}.
-	 * <p>
-	 * For example, if a model contains the links A-&gt;B-&gt;C-&gt;A, then the JSON generated will look like
-	 * 	the following when <jsf>SERIALIZER_ignoreRecursions</jsf> is <jk>true</jk>...
-	 * <code>{A:{B:{C:null}}}</code><br>
-	 * <p>
-	 * Note:  Checking for recursion can cause a small performance penalty.
-	 */
-	public static final String SERIALIZER_detectRecursions = "Serializer.detectRecursions";
-
-	/**
-	 * Ignore recursion errors ({@link Boolean}, default=<jk>false</jk>).
-	 * <p>
-	 * Used in conjunction with {@link #SERIALIZER_detectRecursions}.
-	 * Setting is ignored if <jsf>SERIALIZER_detectRecursions</jsf> is <jk>false</jk>.
-	 * <p>
-	 * If <jk>true</jk>, when we encounter the same object when serializing a tree,
-	 * 	we set the value to <jk>null</jk>.
-	 * Otherwise, an exception is thrown.
-	 */
-	public static final String SERIALIZER_ignoreRecursions = "Serializer.ignoreRecursions";
-
-	/**
-	 * Debug mode ({@link Boolean}, default=<jk>false</jk>).
-	 * <p>
-	 * Enables the following additional information during serialization:
-	 * <ul>
-	 * 	<li>When bean getters throws exceptions, the exception includes the object stack information
-	 * 		in order to determine how that method was invoked.
-	 * 	<li>Enables {#link SERIALIZER_detectRecursions}.
-	 * </ul>
-	 */
-	public static final String SERIALIZER_debug = "Serializer.debug";
-
-	/**
-	 * Use indentation in output ({@link Boolean}, default=<jk>false</jk>).
-	 * <p>
-	 * If <jk>true</jk>, newlines and indentation is added to the output to improve readability.
-	 */
-	public static final String SERIALIZER_useIndentation = "Serializer.useIndentation";
-
-	/**
-	 * Add class attributes to output ({@link Boolean}, default=<jk>false</jk>).
-	 * <p>
-	 * If <jk>true</jk>, then <js>"_class"</js> attributes will be added to beans if their type cannot be inferred through reflection.
-	 * This is used to recreate the correct objects during parsing if the object types cannot be inferred.
-	 * For example, when serializing a {@code Map<String,Object>} field, where the bean class cannot be determined from the value type.
-	 */
-	public static final String SERIALIZER_addClassAttrs = "Serializer.addClassAttrs";
-
-	/**
-	 * Quote character ({@link Character}, default=<js>'"'</js>.
-	 * <p>
-	 * This is the character used for quoting attributes and values.
-	 */
-	public static final String SERIALIZER_quoteChar = "Serializer.quoteChar";
-
-	/**
-	 * Boolean.  Trim null bean property values from output.
-	 * <p>
-	 * 	If <jk>true</jk>, null bean values will not be serialized to the output.
-	 * <p>
-	 * 	Note that enabling this setting has the following effects on parsing:
-	 * 	<ul>
-	 * 		<li>Map entries with <jk>null</jk> values will be lost.
-	 * 	</ul>
-	 * <p>
-	 * 	Default is <jk>true</jk>.
-	 */
-	public static final String SERIALIZER_trimNullProperties = "Serializer.trimNullProperties";
-
-	/**
-	 * Boolean.  Trim empty lists and arrays from output.
-	 * <p>
-	 * 	If <jk>true</jk>, empty list values will not be serialized to the output.
-	 * <p>
-	 * 	Note that enabling this setting has the following effects on parsing:
-	 * 	<ul>
-	 * 		<li>Map entries with empty list values will be lost.
-	 * 		<li>Bean properties with empty list values will not be set.
-	 * 	</ul>
-	 * <p>
-	 * 	Default is <jk>false</jk>.
-	 */
-	public static final String SERIALIZER_trimEmptyLists = "Serializer.trimEmptyLists";
-
-	/**
-	 * Boolean.  Trim empty maps from output.
-	 * <p>
-	 * 	If <jk>true</jk>, empty map values will not be serialized to the output.
-	 * <p>
-	 * 	Note that enabling this setting has the following effects on parsing:
-	 * 	<ul>
-	 * 		<li>Bean properties with empty map values will not be set.
-	 * 	</ul>
-	 * <p>
-	 * 	Default is <jk>false</jk>.
-	 */
-	public static final String SERIALIZER_trimEmptyMaps = "Serializer.trimEmptyMaps";
-
-	/**
-	 * String.  URI base for relative URIs.
-	 * <p>
-	 * 	Prepended to relative URIs during serialization (along with the {@link #SERIALIZER_absolutePathUriBase} if specified.
-	 * 	(i.e. URIs not containing a schema and not starting with <js>'/'</js>).
-	 * 	(e.g. <js>"foo/bar"</js>)
-	 * <p>
-	 * 	Default is <js>""</js>.
-	 *
-	 * <dl>
-	 * 	<dt>Examples:</dt>
-	 * 	<dd>
-	 * <table class='styled'>
-	 * 	<tr><th>SERIALIZER_relativeUriBase</th><th>URI</th><th>Serialized URI</th></tr>
-	 * 	<tr>
-	 * 		<td><code>http://foo:9080/bar/baz</code></td>
-	 * 		<td><code>mywebapp</code></td>
-	 * 		<td><code>http://foo:9080/bar/baz/mywebapp</code></td>
-	 * 	</tr>
-	 * 	<tr>
-	 * 		<td><code>http://foo:9080/bar/baz</code></td>
-	 * 		<td><code>/mywebapp</code></td>
-	 * 		<td><code>/mywebapp</code></td>
-	 * 	</tr>
-	 * 	<tr>
-	 * 		<td><code>http://foo:9080/bar/baz</code></td>
-	 * 		<td><code>http://mywebapp</code></td>
-	 * 		<td><code>http://mywebapp</code></td>
-	 * 	</tr>
-	 * </table>
-	 * 	</dd>
-	 * </dl>
-	 */
-	public static final String SERIALIZER_relativeUriBase = "Serializer.relativeUriBase";
-
-	/**
-	 * Boolean.  Sort arrays and collections alphabetically before serializing.
-	 * <p>
-	 * 	Note that this introduces a performance penalty.
-	 * <p>
-	 * 	Default is <jk>false</jk>.
-	 */
-	public static final String SERIALIZER_sortCollections = "Serializer.sortCollections";
-
-	/**
-	 * Boolean.  Sort maps alphabetically before serializing.
-	 * <p>
-	 * 	Note that this introduces a performance penalty.
-	 * <p>
-	 * 	Default is <jk>false</jk>.
-	 */
-	public static final String SERIALIZER_sortMaps = "Serializer.sortMaps";
-
-	/**
-	 * String.  URI base for relative URIs with absolute paths.
-	 * <p>
-	 * 	Prepended to relative absolute-path URIs during serialization.
-	 * 	(i.e. URIs starting with <js>'/'</js>).
-	 * 	(e.g. <js>"/foo/bar"</js>)
-	 * <p>
-	 * 	Default is <js>""</js>.
-	 *
-	 * <dl>
-	 * 	<dt>Examples:</dt>
-	 * 	<dd>
-	 * <table class='styled'>
-	 * 	<tr><th>SERIALIZER_absolutePathUriBase</th><th>URI</th><th>Serialized URI</th></tr>
-	 * 	<tr>
-	 * 		<td><code>http://foo:9080/bar/baz</code></td>
-	 * 		<td><code>mywebapp</code></td>
-	 * 		<td><code>mywebapp</code></td>
-	 * 	</tr>
-	 * 	<tr>
-	 * 		<td><code>http://foo:9080/bar/baz</code></td>
-	 * 		<td><code>/mywebapp</code></td>
-	 * 		<td><code>http://foo:9080/bar/baz/mywebapp</code></td>
-	 * 	</tr>
-	 * 	<tr>
-	 * 		<td><code>http://foo:9080/bar/baz</code></td>
-	 * 		<td><code>http://mywebapp</code></td>
-	 * 		<td><code>http://mywebapp</code></td>
-	 * 	</tr>
-	 * </table>
-	 * 	</dd>
-	 * </dl>
-	 */
-	public static final String SERIALIZER_absolutePathUriBase = "Serializer.absolutePathUriBase";
-
-	int maxDepth = 100, initialDepth = 0;
-	boolean
-		debug = false,
-		detectRecursions = false,
-		ignoreRecursions = false,
-		useIndentation = false,
-		addClassAttrs = false,
-		trimNulls = true,
-		trimEmptyLists = false,
-		trimEmptyMaps = false,
-		sortCollections = false,
-		sortMaps = false;
-	char quoteChar = '"';
-	String relativeUriBase="", absolutePathUriBase="";
-
-	/**
-	 * Sets the specified property value.
-	 * @param property The property name.
-	 * @param value The property value.
-	 * @return <jk>true</jk> if property name was valid and property was set.
-	 */
-	public boolean setProperty(String property, Object value) {
-		BeanContext bc = BeanContext.DEFAULT;
-		if (property.equals(SERIALIZER_maxDepth))
-			maxDepth = bc.convertToType(value, Integer.class);
-		else if (property.equals(SERIALIZER_debug))
-			debug = bc.convertToType(value, Boolean.class);
-		else if (property.equals(SERIALIZER_detectRecursions))
-			detectRecursions = bc.convertToType(value, Boolean.class);
-		else if (property.equals(SERIALIZER_ignoreRecursions))
-			ignoreRecursions = bc.convertToType(value, Boolean.class);
-		else if (property.equals(SERIALIZER_useIndentation))
-			useIndentation = bc.convertToType(value, Boolean.class);
-		else if (property.equals(SERIALIZER_addClassAttrs))
-			addClassAttrs = bc.convertToType(value, Boolean.class);
-		else if (property.equals(SERIALIZER_quoteChar))
-			quoteChar = bc.convertToType(value, Character.class);
-		else if (property.equals(SERIALIZER_trimNullProperties))
-			trimNulls = bc.convertToType(value, Boolean.class);
-		else if (property.equals(SERIALIZER_trimEmptyLists))
-			trimEmptyLists = bc.convertToType(value, Boolean.class);
-		else if (property.equals(SERIALIZER_trimEmptyMaps))
-			trimEmptyMaps = bc.convertToType(value, Boolean.class);
-		else if (property.equals(SERIALIZER_relativeUriBase))
-			relativeUriBase = value == null ? null : value.toString();
-		else if (property.equals(SERIALIZER_absolutePathUriBase))
-			absolutePathUriBase = value == null ? null : value.toString();
-		else if (property.equals(SERIALIZER_sortCollections))
-			sortCollections = bc.convertToType(value, Boolean.class);
-		else if (property.equals(SERIALIZER_sortMaps))
-			sortMaps = bc.convertToType(value, Boolean.class);
-		else
-			return false;
-		return true;
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* Cloneable */
-	public SerializerProperties clone() {
-		try {
-			return (SerializerProperties)super.clone();
-		} catch (CloneNotSupportedException e) {
-			throw new RuntimeException(e); // Won't happen.
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerWriter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerWriter.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerWriter.class
deleted file mode 100755
index 0bd3142..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerWriter.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerWriter.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerWriter.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerWriter.java
deleted file mode 100755
index 7a91e6a..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/SerializerWriter.java
+++ /dev/null
@@ -1,308 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2014, 2015. All Rights Reserved.
- *
- *  The source code for this program is not published or otherwise
- *  divested of its trade secrets, irrespective of what has been
- *  deposited with the U.S. Copyright Office.
- *******************************************************************************/
-package com.ibm.juno.core.serializer;
-
-import java.io.*;
-import java.net.*;
-
-import com.ibm.juno.core.utils.*;
-
-/**
- * Simple wrapper around a standard {@link Writer} with additional methods.
- * <p>
- * Modeled after the Java ProcessBuilder class so that you can chain commands to reduce
- * 	the need for string concatenation for performance reasons.
- *
- * <h6 class='topic'>Example</h6>
- * <p class='bcode'>
- * 	writer.append(<js>"foo"</js>).nl().i(5).append(<js>"bar"</js>);
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class SerializerWriter extends Writer {
-
-	/** The underlying writer. */
-	protected final Writer out;
-
-	/** Use-indentation flag. */
-	protected final boolean useIndentation;
-
-	/** Use-whitespace flag. */
-	protected final boolean useWhitespace;
-
-	/** The quote character being used by this writer. */
-	protected final char quoteChar;
-
-	/** The base (e.g. <js>https://localhost:9443/contextPath"</js>) for relative URIs (e.g. <js>"my/path"</js>). */
-	protected final String relativeUriBase;
-
-	/** The base (e.g. <js>https://localhost:9443"</js>) for relative URIs with absolute paths (e.g. <js>"/contextPath/my/path"</js>). */
-	protected final String absolutePathUriBase;
-
-	/**
-	 * @param out The writer being wrapped.
-	 * @param useIndentation If <jk>true</jk>, calling {@link #cr(int)} will create an indentation.
-	 * @param useWhitespace If <jk>true</jk>, calling {@link #s()} will write a space character.
-	 * @param quoteChar The character to write when {@link #q()} is called.
-	 * @param relativeUriBase The base (e.g. <js>https://localhost:9443/contextPath"</js>) for relative URIs (e.g. <js>"my/path"</js>).
-	 * @param absolutePathUriBase The base (e.g. <js>https://localhost:9443"</js>) for relative URIs with absolute paths (e.g. <js>"/contextPath/my/path"</js>).
-	 */
-	public SerializerWriter(Writer out, boolean useIndentation, boolean useWhitespace, char quoteChar, String relativeUriBase, String absolutePathUriBase) {
-		this.out = out;
-		this.useIndentation = useIndentation;
-		this.useWhitespace = useWhitespace;
-		this.quoteChar = quoteChar;
-		this.relativeUriBase = relativeUriBase;
-		this.absolutePathUriBase = absolutePathUriBase;
-	}
-
-	/**
-	 * Performs a carriage return.
-	 * <p>
-	 * 	Adds a newline and the specified number of tabs (if the {@code useIndentation} setting is enabled) to the output.
-	 *
-	 * @param depth The indentation.
-	 * @throws IOException If a problem occurred trying to write to the writer.
-	 * @return This object (for method chaining).
-	 */
-	public SerializerWriter cr(int depth) throws IOException {
-		if (useIndentation)
-			return nl().i(depth);
-		return this;
-	}
-
-	/**
-	 * Writes an indent (if the {@code useIndentation} setting is enabled), followed by text,
-	 * 	followed by a newline (if the {@code useIndentation} setting is enabled).
-	 *
-	 * @param indent The number of tabs to indent.
-	 * @param text The text to write.
-	 * @throws IOException If a problem occurred trying to write to the writer.
-	 * @return This object.
-	 */
-	public SerializerWriter appendln(int indent, String text) throws IOException {
-		return append(indent, true, text);
-	}
-
-	/**
-	 * Writes the specified text followed by a newline (if the {@code useIndentation} setting is enabled).
-	 *
-	 * @param text The text to write.
-	 * @throws IOException If a problem occurred trying to write to the writer.
-	 * @return This object.
-	 */
-	public SerializerWriter appendln(String text) throws IOException {
-		return append(0, true, text);
-	}
-
-	/**
-	 * Writes an indent (if the {@code useIndentation} setting is enabled), followed by text.
-	 *
-	 * @param indent The number of tabs to indent.
-	 * @param text The text to write.
-	 * @throws IOException If a problem occurred trying to write to the writer.
-	 * @return This object.
-	 */
-	public SerializerWriter append(int indent, String text) throws IOException {
-		return append(indent, false, text);
-	}
-
-	/**
-	 * Writes an indent (if the {@code useIndentation} setting is enabled), followed by text.
-	 *
-	 * @param indent The number of tabs to indent.
-	 * @param c The character to write.
-	 * @throws IOException If a problem occurred trying to write to the writer.
-	 * @return This object.
-	 */
-	public SerializerWriter append(int indent, char c) throws IOException {
-		return i(indent).append(c);
-	}
-
-	/**
-	 * Writes an indent (if the {@code useIndentation} setting is enabled), followed by text,
-	 * 	optionally followed by a newline (if the {@code useIndentation} setting is enabled).
-	 *
-	 * @param indent The number of tabs to indent.
-	 * @param newline If <jk>true</jk>, then a newline is written.
-	 * @param text The text to write.
-	 * @throws IOException If a problem occurred trying to write to the writer.
-	 * @return This object (for method chaining).
-	 */
-	private SerializerWriter append(int indent, boolean newline, String text) throws IOException {
-		i(indent);
-		out.write(text);
-		if (newline)
-			nl();
-		return this;
-	}
-
-	/**
-	 * Appends the specified object as a URI.
-	 * <p>
-	 * Object is converted to a <code>String</code> using <code>toString()</code>, so this will work on {@link URL} or {@link URI} objects,
-	 * or any other type that returns a URI via it's <code>toString()</code> method.
-	 * <p>
-	 * If the URI is relative (i.e. without a schema and not prepended with <js>'/'</js>) the URI
-	 * will be prepended with {@link #absolutePathUriBase} and {@link #relativeUriBase}.
-	 * <p>
-	 * If the URI is context-absolute (i.e. without a schema, but prepended with <js>'/'</js>)
-	 * the URI will be prepended with {@link #absolutePathUriBase}.
-	 *
-	 * @param uri The URI to serialize.
-	 * @return This object (for method chaining).
-	 * @throws IOException If a problem occurred trying to write to the writer.
-	 */
-	public SerializerWriter appendUri(Object uri) throws IOException {
-		String s = uri.toString();
-		if (s.indexOf("://") == -1) {
-			if (StringUtils.startsWith(s, '/')) {
-				if (absolutePathUriBase != null)
-					append(absolutePathUriBase);
-			} else {
-				if (relativeUriBase != null) {
-					append(relativeUriBase);
-					if (! relativeUriBase.equals("/"))
-						append("/");
-
-				}
-			}
-		}
-		return append(s);
-	}
-
-	/**
-	 * Adds a whitespace character to the output if the {@code useWhitespace} setting is enabled.
-	 *
-	 * @return This object (for method chaining).
-	 * @throws IOException If a problem occurred trying to write to the writer.
-	 */
-	public SerializerWriter s() throws IOException {
-		if (useWhitespace)
-			out.write(' ');
-		return this;
-	}
-
-	/**
-	 * Adds the quote character specified by the {@code quoteChar} setting to the output.
-	 *
-	 * @return This object (for method chaining).
-	 * @throws IOException If a problem occurred trying to write to the writer.
-	 */
-	public SerializerWriter q() throws IOException {
-		out.write(quoteChar);
-		return this;
-	}
-
-	/**
-	 * Writes an indent to the writer if the {@code useIndentation} setting is enabled.
-	 *
-	 * @param indent The number of tabs to indent.
-	 * @throws IOException If a problem occurred trying to write to the writer.
-	 * @return This object (for method chaining).
-	 */
-	public SerializerWriter i(int indent) throws IOException {
-		if (useIndentation)
-			for (int i = 0; i < indent; i++)
-				out.write('\t');
-		return this;
-	}
-
-	/**
-	 * Writes a newline to the writer if the {@code useIndentation} setting is enabled.
-	 *
-	 * @throws IOException If a problem occurred trying to write to the writer.
-	 * @return This object (for method chaining).
-	 */
-	public SerializerWriter nl() throws IOException {
-		if (useIndentation)
-			out.write('\n');
-		return this;
-	}
-
-	/**
-	 * Writes the specified text to the writer.
-	 *
-	 * @param text The text to write.
-	 * @throws IOException If a problem occurred trying to write to the writer.
-	 * @return This object (for method chaining).
-	 */
-	public SerializerWriter append(Object text) throws IOException {
-		out.append(text == null ? null : text.toString());
-		return this;
-	}
-
-	/**
-	 * Writes the specified text to the writer.
-	 *
-	 * @param text The text to write.
-	 * @throws IOException If a problem occurred trying to write to the writer.
-	 * @return This object (for method chaining).
-	 */
-	public SerializerWriter append(String text) throws IOException {
-		if (text != null)
-			out.append(text);
-		return this;
-	}
-
-	/**
-	 * Writes the specified text to the writer if b is true.
-	 *
-	 * @param b Boolean flag.
-	 * @param text The text to write.
-	 * @throws IOException If a problem occurred trying to write to the writer.
-	 * @return This object (for method chaining).
-	 */
-	public SerializerWriter appendIf(boolean b, String text) throws IOException {
-		if (b)
-			out.write(text);
-		return this;
-	}
-
-	/**
-	 * Writes the specified text to the writer if b is true.
-	 *
-	 * @param b Boolean flag.
-	 * @param c The text to write.
-	 * @throws IOException If a problem occurred trying to write to the writer.
-	 * @return This object (for method chaining).
-	 */
-	public SerializerWriter appendIf(boolean b, char c) throws IOException {
-		if (b)
-			out.write(c);
-		return this;
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* Writer */
-	public SerializerWriter append(char c) throws IOException {
-		out.write(c);
-		return this;
-	}
-
-	@Override /* Writer */
-	public void write(char[] cbuf, int off, int len) throws IOException {
-		out.write(cbuf, off, len);
-	}
-
-	@Override /* Writer */
-	public void flush() throws IOException {
-		out.flush();
-	}
-
-	@Override /* Writer */
-	public void close() throws IOException {
-		out.close();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/StringObject.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/StringObject.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/StringObject.class
deleted file mode 100755
index a6fcb1d..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/StringObject.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/StringObject.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/StringObject.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/StringObject.java
deleted file mode 100755
index ae9a506..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/StringObject.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2015. All Rights Reserved.
- *
- *  The source code for this program is not published or otherwise
- *  divested of its trade secrets, irrespective of what has been
- *  deposited with the U.S. Copyright Office.
- *******************************************************************************/
-package com.ibm.juno.core.serializer;
-
-import java.io.*;
-
-import com.ibm.juno.core.*;
-
-/**
- * A serializer/object pair used for delayed object serialization.
- * <p>
- * Useful in certain conditions such as logging when you don't want to needlessly serialize objects.
- * <p>
- * Instances of this method are created by the {@link WriterSerializer#toStringObject(Object)} method.
- *
- * <h6 class='topic'>Example</h6>
- * <p class='bcode'>
- * 	<jc>// The POJO will not be serialized unless DEBUG is enabled.</jc>
- * 	logger.log(<jsf>DEBUG</jsf>, <js>"Object contents are: {0}"</js>, JsonSerializer.<jsf>DEFAULT</jsf>.toObjectString(myPojo));
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class StringObject implements CharSequence, Writable {
-
-	private final WriterSerializer s;
-	private final Object o;
-	private String results;
-
-	/**
-	 * Constructor.
-	 * @param s The serializer to use to serialize the object.
-	 * @param o The object to be serialized.
-	 */
-	public StringObject(WriterSerializer s, Object o) {
-		this.s = s;
-		this.o = o;
-	}
-
-	@Override /* Object */
-	public String toString() {
-		if (results == null)
-			results = s.toString(o);
-		return results;
-	}
-
-	@Override /* CharSequence */
-	public int length() {
-		return toString().length();
-	}
-
-	@Override /* CharSequence */
-	public char charAt(int index) {
-		return toString().charAt(index);
-	}
-
-	@Override /* CharSequence */
-	public CharSequence subSequence(int start, int end) {
-		return toString().subSequence(start, end);
-	}
-
-	@Override /* Writable */
-	public void writeTo(Writer w) throws IOException {
-		try {
-			s.serialize(o, w);
-		} catch (SerializeException e) {
-			throw new IOException(e);
-		}
-	}
-
-	@Override /* Writable */
-	public String getMediaType() {
-		return s.getMediaTypes()[0];
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/WriterSerializer.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/WriterSerializer.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/WriterSerializer.class
deleted file mode 100755
index a1b81b4..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/WriterSerializer.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/WriterSerializer.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/WriterSerializer.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/WriterSerializer.java
deleted file mode 100755
index 6309176..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/WriterSerializer.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2014, 2015. All Rights Reserved.
- *
- *  The source code for this program is not published or otherwise
- *  divested of its trade secrets, irrespective of what has been
- *  deposited with the U.S. Copyright Office.
- *******************************************************************************/
-package com.ibm.juno.core.serializer;
-
-import java.io.*;
-import java.lang.reflect.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.annotation.*;
-
-/**
- * Subclass of {@link Serializer} for character-based serializers.
- *
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * 	This class is typically the parent class of all character-based serializers.
- * 	It has 2 abstract methods to implement...
- * <ul>
- * 	<li>{@link #createContext(ObjectMap, Method)}
- * 	<li>{@link #doSerialize(Object, Writer, SerializerContext)}
- * </ul>
- *
- *
- * <h6 class='topic'>@Produces annotation</h6>
- * <p>
- * 	The media types that this serializer can produce is specified through the {@link Produces @Produces} annotation.
- * <p>
- * 	However, the media types can also be specified programmatically by overriding the {@link #getMediaTypes()}
- * 		and {@link #getResponseContentType()} methods.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public abstract class WriterSerializer extends Serializer<Writer> {
-
-	@Override /* Serializer */
-	public boolean isWriterSerializer() {
-		return true;
-	}
-
-	//--------------------------------------------------------------------------------
-	// Abstract methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* Serializer */
-	protected abstract void doSerialize(Object o, Writer out, SerializerContext ctx) throws IOException, SerializeException;
-
-
-	//--------------------------------------------------------------------------------
-	// Other methods
-	//--------------------------------------------------------------------------------
-
-	/**
-	 * Internal test method.
-	 *
-	 * @param o The object to serialize.
-	 * @param ctx The serialize context.
-	 * 	This object is automatically closed after serialization.
-	 * @return The output serialized to a string.
-	 * @throws SerializeException If a problem occurred trying to convert the output.
-	 */
-	public final String serialize(Object o, SerializerContext ctx) throws SerializeException {
-		try {
-			StringWriter w = new StringWriter();
-			serialize(o, w, ctx);
-			return w.toString();
-		} catch (IOException e) { // Shouldn't happen.
-			throw new RuntimeException(e);
-		}
-	}
-
-	/**
-	 * Convenience method for serializing an object to a String.
-	 *
-	 * @param o The object to serialize.
-	 * @return The output serialized to a string.
-	 * @throws SerializeException If a problem occurred trying to convert the output.
-	 */
-	public final String serialize(Object o) throws SerializeException {
-		try {
-			StringWriter w = new StringWriter();
-			serialize(o, w, createContext());
-			return w.toString();
-		} catch (IOException e) {
-			throw new RuntimeException(e); // Shouldn't happen.
-		}
-	}
-
-	/**
-	 * Identical to {@link #serialize(Object)} except throws a {@link RuntimeException}
-	 * instead of a {@link SerializeException}.
-	 * This is typically good enough for debugging purposes.
-	 *
-	 * @param o The object to serialize.
-	 * @return The serialized object.
-	 */
-	public final String toString(Object o) {
-		try {
-			StringWriter w = new StringWriter();
-			serialize(o, w, createContext());
-			return w.toString();
-		} catch (Exception e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-	/**
-	 * Wraps the specified object inside a {@link StringObject}.
-	 *
-	 * @param o The object to wrap.
-	 * @return The wrapped object.
-	 */
-	public final StringObject toStringObject(Object o) {
-		return new StringObject(this, o);
-	}
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* CoreApi */
-	public WriterSerializer addNotBeanClasses(Class<?>...classes) throws LockedException {
-		super.addNotBeanClasses(classes);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public WriterSerializer addFilters(Class<?>...classes) throws LockedException {
-		super.addFilters(classes);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public <T> WriterSerializer addImplClass(Class<T> interfaceClass, Class<? extends T> implClass) throws LockedException {
-		super.addImplClass(interfaceClass, implClass);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public WriterSerializer setClassLoader(ClassLoader classLoader) throws LockedException {
-		super.setClassLoader(classLoader);
-		return this;
-	}
-
-	@Override /* Lockable */
-	public WriterSerializer lock() {
-		super.lock();
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public WriterSerializer clone() throws CloneNotSupportedException {
-		WriterSerializer c = (WriterSerializer)super.clone();
-		return c;
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/package.html b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/package.html
deleted file mode 100755
index 4fe443f..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/serializer/package.html
+++ /dev/null
@@ -1,128 +0,0 @@
-<!DOCTYPE HTML>
-<!--
-    Licensed Materials - Property of IBM
-    (c) Copyright IBM Corporation 2014. All Rights Reserved.
-   
-    Note to U.S. Government Users Restricted Rights:  
-    Use, duplication or disclosure restricted by GSA ADP Schedule 
-    Contract with IBM Corp. 
- -->
-<html>
-<head>
-	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-	<style type="text/css">
-		/* For viewing in Page Designer */
-		@IMPORT url("../../../../../../javadoc.css");
-
-		/* For viewing in REST interface */
-		@IMPORT url("../htdocs/javadoc.css");
-		body { 
-			margin: 20px; 
-		}	
-	</style>
-	<script>
-		/* Replace all @code and @link tags. */	
-		window.onload = function() {
-			document.body.innerHTML = document.body.innerHTML.replace(/\{\@code ([^\}]+)\}/g, '<code>$1</code>');
-			document.body.innerHTML = document.body.innerHTML.replace(/\{\@link (([^\}]+)\.)?([^\.\}]+)\}/g, '<code>$3</code>');
-		}
-	</script>
-</head>
-<body>
-<p>Serializer API</p>
-
-<script>
-	function toggle(x) {
-		var div = x.nextSibling;
-		while (div != null && div.nodeType != 1)
-			div = div.nextSibling;
-		if (div != null) {
-			var d = div.style.display;
-			if (d == 'block' || d == '') {
-				div.style.display = 'none';
-				x.className += " closed";
-			} else {
-				div.style.display = 'block';
-				x.className = x.className.replace(/(?:^|\s)closed(?!\S)/g , '' );
-			}
-		}
-	}
-</script>
-
-<a id='TOC'></a><h5 class='toc'>Table of Contents</h5>
-<ol class='toc'>
-	<li><p><a class='doclink' href='#Serializer'>Serializer API</a></p>
-	<ol>
-		<li><p><a class='doclink' href='#SerializerGroup'>The SerializerGroup class</a></p>
-	</ol>
-	<li><p><a class='doclink' href='#DefiningSerializer'>Defining a new Serializer</a></p>
-</ol>
-
-<!-- ======================================================================================================== -->
-<a id="Serializer"></a>
-<h2 class='topic' onclick='toggle(this)'>1 - Serializer API</h2>
-<div class='topic'>
-	<p>
-		The serialization API is designed to be easily extensible by developers.<br>
-		If you are writing your own serializer, you will typically subclass directly from either {@link com.ibm.juno.core.serializer.WriterSerializer}
-			or {@link com.ibm.juno.core.serializer.OutputStreamSerializer}.<br>
-	</p>
-
-	<!-- ======================================================================================================== -->
-	<a id="SerializerGroup"></a>
-	<h3 class='topic' onclick='toggle(this)'>1.1 - The SerializerGroup class</h3>
-	<div class='topic'>
-		<p>
-			The {@link com.ibm.juno.core.serializer.SerializerGroup} class represents a group of serializers registered with the media types they handle.
-		</p>
-		
-		<h6 class='topic'>Features</h6>		
-		<p>
-			The <code>SerializerGroup</code> class provides the following features:
-		<ul>
-			<li>Finds serializers based on HTTP <code>Accept</code> header values.
-			<li>Sets common properties on all serializers in a single method call.
-		 	<li>Locks all serializers in a single method call.
-			<li>Clones existing groups and all serializers within the group in a single method call.
-		</ul>
-		
-		<p>
-			Refer to {@link com.ibm.juno.core.serializer.SerializerGroup} for additional information.
-		</p>
-	</div> 
-</div>
-
-
-<!-- ======================================================================================================== -->
-<a id="DefiningSerializer"></a>
-<h2 class='topic' onclick='toggle(this)'>2 - Defining a new Serializer</h2>
-<div class='topic'>
-	<p>
-		Defining a new serializer is quite simple if you subclass directly from {@link com.ibm.juno.core.serializer.WriterSerializer} 
-			or {@link com.ibm.juno.core.serializer.OutputStreamSerializer}.<br>
-		In each case, you simply need to implement a single
-			method and specify a {@link com.ibm.juno.core.annotation.Produces} annotation.
-	</p>
-	<p>
-		The following example shows a simple serializer that converts images to output streams using standard JRE classes.
-	</p>
-	<p class='bcode'>
-	<ja>@Produces</ja>({<js>"image/png"</js>,<js>"image/jpeg"</js>})
-	<jk>public static class</jk> ImageSerializer <jk>extends</jk> OutputStreamSerializer {
-		<ja>@Override</ja>
-		<jk>public void</jk> serialize(Object o, OutputStream out, SerializerContext ctx) <jk>throws</jk> IOException, SerializeException {
-			RenderedImage image = (RenderedImage)o;
-			String mediaType = ctx.getMediaType();
-			ImageIO.<jsm>write</jsm>(image, mediaType.substring(mediaType.indexOf(<js>'/'</js>)+1), out);
-		}	
-	}
-	</p>
-	<p>
-		Serializer that take advantage of the entire {@link com.ibm.juno.core.CoreApi} interface to be able to serialize arbitrary beans and POJOs is
-			considerably more complex and outside the scope of this document.<br>  
-		If developing such a serializer, the best course of action would be to replicate what occurs in the {@link com.ibm.juno.core.json.JsonSerializer} class.
-	</p>
-</div>
-
-</body>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/soap/SoapXmlSerializer.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/soap/SoapXmlSerializer.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/soap/SoapXmlSerializer.class
deleted file mode 100755
index 1d9487b..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/soap/SoapXmlSerializer.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/soap/SoapXmlSerializer.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/soap/SoapXmlSerializer.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/soap/SoapXmlSerializer.java
deleted file mode 100755
index df249f2..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/soap/SoapXmlSerializer.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2011, 2015. All Rights Reserved.
- *
- *  The source code for this program is not published or otherwise
- *  divested of its trade secrets, irrespective of what has been
- *  deposited with the U.S. Copyright Office.
- *******************************************************************************/
-package com.ibm.juno.core.soap;
-
-import static com.ibm.juno.core.soap.SoapXmlSerializerProperties.*;
-
-import java.io.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.annotation.*;
-import com.ibm.juno.core.serializer.*;
-import com.ibm.juno.core.xml.*;
-
-/**
- * Serializes POJOs to HTTP responses as XML+SOAP.
- *
- *
- * <h6 class='topic'>Media types</h6>
- * <p>
- * 	Handles <code>Accept</code> types: <code>text/xml+soap</code>
- * <p>
- * 	Produces <code>Content-Type</code> types: <code>text/xml+soap</code>
- *
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * 	Essentially the same output as {@link XmlDocSerializer}, except wrapped in a standard SOAP envelope.
- *
- *
- * <h6 class='topic'>Configurable properties</h6>
- * <p>
- * 	This class has the following properties associated with it:
- * <ul>
- * 	<li>{@link SoapXmlSerializerProperties}
- * 	<li>{@link XmlSerializerProperties}
- * 	<li>{@link SerializerProperties}
- * 	<li>{@link BeanContextProperties}
- * </ul>
- *
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Produces(value="text/xml+soap",contentType="text/xml")
-public final class SoapXmlSerializer extends XmlSerializer {
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* Serializer */
-	protected void doSerialize(Object o, Writer out, SerializerContext ctx) throws IOException, SerializeException {
-		XmlSerializerContext xctx = (XmlSerializerContext)ctx;
-		XmlSerializerWriter w = xctx.getWriter(out);
-		w.append("<?xml")
-			.attr("version", "1.0")
-			.attr("encoding", "UTF-8")
-			.appendln("?>");
-		w.oTag("soap", "Envelope")
-			.attr("xmlns", "soap", xctx.getProperties().getString(SOAPXML_SOAPAction, "http://www.w3.org/2003/05/soap-envelope"))
-			.appendln(">");
-		w.sTag(1, "soap", "Body").nl();
-		super.serialize(o, w, ctx);
-		w.eTag(1, "soap", "Body").nl();
-		w.eTag("soap", "Envelope").nl();
-	}
-
-	@Override /* Serializer */
-	public ObjectMap getResponseHeaders(ObjectMap properties) {
-		return super.getResponseHeaders(properties)
-			.append("SOAPAction", properties.getString(SOAPXML_SOAPAction, "http://www.w3.org/2003/05/soap-envelope"));
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/soap/SoapXmlSerializerProperties.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/soap/SoapXmlSerializerProperties.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/soap/SoapXmlSerializerProperties.class
deleted file mode 100755
index 9aac21c..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/soap/SoapXmlSerializerProperties.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/soap/SoapXmlSerializerProperties.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/soap/SoapXmlSerializerProperties.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/soap/SoapXmlSerializerProperties.java
deleted file mode 100755
index f66a7f2..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/soap/SoapXmlSerializerProperties.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2014. All Rights Reserved.
- *
- *  The source code for this program is not published or otherwise
- *  divested of its trade secrets, irrespective of what has been
- *  deposited with the U.S. Copyright Office.
- *******************************************************************************/
-package com.ibm.juno.core.soap;
-
-/**
- * Properties associated with the {@link SoapXmlSerializer} class.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class SoapXmlSerializerProperties {
-
-	/**
-	 * The <code>SOAPAction</code> HTTP header value to set on responses.
-	 * <p>
-	 * Default is <js>"http://www.w3.org/2003/05/soap-envelope"</js>.
-	 */
-	public static final String SOAPXML_SOAPAction = "SoapXmlSerializer.SOAPAction";
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/soap/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/soap/package.html b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/soap/package.html
deleted file mode 100755
index 3b4f818..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/soap/package.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML>
-<!--
-    Licensed Materials - Property of IBM
-    (c) Copyright IBM Corporation 2014. All Rights Reserved.
-   
-    Note to U.S. Government Users Restricted Rights:  
-    Use, duplication or disclosure restricted by GSA ADP Schedule 
-    Contract with IBM Corp. 
- -->
-<html>
-<head>
-	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-	<style type="text/css">
-		/* For viewing in Page Designer */
-		@IMPORT url("../../../../../../javadoc.css");
-
-		/* For viewing in REST interface */
-		@IMPORT url("../htdocs/javadoc.css");
-		body { 
-			margin: 20px; 
-		}	
-	</style>
-	<script>
-		/* Replace all @code and @link tags. */	
-		window.onload = function() {
-			document.body.innerHTML = document.body.innerHTML.replace(/\{\@code ([^\}]+)\}/g, '<code>$1</code>');
-			document.body.innerHTML = document.body.innerHTML.replace(/\{\@link (([^\}]+)\.)?([^\.\}]+)\}/g, '<code>$3</code>');
-		}
-	</script>
-</head>
-<body>
-<p>SOAP/XML serialization and parsing support</p>
-</body>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonParser$Decoding.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonParser$Decoding.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonParser$Decoding.class
deleted file mode 100755
index c4824b2..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonParser$Decoding.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonParser.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonParser.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonParser.class
deleted file mode 100755
index 1a58860..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonParser.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonParser.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonParser.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonParser.java
deleted file mode 100755
index 6638562..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonParser.java
+++ /dev/null
@@ -1,861 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2013, 2015. All Rights Reserved.
- *
- *  The source code for this program is not published or otherwise
- *  divested of its trade secrets, irrespective of what has been
- *  deposited with the U.S. Copyright Office.
- *******************************************************************************/
-package com.ibm.juno.core.urlencoding;
-
-import static com.ibm.juno.core.urlencoding.UonParserProperties.*;
-
-import java.io.*;
-import java.lang.reflect.*;
-import java.util.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.annotation.*;
-import com.ibm.juno.core.filter.*;
-import com.ibm.juno.core.parser.*;
-import com.ibm.juno.core.utils.*;
-
-/**
- * Parses UON (a notation for URL-encoded query parameter values) text into POJO models.
- *
- *
- * <h6 class='topic'>Media types</h6>
- * <p>
- * 	Handles <code>Content-Type</code> types: <code>text/uon</code>
- *
- *
- * <h6 class='topic'>Description</h6>
- * <p>
- * 	This parser uses a state machine, which makes it very fast and efficient.
- *
- *
- * <h6 class='topic'>Configurable properties</h6>
- * <p>
- * 	This class has the following properties associated with it:
- * <ul>
- * 	<li>{@link UonParserProperties}
- * 	<li>{@link ParserProperties}
- * 	<li>{@link BeanContextProperties}
- * </ul>
- *
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@SuppressWarnings({ "rawtypes", "unchecked" })
-@Consumes("text/uon")
-public class UonParser extends ReaderParser {
-
-	/** Reusable instance of {@link UonParser}, all default settings. */
-	public static final UonParser DEFAULT = new UonParser().lock();
-
-	/** Reusable instance of {@link UonParser.Decoding}. */
-	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();
-
-	// Characters that need to be preceeded with an escape character.
-	private static final AsciiSet escapedChars = new AsciiSet(",()~=$\u0001\u0002");
-
-	private static final char NUL='\u0000', AMP='\u0001', EQ='\u0002';  // Flags set in reader to denote & and = characters.
-
-	/**
-	 * Equivalent to <code><jk>new</jk> UrlEncodingParser().setProperty(UonParserProperties.<jsf>UON_decodeChars</jsf>,<jk>true</jk>);</code>.
-	 */
-	public static class Decoding extends UonParser {
-		/** Constructor */
-		public Decoding() {
-			setProperty(UON_decodeChars, true);
-		}
-	}
-
-	/** UON parser properties currently set on this serializer. */
-	protected transient UonParserProperties upp = new UonParserProperties();
-
-	/** URL-Encoding properties currently set on this serializer. */
-	protected transient UrlEncodingProperties uep = new UrlEncodingProperties();
-
-	/**
-	 * Workhorse method.
-	 *
-	 * @param nt The class type being parsed, or <jk>null</jk> if unknown.
-	 * @param ctx The parser context for this parse.
-	 * @param r The reader being parsed.
-	 * @param p If this is a bean property value, the bean property meta, or null if this is not a bean property value being parsed.
-	 * @param outer The outer object (for constructing nested inner classes).
-	 * @param isUrlParamValue If <jk>true</jk>, then we're parsing a top-level URL-encoded value which is treated a bit different than the default case.
-	 * @param name The parent field or map key name.
-	 * @return The parsed object.
-	 * @throws ParseException
-	 */
-	protected <T> T parseAnything(ClassMeta<T> nt, UonParserContext ctx, ParserReader r, BeanPropertyMeta p, Object outer, boolean isUrlParamValue, Object name) throws ParseException {
-
-		BeanContext bc = ctx.getBeanContext();
-		if (nt == null)
-			nt = (ClassMeta<T>)object();
-		PojoFilter<T,Object> filter = (PojoFilter<T,Object>)nt.getPojoFilter();
-		ClassMeta<?> ft = nt.getFilteredClassMeta();
-
-		int line = r.getLine();
-		int column = r.getColumn();
-		Object o = null;
-		try {
-			// Parse type flag '$x'
-			char flag = readFlag(r, (char)0);
-
-			int c = r.peek();
-
-			if (c == -1 || c == AMP) {
-				// If parameter is blank and it's an array or collection, return an empty list.
-				if (ft.isArray() || ft.isCollection())
-					o = ft.newInstance();
-				else if (ft.isString() || ft.isObject())
-					o = "";
-				else if (ft.isPrimitive())
-					o = ft.getPrimitiveDefault();
-				// Otherwise, leave null.
-			} else if (ft.isObject()) {
-				if (flag == 0 || flag == 's') {
-					o = parseString(r, isUrlParamValue, ctx);
-				} else if (flag == 'b') {
-					o = parseBoolean(r, ctx);
-				} else if (flag == 'n') {
-					o = parseNumber(r, null, ctx);
-				} else if (flag == 'o') {
-					ObjectMap m = new ObjectMap(bc);
-					parseIntoMap(ctx, r, m, string(), object());
-					o = m.cast();
-				} else if (flag == 'a') {
-					Collection l = new ObjectList(bc);
-					o = parseIntoCollection(ctx, r, l, ft.getElementType(), isUrlParamValue);
-				} else {
-					throw new ParseException(line, column, "Unexpected flag character ''{0}''.", flag);
-				}
-			} else if (ft.isBoolean()) {
-				o = parseBoolean(r, ctx);
-			} else if (ft.isCharSequence()) {
-				o = parseString(r, isUrlParamValue, ctx);
-			} else if (ft.isChar()) {
-				String s = parseString(r, isUrlParamValue, ctx);
-				o = s == null ? null : s.charAt(0);
-			} else if (ft.isNumber()) {
-				o = parseNumber(r, (Class<? extends Number>)ft.getInnerClass(), ctx);
-			} else if (ft.isMap()) {
-				Map m = (ft.canCreateNewInstance(outer) ? (Map)ft.newInstance(outer) : new ObjectMap(bc));
-				o = parseIntoMap(ctx, r, m, ft.getKeyType(), ft.getValueType());
-			} else if (ft.isCollection()) {
-				if (flag == 'o') {
-					ObjectMap m = new ObjectMap(bc);
-					parseIntoMap(ctx, r, m, string(), object());
-					// Handle case where it's a collection, but serialized as a map with a _class or _value key.
-					if (m.containsKey("_class") || m.containsKey("_value"))
-						o = m.cast();
-					// Handle case where it's a collection, but only a single value was specified.
-					else {
-						Collection l = (ft.canCreateNewInstance(outer) ? (Collection)ft.newInstance(outer) : new ObjectList(bc));
-						l.add(m.cast(ft.getElementType()));
-						o = l;
-					}
-				} else {
-					Collection l = (ft.canCreateNewInstance(outer) ? (Collection)ft.newInstance(outer) : new ObjectList(bc));
-					o = parseIntoCollection(ctx, r, l, ft.getElementType(), isUrlParamValue);
-				}
-			} else if (ft.canCreateNewInstanceFromObjectMap(outer)) {
-				ObjectMap m = new ObjectMap(bc);
-				parseIntoMap(ctx, r, m, string(), object());
-				o = ft.newInstanceFromObjectMap(outer, m);
-			} else if (ft.canCreateNewBean(outer)) {
-				BeanMap m = bc.newBeanMap(outer, ft.getInnerClass());
-				m = parseIntoBeanMap(ctx, r, m);
-				o = m == null ? null : m.getBean();
-			} else if (ft.canCreateNewInstanceFromString(outer)) {
-				String s = parseString(r, isUrlParamValue, ctx);
-				if (s != null)
-					o = ft.newInstanceFromString(outer, s);
-			} else if (ft.isArray()) {
-				if (flag == 'o') {
-					ObjectMap m = new ObjectMap(bc);
-					parseIntoMap(ctx, r, m, string(), object());
-					// Handle case where it's an array, but serialized as a map with a _class or _value key.
-					if (m.containsKey("_class") || m.containsKey("_value"))
-						o = m.cast();
-					// Handle case where it's an array, but only a single value was specified.
-					else {
-						ArrayList l = new ArrayList(1);
-						l.add(m.cast(ft.getElementType()));
-						o = bc.toArray(ft, l);
-					}
-				} else {
-					ArrayList l = (ArrayList)parseIntoCollection(ctx, r, new ArrayList(), ft.getElementType(), isUrlParamValue);
-					o = bc.toArray(ft, l);
-				}
-			} else if (flag == 'o') {
-				// It could be a non-bean with _class attribute.
-				ObjectMap m = new ObjectMap(bc);
-				parseIntoMap(ctx, r, m, string(), object());
-				if (m.containsKey("_class"))
-					o = m.cast();
-				else
-					throw new ParseException(line, column, "Class ''{0}'' could not be instantiated.  Reason: ''{1}''", ft.getInnerClass().getName(), ft.getNotABeanReason());
-			} else {
-				throw new ParseException(line, column, "Class ''{0}'' could not be instantiated.  Reason: ''{1}''", ft.getInnerClass().getName(), ft.getNotABeanReason());
-			}
-
-			if (filter != null && o != null)
-				o = filter.unfilter(o, nt);
-
-			if (outer != null)
-				setParent(nt, o, outer);
-
-			if (name != null)
-				setName(nt, o, name);
-
-			return (T)o;
-
-		} catch (RuntimeException e) {
-			throw e;
-		} catch (Exception e) {
-			if (p == null)
-				throw new ParseException("Error occurred trying to parse into class ''{0}''", ft).initCause(e);
-			throw new ParseException("Error occurred trying to parse value for bean property ''{0}'' on class ''{1}''",
-				p.getName(), p.getBeanMeta().getClassMeta()
-			).initCause(e);
-		}
-	}
-
-	private <K,V> Map<K,V> parseIntoMap(UonParserContext ctx, ParserReader r, Map<K,V> m, ClassMeta<K> keyType, ClassMeta<V> valueType) throws ParseException, IOException {
-		int line = r.getLine();
-		int column = r.getColumn();
-
-		if (keyType == null)
-			keyType = (ClassMeta<K>)string();
-
-		int c = r.read();
-		if (c == -1 || c == NUL || c == AMP)
-			return null;
-		if (c != '(')
-			throw new ParseException(line, column, "Expected '(' at beginning of object.");
-
-		final int S1=1; // Looking for attrName start.
-		final int S2=2; // Found attrName end, looking for =.
-		final int S3=3; // Found =, looking for valStart.
-		final int S4=4; // Looking for , or )
-		boolean isInEscape = false;
-
-		int state = S1;
-		K currAttr = null;
-		while (c != -1 && c != AMP) {
-			c = r.read();
-			if (! isInEscape) {
-				if (state == S1) {
-					if (c == ')')
-						return m;
-					if ((c == '\n' || c == '\r') && ctx.whitespaceAware)
-						skipSpace(r);
-					else {
-						r.unread();
-						Object attr = parseAttr(r, ctx.decodeChars, ctx);
-						currAttr = (attr == null ? null : ctx.getBeanContext().convertToType(attr, keyType));
-						state = S2;
-						c = 0; // Avoid isInEscape if c was '\'
-					}
-				} else if (state == S2) {
-					if (c == EQ || c == '=')
-						state = S3;
-					else if (c == -1 || c == ',' || c == ')' || c == AMP) {
-						if (currAttr == null) {
-							// Value was '%00'
-							r.unread();
-							return null;
-						}
-						m.put(currAttr, null);
-						if (c == ')' || c == -1 || c == AMP)
-							return m;
-						state = S1;
-					}
-				} else if (state == S3) {
-					if (c == -1 || c == ',' || c == ')' || c == AMP) {
-						V value = convertAttrToType(m, "", valueType);
-						m.put(currAttr, value);
-						if (c == -1 || c == ')' || c == AMP)
-							return m;
-						state = S1;
-					} else  {
-						V value = parseAnything(valueType, ctx, r.unread(), null, m, false, currAttr);
-						m.put(currAttr, value);
-						state = S4;
-						c = 0; // Avoid isInEscape if c was '\'
-					}
-				} else if (state == S4) {
-					if (c == ',')
-						state = S1;
-					else if (c == ')' || c == -1 || c == AMP) {
-						return m;
-					}
-				}
-			}
-			isInEscape = isInEscape(c, r, isInEscape);
-		}
-		if (state == S1)
-			throw new ParseException(line, column, "Could not find attribute name on object.");
-		if (state == S2)
-			throw new ParseException(line, column, "Could not find '=' following attribute name on object.");
-		if (state == S3)
-			throw new ParseException(line, column, "Dangling '=' found in object entry");
-		if (state == S4)
-			throw new ParseException(line, column, "Could not find ')' marking end of object.");
-
-		return null; // Unreachable.
-	}
-
-	private <E> Collection<E> parseIntoCollection(UonParserContext ctx, ParserReader r, Collection<E> l, ClassMeta<E> elementType, boolean isUrlParamValue) throws ParseException, IOException {
-		int line = r.getLine();
-		int column = r.getColumn();
-
-		int c = r.read();
-		if (c == -1 || c == NUL || c == AMP)
-			return null;
-
-		// If we're parsing a top-level parameter, we're allowed to have comma-delimited lists outside parenthesis (e.g. "&foo=1,2,3&bar=a,b,c")
-		// This is not allowed at lower levels since we use comma's as end delimiters.
-		boolean isInParens = (c == '(');
-		if (! isInParens)
-			if (isUrlParamValue)
-				r.unread();
-			else
-				throw new ParseException(line, column, "Could not find '(' marking beginning of collection.");
-
-		if (isInParens) {
-			final int S1=1; // Looking for starting of first entry.
-			final int S2=2; // Looking for starting of subsequent entries.
-			final int S3=3; // Looking for , or ) after first entry.
-
-			int state = S1;
-			while (c != -1 && c != AMP) {
-				c = r.read();
-				if (state == S1 || state == S2) {
-					if (c == ')') {
-						if (state == S2) {
-							l.add(parseAnything(elementType, ctx, r.unread(), null, l, false, null));
-							r.read();
-						}
-						return l;
-					} else if ((c == '\n' || c == '\r') && ctx.whitespaceAware) {
-						skipSpace(r);
-					} else {
-						l.add(parseAnything(elementType, ctx, r.unread(), null, l, false, null));
-						state = S3;
-					}
-				} else if (state == S3) {
-					if (c == ',') {
-						state = S2;
-					} else if (c == ')') {
-						return l;
-					}
-				}
-			}
-			if (state == S1 || state == S2)
-				throw new ParseException(line, column, "Could not find start of entry in array.");
-			if (state == S3)
-				throw new ParseException(line, column, "Could not find end of entry in array.");
-
-		} else {
-			final int S1=1; // Looking for starting of entry.
-			final int S2=2; // Looking for , or & or END after first entry.
-
-			int state = S1;
-			while (c != -1 && c != AMP) {
-				c = r.read();
-				if (state == S1) {
-					if ((c == '\n' || c == '\r') && ctx.whitespaceAware) {
-						skipSpace(r);
-					} else {
-						l.add(parseAnything(elementType, ctx, r.unread(), null, l, false, null));
-						state = S2;
-					}
-				} else if (state == S2) {
-					if (c == ',') {
-						state = S1;
-					} else if ((c == '\n' || c == '\r') && ctx.whitespaceAware) {
-						skipSpace(r);
-					} else if (c == AMP || c == -1) {
-						r.unread();
-						return l;
-					}
-				}
-			}
-		}
-
-		return null;  // Unreachable.
-	}
-
-	private <T> BeanMap<T> parseIntoBeanMap(UonParserContext ctx, ParserReader r, BeanMap<T> m) throws ParseException, IOException {
-		int line = r.getLine();
-		int column = r.getColumn();
-
-		int c = r.read();
-		if (c == -1 || c == NUL || c == AMP)
-			return null;
-		if (c != '(')
-			throw new ParseException(line, column, "Expected '(' at beginning of object.");
-
-		final int S1=1; // Looking for attrName start.
-		final int S2=2; // Found attrName end, looking for =.
-		final int S3=3; // Found =, looking for valStart.
-		final int S4=4; // Looking for , or }
-		boolean isInEscape = false;
-
-		int state = S1;
-		String currAttr = "";
-		int currAttrLine = -1, currAttrCol = -1;
-		while (c != -1 && c != AMP) {
-			c = r.read();
-			if (! isInEscape) {
-				if (state == S1) {
-					if (c == ')' || c == -1 || c == AMP) {
-						return m;
-					}
-					if ((c == '\n' || c == '\r') && ctx.whitespaceAware)
-						skipSpace(r);
-					else {
-						r.unread();
-						currAttrLine= r.getLine();
-						currAttrCol = r.getColumn();
-						currAttr = parseAttrName(r, ctx.decodeChars);
-						if (currAttr == null)  // Value was '%00'
-							return null;
-						state = S2;
-					}
-				} else if (state == S2) {
-					if (c == EQ || c == '=')
-						state = S3;
-					else if (c == -1 || c == ',' || c == ')' || c == AMP) {
-						m.put(currAttr, null);
-						if (c == ')' || c == -1 || c == AMP)
-							return m;
-						state = S1;
-					}
-				} else if (state == S3) {
-					if (c == -1 || c == ',' || c == ')' || c == AMP) {
-						if (! currAttr.equals("_class")) {
-							BeanPropertyMeta pMeta = m.getPropertyMeta(currAttr);
-							if (pMeta == null) {
-								if (m.getMeta().isSubTyped()) {
-									m.put(currAttr, "");
-								} else {
-									onUnknownProperty(ctx, currAttr, m, currAttrLine, currAttrCol);
-								}
-							} else {
-								Object value = ctx.getBeanContext().convertToType("", pMeta.getClassMeta());
-								pMeta.set(m, value);
-							}
-						}
-						if (c == -1 || c == ')' || c == AMP)
-							return m;
-						state = S1;
-					} else {
-						if (! currAttr.equals("_class")) {
-							BeanPropertyMeta pMeta = m.getPropertyMeta(currAttr);
-							if (pMeta == null) {
-								if (m.getMeta().isSubTyped()) {
-									m.put(currAttr, parseAnything(object(), ctx, r.unread(), null, m.getBean(false), false, currAttr));
-								} else {
-									onUnknownProperty(ctx, currAttr, m, currAttrLine, currAttrCol);
-									parseAnything(object(), ctx, r.unread(), null, m.getBean(false), false, null); // Read content anyway to ignore it
-								}
-							} else {
-								Object value = parseAnything(pMeta.getClassMeta(), ctx, r.unread(), pMeta, m.getBean(false), false, currAttr);
-								pMeta.set(m, value);
-							}
-						}
-						state = S4;
-					}
-				} else if (state == S4) {
-					if (c == ',')
-						state = S1;
-					else if (c == ')' || c == -1 || c == AMP) {
-						return m;
-					}
-				}
-			}
-			isInEscape = isInEscape(c, r, isInEscape);
-		}
-		if (state == S1)
-			throw new ParseException(line, column, "Could not find attribute name on object.");
-		if (state == S2)
-			throw new ParseException(line, column, "Could not find '=' following attribute name on object.");
-		if (state == S3)
-			throw new ParseException(line, column, "Could not find value following '=' on object.");
-		if (state == S4)
-			throw new ParseException(line, column, "Could not find ')' marking end of object.");
-
-		return null; // Unreachable.
-	}
-
-	Object parseAttr(ParserReader r, boolean encoded, UonParserContext ctx) throws IOException, ParseException {
-		Object attr;
-		int c = r.peek();
-		if (c == '$') {
-			char f = readFlag(r, (char)0);
-			if (f == 'b')
-				attr = parseBoolean(r, ctx);
-			else if (f == 'n')
-				attr = parseNumber(r, null, ctx);
-			else
-				attr = parseAttrName(r, encoded);
-		} else {
-			attr = parseAttrName(r, encoded);
-		}
-		return attr;
-	}
-
-	String parseAttrName(ParserReader r, boolean encoded) throws IOException, ParseException {
-
-		// If string is of form '(xxx)', we're looking for ')' at the end.
-		// Otherwise, we're looking for '&' or '=' or -1 denoting the end of this string.
-
-		int line = r.getLine();
-		int column = r.getColumn();
-		int c = r.peek();
-		if (c == '$')
-			readFlag(r, 's');
-		if (c == '(')
-			return parsePString(r);
-
-		r.mark();
-		boolean isInEscape = false;
-		if (encoded) {
-			while (c != -1) {
-				c = r.read();
-				if (! isInEscape) {
-					if (c == AMP || c == EQ || c == -1) {
-						if (c != -1)
-							r.unread();
-						String s = r.getMarked();
-						return (s.equals("\u0000") ? null : s);
-					}
-				}
-				else if (c == AMP)
-					r.replace('&');
-				else if (c == EQ)
-					r.replace('=');
-				isInEscape = isInEscape(c, r, isInEscape);
-			}
-		} else {
-			while (c != -1) {
-				c = r.read();
-				if (! isInEscape) {
-					if (c == '=' || c == -1) {
-						if (c != -1)
-							r.unread();
-						String s = r.getMarked();
-						return (s.equals("\u0000") ? null : s);
-					}
-				}
-				isInEscape = isInEscape(c, r, isInEscape);
-			}
-		}
-
-		// We should never get here.
-		throw new ParseException(line, column, "Unexpected condition.");
-	}
-
-
-	/**
-	 * Returns true if the next character in the stream is preceeded by an escape '~' character.
-	 * @param c The current character.
-	 * @param r The reader.
-	 * @param prevIsInEscape What the flag was last time.
-	 */
-	private static final boolean isInEscape(int c, ParserReader r, boolean prevIsInEscape) throws IOException {
-		if (c == '~' && ! prevIsInEscape) {
-			c = r.peek();
-			if (escapedChars.contains(c)) {
-				r.delete();
-				return true;
-			}
-		}
-		return false;
-	}
-
-	String parseString(ParserReader r, boolean isUrlParamValue, UonParserContext ctx) throws IOException, ParseException {
-
-		// If string is of form '(xxx)', we're looking for ')' at the end.
-		// Otherwise, we're looking for ',' or ')' or -1 denoting the end of this string.
-
-		int c = r.peek();
-		if (c == '(')
-			return parsePString(r);
-
-		r.mark();
-		boolean isInEscape = false;
-		String s = null;
-		AsciiSet endChars = (isUrlParamValue ? endCharsParam : endCharsNormal);
-		while (c != -1) {
-			c = r.read();
-			if (! isInEscape) {
-				// If this is a URL parameter value, we're looking for:  &
-				// If not, we're looking for:  &,)
-				if (endChars.contains(c)) {
-					r.unread();
-					c = -1;
-				}
-			}
-			if (c == -1)
-				s = r.getMarked();
-			else if (c == EQ)
-				r.replace('=');
-			else if ((c == '\n' || c == '\r') && ctx.whitespaceAware) {
-				s = r.getMarked(0, -1);
-				skipSpace(r);
-				c = -1;
-			}
-			isInEscape = isInEscape(c, r, isInEscape);
-		}
-
-		return (s == null || s.equals("\u0000") ? null : s);
-	}
-
-	private static final AsciiSet endCharsParam = new AsciiSet(""+AMP), endCharsNormal = new AsciiSet(",)"+AMP);
-
-
-	/**
-	 * Parses a string of the form "(foo)"
-	 * All whitespace within parenthesis are preserved.
-	 */
-	static String parsePString(ParserReader r) throws IOException, ParseException {
-
-		int line = r.getLine();
-		int column = r.getColumn();
-		r.read(); // Skip first parenthesis.
-		r.mark();
-		int c = 0;
-
-		boolean isInEscape = false;
-		while (c != -1) {
-			c = r.read();
-			if (! isInEscape) {
-				if (c == ')')
-					return r.getMarked(0, -1);
-			}
-			if (c == EQ)
-				r.replace('=');
-			isInEscape = isInEscape(c, r, isInEscape);
-		}
-		throw new ParseException(line, column, "Unmatched parenthesis");
-	}
-
-	private Boolean parseBoolean(ParserReader r, UonParserContext ctx) throws IOException, ParseException {
-		int line = r.getLine();
-		int column = r.getColumn();
-		readFlag(r, 'b');
-		String s = parseString(r, false, ctx);
-		if (s == null)
-			return null;
-		if (s.equals("true"))
-			return true;
-		if (s.equals("false"))
-			return false;
-		throw new ParseException(line, column, "Unrecognized syntax for boolean.  ''{0}''.", s);
-	}
-
-	private Number parseNumber(ParserReader r, Class<? extends Number> c, UonParserContext ctx) throws IOException, ParseException {
-		readFlag(r, 'n');
-		String s = parseString(r, false, ctx);
-		if (s == null)
-			return null;
-		return StringUtils.parseNumber(s, c);
-	}
-
-	/*
-	 * Call this method after you've finished a parsing a string to make sure that if there's any
-	 * remainder in the input, that it consists only of whitespace and comments.
-	 */
-	private void validateEnd(ParserReader r) throws ParseException, IOException {
-		int line = r.getLine();
-		int column = r.getColumn();
-		int c = r.read();
-		if (c != -1)
-			throw new ParseException(line, column, "Remainder after parse: ''{0}''.", (char)c);
-	}
-
-	/**
-	 * Reads flag character from "$x(" construct if flag is present.
-	 * Returns 0 if no flag is present.
-	 */
-	static char readFlag(ParserReader r, char expected) throws IOException, ParseException {
-		int line = r.getLine();
-		int column = r.getColumn();
-		char c = (char)r.peek();
-		if (c == '$') {
-			r.read();
-			char f = (char)r.read();
-			if (expected != 0 && f != expected)
-				throw new ParseException(line, column, "Unexpected flag character: ''{0}''.  Expected ''{1}''.", f, expected);
-			c = (char)r.peek();
-			// Type flag must be followed by '('
-			if (c != '(')
-				throw new ParseException(line, column, "Unexpected character following flag: ''{0}''.", c);
-			return f;
-		}
-		return 0;
-	}
-
-	private Object[] parseArgs(UonParserContext ctx, ParserReader r, ClassMeta<?>[] argTypes) throws ParseException, IOException {
-		int line = r.getLine();
-		int column = r.getColumn();
-
-		final int S1=1; // Looking for start of entry
-		final int S2=2; // Looking for , or )
-
-		Object[] o = new Object[argTypes.length];
-		int i = 0;
-
-		int c = r.read();
-		if (c == -1 || c == AMP)
-			return null;
-		if (c != '(')
-			throw new ParseException("Expected '(' at beginning of args array.");
-
-		int state = S1;
-		while (c != -1 && c != AMP) {
-			c = r.read();
-			if (state == S1) {
-				if (c == ')')
-					return o;
-				o[i] = parseAnything(argTypes[i], ctx, r.unread(), null, ctx.getOuter(), false, null);
-				i++;
-				state = S2;
-			} else if (state == S2) {
-				if (c == ',') {
-					state = S1;
-				} else if (c == ')') {
-					return o;
-				}
-			}
-		}
-
-		throw new ParseException(line, column, "Did not find ')' at the end of args array.");
-	}
-
-	private static void skipSpace(ParserReader r) throws IOException {
-		int c = 0;
-		while ((c = r.read()) != -1) {
-			if (c > ' ' || c <= 2) {
-				r.unread();
-				return;
-			}
-		}
-	}
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* Parser */
-	public UonParserContext createContext(ObjectMap properties, Method javaMethod, Object outer) {
-		return new UonParserContext(getBeanContext(), pp, upp, uep, properties, javaMethod, outer);
-	}
-
-	@Override /* Parser */
-	protected <T> T doParse(Reader in, int estimatedSize, ClassMeta<T> type, ParserContext ctx) throws ParseException, IOException {
-		UonParserContext uctx = (UonParserContext)ctx;
-		type = ctx.getBeanContext().normalizeClassMeta(type);
-		UonParserReader r = uctx.getUrlEncodingParserReader(in, estimatedSize);
-		T o = parseAnything(type, uctx, r, null, ctx.getOuter(), true, null);
-		validateEnd(r);
-		return o;
-	}
-
-	@Override /* ReaderParser */
-	protected <K,V> Map<K,V> doParseIntoMap(Reader in, int estimatedSize, Map<K,V> m, Type keyType, Type valueType, ParserContext ctx) throws ParseException, IOException {
-		UonParserContext uctx = (UonParserContext)ctx;
-		UonParserReader r = uctx.getUrlEncodingParserReader(in, estimatedSize);
-		readFlag(r, 'o');
-		m = parseIntoMap(uctx, r, m, ctx.getBeanContext().getClassMeta(keyType), ctx.getBeanContext().getClassMeta(valueType));
-		validateEnd(r);
-		return m;
-	}
-
-	@Override /* ReaderParser */
-	protected <E> Collection<E> doParseIntoCollection(Reader in, int estimatedSize, Collection<E> c, Type elementType, ParserContext ctx) throws ParseException, IOException {
-		UonParserContext uctx = (UonParserContext)ctx;
-		UonParserReader r = uctx.getUrlEncodingParserReader(in, estimatedSize);
-		readFlag(r, 'a');
-		c = parseIntoCollection(uctx, r, c, ctx.getBeanContext().getClassMeta(elementType), false);
-		validateEnd(r);
-		return c;
-	}
-
-	@Override /* ReaderParser */
-	protected Object[] doParseArgs(Reader in, int estimatedSize, ClassMeta<?>[] argTypes, ParserContext ctx) throws ParseException, IOException {
-		UonParserContext uctx = (UonParserContext)ctx;
-		UonParserReader r = uctx.getUrlEncodingParserReader(in, estimatedSize);
-		readFlag(r, 'a');
-		Object[] a = parseArgs(uctx, r, argTypes);
-		return a;
-	}
-
-	@Override /* Parser */
-	public UonParser setProperty(String property, Object value) throws LockedException {
-		checkLock();
-		if (! upp.setProperty(property, value))
-			if (! uep.setProperty(property, value))
-				super.setProperty(property, value);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public UonParser setProperties(ObjectMap properties) throws LockedException {
-		for (Map.Entry<String,Object> e : properties.entrySet())
-			setProperty(e.getKey(), e.getValue());
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public UonParser addNotBeanClasses(Class<?>...classes) throws LockedException {
-		super.addNotBeanClasses(classes);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public UonParser addFilters(Class<?>...classes) throws LockedException {
-		super.addFilters(classes);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public <T> UonParser addImplClass(Class<T> interfaceClass, Class<? extends T> implClass) throws LockedException {
-		super.addImplClass(interfaceClass, implClass);
-		return this;
-	}
-
-	@Override /* CoreApi */
-	public UonParser setClassLoader(ClassLoader classLoader) throws LockedException {
-		super.setClassLoader(classLoader);
-		return this;
-	}
-
-	@Override /* Lockable */
-	public UonParser lock() {
-		super.lock();
-		return this;
-	}
-
-	@Override /* Lockable */
-	public UonParser clone() {
-		try {
-			UonParser c = (UonParser)super.clone();
-			c.upp = upp.clone();
-			c.uep = uep.clone();
-			return c;
-		} catch (CloneNotSupportedException e) {
-			throw new RuntimeException(e); // Shouldn't happen
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonParserContext.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonParserContext.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonParserContext.class
deleted file mode 100755
index 87fa9f6..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonParserContext.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonParserContext.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonParserContext.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonParserContext.java
deleted file mode 100755
index 631bdcd..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonParserContext.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2014, 2015. All Rights Reserved.
- *
- *  The source code for this program is not published or otherwise
- *  divested of its trade secrets, irrespective of what has been
- *  deposited with the U.S. Copyright Office.
- *******************************************************************************/
-package com.ibm.juno.core.urlencoding;
-
-import static com.ibm.juno.core.urlencoding.UonParserProperties.*;
-import static com.ibm.juno.core.urlencoding.UrlEncodingProperties.*;
-
-import java.io.*;
-import java.lang.reflect.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.parser.*;
-
-/**
- * Context object that lives for the duration of a single parsing in {@link UonParser} and {@link UrlEncodingParser}.
- * <p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class UonParserContext extends ParserContext {
-
-	boolean decodeChars, whitespaceAware, expandedParams;
-
-	/**
-	 * Create a new parser context with the specified options.
-	 *
-	 * @param beanContext The bean context being used.
-	 * @param pp The default parser properties.
-	 * @param upp The default UON-Encoding properties.
-	 * @param uep The default URL-Encoding properties.
-	 * @param op The override properties.
-	 * @param javaMethod The java method that called this parser, usually the method in a REST servlet.
-	 * @param outer The outer object for instantiating top-level non-static inner classes.
-	 */
-	public UonParserContext(BeanContext beanContext, ParserProperties pp, UonParserProperties upp, UrlEncodingProperties uep, ObjectMap op, Method javaMethod, Object outer) {
-		super(beanContext, pp, op, javaMethod, outer);
-		if (op == null || op.isEmpty()) {
-			decodeChars = upp.decodeChars;
-			whitespaceAware = upp.whitespaceAware;
-			expandedParams = uep.expandedParams;
-		} else {
-			decodeChars = op.getBoolean(UON_decodeChars, upp.decodeChars);
-			whitespaceAware = op.getBoolean(UON_whitespaceAware, upp.whitespaceAware);
-			expandedParams = op.getBoolean(URLENC_expandedParams, uep.expandedParams);
-		}
-	}
-
-	/**
-	 * Returns the {@link UrlEncodingProperties#URLENC_expandedParams} setting value in this context.
-	 *
-	 * @return The {@link UrlEncodingProperties#URLENC_expandedParams} setting value in this context.
-	 */
-	public final boolean isExpandedParams() {
-		return expandedParams;
-	}
-
-	/**
-	 * Wraps the specified reader in a {@link UonParserReader}.
-	 *
-	 * @param r The reader to wrap.
-	 * @param estimatedSize The estimated size of the input.
-	 * @return The wrapped reader.
-	 */
-	public final UonParserReader getUrlEncodingParserReader(Reader r, int estimatedSize) {
-		if (r instanceof UonParserReader)
-			return (UonParserReader)r;
-		return new UonParserReader(r, Math.min(8096, estimatedSize), decodeChars);
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonParserProperties.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonParserProperties.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonParserProperties.class
deleted file mode 100755
index cffaddd..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonParserProperties.class and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonParserProperties.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonParserProperties.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonParserProperties.java
deleted file mode 100755
index f7b16ef..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonParserProperties.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2014, 2015. All Rights Reserved.
- *
- *  The source code for this program is not published or otherwise
- *  divested of its trade secrets, irrespective of what has been
- *  deposited with the U.S. Copyright Office.
- *******************************************************************************/
-package com.ibm.juno.core.urlencoding;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.parser.*;
-
-/**
- * Configurable properties on the {@link UonParser} and {@link UrlEncodingParser} classes.
- * <p>
- * 	Use the {@link UonParser#setProperty(String, Object)} method to set property values.
- * <p>
- * 	In addition to these properties, the following properties are also applicable for {@link UonParser}.
- * <ul>
- * 	<li>{@link ParserProperties}
- * 	<li>{@link BeanContextProperties}
- * </ul>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class UonParserProperties implements Cloneable {
-
-	/**
-	 * Decode <js>"%xx"</js> sequences. ({@link Boolean}, default=<jk>false</jk> for {@link UonParser}, <jk>true</jk> for {@link UrlEncodingParser}).
-	 * <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.
-	 */
-	public static final String UON_decodeChars = "UonParser.decodeChars";
-
-	/**
-	 * Expect input to contain readable whitespace characters from using the {@link UonSerializerProperties#UON_useWhitespace} setting ({@link Boolean}, default=<jk>false</jk>).
-	 */
-	public static final String UON_whitespaceAware = "UonParser.whitespaceAware";
-
-	boolean
-		decodeChars = false,
-		whitespaceAware = false;
-
-	/**
-	 * Sets the specified property value.
-	 * @param property The property name.
-	 * @param value The property value.
-	 * @return <jk>true</jk> if property name was valid and property was set.
-	 */
-	public boolean setProperty(String property, Object value) {
-		BeanContext bc = BeanContext.DEFAULT;
-		if (property.equals(UON_decodeChars))
-			decodeChars = bc.convertToType(value, Boolean.class);
-		else if (property.equals(UON_whitespaceAware))
-			whitespaceAware = bc.convertToType(value, Boolean.class);
-		else
-			return false;
-		return true;
-	}
-
-
-	//--------------------------------------------------------------------------------
-	// Overridden methods
-	//--------------------------------------------------------------------------------
-
-	@Override /* Cloneable */
-	public UonParserProperties clone() {
-		try {
-			return (UonParserProperties)super.clone();
-		} catch (CloneNotSupportedException e) {
-			throw new RuntimeException(e); // Shouldn't happen
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonParserReader.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonParserReader.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonParserReader.class
deleted file mode 100755
index f8585fb..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/urlencoding/UonParserReader.class and /dev/null differ